diff --git a/.azure-pipelines/SDKAutomation.yml b/.azure-pipelines/SDKAutomation.yml index 521308755773..bc1d551b0d9c 100644 --- a/.azure-pipelines/SDKAutomation.yml +++ b/.azure-pipelines/SDKAutomation.yml @@ -2,7 +2,10 @@ trigger: batch: false branches: include: - - "*" + - master + +pr: + autoCancel: false jobs: - job: "SDKAutomation" diff --git a/CODEOWNERS b/CODEOWNERS index 14e9cb18e880..206fdc893088 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -47,6 +47,7 @@ /specification/notificationhubs/ @amolr @smithab /specification/operationalinsights/ @sw47 /specification/operationsmanagement/ @dashimi16 +/specification/peering/ @rileymckenna /specification/policyinsights/ @bulentelmaci /specification/postgresql/ @qingqingyuan /specification/powerbidedicated/ @tarostok diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 68da20933d61..99db62225099 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,6 +5,9 @@ trigger: include: - master +pr: + autoCancel: false + variables: TRAVIS: 'true' TRAVIS_BRANCH: $(System.PullRequest.TargetBranch) diff --git a/custom-words.txt b/custom-words.txt index 424af84e7c41..60e52c655e4c 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -1063,6 +1063,7 @@ poolusagemetrics portalsettings postbackup Postgre +Postgres postgresql postrestore powerbi @@ -1118,6 +1119,7 @@ qnormal querylogs querypool querystring +querytriggers Queretaro queueservices quickbooks @@ -1364,7 +1366,9 @@ sparql SPDX SQLAG SQLDB +SQLDW SQLMI +SQLRDS sqlvirtualmachine sqlvm Sqoop @@ -1509,6 +1513,7 @@ ukwest Ulaanbaatar unallocated unattend +unbilled Unclaim Undelete undeleted diff --git a/preproduction-azure-pipelines.yml b/preproduction-azure-pipelines.yml index d2b59829aad7..acfd68e91a4f 100644 --- a/preproduction-azure-pipelines.yml +++ b/preproduction-azure-pipelines.yml @@ -2,6 +2,9 @@ name: "Preproduction CI for Azure Rest API specifications" trigger: none +pr: + autoCancel: false + variables: TRAVIS: 'true' TRAVIS_BRANCH: $(System.PullRequest.TargetBranch) diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimapis.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimapis.json index 921c722c09d6..c0f21de3eeb0 100644 --- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimapis.json +++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/apimapis.json @@ -4381,7 +4381,8 @@ "swagger-link", "wadl-link", "wsdl-link", - "openapi-link" + "openapi-link", + "openapi+json-link" ], "x-ms-enum": { "name": "ExportFormat", @@ -4406,6 +4407,11 @@ "value": "openapi-link", "description": "Export the Api Definition in OpenApi Specification 3.0 to Storage Blob.", "name": "Openapi" + }, + { + "value": "openapi+json-link", + "description": "Export the Api Definition in OpenApi Specification 3.0 as JSON document to Storage Blob.", + "name": "OpenapiJson" } ] }, diff --git a/specification/apimanagement/resource-manager/readme.go.md b/specification/apimanagement/resource-manager/readme.go.md index c385a5132a60..0c9af5512386 100644 --- a/specification/apimanagement/resource-manager/readme.go.md +++ b/specification/apimanagement/resource-manager/readme.go.md @@ -13,6 +13,7 @@ go: ``` yaml $(go) && $(multiapi) batch: + - tag: package-preview-2019-12 - tag: package-2019-01 - tag: package-2018-06-preview - tag: package-2018-01 @@ -21,6 +22,15 @@ batch: - tag: package-2016-07 ``` +### Tag: package-preview-2019-12 and go + +These settings apply only when `--tag=package-preview-2019-12 --go` is specified on the command line. +Please also specify `--go-sdk-folder=`. + +``` yaml $(tag) == 'package-preview-2019-12' && $(go) +output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2019-12-01-preview/$(namespace) +``` + ### Tag: package-2019-01 and go These settings apply only when `--tag=package-2019-01 --go` is specified on the command line. diff --git a/specification/applicationinsights/resource-manager/readme.md b/specification/applicationinsights/resource-manager/readme.md index 7f8e3e07b84d..491dab42f372 100644 --- a/specification/applicationinsights/resource-manager/readme.md +++ b/specification/applicationinsights/resource-manager/readme.md @@ -284,7 +284,6 @@ These settings apply only when `--tag=package-2019-10-17-preview` is specified o ```yaml $(tag) == 'package-2019-10-17-preview' input-file: - Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json - - Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json ``` ### Tag: package-2018-05-01-preview @@ -416,7 +415,6 @@ input-file: - $(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/2019-10-17-preview/privateLinkScopes_API.json - $(this-folder)/Microsoft.Insights/preview/2018-05-01/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 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 51db4fb34e87..3f7c002c9e65 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 @@ -1312,7 +1312,7 @@ "Transactions" ], "operationId": "Transactions_ListByCustomer", - "description": "Lists the transactions by customer id for given start date and end date.", + "description": "Lists the billed and unbilled transactions by customer id for given start date and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.", "externalDocs": { "url": "https://docs.microsoft.com/en-us/rest/api/consumption/" }, @@ -2528,7 +2528,7 @@ "Transactions" ], "operationId": "Transactions_ListByBillingAccount", - "description": "Lists the transactions by billing account name for given start and end date.", + "description": "Lists the billed and unbilled transactions by billing account name for given start and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice ID and do not include tax. Tax is added to the amount once an invoice is generated.", "externalDocs": { "url": "https://docs.microsoft.com/en-us/rest/api/billing/" }, @@ -2594,7 +2594,7 @@ "Transactions" ], "operationId": "Transactions_ListByBillingProfile", - "description": "Lists the transactions by billing profile name for given start date and end date.", + "description": "Lists the billed and unbilled transactions by billing profile name for given start date and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.", "externalDocs": { "url": "https://docs.microsoft.com/en-us/rest/api/billing/" }, @@ -2660,7 +2660,7 @@ "Transactions" ], "operationId": "Transactions_ListByInvoiceSection", - "description": "Lists the transactions by invoice section name for given start date and end date.", + "description": "Lists the billed and unbilled transactions by invoice section name for given start date and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.", "externalDocs": { "url": "https://docs.microsoft.com/en-us/rest/api/billing/" }, @@ -2723,6 +2723,54 @@ } } }, + "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoices/{invoiceName}/transactions": { + "get": { + "tags": [ + "Transactions" + ], + "operationId": "Transactions_ListByInvoice", + "description": "Lists the transactions by invoice. Transactions include purchases, refunds and Azure usage charges.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/billing/" + }, + "x-ms-examples": { + "TransactionsListByInvoice": { + "$ref": "./examples/TransactionsListByInvoice.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/billingAccountNameParameter" + }, + { + "$ref": "#/parameters/billingProfileNameParameter" + }, + { + "$ref": "#/parameters/invoiceNameParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/TransactionListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/transactions/{transactionName}": { "get": { "tags": [ diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/TransactionsListByInvoice.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/TransactionsListByInvoice.json new file mode 100644 index 000000000000..7c1da9f1e531 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/TransactionsListByInvoice.json @@ -0,0 +1,122 @@ +{ + "parameters": { + "api-version": "2019-10-01-preview", + "billingAccountName": "{billingAccountName}", + "billingProfileName": "{billingProfileName}", + "invoiceName": "{invoiceName}" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/providers/Microsoft.Billing/BillingAccounts/{billingAccountName}/BillingProfiles/{billingProfileName}/transactions/41000000-0000-0000-0000-000000000000", + "name": "41000000-0000-0000-0000-000000000000", + "type": "Microsoft.Billing/billingAccounts/billingProfiles/transactions", + "properties": { + "kind": "all", + "date": "2018-05-01T00:00:00Z", + "invoice": "2344233", + "productFamily": "Storage", + "productTypeId": "A12345", + "productType": "VM Instance", + "productDescription": "Standard D1, US West 3", + "transactionType": "Purchase", + "transactionAmount": { + "currency": "USD", + "value": 5000.00 + }, + "invoiceSectionId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/22000000-0000-0000-0000-000000000000", + "invoiceSectionDisplayName": "Contoso operations invoiceSection", + "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}", + "billingProfileDisplayName": "Contoso operations billing", + "azureCreditApplied": { + "currency": "USD", + "value": 2000.00 + }, + "billingCurrency": "USD", + "discount": 0.1, + "effectivePrice": { + "currency": "USD", + "value": 10.00 + }, + "exchangeRate": 1, + "marketPrice": { + "currency": "USD", + "value": 20.00 + }, + "pricingCurrency": "USD", + "quantity": 1, + "servicePeriodStartDate": "2018-05-01T00:00:00Z", + "servicePeriodEndDate": "2018-09-30T00:00:00Z", + "subTotal": { + "currency": "USD", + "value": 4500.00 + }, + "tax": { + "currency": "USD", + "value": 500.00 + }, + "unitOfMeasure": "1 Minute", + "units": 11.25, + "unitType": "1 Runtime Minute" + } + }, + { + "id": "/providers/Microsoft.Billing/BillingAccounts/{billingAccountName}/BillingProfiles/{billingProfileName}/transactions/51000000-0000-0000-0000-000000000000", + "name": "51000000-0000-0000-0000-000000000000", + "type": "Microsoft.Billing/billingAccounts/billingProfiles/transactions", + "properties": { + "kind": "all", + "date": "2018-04-01T00:00:00Z", + "invoice": "pending", + "productFamily": "Storage", + "productTypeId": "A12345", + "productType": "VM Instance", + "productDescription": "Standard Support", + "transactionType": "Cancel", + "transactionAmount": { + "currency": "USD", + "value": 50.00 + }, + "invoiceSectionId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/22000000-0000-0000-0000-000000000000", + "invoiceSectionDisplayName": "Contoso operations invoiceSection", + "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}", + "billingProfileDisplayName": "Contoso operations billing", + "azureCreditApplied": { + "currency": "USD", + "value": 20.00 + }, + "billingCurrency": "USD", + "discount": 0.1, + "effectivePrice": { + "currency": "USD", + "value": 10.00 + }, + "exchangeRate": 1, + "marketPrice": { + "currency": "USD", + "value": 20.00 + }, + "pricingCurrency": "USD", + "quantity": 1, + "servicePeriodStartDate": "2018-05-01T00:00:00Z", + "servicePeriodEndDate": "2018-09-30T00:00:00Z", + "subTotal": { + "currency": "USD", + "value": 45.00 + }, + "tax": { + "currency": "USD", + "value": 5.00 + }, + "unitOfMeasure": "1 Minute", + "units": 1.25, + "unitType": "1 Runtime Minute" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingBYOC.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingBYOC.json index 01445743780d..f20809681f57 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingBYOC.json +++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingBYOC.json @@ -7,6 +7,7 @@ "endpointName": "endpoint1", "customDomainName": "www-someDomain-net", "customHttpsParameters": { + "minimumTlsVersion": "TLS12", "certificateSource": "AzureKeyVault", "protocolType": "ServerNameIndication", "certificateSourceParameters": { diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingCDNManagedCertificate.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingCDNManagedCertificate.json index a2e61e2c7c83..822b94cf1037 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingCDNManagedCertificate.json +++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/examples/CustomDomains_EnableCustomHttpsUsingCDNManagedCertificate.json @@ -7,6 +7,7 @@ "endpointName": "endpoint1", "customDomainName": "www-someDomain-net", "customHttpsParameters": { + "minimumTlsVersion": "TLS12", "certificateSource": "Cdn", "protocolType": "ServerNameIndication", "certificateSourceParameters": { 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 dc93bc487aea..abb09d4b737c 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 @@ -2335,6 +2335,14 @@ "type": "string", "x-ms-parameter-location": "method" }, + { + "name": "startFromFailure", + "description": "In recovery mode, if set to true, the rerun will start from failed activities. The property will be used only if startActivityName is not specified.", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method" + }, { "name": "parameters", "description": "Parameters of the pipeline run. These parameters will be used only if the runId is not specified.", @@ -2605,6 +2613,57 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/querytriggers": { + "post": { + "tags": [ + "triggers" + ], + "operationId": "Triggers_QueryByFactory", + "x-ms-examples": { + "Triggers_QueryByFactory": { + "$ref": "./examples/Triggers_QueryByFactory.json" + } + }, + "description": "Query triggers.", + "parameters": [ + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + }, + { + "$ref": "#/parameters/factoryName" + }, + { + "$ref": "#/parameters/api-version" + }, + { + "name": "filterParameters", + "description": "Parameters to filter the triggers.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TriggerFilterParameters" + } + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/TriggerQueryResponse" + } + }, + "default": { + "description": "An error response received from the Azure Data Factory service.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}": { "put": { "tags": [ @@ -3039,249 +3098,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/rerunTriggers/{rerunTriggerName}": { - "put": { - "tags": [ - "rerunTriggers" - ], - "operationId": "RerunTriggers_Create", - "x-ms-examples": { - "RerunTriggers_Create": { - "$ref": "./examples/RerunTriggers_Create.json" - } - }, - "description": "Creates a rerun trigger.", - "parameters": [ - { - "$ref": "#/parameters/subscriptionId" - }, - { - "$ref": "#/parameters/resourceGroupName" - }, - { - "$ref": "#/parameters/factoryName" - }, - { - "$ref": "#/parameters/triggerName" - }, - { - "$ref": "#/parameters/rerunTriggerName" - }, - { - "$ref": "#/parameters/api-version" - }, - { - "name": "rerunTumblingWindowTriggerActionParameters", - "description": "Rerun tumbling window trigger action parameters.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/RerunTumblingWindowTriggerActionParameters" - } - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/TriggerResource" - } - }, - "default": { - "description": "An error response received from the Azure Data Factory service.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/rerunTriggers/{rerunTriggerName}/start": { - "post": { - "tags": [ - "rerunTriggers" - ], - "operationId": "RerunTriggers_Start", - "x-ms-examples": { - "RerunTriggers_Start": { - "$ref": "./examples/RerunTriggers_Start.json" - } - }, - "description": "Starts a trigger.", - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/subscriptionId" - }, - { - "$ref": "#/parameters/resourceGroupName" - }, - { - "$ref": "#/parameters/factoryName" - }, - { - "$ref": "#/parameters/triggerName" - }, - { - "$ref": "#/parameters/rerunTriggerName" - }, - { - "$ref": "#/parameters/api-version" - } - ], - "responses": { - "200": { - "description": "Trigger has been started successfully." - }, - "default": { - "description": "An error response received from the Azure Data Factory service.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/rerunTriggers/{rerunTriggerName}/stop": { - "post": { - "tags": [ - "rerunTriggers" - ], - "operationId": "RerunTriggers_Stop", - "x-ms-examples": { - "RerunTriggers_Stop": { - "$ref": "./examples/RerunTriggers_Stop.json" - } - }, - "description": "Stops a trigger.", - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/subscriptionId" - }, - { - "$ref": "#/parameters/resourceGroupName" - }, - { - "$ref": "#/parameters/factoryName" - }, - { - "$ref": "#/parameters/triggerName" - }, - { - "$ref": "#/parameters/rerunTriggerName" - }, - { - "$ref": "#/parameters/api-version" - } - ], - "responses": { - "200": { - "description": "Trigger has been stopped successfully." - }, - "default": { - "description": "An error response received from the Azure Data Factory service.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/rerunTriggers/{rerunTriggerName}/cancel": { - "post": { - "tags": [ - "rerunTriggers" - ], - "operationId": "RerunTriggers_Cancel", - "x-ms-examples": { - "RerunTriggers_Cancel": { - "$ref": "./examples/RerunTriggers_Cancel.json" - } - }, - "description": "Cancels a trigger.", - "x-ms-long-running-operation": true, - "parameters": [ - { - "$ref": "#/parameters/subscriptionId" - }, - { - "$ref": "#/parameters/resourceGroupName" - }, - { - "$ref": "#/parameters/factoryName" - }, - { - "$ref": "#/parameters/triggerName" - }, - { - "$ref": "#/parameters/rerunTriggerName" - }, - { - "$ref": "#/parameters/api-version" - } - ], - "responses": { - "200": { - "description": "Trigger has been canceled successfully." - }, - "default": { - "description": "An error response received from the Azure Data Factory service.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/rerunTriggers": { - "get": { - "tags": [ - "rerunTriggers" - ], - "operationId": "RerunTriggers_ListByTrigger", - "x-ms-examples": { - "RerunTriggers_ListByTrigger": { - "$ref": "./examples/RerunTriggers_ListByTrigger.json" - } - }, - "description": "Lists rerun triggers by an original trigger name.", - "parameters": [ - { - "$ref": "#/parameters/subscriptionId" - }, - { - "$ref": "#/parameters/resourceGroupName" - }, - { - "$ref": "#/parameters/factoryName" - }, - { - "$ref": "#/parameters/triggerName" - }, - { - "$ref": "#/parameters/api-version" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/RerunTriggerListResponse" - } - }, - "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}/queryTriggerRuns": { "post": { "tags": [ @@ -4217,6 +4033,26 @@ } } }, + "TriggerQueryResponse": { + "description": "A query of triggers.", + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "array", + "description": "List of triggers.", + "items": { + "$ref": "#/definitions/TriggerResource" + } + }, + "continuationToken": { + "description": "The continuation token for getting the next page of results, if any remaining results exist, null otherwise.", + "type": "string" + } + } + }, "TriggerListResponse": { "description": "A list of trigger resources.", "type": "object", @@ -4848,6 +4684,20 @@ "properties" ] }, + "TriggerFilterParameters": { + "description": "Query parameters for triggers.", + "type": "object", + "properties": { + "continuationToken": { + "description": "The continuation token for getting the next page of results. Null for first page.", + "type": "string" + }, + "parentTriggerName": { + "description": "The name of the parent TumblingWindowTrigger to get the child rerun triggers", + "type": "string" + } + } + }, "RunFilterParameters": { "description": "Query parameters for listing runs.", "type": "object", @@ -5302,71 +5152,6 @@ "type": "object" } }, - "RerunTumblingWindowTriggerActionParameters": { - "description": "Rerun tumbling window trigger Parameters.", - "type": "object", - "properties": { - "startTime": { - "description": "The start time for the time period for which restatement is initiated. Only UTC time is currently supported.", - "type": "string", - "format": "date-time" - }, - "endTime": { - "description": "The end time for the time period for which restatement is initiated. Only UTC time is currently supported.", - "type": "string", - "format": "date-time" - }, - "maxConcurrency": { - "description": "The max number of parallel time windows (ready for execution) for which a rerun is triggered.", - "type": "integer", - "minimum": 1, - "maximum": 50 - } - }, - "required": [ - "startTime", - "endTime", - "maxConcurrency" - ] - }, - "RerunTriggerListResponse": { - "description": "A list of rerun triggers.", - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "array", - "description": "List of rerun triggers.", - "items": { - "$ref": "#/definitions/RerunTriggerResource" - } - }, - "nextLink": { - "description": "The continuation token for getting the next page of results, if any remaining results exist, null otherwise.", - "type": "string", - "readOnly": true - } - } - }, - "RerunTriggerResource": { - "description": "RerunTrigger resource type.", - "allOf": [ - { - "$ref": "#/definitions/SubResource" - } - ], - "properties": { - "properties": { - "$ref": "./entityTypes/Trigger.json#/definitions/RerunTumblingWindowTrigger", - "description": "Properties of the rerun trigger." - } - }, - "required": [ - "properties" - ] - }, "OperationListResponse": { "description": "A list of operations that can be performed by the Data Factory service.", "properties": { @@ -6068,17 +5853,6 @@ "maxLength": 260, "x-ms-parameter-location": "method" }, - "rerunTriggerName": { - "name": "rerunTriggerName", - "description": "The rerun trigger name.", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[A-Za-z0-9_][^<>*#.%&:\\\\+?/]*$", - "minLength": 1, - "maxLength": 260, - "x-ms-parameter-location": "method" - }, "runId": { "name": "runId", "description": "The pipeline run identifier.", 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 bc94c9bbdc9b..6423f41ed7d3 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 @@ -572,7 +572,7 @@ "format": "date-time", "description": "The end time for the time period for which restatement is initiated. Only UTC time is currently supported." }, - "maxConcurrency": { + "rerunConcurrency": { "description": "The max number of parallel time windows (ready for execution) for which a rerun is triggered.", "type": "integer", "minimum": 1, @@ -580,9 +580,10 @@ } }, "required": [ + "parentTrigger", "requestedStartTime", "requestedEndTime", - "maxConcurrency" + "rerunConcurrency" ] } }, diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Cancel.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Cancel.json deleted file mode 100644 index 1e3d8b98ec8b..000000000000 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Cancel.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "parameters": { - "subscriptionId": "12345678-1234-1234-1234-12345678abc", - "resourceGroupName": "exampleResourceGroup", - "factoryName": "exampleFactoryName", - "triggerName": "exampleTrigger", - "rerunTriggerName": "exampleRerunTrigger", - "api-version": "2018-06-01" - }, - "responses": { - "200": {} - } -} diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Create.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Create.json deleted file mode 100644 index 7463511ef117..000000000000 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Create.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parameters": { - "subscriptionId": "12345678-1234-1234-1234-12345678abc", - "resourceGroupName": "exampleResourceGroup", - "factoryName": "exampleFactoryName", - "triggerName": "exampleTrigger", - "rerunTriggerName": "exampleRerunTrigger", - "rerunTumblingWindowTriggerActionParameters": { - "startTime": "2018-06-16T00:39:13.8441801Z", - "endTime": "2018-06-16T00:55:13.8441801Z", - "maxConcurrency": 4 - }, - "api-version": "2018-06-01" - }, - "responses": { - "200": { - "headers": { - "Date": "Sat, 16 Jun 2018 00:40:14 GMT", - "X-Content-Type-Options": "nosniff", - "x-ms-ratelimit-remaining-subscription-writes": "1186", - "x-ms-request-id": "373f1a49-685d-4c07-8857-0fcf1bcaffcb", - "x-ms-correlation-request-id": "373f1a49-685d-4c07-8857-0fcf1bcaffcb" - }, - "body": { - "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/triggers/exampleTrigger/rerunTriggers/exampleRerunTrigger", - "name": "exampleRerunTrigger", - "type": "Microsoft.DataFactory/factories/triggers/rerunTriggers", - "properties": { - "type": "RerunTumblingWindowTrigger", - "typeProperties": { - "requestedStartTime": "2018-06-16T00:39:13.8441801Z", - "requestedEndTime": "2018-06-16T00:55:13.8441801Z", - "maxConcurrency": 4 - } - } - } - } - } -} diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Start.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Start.json deleted file mode 100644 index 1e3d8b98ec8b..000000000000 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Start.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "parameters": { - "subscriptionId": "12345678-1234-1234-1234-12345678abc", - "resourceGroupName": "exampleResourceGroup", - "factoryName": "exampleFactoryName", - "triggerName": "exampleTrigger", - "rerunTriggerName": "exampleRerunTrigger", - "api-version": "2018-06-01" - }, - "responses": { - "200": {} - } -} diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Stop.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Stop.json deleted file mode 100644 index 1e3d8b98ec8b..000000000000 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_Stop.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "parameters": { - "subscriptionId": "12345678-1234-1234-1234-12345678abc", - "resourceGroupName": "exampleResourceGroup", - "factoryName": "exampleFactoryName", - "triggerName": "exampleTrigger", - "rerunTriggerName": "exampleRerunTrigger", - "api-version": "2018-06-01" - }, - "responses": { - "200": {} - } -} diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_ListByTrigger.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/Triggers_QueryByFactory.json similarity index 77% rename from specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_ListByTrigger.json rename to specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/Triggers_QueryByFactory.json index e6ea096fb88f..7a266ba3b59e 100644 --- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/RerunTriggers_ListByTrigger.json +++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/Triggers_QueryByFactory.json @@ -4,7 +4,10 @@ "resourceGroupName": "exampleResourceGroup", "factoryName": "exampleFactoryName", "triggerName": "exampleTrigger", - "api-version": "2018-06-01" + "api-version": "2018-06-01", + "filterParameters": { + "parentTriggerName": "exampleTrigger" + } }, "responses": { "200": { @@ -18,15 +21,16 @@ "body": { "value": [ { - "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/triggers/exampleTrigger/rerunTriggers/exampleRerunTrigger", + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/triggers/exampleRerunTrigger", "name": "exampleRerunTrigger", - "type": "Microsoft.DataFactory/factories/triggers/rerunTriggers", + "type": "Microsoft.DataFactory/factories/triggers", "properties": { "type": "RerunTumblingWindowTrigger", "typeProperties": { + "parentTrigger": "exampleTrigger", "requestedStartTime": "2018-06-16T00:39:14.905167Z", "requestedEndTime": "2018-06-16T00:55:14.905167Z", - "maxConcurrency": 4 + "rerunConcurrency": 4 }, "description": "Example description" } diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json index 651b9c6840cf..3b65d498f5b7 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json @@ -393,6 +393,16 @@ "port": { "type": "integer", "description": "Port for Server" + }, + "encryptConnection": { + "type": "boolean", + "description": "Whether to encrypt the connection", + "default": true + }, + "trustServerCertificate": { + "type": "boolean", + "description": "Whether to trust the server certificate", + "default": false } }, "allOf": [ diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json index 8a573d43aafe..19a87e4bb176 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json @@ -70,10 +70,12 @@ }, "resultType": { "description": "Type of result - database level or task level", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "ConnectToSourceSqlServerTaskOutputTaskLevel": { 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 dc648c4c78a7..fe9b45ba782e 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 @@ -54,10 +54,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateMySqlAzureDbForMySqlSyncTaskOutputMigrationLevel": { 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 5ab3f23177f0..1d7ffee88df1 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 @@ -54,10 +54,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputMigrationLevel": { @@ -95,6 +97,21 @@ "type": "string", "description": "Target server name", "readOnly": true + }, + "sourceServerType": { + "$ref": "./TasksCommon.json#/definitions/ScenarioSource", + "description": "Source server type.", + "readOnly": true + }, + "targetServerType": { + "$ref": "./TasksCommon.json#/definitions/ScenarioTarget", + "description": "Target server type.", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/ReplicateMigrationState", + "description": "Migration status", + "readOnly": true } }, "allOf": [ diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json index d4c66c777f15..4511cc58cf01 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json @@ -53,10 +53,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateSqlServerSqlDbSyncTaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json index 77ae665ddf80..3c5c2a8c8b88 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json @@ -53,10 +53,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateSqlServerSqlDbTaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json index 5ce2a2fd1e18..199a98afbf0e 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json @@ -80,10 +80,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateSqlServerSqlMITaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json index e64e894a2411..7c02d9a79d76 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json @@ -37,10 +37,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateSqlServerSqlMISyncTaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json index 38df9713771b..0816af05f169 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json @@ -46,10 +46,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateSsisTaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json index 8496860bbae8..f77fd75f1558 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json @@ -442,7 +442,7 @@ "totalBytes", "totalDocuments" ], - "discriminator": "ResultType" + "discriminator": "resultType" }, "MongoDbMigrationProgress": { "x-ms-discriminator-value": "Migration", diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json index b647d8d3ab5e..f5ac9f85f20a 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json @@ -272,10 +272,12 @@ }, "resultType": { "description": "Result type", - "type": "string", - "readOnly": true + "type": "string" } }, + "required": [ + "resultType" + ], "discriminator": "resultType" }, "MigrateOracleAzureDbPostgreSqlSyncTaskOutputMigrationLevel": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json index 8c8798a0d89b..a3f00403cf7f 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json @@ -635,7 +635,7 @@ ] }, "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties": { - "x-ms-discriminator-value": "Migrate.PostgreSql.AzureDbForPostgreSql.Sync", + "x-ms-discriminator-value": "Migrate.PostgreSql.AzureDbForPostgreSql.SyncV2", "type": "object", "description": "Properties for the task that migrates PostgreSQL databases to Azure Database for PostgreSQL for online migrations", "properties": { diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json index 7f0496f4d91a..58fd0c288280 100644 --- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json @@ -142,6 +142,60 @@ "modelAsString": true } }, + "ScenarioSource": { + "type": "string", + "description": "An enumeration of source type", + "enum": [ + "Access", + "DB2", + "MySQL", + "Oracle", + "SQL", + "Sybase", + "PostgreSQL", + "MongoDB", + "SQLRDS", + "MySQLRDS", + "PostgreSQLRDS" + ], + "x-ms-enum": { + "name": "ScenarioSource", + "modelAsString": true + } + }, + "ScenarioTarget": { + "type": "string", + "description": "An enumeration of target type", + "enum": [ + "SQLServer", + "SQLDB", + "SQLDW", + "SQLMI", + "AzureDBForMySql", + "AzureDBForPostgresSQL", + "MongoDB" + ], + "x-ms-enum": { + "name": "ScenarioTarget", + "modelAsString": true + } + }, + "ReplicateMigrationState": { + "type": "string", + "description": "Wrapper for replicate reported migration states.", + "enum": [ + "UNDEFINED", + "VALIDATING", + "PENDING", + "COMPLETE", + "ACTION_REQUIRED", + "FAILED" + ], + "x-ms-enum": { + "name": "ReplicateMigrationState", + "modelAsString": true + } + }, "DatabaseObjectName": { "type": "object", "description": "A representation of the name of an object in a database", @@ -1040,7 +1094,14 @@ "COMPLETE", "CANCELLING", "CANCELLED", - "FAILED" + "FAILED", + "VALIDATING", + "VALIDATION_COMPLETE", + "VALIDATION_FAILED", + "RESTORE_IN_PROGRESS", + "RESTORE_COMPLETED", + "BACKUP_IN_PROGRESS", + "BACKUP_COMPLETED" ], "x-ms-enum": { "name": "SyncDatabaseMigrationReportingState", diff --git a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json index 983ab57715a2..49473e2cb23f 100644 --- a/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json +++ b/specification/hanaonazure/resource-manager/Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json @@ -893,11 +893,29 @@ "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": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json index b5615cbfa0c8..6c60337ce2c2 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2015-06-01/keyvault.json @@ -101,6 +101,9 @@ "responses": { "200": { "description": "OK Response." + }, + "204": { + "description": "No Content." } } }, diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/deleteVault.json index 43529414cf91..baaefb1ef99e 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/deleteVault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/deleteVault.json @@ -7,8 +7,10 @@ }, "responses": { "200": { - "headers": {}, - "body": "" + "headers": {} + }, + "204": { + "headers": {} } } } diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/purgeDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/purgeDeletedVault.json index 58190fc37a34..d298d9850818 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/purgeDeletedVault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/examples/purgeDeletedVault.json @@ -6,11 +6,7 @@ "api-version": "2016-10-01" }, "responses": { - "200": { - "body": "" - }, - "202": { - "body": "" - } + "200": {}, + "202": {} } } diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json index 815632dde72f..41355b3b055f 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2016-10-01/keyvault.json @@ -170,6 +170,9 @@ "responses": { "200": { "description": "OK Response." + }, + "204": { + "description": "No Content." } }, "x-ms-examples": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/examples/deleteVault.json index 5c220fa30d48..05c12ee579b2 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/examples/deleteVault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/examples/deleteVault.json @@ -8,6 +8,9 @@ "responses": { "200": { "headers": {} + }, + "204": { + "headers": {} } } } 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 15d6385efa7e..f163ecad84df 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 @@ -174,6 +174,9 @@ "responses": { "200": { "description": "OK Response." + }, + "204": { + "description": "No Content." } }, "x-ms-examples": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/deleteVault.json index 8480ffede0c5..bf878ab72f09 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/deleteVault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/examples/deleteVault.json @@ -8,6 +8,9 @@ "responses": { "200": { "headers": {} + }, + "204": { + "headers": {} } } } diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json index daa7b8ac8d53..07ebc970138f 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json @@ -174,6 +174,9 @@ "responses": { "200": { "description": "OK Response." + }, + "204": { + "description": "No Content." } }, "x-ms-examples": { diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreateAccount.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreateAccount.json new file mode 100644 index 000000000000..479aa06c15d8 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreateAccount.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "MapsAccountCreateParameters": { + "location": "global", + "sku": { + "name": "S0" + }, + "tags": { + "test": "true" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + }, + "properties": { + "x-ms-client-id": "string" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + }, + "properties": { + "x-ms-client-id": "string" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreatePrivateAtlas.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreatePrivateAtlas.json new file mode 100644 index 000000000000..2cdac095220f --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/CreatePrivateAtlas.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "privateAtlasName": "myPrivateAtlas", + "PrivateAtlasCreateParameters": { + "location": "unitedstates", + "tags": { + "test": "true" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount/privateAtlases/myPrivateAtlas", + "name": "myPrivateAtlas", + "type": "Microsoft.Maps/accounts/privateAtlases", + "location": "unitedstates", + "tags": { + "test": "true" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount/privateAtlases/myPrivateAtlas", + "name": "myPrivateAtlas", + "type": "Microsoft.Maps/accounts/privateAtlases", + "location": "unitedstates", + "tags": { + "test": "true" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeleteAccount.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeleteAccount.json new file mode 100644 index 000000000000..f1c3cf4b7431 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeleteAccount.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeletePrivateAtlas.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeletePrivateAtlas.json new file mode 100644 index 000000000000..0fa27735df9f --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/DeletePrivateAtlas.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "privateAtlasName": "myPrivateAtlas" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetAccount.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetAccount.json new file mode 100644 index 000000000000..bdd29f380fde --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetAccount.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + }, + "properties": { + "x-ms-client-id": "string" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetOperations.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetOperations.json new file mode 100644 index 000000000000..5b1c4177aa9f --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetOperations.json @@ -0,0 +1,94 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Maps/register/action", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "Register the provider", + "description": "Register the provider" + } + }, + { + "name": "Microsoft.Maps/accounts/write", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "Create or update a Maps Account.", + "description": "Create or update a Maps Account." + } + }, + { + "name": "Microsoft.Maps/accounts/read", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "Get a Maps Account.", + "description": "Get a Maps Account." + } + }, + { + "name": "Microsoft.Maps/accounts/delete", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "Delete a Maps Account.", + "description": "Delete a Maps Account." + } + }, + { + "name": "Microsoft.Maps/accounts/listKeys/action", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "List keys", + "description": "List Maps Account keys" + } + }, + { + "name": "Microsoft.Maps/accounts/regenerateKey/action", + "display": { + "provider": "Microsoft Maps", + "resource": "Maps Account", + "operation": "Generate new primary or secondary key", + "description": "Generate new Maps Account primary or secondary key" + } + }, + { + "name": "Microsoft.Maps/accounts/privateAtlases/write", + "display": { + "provider": "Microsoft Maps", + "resource": "Private Atlas", + "operation": "Create or update a Private Atlas.", + "description": "Create or update a Private Atlas." + } + }, + { + "name": "Microsoft.Maps/accounts/privateAtlases/read", + "display": { + "provider": "Microsoft Maps", + "resource": "Private Atlas", + "operation": "Get a Private Atlas.", + "description": "Get a Private Atlas." + } + }, + { + "name": "Microsoft.Maps/accounts/privateAtlases/delete", + "display": { + "provider": "Microsoft Maps", + "resource": "Private Atlas", + "operation": "Delete a Private Atlas.", + "description": "Delete a Private Atlas." + } + } + ] + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetPrivateAtlas.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetPrivateAtlas.json new file mode 100644 index 000000000000..be395a1bdb57 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/GetPrivateAtlas.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "privateAtlasName": "myPrivateAtlas" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount/privateAtlases/myPrivateAtlas", + "name": "myPrivateAtlas", + "type": "Microsoft.Maps/accounts/privateAtlases", + "location": "unitedstates", + "tags": { + "test": "true" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsByResourceGroup.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsByResourceGroup.json new file mode 100644 index 000000000000..d34e9c36e9a4 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsByResourceGroup.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount2", + "name": "myMapsAccount2", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + } + }, + { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + } + } + ] + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsBySubscription.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsBySubscription.json new file mode 100644 index 000000000000..c95c95984281 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListAccountsBySubscription.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount2", + "name": "myMapsAccount2", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + } + }, + { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "test": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + } + } + ] + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListKeys.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListKeys.json new file mode 100644 index 000000000000..06154cd25e3b --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListKeys.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "primaryKey": "ZiBllKWCwXXLTO13S2TaoHoK8kPFYaoyYlAcnCcE4PQ", + "secondaryKey": "cJHpmUGNaGGO8H59p6NKGhfff9VjD278-2bi5wo0_mU" + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListPrivateAtlasByAccount.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListPrivateAtlasByAccount.json new file mode 100644 index 000000000000..1b678fa217a4 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/ListPrivateAtlasByAccount.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount/privateAtlases/myPrivateAtlas", + "name": "myPrivateAtlas", + "type": "Microsoft.Maps/accounts/privateAtlases", + "location": "unitedstates", + "tags": { + "test": "true" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/RegenerateKey.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/RegenerateKey.json new file mode 100644 index 000000000000..d49a57b6e44c --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/RegenerateKey.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "keySpecification": { + "keyType": "primary" + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "primaryKey": "uj0yqjjz8zG3IOSWvb_smi1q1QenGtupAqrOA1zCO6s", + "secondaryKey": "cJHpmUGNaGGO8H59p6NKGhfff9VjD278-2bi5wo0_mU" + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdateAccount.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdateAccount.json new file mode 100644 index 000000000000..cb2efc8fd0c1 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdateAccount.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "MapsAccountUpdateParameters": { + "tags": { + "specialTag": "true" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount", + "name": "myMapsAccount", + "type": "Microsoft.Maps/accounts", + "location": "global", + "tags": { + "specialTag": "true" + }, + "sku": { + "name": "S0", + "tier": "Standard" + }, + "properties": { + "x-ms-client-id": "string" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdatePrivateAtlas.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdatePrivateAtlas.json new file mode 100644 index 000000000000..7801c16868d7 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/examples/UpdatePrivateAtlas.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2020-02-01-preview", + "subscriptionId": "21a9967a-e8a9-4656-a70b-96ff1c4d05a0", + "resourceGroupName": "myResourceGroup", + "accountName": "myMapsAccount", + "privateAtlasName": "myPrivateAtlas", + "PrivateAtlasUpdateParameters": { + "tags": { + "specialTag": "true" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/21a9967a-e8a9-4656-a70b-96ff1c4d05a0/resourceGroups/myResourceGroup/providers/Microsoft.Maps/accounts/myMapsAccount/privateAtlas/myPrivateAtlas", + "name": "myPrivateAtlas", + "type": "Microsoft.Maps/accounts/privateAtlas", + "location": "unitedstates", + "tags": { + "specialTag": "true" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/maps-management.json b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/maps-management.json new file mode 100644 index 000000000000..65917ee7ddd9 --- /dev/null +++ b/specification/maps/resource-manager/Microsoft.Maps/preview/2020-02-01-preview/maps-management.json @@ -0,0 +1,972 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Resource Provider", + "description": "Resource Provider", + "version": "2020-02-01-preview", + "x-ms-code-generation-settings": { + "name": "MapsManagementClient" + } + }, + "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.Maps/accounts/{accountName}": { + "put": { + "tags": [ + "Accounts" + ], + "description": "Create or update a Maps Account. A Maps Account holds the keys which allow access to the Maps REST APIs.", + "operationId": "Accounts_CreateOrUpdate", + "x-ms-examples": { + "CreateAccount": { + "$ref": "./examples/CreateAccount.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/AccountNameParameter" + }, + { + "name": "MapsAccountCreateParameters", + "in": "body", + "description": "The new or updated parameters for the Maps Account.", + "required": true, + "schema": { + "$ref": "#/definitions/MapsAccountCreateParameters" + } + } + ], + "responses": { + "200": { + "description": "The Account was successfully updated.", + "schema": { + "$ref": "#/definitions/MapsAccount" + } + }, + "201": { + "description": "The Account was successfully created.", + "schema": { + "$ref": "#/definitions/MapsAccount" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Accounts" + ], + "description": "Updates a Maps Account. Only a subset of the parameters may be updated after creation, such as Sku and Tags.", + "operationId": "Accounts_Update", + "x-ms-examples": { + "UpdateAccount": { + "$ref": "./examples/UpdateAccount.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/AccountNameParameter" + }, + { + "name": "MapsAccountUpdateParameters", + "in": "body", + "description": "The updated parameters for the Maps Account.", + "required": true, + "schema": { + "$ref": "#/definitions/MapsAccountUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "The Account was successfully updated.", + "schema": { + "$ref": "#/definitions/MapsAccount" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Accounts" + ], + "description": "Delete a Maps Account.", + "operationId": "Accounts_Delete", + "x-ms-examples": { + "DeleteAccount": { + "$ref": "./examples/DeleteAccount.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/AccountNameParameter" + } + ], + "responses": { + "200": { + "description": "The Account was deleted successfully." + }, + "204": { + "description": "The specified Account was not found. Nothing was deleted." + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "Accounts" + ], + "description": "Get a Maps Account.", + "operationId": "Accounts_Get", + "x-ms-examples": { + "GetAccount": { + "$ref": "./examples/GetAccount.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/AccountNameParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsAccount" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts": { + "get": { + "tags": [ + "Accounts" + ], + "description": "Get all Maps Accounts in a Resource Group", + "operationId": "Accounts_ListByResourceGroup", + "x-ms-examples": { + "ListAccountsByResourceGroup": { + "$ref": "./examples/ListAccountsByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": null, + "itemName": "value" + }, + "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": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsAccounts" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Maps/accounts": { + "get": { + "tags": [ + "Accounts" + ], + "description": "Get all Maps Accounts in a Subscription", + "operationId": "Accounts_ListBySubscription", + "x-ms-examples": { + "ListAccountsBySubscription": { + "$ref": "./examples/ListAccountsBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": null, + "itemName": "value" + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsAccounts" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}/listKeys": { + "post": { + "tags": [ + "Accounts" + ], + "description": "Get the keys to use with the Maps APIs. A key is used to authenticate and authorize access to the Maps REST APIs. Only one key is needed at a time; two are given to provide seamless key regeneration.", + "operationId": "Accounts_ListKeys", + "x-ms-examples": { + "ListKeys": { + "$ref": "./examples/ListKeys.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/AccountNameParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsAccountKeys" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}/regenerateKey": { + "post": { + "tags": [ + "Accounts" + ], + "description": "Regenerate either the primary or secondary key for use with the Maps APIs. The old key will stop working immediately.", + "operationId": "Accounts_RegenerateKeys", + "x-ms-examples": { + "RegenerateKey": { + "$ref": "./examples/RegenerateKey.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/AccountNameParameter" + }, + { + "name": "keySpecification", + "in": "body", + "required": true, + "description": "Which key to regenerate: primary or secondary.", + "schema": { + "$ref": "#/definitions/MapsKeySpecification" + } + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsAccountKeys" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Maps/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "List operations available for the Maps Resource Provider", + "operationId": "Maps_ListOperations", + "x-ms-examples": { + "GetOperations": { + "$ref": "./examples/GetOperations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": null, + "itemName": "value" + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/MapsOperations" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}/privateAtlases/{privateAtlasName}": { + "put": { + "tags": [ + "Private Atlases" + ], + "description": "Create or update a Private Atlas resource. Private Atlas resource will enable the usage of Azure resources to build a custom set of mapping data. It requires an account to exist before it can be created.", + "operationId": "PrivateAtlases_CreateOrUpdate", + "x-ms-examples": { + "CreateAccount": { + "$ref": "./examples/CreatePrivateAtlas.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/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateAtlasNameParameter" + }, + { + "name": "PrivateAtlasCreateParameters", + "in": "body", + "description": "The new or updated parameters for the Private Atlas resource.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateAtlasCreateParameters" + } + } + ], + "responses": { + "200": { + "description": "The Private Atlas was successfully updated.", + "schema": { + "$ref": "#/definitions/PrivateAtlas" + } + }, + "201": { + "description": "The Private Atlas was successfully created.", + "schema": { + "$ref": "#/definitions/PrivateAtlas" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Private Atlases" + ], + "description": "Updates the Private Atlas resource. Only a subset of the parameters may be updated after creation, such as Tags.", + "operationId": "PrivateAtlases_Update", + "x-ms-examples": { + "UpdateAccount": { + "$ref": "./examples/UpdatePrivateAtlas.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/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateAtlasNameParameter" + }, + { + "name": "PrivateAtlasUpdateParameters", + "in": "body", + "description": "The updated parameters for the Private Atlas.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateAtlasUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "The Private Atlas was successfully updated.", + "schema": { + "$ref": "#/definitions/PrivateAtlas" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Private Atlases" + ], + "description": "Delete a Private Atlas resource.", + "operationId": "PrivateAtlases_Delete", + "x-ms-examples": { + "DeletePrivateAtlas": { + "$ref": "./examples/DeletePrivateAtlas.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/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateAtlasNameParameter" + } + ], + "responses": { + "200": { + "description": "The Private Atlas was deleted successfully." + }, + "204": { + "description": "The specified Private Atlas was not found. Nothing was deleted." + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "Private Atlases" + ], + "description": "Get a Private Atlas resource.", + "operationId": "PrivateAtlases_Get", + "x-ms-examples": { + "GetPrivateAtlas": { + "$ref": "./examples/GetPrivateAtlas.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/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateAtlasNameParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/PrivateAtlas" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}/privateAtlases": { + "get": { + "tags": [ + "Private Atlases" + ], + "description": "Get all Private Atlas instances for an Azure Map Account", + "operationId": "PrivateAtlases_ListByAccount", + "x-ms-examples": { + "ListPrivateAtlasByAccount": { + "$ref": "./examples/ListPrivateAtlasByAccount.json" + } + }, + "x-ms-pageable": { + "nextLinkName": null, + "itemName": "value" + }, + "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/AccountNameParameter" + } + ], + "responses": { + "200": { + "description": "The request was successful.", + "schema": { + "$ref": "#/definitions/PrivateAtlasList" + } + }, + "default": { + "description": "An unexpected error occurred.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "parameters": { + "AccountNameParameter": { + "name": "accountName", + "in": "path", + "description": "The name of the Maps Account.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PrivateAtlasNameParameter": { + "name": "privateAtlasName", + "in": "path", + "description": "The name of the Private Atlas instance.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "PrivateAtlas": { + "description": "An Azure resource which represents which will provision the ability to create private location data.", + "type": "object", + "properties": { + "properties": { + "description": "The Private Atlas resource properties.", + "$ref": "#/definitions/PrivateAtlasProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource" + } + ] + }, + "MapsAccount": { + "description": "An Azure resource which represents access to a suite of Maps REST APIs.", + "type": "object", + "properties": { + "sku": { + "readOnly": true, + "description": "The SKU of this account.", + "$ref": "#/definitions/Sku" + }, + "properties": { + "readOnly": true, + "description": "The map account properties.", + "$ref": "#/definitions/MapsAccountProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource" + } + ] + }, + "MapsAccountCreateParameters": { + "description": "Parameters used to create a new Maps Account.", + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + }, + "sku": { + "description": "The SKU of this account.", + "$ref": "#/definitions/Sku" + } + }, + "required": [ + "location", + "sku" + ] + }, + "PrivateAtlasCreateParameters": { + "description": "Parameters used to create a new Private Atlas resource.", + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + } + }, + "required": [ + "location" + ] + }, + "MapsAccountUpdateParameters": { + "description": "Parameters used to update an existing Maps Account.", + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + }, + "sku": { + "description": "The SKU of this account.", + "$ref": "#/definitions/Sku" + } + } + }, + "PrivateAtlasUpdateParameters": { + "description": "Parameters used to update an existing Private Atlas resource.", + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + } + } + }, + "MapsAccounts": { + "description": "A list of Maps Accounts.", + "type": "object", + "properties": { + "value": { + "description": "a Maps Account.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/MapsAccount" + } + } + } + }, + "PrivateAtlasList": { + "description": "A list of Private Atlas resources.", + "type": "object", + "properties": { + "value": { + "description": "a Private Atlas.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/PrivateAtlas" + } + } + } + }, + "Sku": { + "description": "The SKU of the Maps Account.", + "properties": { + "name": { + "description": "The name of the SKU, in standard format (such as S0).", + "type": "string" + }, + "tier": { + "readOnly": true, + "type": "string", + "description": "Gets the sku tier. This is based on the SKU name." + } + }, + "required": [ + "name" + ] + }, + "MapsKeySpecification": { + "description": "Whether the operation refers to the primary or secondary key.", + "type": "object", + "required": [ + "keyType" + ], + "properties": { + "keyType": { + "type": "string", + "enum": [ + "primary", + "secondary" + ], + "x-ms-enum": { + "name": "KeyType", + "modelAsString": true + }, + "description": "Whether the operation refers to the primary or secondary key." + } + } + }, + "MapsAccountKeys": { + "description": "The set of keys which can be used to access the Maps REST APIs. Two keys are provided for key rotation without interruption.", + "type": "object", + "properties": { + "id": { + "type": "string", + "readOnly": true, + "description": "The full Azure resource identifier of the Maps Account." + }, + "primaryKey": { + "type": "string", + "readOnly": true, + "description": "The primary key for accessing the Maps REST APIs." + }, + "secondaryKey": { + "type": "string", + "readOnly": true, + "description": "The secondary key for accessing the Maps REST APIs." + } + } + }, + "MapsOperations": { + "description": "The set of operations available for Maps.", + "type": "object", + "properties": { + "value": { + "description": "An operation available for Maps.", + "type": "array", + "readOnly": true, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "Operation name: {provider}/{resource}/{operation}." + }, + "display": { + "description": "The human-readable description of the operation.", + "type": "object", + "properties": { + "provider": { + "type": "string", + "readOnly": true, + "description": "Service provider: Microsoft Maps." + }, + "resource": { + "type": "string", + "readOnly": true, + "description": "Resource on which the operation is performed." + }, + "operation": { + "type": "string", + "readOnly": true, + "description": "The action that users can perform, based on their permission level." + }, + "description": { + "type": "string", + "readOnly": true, + "description": "The description of the operation." + } + } + }, + "origin": { + "type": "string", + "readOnly": true, + "description": "The origin of the operation." + } + } + } + } + } + }, + "MapsAccountProperties": { + "description": "Additional Map account properties", + "properties": { + "x-ms-client-id": { + "description": "A unique identifier for the maps account", + "type": "string" + } + } + }, + "PrivateAtlasProperties": { + "description": "Private Atlas resource properties", + "properties": { + "provisioningState": { + "description": "The state of the resource provisioning, terminal states: Succeeded, Failed, Canceled", + "type": "string" + } + } + } + } +} diff --git a/specification/maps/resource-manager/readme.go.md b/specification/maps/resource-manager/readme.go.md index 4920d9c3b794..620bc68e8b4c 100644 --- a/specification/maps/resource-manager/readme.go.md +++ b/specification/maps/resource-manager/readme.go.md @@ -15,6 +15,16 @@ go: batch: - tag: package-2018-05 - tag: package-2017-01 + - tag: package-preview-2020-02 +``` + +### Tag: package-preview-2020-02 and go + +These settings apply only when `--tag=package-preview-2020-02 --go` is specified on the command line. +Please also specify `--go-sdk-folder=`. + +``` yaml $(tag)=='package-preview-2020-02' && $(go) +output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-02-01-preview/$(namespace) ``` ### Tag: package-2018-05 and go diff --git a/specification/maps/resource-manager/readme.md b/specification/maps/resource-manager/readme.md index 6afc578c4420..1c567df21127 100644 --- a/specification/maps/resource-manager/readme.md +++ b/specification/maps/resource-manager/readme.md @@ -5,7 +5,9 @@ This is the AutoRest configuration file for Maps. --- + ## Getting Started + To build the SDK for Maps, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` @@ -13,20 +15,28 @@ To build the SDK for Maps, simply [Install AutoRest](https://aka.ms/autorest/ins To see additional help and options, run: > `autorest --help` + --- ## Configuration - - ### Basic Information + These are the global settings for the Maps API. ``` yaml openapi-type: arm -tag: package-2018-05 +tag: package-preview-2020-02 ``` +### Tag: package-preview-2020-02 + +These settings apply only when `--tag=package-preview-2020-02` is specified on the command line. + +```yaml $(tag) == 'package-preview-2020-02' +input-file: + - Microsoft.Maps/preview/2020-02-01-preview/maps-management.json +``` ### Tag: package-2017-01 @@ -47,8 +57,8 @@ input-file: ``` --- -# Code Generation +# Code Generation ## Swagger to SDK @@ -64,7 +74,6 @@ swagger-to-sdk: - repo: azure-sdk-for-node ``` - ## C# These settings apply only when `--csharp` is specified on the command line. @@ -107,6 +116,20 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-maps batch: - tag: package-2017-01 - tag: package-2018-05 + - tag: package-2020-02 +``` + +### Tag: package-2020-02 and java + +These settings apply only when `--tag=package-2020-02 --java` is specified on the command line. +Please also specify `--azure-libraries-for-java=`. + +``` yaml $(tag) == 'package-2020-02' && $(java) && $(multiapi) +java: + namespace: com.microsoft.azure.management.maps.v2020_02_01_preview + output-folder: $(azure-libraries-for-java-folder)/sdk/maps/mgmt-v2020_02_01_preview +regenerate-manager: true +generate-interface: true ``` ### Tag: package-2017-01 and java @@ -135,9 +158,51 @@ regenerate-manager: true generate-interface: true ``` +## Suppression +``` yaml +directive: + - suppress: R2017 # PutRequestResponseScheme + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}/privateAtlases/{privateAtlasName}"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maps/accounts/{accountName}"].put + from: maps-management.json + reason: + - Common type models are inherited. + - ClientId property will be ignored by requests + - suppress: R2001 # AvoidNestedProperties + where: + - $.definitions.PrivateAtlas.properties.properties + - $.definitions.MapsAccount.properties.properties + from: maps-management.json + reason: + - Flattening does not work well with polymorphic models. + - PrivateAtlas.properties is an arbitrary dictionary and cannot be flattened. + - MapsAccount.properties is an arbitrary dictionary and cannot be flattened. + - suppress: R3010 # TrackedResourceListByImmediateParent + where: + - $.definitions + reason: + - Pipeline runs are not listable. The operation PrivateAtlases_ListByAccount serves this purpose. + - suppress: R3027 # TrackedResourceListByResourceGroup + where: + - $.definitions.PrivateAtlas + reason: + - This is a nested tracked resource. + - suppress: R3028 # TrackedResourceListBySubscription + where: + - $.definitions.PrivateAtlas + reason: + - This is a nested tracked resource. + - suppress: R4000 # DescriptionAndTitleMissing + where: + - $.definitions.Resource + from: types.json + reason: + - Common type models are inherited. +``` -## 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. @@ -149,16 +214,16 @@ require: $(this-folder)/../../../profiles/readme.md # all the input files across all versions input-file: + - $(this-folder)/Microsoft.Maps/preview/2020-02-01-preview/maps-management.json - $(this-folder)/Microsoft.Maps/stable/2017-01-01-preview/maps-management.json - $(this-folder)/Microsoft.Maps/stable/2018-05-01/maps-management.json ``` -If there are files that should not be in the `all-api-versions` set, +If there are files that should not be in the `all-api-versions` set, uncomment the `exclude-file` section below and add the file paths. ``` yaml $(tag) == 'all-api-versions' #exclude-file: # - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json ``` - diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionDelete.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionDelete.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionDelete.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionDelete.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionGet.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionGet.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionGet.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionGet.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionList.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionList.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionList.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionList.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionUpdate.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionUpdate.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionUpdate.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateEndpointConnectionUpdate.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceDelete.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceDelete.json new file mode 100644 index 000000000000..922b74207dc4 --- /dev/null +++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-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": "2019-10-17-preview" + }, + "responses": { + "200": {}, + "202": {}, + "204": {} + } +} diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceGet.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceGet.json new file mode 100644 index 000000000000..4b9a64c2022f --- /dev/null +++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-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": "2019-10-17-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/privateLinkScopes/MyPrivateLinkScope/scopedResources/scoped-resource-name", + "name": "scoped-resource-name", + "type": "Microsoft.Insights/privateLinkScopes/scopedResources", + "properties": { + "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/components/my-component", + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceList.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceList.json new file mode 100644 index 000000000000..db06a00da477 --- /dev/null +++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceList.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "MyResourceGroup", + "scopeName": "MyPrivateLinkScope", + "api-version": "2019-10-17-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/privateLinkScopes/MyPrivateLinkScope/scopedResources/scoped-resource-name", + "name": "scoped-resource-name", + "type": "Microsoft.Insights/privateLinkScopes/scopedResources", + "properties": { + "linkedResourceId": "/subscriptions/00000000-0000-2222-3333-444444444444/resourceGroups/MyComponentResourceGroup/providers/Microsoft.Insights/components/my-component", + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/privateLinkScopes/MyPrivateLinkScope/scopedResources/other-scoped-resource-name", + "name": "other-scoped-resource-name", + "type": "Microsoft.Insights/privateLinkScopes/scopedResources", + "properties": { + "linkedResourceId": "/subscriptions/00000000-3333-2222-5555-444444444444/resourceGroups/MyWorkspaceResourceGroup/providers/Microsoft.OperationalInsights/workspaces/my-workspace", + "provisioningState": "Provisioning" + } + } + ] + } + } + } +} diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceUpdate.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceUpdate.json new file mode 100644 index 000000000000..9f56226b2f3e --- /dev/null +++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopedResourceUpdate.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "MyResourceGroup", + "scopeName": "MyPrivateLinkScope", + "name": "scoped-resource-name", + "api-version": "2019-10-17-preview", + "parameters": { + "properties": { + "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/components/my-component" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/privateLinkScopes/MyPrivateLinkScope/scopedResources/scoped-resource-name", + "name": "scoped-resource-name", + "type": "Microsoft.Insights/privateLinkScopes/scopedResources", + "properties": { + "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/Microsoft.Insights/components/my-component", + "provisioningState": "Succeeded" + } + } + }, + "202": {} + } +} diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesCreate.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesCreate.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesCreate.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesCreate.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesDelete.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesDelete.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesDelete.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesDelete.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesGet.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesGet.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesGet.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesGet.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesList.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesList.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesList.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesList.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesListByResourceGroup.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesListByResourceGroup.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesListByResourceGroup.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesListByResourceGroup.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdate.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdate.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdate.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdate.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdateTagsOnly.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdateTagsOnly.json similarity index 100% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdateTagsOnly.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/examples/PrivateLinkScopesUpdateTagsOnly.json diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json similarity index 77% rename from specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json rename to specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json index c963da01a02a..33d529b29cce 100644 --- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json +++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json @@ -565,6 +565,202 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/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": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scopeName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the Azure Monitor PrivateLinkScope that will contain the datasource" + }, + { + "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" + } + } + }, + "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": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scopeName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the Azure Monitor PrivateLinkScope that will contain the datasource" + }, + { + "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 scoped azure monitor resource in a private link scope.", + "schema": { + "$ref": "#/definitions/ScopedResource" + } + }, + "202": { + "description": "Accepted" + } + }, + "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": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scopeName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the Azure Monitor PrivateLinkScope that will contain the datasource" + }, + { + "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." + } + }, + "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.Insights/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": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scopeName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the Azure Monitor PrivateLinkScope that will contain the datasource" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved scoped resources in a private link scope.", + "schema": { + "$ref": "#/definitions/ScopedResourceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Gets list of scoped resources in a private link scope.": { + "$ref": "./examples/PrivateLinkScopedResourceList.json" + } + } + } } }, "definitions": { @@ -820,6 +1016,57 @@ } } }, + "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", + "x-ms-azure-resource": true, + "type": "object", + "allOf": [ + { + "$ref": "#/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 + } + } + }, "ProxyResource": { "properties": { "id": { diff --git a/specification/monitor/resource-manager/readme.md b/specification/monitor/resource-manager/readme.md index 041e6b5ddf9b..0d99f1806e8d 100644 --- a/specification/monitor/resource-manager/readme.md +++ b/specification/monitor/resource-manager/readme.md @@ -60,6 +60,7 @@ input-file: - Microsoft.Insights/stable/2018-04-16/scheduledQueryRule_API.json - Microsoft.Insights/preview/2017-12-01-preview/metricNamespaces_API.json - Microsoft.Insights/preview/2018-11-27-preview/vmInsightsOnboarding_API.json +- Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json ``` @@ -585,6 +586,7 @@ input-file: - $(this-folder)/Microsoft.Insights/stable/2018-04-16/scheduledQueryRule_API.json - $(this-folder)/Microsoft.Insights/preview/2017-12-01-preview/metricNamespaces_API.json - $(this-folder)/Microsoft.Insights/preview/2018-11-27-preview/vmInsightsOnboarding_API.json + - $(this-folder)/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json - $(this-folder)/Microsoft.Insights/stable/2019-03-01/actionGroups_API.json - $(this-folder)/Microsoft.Insights/stable/2018-09-01/actionGroups_API.json - $(this-folder)/Microsoft.Insights/stable/2018-03-01/actionGroups_API.json diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2019-09-01-preview/peering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2019-09-01-preview/peering.json index 1a59248b71e2..8fed12ee7d5c 100644 --- a/specification/peering/resource-manager/Microsoft.Peering/preview/2019-09-01-preview/peering.json +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2019-09-01-preview/peering.json @@ -714,7 +714,7 @@ "tags": [ "PeeringServiceLocations" ], - "description": "Lists all of the available peering service locations for the specified kind of peering.", + "description": "Lists all of the available locations for peering service.", "operationId": "PeeringServiceLocations_List", "parameters": [ { @@ -1433,8 +1433,8 @@ "enum": [ "Basic_Exchange_Free", "Basic_Direct_Free", - "Premium_Direct_Free", "Premium_Exchange_Metered", + "Premium_Direct_Free", "Premium_Direct_Metered", "Premium_Direct_Unlimited" ], @@ -2160,7 +2160,7 @@ } }, "PeeringServiceLocation": { - "description": "PeeringService location", + "description": "The peering service location.", "type": "object", "allOf": [ { diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CheckServiceProviderAvailability.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CheckServiceProviderAvailability.json new file mode 100644 index 000000000000..e4540d1dc368 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CheckServiceProviderAvailability.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview", + "checkServiceProviderAvailabilityInput": { + "peeringServiceLocation": "peeringServiceLocation1", + "peeringServiceProvider": "peeringServiceProvider1" + } + }, + "responses": { + "200": { + "body": "Available" + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateDirectPeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateDirectPeering.json new file mode 100644 index 000000000000..3b1aee136fbb --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateDirectPeering.json @@ -0,0 +1,169 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "peering": { + "sku": { + "name": "Basic_Direct_Free" + }, + "kind": "Direct", + "properties": { + "direct": { + "connections": [ + { + "bandwidthInMbps": 10000, + "sessionAddressProvider": "Peer", + "useForPeeringService": false, + "peeringDBFacilityId": 99999, + "bgpSession": { + "sessionPrefixV4": "192.168.0.0/31", + "sessionPrefixV6": "fd00::0/127", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "5F4CB5C7-6B43-4444-9338-9ABC72606C16" + }, + { + "bandwidthInMbps": 10000, + "sessionAddressProvider": "Microsoft", + "useForPeeringService": true, + "peeringDBFacilityId": 99999, + "connectionIdentifier": "8AB00818-D533-4504-A25A-03A17F61201C" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + }, + "directPeeringType": "Edge" + }, + "peeringLocation": "peeringLocation0" + }, + "location": "eastus" + } + }, + "responses": { + "200": { + "body": { + "sku": { + "name": "Basic_Direct_Free", + "tier": "Basic", + "family": "Direct", + "size": "Free" + }, + "kind": "Direct", + "properties": { + "direct": { + "connections": [ + { + "bandwidthInMbps": 10000, + "provisionedBandwidthInMbps": 10000, + "sessionAddressProvider": "Peer", + "useForPeeringService": false, + "peeringDBFacilityId": 99999, + "connectionState": "ProvisioningFailed", + "bgpSession": { + "sessionPrefixV4": "192.168.0.0/31", + "sessionPrefixV6": "fd00::0/127", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "5F4CB5C7-6B43-4444-9338-9ABC72606C16", + "errorMessage": "IPv4 address is already configured with a different ASN" + }, + { + "bandwidthInMbps": 10000, + "provisionedBandwidthInMbps": 10000, + "sessionAddressProvider": "Microsoft", + "useForPeeringService": true, + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "sessionPrefixV4": "192.168.1.0/31", + "sessionPrefixV6": "fd00::2/127", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "8AB00818-D533-4504-A25A-03A17F61201C" + } + ], + "useForPeeringService": true, + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + }, + "directPeeringType": "Edge" + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + }, + "201": { + "body": { + "sku": { + "name": "Basic_Direct_Free", + "tier": "Basic", + "family": "Direct", + "size": "Free" + }, + "kind": "Direct", + "properties": { + "direct": { + "connections": [ + { + "bandwidthInMbps": 10000, + "provisionedBandwidthInMbps": 0, + "sessionAddressProvider": "Peer", + "useForPeeringService": false, + "peeringDBFacilityId": 99999, + "connectionState": "PendingApproval", + "bgpSession": { + "sessionPrefixV4": "192.168.0.0/31", + "sessionPrefixV6": "fd00::0/127", + "sessionStateV4": "PendingAdd", + "sessionStateV6": "PendingAdd", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "5F4CB5C7-6B43-4444-9338-9ABC72606C16" + }, + { + "bandwidthInMbps": 10000, + "provisionedBandwidthInMbps": 0, + "sessionAddressProvider": "Microsoft", + "useForPeeringService": true, + "peeringDBFacilityId": 99999, + "connectionState": "PendingApproval", + "connectionIdentifier": "8AB00818-D533-4504-A25A-03A17F61201C" + } + ], + "useForPeeringService": true, + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + }, + "directPeeringType": "Edge" + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateExchangePeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateExchangePeering.json new file mode 100644 index 000000000000..02bd2a07c9ce --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateExchangePeering.json @@ -0,0 +1,166 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "peering": { + "sku": { + "name": "Basic_Exchange_Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "bgpSession": { + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "bgpSession": { + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0" + }, + "location": "eastus" + } + }, + "responses": { + "200": { + "body": { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "ProvisioningFailed", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D", + "errorMessage": "IPv4 address is already configured with a different ASN" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + }, + "201": { + "body": { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "PendingApproval", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "PendingAdd", + "sessionStateV6": "PendingAdd", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "PendingApproval", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "PendingAdd", + "sessionStateV6": "PendingAdd", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeerAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeerAsn.json new file mode 100644 index 000000000000..700c41f6e776 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeerAsn.json @@ -0,0 +1,90 @@ +{ + "parameters": { + "subscriptionId": "subId", + "peerAsnName": "peerAsnName", + "api-version": "2020-01-01-preview", + "peerAsn": { + "properties": { + "peerAsn": 65000, + "peerContactDetail": [ + { + "role": "Noc", + "email": "noc@contoso.com", + "phone": "+1 (234) 567-8999" + }, + { + "role": "Policy", + "email": "abc@contoso.com", + "phone": "+1 (234) 567-8900" + }, + { + "role": "Technical", + "email": "xyz@contoso.com", + "phone": "+1 (234) 567-8900" + } + ], + "peerName": "Contoso" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "peerAsn": 65000, + "peerContactDetail": [ + { + "role": "Noc", + "email": "noc@contoso.com", + "phone": "+1 (234) 567-8999" + }, + { + "role": "Policy", + "email": "abc@contoso.com", + "phone": "+1 (234) 567-8900" + }, + { + "role": "Technical", + "email": "xyz@contoso.com", + "phone": "+1 (234) 567-8900" + } + ], + "peerName": "Contoso", + "validationState": "Pending" + }, + "name": "peerAsnName", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/peerAsnName", + "type": "Microsoft.Peering/peerAsns" + } + }, + "201": { + "body": { + "properties": { + "peerAsn": 65000, + "peerContactDetail": [ + { + "role": "Noc", + "email": "noc@contoso.com", + "phone": "+1 (234) 567-8999" + }, + { + "role": "Policy", + "email": "abc@contoso.com", + "phone": "+1 (234) 567-8900" + }, + { + "role": "Technical", + "email": "xyz@contoso.com", + "phone": "+1 (234) 567-8900" + } + ], + "peerName": "Contoso", + "validationState": "Pending" + }, + "name": "peerAsnName", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/peerAsnName", + "type": "Microsoft.Peering/peerAsns" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringService.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringService.json new file mode 100644 index 000000000000..d0fc08e950a0 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringService.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "api-version": "2020-01-01-preview", + "peeringService": { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1" + }, + "location": "eastus" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + }, + "201": { + "body": { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringServicePrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringServicePrefix.json new file mode 100644 index 000000000000..83c542b891e5 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreatePeeringServicePrefix.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "prefixName": "peeringServicePrefixName", + "api-version": "2020-01-01-preview", + "peeringServicePrefix": { + "properties": { + "prefix": "192.168.1.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "prefix": "192.168.1.0/24", + "prefixValidationState": "Failed", + "learnedType": "None", + "errorMessage": "Prefix is not announced by the service provider to Microsoft.", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "peeringServicePrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName/prefixes/peeringServicePrefixName" + } + }, + "201": { + "body": { + "properties": { + "prefix": "192.168.1.0/24", + "prefixValidationState": "Failed", + "learnedType": "None", + "errorMessage": "Prefix is not announced by the service provider to Microsoft.", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "peeringServicePrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName/prefixes/peeringServicePrefixName" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredAsn.json new file mode 100644 index 000000000000..c42c482de5b3 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredAsn.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredAsn": { + "properties": { + "asn": 65000 + } + }, + "registeredAsnName": "registeredAsnName" + }, + "responses": { + "200": { + "body": { + "properties": { + "asn": 65000, + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredAsnName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName", + "type": "Microsoft.Peering/registeredAsns" + } + }, + "201": { + "body": { + "properties": { + "asn": 65000, + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredAsnName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName", + "type": "Microsoft.Peering/registeredAsns" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredPrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredPrefix.json new file mode 100644 index 000000000000..9efc12f8c927 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/CreateRegisteredPrefix.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredPrefix": { + "properties": { + "prefix": "10.22.20.0/24" + } + }, + "registeredPrefixName": "registeredPrefixName" + }, + "responses": { + "200": { + "body": { + "properties": { + "prefix": "10.22.20.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName", + "type": "Microsoft.Peering/registeredPrefixes" + } + }, + "201": { + "body": { + "properties": { + "prefix": "10.22.20.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName", + "type": "Microsoft.Peering/registeredPrefixes" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeerAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeerAsn.json new file mode 100644 index 000000000000..be68ae2aad59 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeerAsn.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "subscriptionId": "subId", + "peerAsnName": "peerAsnName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeering.json new file mode 100644 index 000000000000..813379781800 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeering.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringService.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringService.json new file mode 100644 index 000000000000..f99adf7432ec --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringService.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringServicePrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringServicePrefix.json new file mode 100644 index 000000000000..57d3dc1387d5 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeletePeeringServicePrefix.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "prefixName": "peeringServicePrefixName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredAsn.json new file mode 100644 index 000000000000..b2f7982bfffd --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredAsn.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredAsnName": "registeredAsnName" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredPrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredPrefix.json new file mode 100644 index 000000000000..3c13806010c1 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/DeleteRegisteredPrefix.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredPrefixName": "registeredPrefixName" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeerAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeerAsn.json new file mode 100644 index 000000000000..5d1e318af183 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeerAsn.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "subscriptionId": "subId", + "peerAsnName": "peerAsnName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "peerAsn": 65000, + "peerContactDetail": [ + { + "role": "Noc", + "email": "noc@contoso.com", + "phone": "+1 (234) 567-8999" + }, + { + "role": "Policy", + "email": "abc@contoso.com", + "phone": "+1 (234) 567-8900" + }, + { + "role": "Technical", + "email": "xyz@contoso.com", + "phone": "+1 (234) 567-8900" + } + ], + "peerName": "Contoso", + "validationState": "Approved" + }, + "name": "peerAsnName", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/peerAsnName", + "type": "Microsoft.Peering/peerAsns" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeering.json new file mode 100644 index 000000000000..786d2b0205ac --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeering.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringService.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringService.json new file mode 100644 index 000000000000..819b5d6427ee --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringService.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringServicePrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringServicePrefix.json new file mode 100644 index 000000000000..fca53c8f0775 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetPeeringServicePrefix.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "prefixName": "peeringServicePrefixName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "prefix": "192.168.1.0/24", + "prefixValidationState": "Verified", + "learnedType": "ViaServiceProvider", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "peeringServicePrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName/prefixes/peeringServicePrefixName" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredAsn.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredAsn.json new file mode 100644 index 000000000000..175c642872e9 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredAsn.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredAsnName": "registeredAsnName0" + }, + "responses": { + "200": { + "body": { + "properties": { + "asn": 65000, + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredAsnName0", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName0", + "type": "Microsoft.Peering/registeredAsns" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredPrefix.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredPrefix.json new file mode 100644 index 000000000000..6873353ba0c6 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/GetRegisteredPrefix.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "registeredPrefixName": "registeredPrefixName" + }, + "responses": { + "200": { + "body": { + "properties": { + "prefix": "10.22.20.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName", + "type": "Microsoft.Peering/registeredPrefixes" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListDirectPeeringLocations.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListDirectPeeringLocations.json new file mode 100644 index 000000000000..ec9714008b04 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListDirectPeeringLocations.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "subscriptionId": "subId", + "kind": "Direct", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "kind": "Direct", + "properties": { + "direct": { + "peeringFacilities": [ + { + "address": "address1", + "directPeeringType": "Edge", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/fac/99999" + }, + { + "address": "address3", + "directPeeringType": "Cdn", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/fac/99999" + } + ], + "bandwidthOffers": [ + { + "offerName": "10Gbps", + "valueInMbps": 10000 + }, + { + "offerName": "100Gbps", + "valueInMbps": 100000 + } + ] + }, + "peeringLocation": "peeringLocation1", + "country": "country1" + }, + "name": "peeringLocation1", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringLocations/peeringLocation1", + "type": "Microsoft.Peering/peeringLocations" + }, + { + "kind": "Direct", + "properties": { + "direct": { + "peeringFacilities": [ + { + "address": "address2", + "directPeeringType": "Edge", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/fac/99999" + } + ], + "bandwidthOffers": [ + { + "offerName": "10Gbps", + "valueInMbps": 10000 + }, + { + "offerName": "100Gbps", + "valueInMbps": 100000 + } + ] + }, + "peeringLocation": "peeringLocation2", + "country": "country2" + }, + "name": "peeringLocation2", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringLocations/peeringLocation2", + "type": "Microsoft.Peering/peeringLocations" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListExchangePeeringLocations.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListExchangePeeringLocations.json new file mode 100644 index 000000000000..6ec5d00a0aae --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListExchangePeeringLocations.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "subscriptionId": "subId", + "kind": "Exchange", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "kind": "Exchange", + "properties": { + "exchange": { + "peeringFacilities": [ + { + "exchangeName": "name1", + "bandwidthInMbps": 10000, + "microsoftIPv4Address": "192.168.131.1", + "microsoftIPv6Address": "fd00::1:1", + "facilityIPv4Prefix": "192.168.128.0/17", + "facilityIPv6Prefix": "fd00::1000:0/98", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/ix/99999" + }, + { + "exchangeName": "name3", + "bandwidthInMbps": 10000, + "microsoftIPv4Address": "192.168.2.2", + "microsoftIPv6Address": "fd00::2", + "facilityIPv4Prefix": "192.168.0.0/17", + "facilityIPv6Prefix": "fd00::0/98", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/ix/99999" + } + ] + }, + "peeringLocation": "peeringLocation1", + "country": "country1" + }, + "name": "peeringLocation1", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringLocations/peeringLocation1", + "type": "Microsoft.Peering/peeringLocations" + }, + { + "kind": "Exchange", + "properties": { + "exchange": { + "peeringFacilities": [ + { + "exchangeName": "name2", + "bandwidthInMbps": 10000, + "microsoftIPv4Address": "192.168.2.1", + "microsoftIPv6Address": "fd00::2", + "facilityIPv4Prefix": "192.168.0.0/16", + "facilityIPv6Prefix": "fd00::0/98", + "peeringDBFacilityId": 99999, + "peeringDBFacilityLink": "https://www.peeringdb.com/ix/99999" + } + ] + }, + "peeringLocation": "peeringLocation2", + "country": "country2" + }, + "name": "peeringLocation2", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringLocations/peeringLocation2", + "type": "Microsoft.Peering/peeringLocations" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListLegacyPeerings.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListLegacyPeerings.json new file mode 100644 index 000000000000..e4cce08e018b --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListLegacyPeerings.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "subscriptionId": "subId", + "kind": "Exchange", + "peeringLocation": "peeringLocation0", + "api-version": "2020-01-01-preview", + "asn": 65000 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "65000" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "centralus", + "name": "peeringName", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeerAsnsBySubscription.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeerAsnsBySubscription.json new file mode 100644 index 000000000000..068a5da2e851 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeerAsnsBySubscription.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "peerAsn": 65000, + "peerContactDetail": [ + { + "role": "Noc", + "email": "noc@contoso.com", + "phone": "+1 (234) 567-8999" + }, + { + "role": "Policy", + "email": "abc@contoso.com", + "phone": "+1 (234) 567-8900" + }, + { + "role": "Technical", + "email": "xyz@contoso.com", + "phone": "+1 (234) 567-8900" + } + ], + "peerName": "Contoso", + "validationState": "Approved" + }, + "name": "peerAsnName", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/peerAsnName", + "type": "Microsoft.Peering/peerAsns" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringOperations.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringOperations.json new file mode 100644 index 000000000000..636b1b038de2 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringOperations.json @@ -0,0 +1,183 @@ +{ + "parameters": { + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Peering/register/action", + "display": { + "provider": "Microsoft.Peering", + "resource": "Peering Resource Provider", + "operation": "Registers the Peering Resource Provider", + "description": "Registers the subscription for the Peering Resource Provider and enables the creation of peerings" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerAsns/write", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerAsns", + "operation": "Write PeerAsn", + "description": "Write any peerAsns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerAsns/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerAsns", + "operation": "Read PeerAsn", + "description": "Read any peerAsns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerAsns/delete", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerAsns", + "operation": "Delete PeerAsn", + "description": "Delete any peerAsns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringLocations/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringLocations", + "operation": "Read PeeringLocation", + "description": "Read any peeringLocations" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/legacyPeerings/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "legacyPeerings", + "operation": "Read LegacyPeering", + "description": "Read any legacyPeerings" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerings/write", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerings", + "operation": "Write Peering", + "description": "Write any peerings" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerings/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerings", + "operation": "Read Peering", + "description": "Read any peerings" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peerings/delete", + "display": { + "provider": "Microsoft.Peering", + "resource": "peerings", + "operation": "Delete Peering", + "description": "Delete any peerings" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServiceLocations/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringServiceLocations", + "operation": "Read PeeringServiceLocations", + "description": "Read any peeringServiceLocations" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServiceProviders/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringServiceProviders", + "operation": "Read PeeringServiceProviders", + "description": "Read any peeringServiceProviders" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringServices", + "operation": "Read PeeringServices", + "description": "Read any peeringServices" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/write", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringServices", + "operation": "Write PeeringService", + "description": "Write any peeringServices" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/delete", + "display": { + "provider": "Microsoft.Peering", + "resource": "peeringServices", + "operation": "Delete PeeringServices", + "description": "Delete any peeringServices" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/prefixes/read", + "display": { + "provider": "Microsoft.Peering", + "resource": "prefixes", + "operation": "Read PeeringServicePrefixes", + "description": "Read any prefixes" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/prefixes/write", + "display": { + "provider": "Microsoft.Peering", + "resource": "prefixes", + "operation": "Write PeeringServicePrefixes", + "description": "Write any prefixes" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Peering/peeringServices/prefixes/delete", + "display": { + "provider": "Microsoft.Peering", + "resource": "prefixes", + "operation": "Delete PeeringServicePrefixes", + "description": "Delete any prefixes" + }, + "isDataAction": false + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceCountriesBySubscription.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceCountriesBySubscription.json new file mode 100644 index 000000000000..b365564e18a8 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceCountriesBySubscription.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "country1", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceCountries/country1", + "type": "Microsoft.Peering/peeringServiceCountries" + }, + { + "name": "country2", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceCountries/country2", + "type": "Microsoft.Peering/peeringServiceCountries" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceLocationsBySubscription.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceLocationsBySubscription.json new file mode 100644 index 000000000000..2d057117c0fd --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceLocationsBySubscription.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview", + "country": "country1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "country": "country1", + "state": "state1" + }, + "name": "peeringServiceLocation1", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceLocations/peeringServiceLocation1", + "type": "Microsoft.Peering/peeringServiceLocations" + }, + { + "properties": { + "country": "country1", + "state": "state2" + }, + "name": "peeringServiceLocation2", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceLocations/peeringServiceLocation2", + "type": "Microsoft.Peering/peeringServiceLocations" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceProviders.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceProviders.json new file mode 100644 index 000000000000..15298f7070f3 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServiceProviders.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "serviceProviderName": "peeringServiceProvider1" + }, + "name": "peeringServiceProvider1", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceProviders/peeringServiceProvider1", + "type": "Microsoft.Peering/peeringServiceProviders" + }, + { + "properties": { + "serviceProviderName": "peeringServiceProvider2" + }, + "name": "peeringServiceProvider2", + "id": "/subscriptions/subId/providers/Microsoft.Peering/peeringServiceProviders/peeringServiceProvider2", + "type": "Microsoft.Peering/peeringServiceProviders" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesByResourceGroup.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesByResourceGroup.json new file mode 100644 index 000000000000..200b578c3fa3 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesByResourceGroup.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesBySubscription.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesBySubscription.json new file mode 100644 index 000000000000..3e27ca404f22 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringServicesBySubscription.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsByResourceGroup.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsByResourceGroup.json new file mode 100644 index 000000000000..509dbffaaed9 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsByResourceGroup.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsBySubscription.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsBySubscription.json new file mode 100644 index 000000000000..0ffa521cd353 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPeeringsBySubscription.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "subscriptionId": "subId", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPrefixesByPeeringService.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPrefixesByPeeringService.json new file mode 100644 index 000000000000..bf451c45b7e8 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListPrefixesByPeeringService.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "prefix": "192.168.1.0/24", + "prefixValidationState": "Verified", + "learnedType": "ViaServiceProvider", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "peeringServicePrefixName1", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName/prefixes/peeringServicePrefixName1" + }, + { + "properties": { + "prefix": "192.168.2.0/24", + "prefixValidationState": "Verified", + "learnedType": "ViaServiceProvider", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "peeringServicePrefixName2", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName/prefixes/peeringServicePrefixName2" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredAsnsByPeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredAsnsByPeering.json new file mode 100644 index 000000000000..1782a68e185b --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredAsnsByPeering.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "asn": 65000, + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredAsnName0", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName0", + "type": "Microsoft.Peering/registeredAsns" + }, + { + "properties": { + "asn": 65001, + "provisioningState": "Failed" + }, + "name": "registeredAsnName1", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName1", + "type": "Microsoft.Peering/registeredAsns" + }, + { + "properties": { + "asn": 65002, + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredAsnName2", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredAsns/registeredAsnName2", + "type": "Microsoft.Peering/registeredAsns" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredPrefixesByPeering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredPrefixesByPeering.json new file mode 100644 index 000000000000..31ff586c0881 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/ListRegisteredPrefixesByPeering.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "prefix": "10.22.20.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName0", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName0", + "type": "Microsoft.Peering/registeredPrefixes" + }, + { + "properties": { + "prefix": "10.22.21.0/24", + "peeringServicePrefixKey": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName1", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName1", + "type": "Microsoft.Peering/registeredPrefixes" + }, + { + "properties": { + "prefix": "10.22.22.0/24", + "provisioningState": "Succeeded" + }, + "name": "registeredPrefixName2", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName/registeredPrefixes/registeredPrefixName2", + "type": "Microsoft.Peering/registeredPrefixes" + } + ] + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringServiceTags.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringServiceTags.json new file mode 100644 index 000000000000..9771c3acd41a --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringServiceTags.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringServiceName": "peeringServiceName", + "api-version": "2020-01-01-preview", + "tags": { + "tags": { + "tag0": "value0", + "tag1": "value1" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "peeringServiceLocation": "state1", + "peeringServiceProvider": "serviceProvider1", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "tags": { + "tag0": "value0", + "tag1": "value1" + }, + "name": "peeringServiceName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peeringServices/peeringServiceName", + "type": "Microsoft.Peering/peeringServices" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringTags.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringTags.json new file mode 100644 index 000000000000..8db49313342e --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/examples/UpdatePeeringTags.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "subscriptionId": "subId", + "resourceGroupName": "rgName", + "peeringName": "peeringName", + "api-version": "2020-01-01-preview", + "tags": { + "tags": { + "tag0": "value0", + "tag1": "value1" + } + } + }, + "responses": { + "200": { + "body": { + "sku": { + "name": "Basic_Exchange_Free", + "tier": "Basic", + "family": "Exchange", + "size": "Free" + }, + "kind": "Exchange", + "properties": { + "exchange": { + "connections": [ + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.1", + "microsoftSessionIPv6Address": "fd00::1:1", + "peerSessionIPv4Address": "192.168.2.1", + "peerSessionIPv6Address": "fd00::1", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CE495334-0E94-4E51-8164-8116D6CD284D" + }, + { + "peeringDBFacilityId": 99999, + "connectionState": "Active", + "bgpSession": { + "microsoftSessionIPv4Address": "192.168.3.2", + "microsoftSessionIPv6Address": "fd00::1:2", + "peerSessionIPv4Address": "192.168.2.2", + "peerSessionIPv6Address": "fd00::2", + "sessionStateV4": "Established", + "sessionStateV6": "Established", + "maxPrefixesAdvertisedV4": 1000, + "maxPrefixesAdvertisedV6": 100, + "md5AuthenticationKey": "test-md5-auth-key" + }, + "connectionIdentifier": "CDD8E673-CB07-47E6-84DE-3739F778762B" + } + ], + "peerAsn": { + "id": "/subscriptions/subId/providers/Microsoft.Peering/peerAsns/myAsn1" + } + }, + "peeringLocation": "peeringLocation0", + "provisioningState": "Succeeded" + }, + "location": "eastus", + "tags": { + "tag0": "value0", + "tag1": "value1" + }, + "name": "peeringName", + "id": "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Peering/peerings/peeringName", + "type": "Microsoft.Peering/peerings" + } + } + } +} diff --git a/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/peering.json b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/peering.json new file mode 100644 index 000000000000..9ab619f144b0 --- /dev/null +++ b/specification/peering/resource-manager/Microsoft.Peering/preview/2020-01-01-preview/peering.json @@ -0,0 +1,3252 @@ +{ + "swagger": "2.0", + "info": { + "version": "2020-01-01-preview", + "title": "PeeringManagementClient", + "description": "APIs to manage Peering resources through the Azure Resource Manager." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/CheckServiceProviderAvailability": { + "post": { + "tags": [ + "CheckServiceProviderAvailability" + ], + "description": "Checks if the peering service provider is present within 1000 miles of customer's location", + "operationId": "CheckServiceProviderAvailability", + "parameters": [ + { + "name": "checkServiceProviderAvailabilityInput", + "in": "body", + "description": "The CheckServiceProviderAvailabilityInput indicating customer location and service provider.", + "required": true, + "schema": { + "$ref": "#/definitions/CheckServiceProviderAvailabilityInput" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "enum": [ + "Available", + "Unavailable" + ], + "type": "string" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Check if peering service provider is available in customer location": { + "$ref": "./examples/CheckServiceProviderAvailability.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/legacyPeerings": { + "get": { + "tags": [ + "LegacyPeerings" + ], + "description": "Lists all of the legacy peerings under the given subscription matching the specified kind and location.", + "operationId": "LegacyPeerings_List", + "parameters": [ + { + "name": "peeringLocation", + "in": "query", + "description": "The location of the peering.", + "required": true, + "type": "string" + }, + { + "name": "kind", + "in": "query", + "description": "The kind of the peering.", + "required": true, + "type": "string", + "enum": [ + "Direct", + "Exchange" + ] + }, + { + "name": "asn", + "in": "query", + "description": "The ASN number associated with a legacy peering.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List legacy peerings": { + "$ref": "./examples/ListLegacyPeerings.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Peering/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available API operations for peering resources.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering operations": { + "$ref": "./examples/ListPeeringOperations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peerAsns/{peerAsnName}": { + "get": { + "tags": [ + "PeerAsns" + ], + "description": "Gets the peer ASN with the specified name under the given subscription.", + "operationId": "PeerAsns_Get", + "parameters": [ + { + "name": "peerAsnName", + "in": "path", + "description": "The peer ASN name.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeerAsn" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a peer ASN": { + "$ref": "./examples/GetPeerAsn.json" + } + } + }, + "put": { + "tags": [ + "PeerAsns" + ], + "description": "Creates a new peer ASN or updates an existing peer ASN with the specified name under the given subscription.", + "operationId": "PeerAsns_CreateOrUpdate", + "parameters": [ + { + "name": "peerAsnName", + "in": "path", + "description": "The peer ASN name.", + "required": true, + "type": "string" + }, + { + "name": "peerAsn", + "in": "body", + "description": "The peer ASN.", + "required": true, + "schema": { + "$ref": "#/definitions/PeerAsn" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeerAsn" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PeerAsn" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a peer ASN": { + "$ref": "./examples/CreatePeerAsn.json" + } + } + }, + "delete": { + "tags": [ + "PeerAsns" + ], + "description": "Deletes an existing peer ASN with the specified name under the given subscription.", + "operationId": "PeerAsns_Delete", + "parameters": [ + { + "name": "peerAsnName", + "in": "path", + "description": "The peer ASN name.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a peer ASN": { + "$ref": "./examples/DeletePeerAsn.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peerAsns": { + "get": { + "tags": [ + "PeerAsns" + ], + "description": "Lists all of the peer ASNs under the given subscription.", + "operationId": "PeerAsns_ListBySubscription", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeerAsnListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peer ASNs in a subscription": { + "$ref": "./examples/ListPeerAsnsBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peeringLocations": { + "get": { + "tags": [ + "PeeringLocations" + ], + "description": "Lists all of the available peering locations for the specified kind of peering.", + "operationId": "PeeringLocations_List", + "parameters": [ + { + "name": "kind", + "in": "query", + "description": "The kind of the peering.", + "required": true, + "type": "string", + "enum": [ + "Direct", + "Exchange" + ] + }, + { + "name": "directPeeringType", + "in": "query", + "description": "The type of direct peering.", + "required": false, + "type": "string", + "enum": [ + "Edge", + "Transit", + "Cdn", + "Internal", + "Ix", + "IxRs" + ] + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringLocationListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List direct peering locations": { + "$ref": "./examples/ListDirectPeeringLocations.json" + }, + "List exchange peering locations": { + "$ref": "./examples/ListExchangePeeringLocations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings/{peeringName}/registeredAsns/{registeredAsnName}": { + "get": { + "tags": [ + "PeeringRegisteredAsns" + ], + "description": "Gets an existing registered ASN with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredAsns_Get", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredAsnName", + "in": "path", + "description": "The name of the registered ASN.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredAsn" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a registered ASN associated with the peering": { + "$ref": "./examples/GetRegisteredAsn.json" + } + } + }, + "put": { + "tags": [ + "PeeringRegisteredAsns" + ], + "description": "Creates a new registered ASN with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredAsns_CreateOrUpdate", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredAsnName", + "in": "path", + "description": "The name of the ASN.", + "required": true, + "type": "string" + }, + { + "name": "registeredAsn", + "in": "body", + "description": "The properties needed to create a registered ASN.", + "required": true, + "schema": { + "$ref": "#/definitions/PeeringRegisteredAsn" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredAsn" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PeeringRegisteredAsn" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a registered ASN for the peering": { + "$ref": "./examples/CreateRegisteredAsn.json" + } + } + }, + "delete": { + "tags": [ + "PeeringRegisteredAsns" + ], + "description": "Deletes an existing registered ASN with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredAsns_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredAsnName", + "in": "path", + "description": "The name of the registered ASN.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deletes a registered ASN associated with the peering": { + "$ref": "./examples/DeleteRegisteredAsn.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings/{peeringName}/registeredAsns": { + "get": { + "tags": [ + "PeeringRegisteredAsns" + ], + "description": "Lists all registered ASNs under the given subscription, resource group and peering.", + "operationId": "RegisteredAsns_ListByPeering", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredAsnListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all the registered ASNs associated with the peering": { + "$ref": "./examples/ListRegisteredAsnsByPeering.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings/{peeringName}/registeredPrefixes/{registeredPrefixName}": { + "get": { + "tags": [ + "PeeringRegisteredPrefixes" + ], + "description": "Gets an existing registered prefix with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredPrefixes_Get", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredPrefixName", + "in": "path", + "description": "The name of the registered prefix.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredPrefix" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a registered prefix associated with the peering": { + "$ref": "./examples/GetRegisteredPrefix.json" + } + } + }, + "put": { + "tags": [ + "PeeringRegisteredPrefixes" + ], + "description": "Creates a new registered prefix with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredPrefixes_CreateOrUpdate", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredPrefixName", + "in": "path", + "description": "The name of the registered prefix.", + "required": true, + "type": "string" + }, + { + "name": "registeredPrefix", + "in": "body", + "description": "The properties needed to create a registered prefix.", + "required": true, + "schema": { + "$ref": "#/definitions/PeeringRegisteredPrefix" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredPrefix" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PeeringRegisteredPrefix" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a registered prefix for the peering": { + "$ref": "./examples/CreateRegisteredPrefix.json" + } + } + }, + "delete": { + "tags": [ + "PeeringRegisteredPrefixes" + ], + "description": "Deletes an existing registered prefix with the specified name under the given subscription, resource group and peering.", + "operationId": "RegisteredPrefixes_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "registeredPrefixName", + "in": "path", + "description": "The name of the registered prefix.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deletes a registered prefix associated with the peering": { + "$ref": "./examples/DeleteRegisteredPrefix.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings/{peeringName}/registeredPrefixes": { + "get": { + "tags": [ + "PeeringRegisteredPrefixes" + ], + "description": "Lists all registered prefixes under the given subscription, resource group and peering.", + "operationId": "RegisteredPrefixes_ListByPeering", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringRegisteredPrefixListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all the registered prefixes associated with the peering": { + "$ref": "./examples/ListRegisteredPrefixesByPeering.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings/{peeringName}": { + "get": { + "tags": [ + "Peerings" + ], + "description": "Gets an existing peering with the specified name under the given subscription and resource group.", + "operationId": "Peerings_Get", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Peering" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a peering": { + "$ref": "./examples/GetPeering.json" + } + } + }, + "put": { + "tags": [ + "Peerings" + ], + "description": "Creates a new peering or updates an existing peering with the specified name under the given subscription and resource group.", + "operationId": "Peerings_CreateOrUpdate", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "peering", + "in": "body", + "description": "The properties needed to create or update a peering.", + "required": true, + "schema": { + "$ref": "#/definitions/Peering" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Peering" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Peering" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a direct peering": { + "$ref": "./examples/CreateDirectPeering.json" + }, + "Create an exchange peering": { + "$ref": "./examples/CreateExchangePeering.json" + } + } + }, + "delete": { + "tags": [ + "Peerings" + ], + "description": "Deletes an existing peering with the specified name under the given subscription and resource group.", + "operationId": "Peerings_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a peering": { + "$ref": "./examples/DeletePeering.json" + } + } + }, + "patch": { + "tags": [ + "Peerings" + ], + "description": "Updates tags for a peering with the specified name under the given subscription and resource group.", + "operationId": "Peerings_Update", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "name": "tags", + "in": "body", + "description": "The resource tags.", + "required": true, + "schema": { + "$ref": "#/definitions/ResourceTags" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Peering" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update peering tags": { + "$ref": "./examples/UpdatePeeringTags.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peerings": { + "get": { + "tags": [ + "Peerings" + ], + "description": "Lists all of the peerings under the given subscription and resource group.", + "operationId": "Peerings_ListByResourceGroup", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peerings in a resource group": { + "$ref": "./examples/ListPeeringsByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peerings": { + "get": { + "tags": [ + "Peerings" + ], + "description": "Lists all of the peerings under the given subscription.", + "operationId": "Peerings_ListBySubscription", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peerings in a subscription": { + "$ref": "./examples/ListPeeringsBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peeringServiceCountries": { + "get": { + "tags": [ + "PeeringServiceCountries" + ], + "description": "Lists all of the available countries for peering service.", + "operationId": "PeeringServiceCountries_List", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServiceCountryListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering service countries": { + "$ref": "./examples/ListPeeringServiceCountriesBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peeringServiceLocations": { + "get": { + "tags": [ + "PeeringServiceLocations" + ], + "description": "Lists all of the available locations for peering service.", + "operationId": "PeeringServiceLocations_List", + "parameters": [ + { + "name": "country", + "in": "query", + "description": "The country of interest, in which the locations are to be present.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServiceLocationListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering service locations": { + "$ref": "./examples/ListPeeringServiceLocationsBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peeringServices/{peeringServiceName}/prefixes/{prefixName}": { + "get": { + "tags": [ + "PeeringServicePrefixes" + ], + "description": "Gets an existing prefix with the specified name under the given subscription, resource group and peering service.", + "operationId": "Prefixes_Get", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "prefixName", + "in": "path", + "description": "The name of the prefix.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "The properties to be expanded.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServicePrefix" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a prefix associated with the peering service": { + "$ref": "./examples/GetPeeringServicePrefix.json" + } + } + }, + "put": { + "tags": [ + "PeeringServicePrefixes" + ], + "description": "Creates a new prefix with the specified name under the given subscription, resource group and peering service.", + "operationId": "Prefixes_CreateOrUpdate", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "prefixName", + "in": "path", + "description": "The name of the prefix.", + "required": true, + "type": "string" + }, + { + "name": "peeringServicePrefix", + "in": "body", + "description": "The properties needed to create a prefix.", + "required": true, + "schema": { + "$ref": "#/definitions/PeeringServicePrefix" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServicePrefix" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PeeringServicePrefix" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a prefix for the peering service": { + "$ref": "./examples/CreatePeeringServicePrefix.json" + } + } + }, + "delete": { + "tags": [ + "PeeringServicePrefixes" + ], + "description": "Deletes an existing prefix with the specified name under the given subscription, resource group and peering service.", + "operationId": "Prefixes_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "prefixName", + "in": "path", + "description": "The name of the prefix.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a prefix associated with the peering service": { + "$ref": "./examples/DeletePeeringServicePrefix.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peeringServices/{peeringServiceName}/prefixes": { + "get": { + "tags": [ + "PeeringServicePrefixes" + ], + "description": "Lists all prefixes under the given subscription, resource group and peering service.", + "operationId": "Prefixes_ListByPeeringService", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "The properties to be expanded.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServicePrefixListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all the prefixes associated with the peering service": { + "$ref": "./examples/ListPrefixesByPeeringService.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peeringServiceProviders": { + "get": { + "tags": [ + "PeeringServiceProviders" + ], + "description": "Lists all of the available peering service locations for the specified kind of peering.", + "operationId": "PeeringServiceProviders_List", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServiceProviderListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering service providers": { + "$ref": "./examples/ListPeeringServiceProviders.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peeringServices/{peeringServiceName}": { + "get": { + "tags": [ + "PeeringServices" + ], + "description": "Gets an existing peering service with the specified name under the given subscription and resource group.", + "operationId": "PeeringServices_Get", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringService" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a peering service": { + "$ref": "./examples/GetPeeringService.json" + } + } + }, + "put": { + "tags": [ + "PeeringServices" + ], + "description": "Creates a new peering service or updates an existing peering with the specified name under the given subscription and resource group.", + "operationId": "PeeringServices_CreateOrUpdate", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "peeringService", + "in": "body", + "description": "The properties needed to create or update a peering service.", + "required": true, + "schema": { + "$ref": "#/definitions/PeeringService" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PeeringService" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a peering service": { + "$ref": "./examples/CreatePeeringService.json" + } + } + }, + "delete": { + "tags": [ + "PeeringServices" + ], + "description": "Deletes an existing peering service with the specified name under the given subscription and resource group.", + "operationId": "PeeringServices_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a peering service": { + "$ref": "./examples/DeletePeeringService.json" + } + } + }, + "patch": { + "tags": [ + "PeeringServices" + ], + "description": "Updates tags for a peering service with the specified name under the given subscription and resource group.", + "operationId": "PeeringServices_Update", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "peeringServiceName", + "in": "path", + "description": "The name of the peering service.", + "required": true, + "type": "string" + }, + { + "name": "tags", + "in": "body", + "description": "The resource tags.", + "required": true, + "schema": { + "$ref": "#/definitions/ResourceTags" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringService" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update peering service tags": { + "$ref": "./examples/UpdatePeeringServiceTags.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Peering/peeringServices": { + "get": { + "tags": [ + "PeeringServices" + ], + "description": "Lists all of the peering services under the given subscription and resource group.", + "operationId": "PeeringServices_ListByResourceGroup", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServiceListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering services in a resource group": { + "$ref": "./examples/ListPeeringServicesByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Peering/peeringServices": { + "get": { + "tags": [ + "PeeringServices" + ], + "description": "Lists all of the peerings under the given subscription.", + "operationId": "PeeringServices_ListBySubscription", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PeeringServiceListResult" + } + }, + "default": { + "description": "Error response describing why the operation has failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List peering services in a subscription": { + "$ref": "./examples/ListPeeringServicesBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "CheckServiceProviderAvailabilityInput": { + "description": "Class for CheckServiceProviderAvailabilityInput", + "type": "object", + "properties": { + "peeringServiceLocation": { + "description": "Gets or sets the peering service location.", + "type": "string" + }, + "peeringServiceProvider": { + "description": "Gets or sets the peering service provider.", + "type": "string" + } + } + }, + "PeeringListResult": { + "description": "The paginated list of peerings.", + "type": "object", + "properties": { + "value": { + "description": "The list of peerings.", + "type": "array", + "items": { + "$ref": "#/definitions/Peering" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peerings.", + "type": "string" + } + } + }, + "Peering": { + "description": "Peering is a logical representation of a set of connections to the Microsoft Cloud Edge at a location.", + "required": [ + "sku", + "kind", + "location" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "sku": { + "$ref": "#/definitions/PeeringSku", + "description": "The SKU that defines the tier and kind of the peering." + }, + "kind": { + "description": "The kind of the peering.", + "enum": [ + "Direct", + "Exchange" + ], + "type": "string", + "x-ms-enum": { + "name": "kind", + "modelAsString": true + } + }, + "properties": { + "$ref": "#/definitions/PeeringProperties", + "description": "The properties that define a peering.", + "x-ms-client-flatten": true + }, + "location": { + "description": "The location of the resource.", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "tags": { + "description": "The resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "PeeringSku": { + "description": "The SKU that defines the tier and kind of the peering.", + "type": "object", + "properties": { + "name": { + "description": "The name of the peering SKU.", + "type": "string" + }, + "tier": { + "description": "The tier of the peering SKU.", + "enum": [ + "Basic", + "Premium" + ], + "type": "string", + "x-ms-enum": { + "name": "tier", + "modelAsString": true + } + }, + "family": { + "description": "The family of the peering SKU.", + "enum": [ + "Direct", + "Exchange" + ], + "type": "string", + "x-ms-enum": { + "name": "family", + "modelAsString": true + } + }, + "size": { + "description": "The size of the peering SKU.", + "enum": [ + "Free", + "Metered", + "Unlimited" + ], + "type": "string", + "x-ms-enum": { + "name": "size", + "modelAsString": true + } + } + } + }, + "PeeringProperties": { + "description": "The properties that define connectivity to the Microsoft Cloud Edge.", + "type": "object", + "properties": { + "direct": { + "$ref": "#/definitions/PeeringPropertiesDirect", + "description": "The properties that define a direct peering." + }, + "exchange": { + "$ref": "#/definitions/PeeringPropertiesExchange", + "description": "The properties that define an exchange peering." + }, + "peeringLocation": { + "description": "The location of the peering.", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + } + } + } + }, + "PeeringPropertiesDirect": { + "description": "The properties that define a direct peering.", + "type": "object", + "properties": { + "connections": { + "description": "The set of connections that constitute a direct peering.", + "type": "array", + "items": { + "$ref": "#/definitions/DirectConnection" + } + }, + "useForPeeringService": { + "description": "The flag that indicates whether or not the peering is used for peering service.", + "type": "boolean", + "readOnly": true + }, + "peerAsn": { + "$ref": "#/definitions/SubResource", + "description": "The reference of the peer ASN." + }, + "directPeeringType": { + "description": "The type of direct peering.", + "enum": [ + "Edge", + "Transit", + "Cdn", + "Internal", + "Ix", + "IxRs" + ], + "type": "string", + "x-ms-enum": { + "name": "directPeeringType", + "modelAsString": true + } + } + } + }, + "PeeringPropertiesExchange": { + "description": "The properties that define an exchange peering.", + "type": "object", + "properties": { + "connections": { + "description": "The set of connections that constitute an exchange peering.", + "type": "array", + "items": { + "$ref": "#/definitions/ExchangeConnection" + } + }, + "peerAsn": { + "$ref": "#/definitions/SubResource", + "description": "The reference of the peer ASN." + } + } + }, + "DirectConnection": { + "description": "The properties that define a direct connection.", + "type": "object", + "properties": { + "bandwidthInMbps": { + "format": "int32", + "description": "The bandwidth of the connection.", + "type": "integer" + }, + "provisionedBandwidthInMbps": { + "format": "int32", + "description": "The bandwidth that is actually provisioned.", + "type": "integer", + "readOnly": true + }, + "sessionAddressProvider": { + "description": "The field indicating if Microsoft provides session ip addresses.", + "enum": [ + "Microsoft", + "Peer" + ], + "type": "string", + "x-ms-enum": { + "name": "sessionAddressProvider", + "modelAsString": true + } + }, + "useForPeeringService": { + "description": "The flag that indicates whether or not the connection is used for peering service.", + "type": "boolean" + }, + "peeringDBFacilityId": { + "format": "int32", + "description": "The PeeringDB.com ID of the facility at which the connection has to be set up.", + "type": "integer" + }, + "connectionState": { + "description": "The state of the connection.", + "enum": [ + "None", + "PendingApproval", + "Approved", + "ProvisioningStarted", + "ProvisioningFailed", + "ProvisioningCompleted", + "Validating", + "Active" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "connectionState", + "modelAsString": true + } + }, + "bgpSession": { + "$ref": "#/definitions/BgpSession", + "description": "The BGP session associated with the connection." + }, + "connectionIdentifier": { + "description": "The unique identifier (GUID) for the connection.", + "type": "string" + }, + "errorMessage": { + "description": "The error message related to the connection state, if any.", + "type": "string", + "readOnly": true + } + } + }, + "SubResource": { + "description": "The sub resource.", + "type": "object", + "properties": { + "id": { + "description": "The identifier of the referenced resource.", + "type": "string" + } + } + }, + "ExchangeConnection": { + "description": "The properties that define an exchange connection.", + "type": "object", + "properties": { + "peeringDBFacilityId": { + "format": "int32", + "description": "The PeeringDB.com ID of the facility at which the connection has to be set up.", + "type": "integer" + }, + "connectionState": { + "description": "The state of the connection.", + "enum": [ + "None", + "PendingApproval", + "Approved", + "ProvisioningStarted", + "ProvisioningFailed", + "ProvisioningCompleted", + "Validating", + "Active" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "connectionState", + "modelAsString": true + } + }, + "bgpSession": { + "$ref": "#/definitions/BgpSession", + "description": "The BGP session associated with the connection." + }, + "connectionIdentifier": { + "description": "The unique identifier (GUID) for the connection.", + "type": "string" + }, + "errorMessage": { + "description": "The error message related to the connection state, if any.", + "type": "string", + "readOnly": true + } + } + }, + "BgpSession": { + "description": "The properties that define a BGP session.", + "type": "object", + "properties": { + "sessionPrefixV4": { + "description": "The IPv4 prefix that contains both ends' IPv4 addresses.", + "type": "string" + }, + "sessionPrefixV6": { + "description": "The IPv6 prefix that contains both ends' IPv6 addresses.", + "type": "string" + }, + "microsoftSessionIPv4Address": { + "description": "The IPv4 session address on Microsoft's end.", + "type": "string", + "readOnly": true + }, + "microsoftSessionIPv6Address": { + "description": "The IPv6 session address on Microsoft's end.", + "type": "string", + "readOnly": true + }, + "peerSessionIPv4Address": { + "description": "The IPv4 session address on peer's end.", + "type": "string" + }, + "peerSessionIPv6Address": { + "description": "The IPv6 session address on peer's end.", + "type": "string" + }, + "sessionStateV4": { + "description": "The state of the IPv4 session.", + "enum": [ + "None", + "Idle", + "Connect", + "Active", + "OpenSent", + "OpenConfirm", + "OpenReceived", + "Established", + "PendingAdd", + "PendingUpdate", + "PendingRemove" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "sessionStateV4", + "modelAsString": true + } + }, + "sessionStateV6": { + "description": "The state of the IPv6 session.", + "enum": [ + "None", + "Idle", + "Connect", + "Active", + "OpenSent", + "OpenConfirm", + "OpenReceived", + "Established", + "PendingAdd", + "PendingUpdate", + "PendingRemove" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "sessionStateV6", + "modelAsString": true + } + }, + "maxPrefixesAdvertisedV4": { + "format": "int32", + "description": "The maximum number of prefixes advertised over the IPv4 session.", + "type": "integer" + }, + "maxPrefixesAdvertisedV6": { + "format": "int32", + "description": "The maximum number of prefixes advertised over the IPv6 session.", + "type": "integer" + }, + "md5AuthenticationKey": { + "description": "The MD5 authentication key of the session.", + "type": "string" + } + } + }, + "OperationListResult": { + "description": "The paginated list of peering API operations.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering API operations.", + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering API operations.", + "type": "string" + } + } + }, + "Operation": { + "description": "The peering API operation.", + "type": "object", + "properties": { + "name": { + "description": "The name of the operation.", + "type": "string", + "readOnly": true + }, + "display": { + "$ref": "#/definitions/OperationDisplayInfo", + "description": "The information related to the operation.", + "readOnly": true + }, + "isDataAction": { + "description": "The flag that indicates whether the operation applies to data plane.", + "type": "boolean", + "readOnly": true + } + } + }, + "OperationDisplayInfo": { + "description": "The information related to the operation.", + "type": "object", + "properties": { + "provider": { + "description": "The name of the resource provider.", + "type": "string", + "readOnly": true + }, + "resource": { + "description": "The type of the resource.", + "type": "string", + "readOnly": true + }, + "operation": { + "description": "The name of the operation.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description of the operation.", + "type": "string", + "readOnly": true + } + } + }, + "PeerAsn": { + "description": "The essential information related to the peer's ASN.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeerAsnProperties", + "description": "The properties that define a peer's ASN.", + "x-ms-client-flatten": true + } + } + }, + "PeerAsnProperties": { + "description": "The properties that define a peer's ASN.", + "type": "object", + "properties": { + "peerAsn": { + "format": "int32", + "description": "The Autonomous System Number (ASN) of the peer.", + "type": "integer" + }, + "peerContactDetail": { + "description": "The contact details of the peer.", + "type": "array", + "items": { + "$ref": "#/definitions/ContactDetail" + } + }, + "peerName": { + "description": "The name of the peer.", + "type": "string" + }, + "validationState": { + "description": "The validation state of the ASN associated with the peer.", + "enum": [ + "None", + "Pending", + "Approved", + "Failed" + ], + "type": "string", + "x-ms-enum": { + "name": "validationState", + "modelAsString": true + } + }, + "errorMessage": { + "description": "The error message for the validation state", + "type": "string", + "readOnly": true + } + } + }, + "ContactDetail": { + "description": "The contact detail class.", + "type": "object", + "properties": { + "role": { + "description": "The role of the contact.", + "enum": [ + "Noc", + "Policy", + "Technical", + "Service", + "Other" + ], + "type": "string", + "x-ms-enum": { + "name": "role", + "modelAsString": true + } + }, + "email": { + "description": "The e-mail address of the contact.", + "type": "string" + }, + "phone": { + "description": "The phone number of the contact.", + "type": "string" + } + } + }, + "PeerAsnListResult": { + "description": "The paginated list of peer ASNs.", + "type": "object", + "properties": { + "value": { + "description": "The list of peer ASNs.", + "type": "array", + "items": { + "$ref": "#/definitions/PeerAsn" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peer ASNs.", + "type": "string" + } + } + }, + "PeeringLocationListResult": { + "description": "The paginated list of peering locations.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering locations.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringLocation" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering locations.", + "type": "string" + } + } + }, + "PeeringLocation": { + "description": "Peering location is where connectivity could be established to the Microsoft Cloud Edge.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "kind": { + "description": "The kind of peering that the peering location supports.", + "enum": [ + "Direct", + "Exchange" + ], + "type": "string", + "x-ms-enum": { + "name": "kind", + "modelAsString": true + } + }, + "properties": { + "$ref": "#/definitions/PeeringLocationProperties", + "description": "The properties that define a peering location.", + "x-ms-client-flatten": true + } + } + }, + "PeeringLocationProperties": { + "description": "The properties that define a peering location.", + "type": "object", + "properties": { + "direct": { + "$ref": "#/definitions/PeeringLocationPropertiesDirect", + "description": "The properties that define a direct peering location." + }, + "exchange": { + "$ref": "#/definitions/PeeringLocationPropertiesExchange", + "description": "The properties that define an exchange peering location." + }, + "peeringLocation": { + "description": "The name of the peering location.", + "type": "string" + }, + "country": { + "description": "The country in which the peering location exists.", + "type": "string" + }, + "azureRegion": { + "description": "The Azure region associated with the peering location.", + "type": "string" + } + } + }, + "PeeringLocationPropertiesDirect": { + "description": "The properties that define a direct peering location.", + "type": "object", + "properties": { + "peeringFacilities": { + "description": "The list of direct peering facilities at the peering location.", + "type": "array", + "items": { + "$ref": "#/definitions/DirectPeeringFacility" + } + }, + "bandwidthOffers": { + "description": "The list of bandwidth offers available at the peering location.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringBandwidthOffer" + } + } + } + }, + "PeeringLocationPropertiesExchange": { + "description": "The properties that define an exchange peering location.", + "type": "object", + "properties": { + "peeringFacilities": { + "description": "The list of exchange peering facilities at the peering location.", + "type": "array", + "items": { + "$ref": "#/definitions/ExchangePeeringFacility" + } + } + } + }, + "DirectPeeringFacility": { + "description": "The properties that define a direct peering facility.", + "type": "object", + "properties": { + "address": { + "description": "The address of the direct peering facility.", + "type": "string" + }, + "directPeeringType": { + "description": "The type of the direct peering.", + "enum": [ + "Edge", + "Transit", + "Cdn", + "Internal", + "Ix", + "IxRs" + ], + "type": "string", + "x-ms-enum": { + "name": "directPeeringType", + "modelAsString": true + } + }, + "peeringDBFacilityId": { + "format": "int32", + "description": "The PeeringDB.com ID of the facility.", + "type": "integer" + }, + "peeringDBFacilityLink": { + "description": "The PeeringDB.com URL of the facility.", + "type": "string" + } + } + }, + "PeeringBandwidthOffer": { + "description": "The properties that define a peering bandwidth offer.", + "type": "object", + "properties": { + "offerName": { + "description": "The name of the bandwidth offer.", + "type": "string" + }, + "valueInMbps": { + "format": "int32", + "description": "The value of the bandwidth offer in Mbps.", + "type": "integer" + } + } + }, + "ExchangePeeringFacility": { + "description": "The properties that define an exchange peering facility.", + "type": "object", + "properties": { + "exchangeName": { + "description": "The name of the exchange peering facility.", + "type": "string" + }, + "bandwidthInMbps": { + "format": "int32", + "description": "The bandwidth of the connection between Microsoft and the exchange peering facility.", + "type": "integer" + }, + "microsoftIPv4Address": { + "description": "The IPv4 address of Microsoft at the exchange peering facility.", + "type": "string" + }, + "microsoftIPv6Address": { + "description": "The IPv6 address of Microsoft at the exchange peering facility.", + "type": "string" + }, + "facilityIPv4Prefix": { + "description": "The IPv4 prefixes associated with the exchange peering facility.", + "type": "string" + }, + "facilityIPv6Prefix": { + "description": "The IPv6 prefixes associated with the exchange peering facility.", + "type": "string" + }, + "peeringDBFacilityId": { + "format": "int32", + "description": "The PeeringDB.com ID of the facility.", + "type": "integer" + }, + "peeringDBFacilityLink": { + "description": "The PeeringDB.com URL of the facility.", + "type": "string" + } + } + }, + "PeeringRegisteredAsn": { + "description": "The customer's ASN that is registered by the peering service provider.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeeringRegisteredAsnProperties", + "description": "The properties that define a registered ASN.", + "x-ms-client-flatten": true + } + } + }, + "PeeringRegisteredAsnProperties": { + "description": "The properties that define a registered ASN.", + "type": "object", + "properties": { + "asn": { + "format": "int32", + "description": "The customer's ASN from which traffic originates.", + "type": "integer" + }, + "peeringServicePrefixKey": { + "description": "The peering service prefix key that is to be shared with the customer.", + "type": "string", + "readOnly": true + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + } + } + } + }, + "PeeringRegisteredAsnListResult": { + "description": "The paginated list of peering registered ASNs.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering registered ASNs.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringRegisteredAsn" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering registered ASNs.", + "type": "string" + } + } + }, + "PeeringRegisteredPrefix": { + "description": "The customer's prefix that is registered by the peering service provider.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeeringRegisteredPrefixProperties", + "description": "The properties that define a registered prefix.", + "x-ms-client-flatten": true + } + } + }, + "PeeringRegisteredPrefixProperties": { + "description": "The properties that define a registered prefix.", + "type": "object", + "properties": { + "prefix": { + "description": "The customer's prefix from which traffic originates.", + "type": "string" + }, + "prefixValidationState": { + "description": "The prefix validation state.", + "enum": [ + "None", + "Invalid", + "Verified", + "Failed", + "Pending", + "Warning", + "Unknown" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "prefixValidationState", + "modelAsString": true + } + }, + "peeringServicePrefixKey": { + "description": "The peering service prefix key that is to be shared with the customer.", + "type": "string", + "readOnly": true + }, + "errorMessage": { + "description": "The error message associated with the validation state, if any.", + "type": "string", + "readOnly": true + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + } + } + } + }, + "PeeringRegisteredPrefixListResult": { + "description": "The paginated list of peering registered prefixes.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering registered prefixes.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringRegisteredPrefix" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering registered prefixes.", + "type": "string" + } + } + }, + "ResourceTags": { + "description": "The resource tags.", + "type": "object", + "properties": { + "tags": { + "description": "Gets or sets the tags, a dictionary of descriptors arm object", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "PeeringServiceCountryListResult": { + "description": "The paginated list of peering service countries.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering service countries.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringServiceCountry" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering service countries.", + "type": "string" + } + } + }, + "PeeringServiceCountry": { + "description": "The peering service country.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": {} + }, + "PeeringServiceLocationListResult": { + "description": "The paginated list of peering service locations.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering service locations.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringServiceLocation" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering service locations.", + "type": "string" + } + } + }, + "PeeringServiceLocation": { + "description": "The peering service location.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeeringServiceLocationProperties", + "description": "The properties that define a peering service location.", + "x-ms-client-flatten": true + } + } + }, + "PeeringServiceLocationProperties": { + "description": "The properties that define connectivity to the Peering Service Location.", + "type": "object", + "properties": { + "country": { + "description": "Country of the customer", + "type": "string" + }, + "state": { + "description": "State of the customer", + "type": "string" + }, + "azureRegion": { + "description": "Azure region for the location", + "type": "string" + } + } + }, + "PeeringServicePrefix": { + "description": "The peering service prefix class.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeeringServicePrefixProperties", + "description": "Gets or sets the peering prefix properties.", + "x-ms-client-flatten": true + } + } + }, + "PeeringServicePrefixProperties": { + "description": "The peering service prefix properties class.", + "type": "object", + "properties": { + "prefix": { + "description": "The prefix from which your traffic originates.", + "type": "string" + }, + "prefixValidationState": { + "description": "The prefix validation state", + "enum": [ + "None", + "Invalid", + "Verified", + "Failed", + "Pending", + "Warning", + "Unknown" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "prefixValidationState", + "modelAsString": true + } + }, + "learnedType": { + "description": "The prefix learned type", + "enum": [ + "None", + "ViaServiceProvider", + "ViaSession" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "learnedType", + "modelAsString": true + } + }, + "errorMessage": { + "description": "The error message for validation state", + "type": "string", + "readOnly": true + }, + "events": { + "description": "The list of events for peering service prefix", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringServicePrefixEvent" + }, + "readOnly": true + }, + "peeringServicePrefixKey": { + "description": "The peering service prefix key", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + } + } + } + }, + "PeeringServicePrefixEvent": { + "description": "The details of the event associated with a prefix.", + "type": "object", + "properties": { + "eventTimestamp": { + "format": "date-time", + "description": "The timestamp of the event associated with a prefix.", + "type": "string", + "readOnly": true + }, + "eventType": { + "description": "The type of the event associated with a prefix.", + "type": "string", + "readOnly": true + }, + "eventSummary": { + "description": "The summary of the event associated with a prefix.", + "type": "string", + "readOnly": true + }, + "eventLevel": { + "description": "The level of the event associated with a prefix.", + "type": "string", + "readOnly": true + }, + "eventDescription": { + "description": "The description of the event associated with a prefix.", + "type": "string", + "readOnly": true + } + } + }, + "PeeringServicePrefixListResult": { + "description": "The paginated list of peering service prefixes.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering service prefixes.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringServicePrefix" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering service prefixes.", + "type": "string" + } + } + }, + "PeeringServiceProviderListResult": { + "description": "The paginated list of peering service providers.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering service providers.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringServiceProvider" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering service providers.", + "type": "string" + } + } + }, + "PeeringServiceProvider": { + "description": "PeeringService provider", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PeeringServiceProviderProperties", + "description": "The properties that define a peering service provider.", + "x-ms-client-flatten": true + } + } + }, + "PeeringServiceProviderProperties": { + "description": "The properties that define connectivity to the Peering Service Provider.", + "type": "object", + "properties": { + "serviceProviderName": { + "description": "The name of the service provider.", + "type": "string" + } + } + }, + "PeeringService": { + "description": "Peering Service", + "required": [ + "location" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "sku": { + "$ref": "#/definitions/PeeringServiceSku", + "description": "The SKU that defines the type of the peering service." + }, + "properties": { + "$ref": "#/definitions/PeeringServiceProperties", + "description": "The properties that define a peering service.", + "x-ms-client-flatten": true + }, + "location": { + "description": "The location of the resource.", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "tags": { + "description": "The resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "PeeringServiceSku": { + "description": "The SKU that defines the type of the peering service.", + "type": "object", + "properties": { + "name": { + "description": "The name of the peering service SKU.", + "type": "string" + } + } + }, + "PeeringServiceProperties": { + "description": "The properties that define connectivity to the Peering Service.", + "type": "object", + "properties": { + "peeringServiceLocation": { + "description": "The PeeringServiceLocation of the Customer.", + "type": "string" + }, + "peeringServiceProvider": { + "description": "The MAPS Provider Name.", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + } + } + } + }, + "PeeringServiceListResult": { + "description": "The paginated list of peering services.", + "type": "object", + "properties": { + "value": { + "description": "The list of peering services.", + "type": "array", + "items": { + "$ref": "#/definitions/PeeringService" + } + }, + "nextLink": { + "description": "The link to fetch the next page of peering services.", + "type": "string" + } + } + }, + "ErrorResponse": { + "description": "The error response that indicates why an operation has failed.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "The error message.", + "type": "string", + "readOnly": true + } + } + }, + "Resource": { + "description": "The ARM resource class.", + "type": "object", + "properties": { + "name": { + "description": "The name of the resource.", + "type": "string", + "readOnly": true + }, + "id": { + "description": "The ID of the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type of the resource.", + "type": "string", + "readOnly": true + } + }, + "x-ms-azure-resource": true + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure subscription ID.", + "required": true, + "type": "string" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The client API version.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/peering/resource-manager/readme.go.md b/specification/peering/resource-manager/readme.go.md index 727aa35a5096..f3871b5269e6 100644 --- a/specification/peering/resource-manager/readme.go.md +++ b/specification/peering/resource-manager/readme.go.md @@ -12,6 +12,11 @@ go: ### Go multi-api +``` yaml $(go) && $(multiapi) +batch: + - tag: package-2020-01-01-preview +``` +or ``` yaml $(go) && $(multiapi) batch: - tag: package-2019-09-01-preview @@ -21,6 +26,15 @@ or batch: - tag: package-2019-08-01-preview ``` +### Tag: package-2020-01-01-preview and go + +These settings apply only when `--tag=package-2020-01-01-preview --go` is specified on the command line. +Please also specify `--go-sdk-folder=`. + +``` yaml $(tag) == 'package-2020-01-01-preview' && $(go) +output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-01-01-preview/$(namespace) +``` + ### Tag: package-2019-09-01-preview and go These settings apply only when `--tag=package-2019-09-01-preview --go` is specified on the command line. diff --git a/specification/peering/resource-manager/readme.java.md b/specification/peering/resource-manager/readme.java.md index 0bcc7c2af9f6..7a5bd751211e 100644 --- a/specification/peering/resource-manager/readme.java.md +++ b/specification/peering/resource-manager/readme.java.md @@ -14,6 +14,11 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-peering ### Java multi-api +``` yaml $(java) && $(multiapi) +batch: + - tag: package-2020-01-01-preview +``` +or ``` yaml $(java) && $(multiapi) batch: - tag: package-2019-09-01-preview @@ -24,6 +29,19 @@ batch: - tag: package-2019-08-01-preview ``` +### Tag: package-2020-01-01-preview and java + +These settings apply only when `--tag=package-2020-01-01-preview --java` is specified on the command line. +Please also specify `--azure-libraries-for-java=`. + +``` yaml $(tag) == 'package-2020-01-01-preview' && $(java) && $(multiapi) +java: + namespace: com.microsoft.azure.management.peering.v2020_01_01_preview + output-folder: $(azure-libraries-for-java-folder)/sdk/peering/mgmt-v2020_01_01_preview +regenerate-manager: true +generate-interface: true +``` + ### Tag: package-2019-09-01-preview and java These settings apply only when `--tag=package-2019-09-01-preview --java` is specified on the command line. @@ -31,8 +49,8 @@ Please also specify `--azure-libraries-for-java=`. + +``` yaml $(tag) == 'package-2020-01-01-preview' && $(ruby) +namespace: "Azure::Peering::Mgmt::V2020_01_01_preview" +output-folder: $(ruby-sdks-folder)/management/azure_mgmt_peering/lib +``` + ### Tag: package-2019-09-01-preview and ruby These settings apply only when `--tag=package-2019-09-01-preview --ruby` is specified on the command line. diff --git a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerResourceGroupEvaluation.json b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerResourceGroupEvaluation.json new file mode 100644 index 000000000000..64f1402bffe5 --- /dev/null +++ b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerResourceGroupEvaluation.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "subscriptionId": "fffedd8f-ffff-fffd-fffd-fffed2f84852", + "resourceGroupName": "myResourceGroup", + "api-version": "2019-10-01" + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerSubscriptionEvaluation.json b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerSubscriptionEvaluation.json new file mode 100644 index 000000000000..280413ee75cd --- /dev/null +++ b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_TriggerSubscriptionEvaluation.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "subscriptionId": "fffedd8f-ffff-fffd-fffd-fffed2f84852", + "api-version": "2019-10-01" + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/policyStates.json b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/policyStates.json index ab104e5d24e9..a914774d9a63 100644 --- a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/policyStates.json +++ b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/policyStates.json @@ -495,6 +495,83 @@ } } }, + "/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation": { + "post": { + "operationId": "PolicyStates_TriggerSubscriptionEvaluation", + "description": "Triggers a policy evaluation scan for all the resources under the subscription", + "parameters": [ + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The scan is done." + }, + "202": { + "description": "The scan was successfully triggered." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/QueryFailure" + } + } + }, + "x-ms-examples": { + "Trigger evaluations for all resources in a subscription": { + "$ref": "./examples/PolicyStates_TriggerSubscriptionEvaluation.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation": { + "post": { + "operationId": "PolicyStates_TriggerResourceGroupEvaluation", + "description": "Triggers a policy evaluation scan for all the resources under the resource group.", + "parameters": [ + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The scan is done." + }, + "202": { + "description": "The scan was successfully triggered." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/QueryFailure" + } + } + }, + "x-ms-examples": { + "Trigger evaluations for all resources in a resource group": { + "$ref": "./examples/PolicyStates_TriggerResourceGroupEvaluation.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, "/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policySetDefinitions/{policySetDefinitionName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults": { "post": { "operationId": "PolicyStates_ListQueryResultsForPolicySetDefinition", diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/bms.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/bms.json new file mode 100644 index 000000000000..0ed084282de0 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/bms.json @@ -0,0 +1,3603 @@ +{ + "swagger":"2.0", + "info":{ + "version":"2018-12-20", + "title":"RecoveryServicesBackupClient", + "x-ms-code-generation-settings":{ + "internalConstructors":false + } + }, + "host":"management.azure.com", + "schemes":[ + "https" + ], + "consumes":[ + "application/json" + ], + "produces":[ + "application/json" + ], + "paths":{ + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupAadProperties/default":{ + "get":{ + "tags":[ + "AadProperties" + ], + "summary":"Fetches the AAD properties from target region BCM stamp.", + "operationId":"AadProperties_Get", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + } + ], + "responses":{ + "200":{ + "description":"OK", + "schema":{ + "$ref":"#/definitions/AADPropertiesResource" + } + } + }, + "x-ms-examples":{ + "Get AAD Properties for authentication in the third region":{ + "$ref":"./examples/AzureIaasVm/BackupAadProperties_Get.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrossRegionRestore":{ + "post":{ + "tags":[ + "CrossRegionRestore" + ], + "summary":"Restores the specified backed up data in a different region as compared to where the data is backed up.", + "operationId":"CrossRegionRestore_Trigger", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + }, + { + "name":"parameters", + "in":"body", + "description":"resource cross region restore request", + "required":true, + "schema":{ + "$ref":"#/definitions/CrossRegionRestoreRequestResource" + } + } + ], + "responses":{ + "202":{ + "description":"Accepted" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples":{ + "Trigger Cross Region Restore":{ + "$ref":"./examples/AzureIaasVm/TriggerCrossRegionRestore_Post.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrJob":{ + "post":{ + "tags":[ + "CrrJobDetails" + ], + "summary":"Get CRR job details from target region.", + "operationId":"BackupCrrJobDetails_Get", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + } + ], + "responses":{ + "200":{ + "description":"OK", + "schema":{ + "$ref":"#/definitions/JobResource" + } + } + }, + "x-ms-examples":{ + "Get Cross Region Restore Job Details in the secondary region":{ + "$ref":"./examples/AzureIaasVm/GetCrrJob_Post.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrJobs":{ + "post":{ + "tags":[ + "BackupCrrJobs" + ], + "summary":"Gets the list of CRR jobs from the target region.", + "operationId":"BackupCrrJobs_List", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + } + ], + "responses":{ + "200":{ + "description":"OK", + "schema":{ + "$ref":"#/definitions/JobResourceList" + } + } + }, + "x-ms-pageable":{ + "nextLinkName":"nextLink" + }, + "x-ms-examples":{ + "List Cross Region Restore Jobs in the secondary region":{ + "$ref":"./examples/AzureIaasVm/ListCrrJobs_Post.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrOperationResults/{operationId}":{ + "get":{ + "tags":[ + "CrrOperationResults" + ], + "operationId":"CrrOperationResults_Get", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + }, + { + "name":"operationId", + "in":"path", + "required":true, + "type":"string" + } + ], + "responses":{ + "200":{ + "description":"OK" + }, + "202":{ + "description":"Accepted" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples":{ + "Get Operation Results for Cross Region Restore":{ + "$ref":"./examples/AzureIaasVm/GetCrrOperationResults_Get.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrOperationsStatus/{operationId}":{ + "get":{ + "tags":[ + "CrrOperationStatus" + ], + "operationId":"CrrOperationStatus_Get", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/AzureRegion" + }, + { + "$ref":"#/parameters/SubscriptionId" + }, + { + "name":"operationId", + "in":"path", + "required":true, + "type":"string" + } + ], + "responses":{ + "200":{ + "description":"OK", + "schema":{ + "$ref":"#/definitions/OperationStatus" + } + } + }, + "x-ms-examples":{ + "Get Operation Status for Cross Region Restore":{ + "$ref":"./examples/AzureIaasVm/GetCrrOperationStatus_Get.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/accessToken":{ + "post":{ + "tags":[ + "RecoveryPoints" + ], + "summary":"Returns the Access token for communication between BMS and Protection service", + "operationId":"RecoveryPoints_GetAccessToken", + "produces":[ + "application/json" + ], + "parameters":[ + { + "$ref":"#/parameters/ApiVersion" + }, + { + "$ref":"#/parameters/VaultName" + }, + { + "$ref":"#/parameters/ResourceGroupName" + }, + { + "$ref":"#/parameters/SubscriptionId" + }, + { + "name":"fabricName", + "in":"path", + "description":"Fabric name associated with the container.", + "required":true, + "type":"string" + }, + { + "name":"containerName", + "in":"path", + "description":"Name of the container.", + "required":true, + "type":"string" + }, + { + "name":"protectedItemName", + "in":"path", + "description":"Name of the Protected Item.", + "required":true, + "type":"string" + }, + { + "name":"recoveryPointId", + "in":"path", + "description":"Recovery Point Id", + "required":true, + "type":"string" + } + ], + "responses":{ + "200":{ + "description":"OK", + "schema":{ + "$ref":"#/definitions/CrrAccessTokenResource" + } + } + }, + "x-ms-examples":{ + "Get Access Token for Crr":{ + "$ref":"./examples/AzureIaasVm/GetAccessToken_Get.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/": { + "get": { + "tags": [ + "RecoveryPoints_Crr" + ], + "description": "Lists the backup copies for the backed up item.", + "operationId": "RecoveryPointsCrr_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "fabricName", + "in": "path", + "description": "Fabric name associated with the backed up item.", + "required": true, + "type": "string" + }, + { + "name": "containerName", + "in": "path", + "description": "Container name associated with the backed up item.", + "required": true, + "type": "string" + }, + { + "name": "protectedItemName", + "in": "path", + "description": "Backed up item whose backup copies are to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RecoveryPointResourceList" + } + } + }, + "x-ms-odata": "#/definitions/BMSRPQueryObject", + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Get Protected Azure Vm Recovery Points": { + "$ref": "./examples/AzureIaasVm/RecoveryPoints_List.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems/": { + "get": { + "tags": [ + "BackupProtectedItems_Crr" + ], + "description": "Provides a pageable list of all items that are backed up within a vault.", + "operationId": "BackupProtectedItemsCrr_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ProtectedItemResourceList" + } + } + }, + "x-ms-odata": "#/definitions/ProtectedItemQueryObject", + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List protected items with backupManagementType filter as AzureIaasVm": { + "$ref": "./examples/AzureIaasVm/BackupProtectedItems_List.json" + } + } + } + } + }, + "definitions": { + "AADProperties": { + "type": "object", + "properties": { + "servicePrincipalClientId": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "authority": { + "type": "string" + }, + "audience": { + "type": "string" + }, + "servicePrincipalObjectId": { + "type": "string" + } + } + }, + "AADPropertiesResource": { + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/AADProperties", + "description": "AADPropertiesResource properties" + } + } + }, + "AzureFileshareProtectedItem": { + "description": "Azure File Share workload-specific backup item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the fileshare represented by this backup item.", + "type": "string" + }, + "protectionStatus": { + "description": "Backup status of this backup item.", + "type": "string" + }, + "protectionState": { + "description": "Backup state of this backup item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectionState", + "modelAsString": true + } + }, + "healthStatus": { + "description": "backups running status for this backup item.", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ], + "type": "string", + "x-ms-enum": { + "name": "HealthStatus", + "modelAsString": true + } + }, + "lastBackupStatus": { + "description": "Last backup operation status. Possible values: Healthy, Unhealthy.", + "type": "string" + }, + "lastBackupTime": { + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item.", + "type": "string" + }, + "extendedInfo": { + "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo", + "description": "Additional information with this backup item." + } + }, + "x-ms-discriminator-value": "AzureFileShareProtectedItem" + }, + "AzureFileshareProtectedItemExtendedInfo": { + "description": "Additional information about Azure File Share backup item.", + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "format": "date-time", + "description": "The oldest backup copy available for this item in the service.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "Number of available backup copies associated with this backup item.", + "type": "integer" + }, + "policyState": { + "description": "Indicates consistency of policy object and policy applied to this backup item.", + "type": "string" + }, + "resourceState": { + "description": "Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted}", + "type": "string", + "readOnly": true + }, + "resourceStateSyncTime": { + "format": "date-time", + "description": "The resource state sync time for this backup item.", + "type": "string", + "readOnly": true + } + } + }, + "AzureFileShareRecoveryPoint": { + "description": "Azure File Share workload specific backup copy.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" + } + ], + "properties": { + "recoveryPointType": { + "description": "Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent.", + "type": "string", + "readOnly": true + }, + "recoveryPointTime": { + "format": "date-time", + "description": "Time at which this backup copy was created.", + "type": "string", + "readOnly": true + }, + "fileShareSnapshotUri": { + "description": "Contains Url to the snapshot of fileshare, if applicable", + "type": "string", + "readOnly": true + }, + "recoveryPointSizeInGB": { + "format": "int32", + "description": "Contains recovery point size", + "type": "integer", + "readOnly": true + } + }, + "x-ms-discriminator-value": "AzureFileShareRecoveryPoint" + }, + "AzureFileShareRestoreRequest": { + "description": "AzureFileShare Restore Request", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RestoreRequest" + } + ], + "properties": { + "recoveryType": { + "description": "Type of this recovery.", + "enum": [ + "Invalid", + "OriginalLocation", + "AlternateLocation", + "RestoreDisks", + "Offline" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryType", + "modelAsString": true + } + }, + "sourceResourceId": { + "description": "Source storage account ARM Id", + "type": "string" + }, + "copyOptions": { + "description": "Options to resolve copy conflicts.", + "enum": [ + "Invalid", + "CreateCopy", + "Skip", + "Overwrite", + "FailOnConflict" + ], + "type": "string", + "x-ms-enum": { + "name": "CopyOptions", + "modelAsString": true + } + }, + "restoreRequestType": { + "description": "Restore Type (FullShareRestore or ItemLevelRestore)", + "enum": [ + "Invalid", + "FullShareRestore", + "ItemLevelRestore" + ], + "type": "string", + "x-ms-enum": { + "name": "RestoreRequestType", + "modelAsString": true + } + }, + "restoreFileSpecs": { + "description": "List of Source Files/Folders(which need to recover) and TargetFolderPath details", + "type": "array", + "items": { + "$ref": "#/definitions/RestoreFileSpecs" + } + }, + "targetDetails": { + "$ref": "#/definitions/TargetAFSRestoreInfo", + "description": "Target File Share Details" + } + }, + "x-ms-discriminator-value": "AzureFileShareRestoreRequest" + }, + "AzureIaaSClassicComputeVMProtectedItem": { + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + } + ], + "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" + }, + "AzureIaaSComputeVMProtectedItem": { + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureIaaSVMProtectedItem" + } + ], + "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" + }, + "AzureIaaSVMErrorInfo": { + "description": "Azure IaaS VM workload-specific error information.", + "type": "object", + "properties": { + "errorCode": { + "format": "int32", + "description": "Error code.", + "type": "integer", + "readOnly": true + }, + "errorTitle": { + "description": "Title: Typically, the entity that the error pertains to.", + "type": "string", + "readOnly": true + }, + "errorString": { + "description": "Localized error string.", + "type": "string", + "readOnly": true + }, + "recommendations": { + "description": "List of localized recommendations for above error code.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "AzureIaaSVMHealthDetails": { + "description": "Azure IaaS VM workload-specific Health Details.", + "type": "object", + "properties": { + "code": { + "format": "int32", + "description": "Health Code", + "type": "integer", + "readOnly": true + }, + "title": { + "description": "Health Title", + "type": "string", + "readOnly": true + }, + "message": { + "description": "Health Message", + "type": "string", + "readOnly": true + }, + "recommendations": { + "description": "Health Recommended Actions", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "AzureIaaSVMJob": { + "description": "Azure IaaS VM workload-specific job object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "properties": { + "duration": { + "format": "duration", + "description": "Time elapsed during the execution of this job.", + "type": "string" + }, + "actionsInfo": { + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "type": "array", + "items": { + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "type": "string", + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + } + }, + "errorDetails": { + "description": "Error details on execution of this job.", + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMErrorInfo" + } + }, + "virtualMachineVersion": { + "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM.", + "type": "string" + }, + "extendedInfo": { + "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo", + "description": "Additional information for this job." + } + }, + "x-ms-discriminator-value": "AzureIaaSVMJob" + }, + "AzureIaaSVMJobExtendedInfo": { + "description": "Azure IaaS VM workload-specific additional information for job.", + "type": "object", + "properties": { + "tasksList": { + "description": "List of tasks associated with this job.", + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMJobTaskDetails" + } + }, + "propertyBag": { + "description": "Job properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "internalPropertyBag": { + "description": "Job internal properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "progressPercentage": { + "format": "double", + "description": "Indicates progress of the job. Null if it has not started or completed.", + "type": "number" + }, + "estimatedRemainingDuration": { + "description": "Time remaining for execution of this job.", + "type": "string" + }, + "dynamicErrorMessage": { + "description": "Non localized error message on job execution.", + "type": "string" + } + } + }, + "AzureIaaSVMJobTaskDetails": { + "description": "Azure IaaS VM workload-specific job task details.", + "type": "object", + "properties": { + "taskId": { + "description": "The task display name.", + "type": "string" + }, + "startTime": { + "format": "date-time", + "description": "The start time.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "The end time.", + "type": "string" + }, + "instanceId": { + "description": "The instanceId.", + "type": "string" + }, + "duration": { + "format": "duration", + "description": "Time elapsed for task.", + "type": "string" + }, + "status": { + "description": "The status.", + "type": "string" + }, + "progressPercentage": { + "format": "double", + "description": "Progress of the task.", + "type": "number" + }, + "taskExecutionDetails": { + "description": "Details about execution of the task.\r\neg: number of bytes transferred etc", + "type": "string" + } + } + }, + "AzureIaaSVMProtectedItem": { + "description": "IaaS VM workload-specific backup item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the VM represented by this backup item.", + "type": "string" + }, + "virtualMachineId": { + "description": "Fully qualified ARM ID of the virtual machine represented by this item.", + "type": "string" + }, + "protectionStatus": { + "description": "Backup status of this backup item.", + "type": "string" + }, + "protectionState": { + "description": "Backup state of this backup item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectionState", + "modelAsString": true + } + }, + "healthStatus": { + "description": "Health status of protected item", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ], + "type": "string", + "x-ms-enum": { + "name": "HealthStatus", + "modelAsString": true + } + }, + "healthDetails": { + "description": "Health details on this backup item.", + "type": "array", + "items": { + "$ref": "#/definitions/AzureIaaSVMHealthDetails" + } + }, + "lastBackupStatus": { + "description": "Last backup operation status.", + "type": "string" + }, + "lastBackupTime": { + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item.", + "type": "string" + }, + "protectedItemDataId": { + "description": "Data ID of the protected item.", + "type": "string" + }, + "extendedInfo": { + "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo", + "description": "Additional information for this backup item." + }, + "extendedProperties": { + "$ref": "#/definitions/ExtendedProperties" + } + }, + "x-ms-discriminator-value": "AzureIaaSVMProtectedItem" + }, + "AzureIaaSVMProtectedItemExtendedInfo": { + "description": "Additional information on Azure IaaS VM specific backup item.", + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "format": "date-time", + "description": "The oldest backup copy available for this backup item.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "Number of backup copies available for this backup item.", + "type": "integer" + }, + "policyInconsistent": { + "description": "Specifies if backup policy associated with the backup item is inconsistent.", + "type": "boolean" + } + } + }, + "AzureSqlProtectedItem": { + "description": "Azure SQL workload-specific backup item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "protectedItemDataId": { + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.", + "type": "string" + }, + "protectionState": { + "description": "Backup state of the backed up item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectedItemState", + "modelAsString": true + } + }, + "extendedInfo": { + "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo", + "description": "Additional information for this backup item." + } + }, + "x-ms-discriminator-value": "Microsoft.Sql/servers/databases" + }, + "AzureSqlProtectedItemExtendedInfo": { + "description": "Additional information on Azure Sql specific protected item.", + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "format": "date-time", + "description": "The oldest backup copy available for this item in the service.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "Number of available backup copies associated with this backup item.", + "type": "integer" + }, + "policyState": { + "description": "State of the backup policy associated with this backup item.", + "type": "string" + } + } + }, + "AzureStorageErrorInfo": { + "description": "Azure storage specific error information", + "type": "object", + "properties": { + "errorCode": { + "format": "int32", + "description": "Error code.", + "type": "integer" + }, + "errorString": { + "description": "Localized error string.", + "type": "string" + }, + "recommendations": { + "description": "List of localized recommendations for above error code.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AzureStorageJob": { + "description": "Azure storage specific job.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "properties": { + "duration": { + "format": "duration", + "description": "Time elapsed during the execution of this job.", + "type": "string" + }, + "actionsInfo": { + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "type": "array", + "items": { + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "type": "string", + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + } + }, + "errorDetails": { + "description": "Error details on execution of this job.", + "type": "array", + "items": { + "$ref": "#/definitions/AzureStorageErrorInfo" + } + }, + "storageAccountName": { + "description": "Specifies friendly name of the storage account.", + "type": "string" + }, + "storageAccountVersion": { + "description": "Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.", + "type": "string" + }, + "extendedInfo": { + "$ref": "#/definitions/AzureStorageJobExtendedInfo", + "description": "Additional information about the job." + } + }, + "x-ms-discriminator-value": "AzureStorageJob" + }, + "AzureStorageJobExtendedInfo": { + "description": "Azure Storage workload-specific additional information for job.", + "type": "object", + "properties": { + "tasksList": { + "description": "List of tasks for this job", + "type": "array", + "items": { + "$ref": "#/definitions/AzureStorageJobTaskDetails" + } + }, + "propertyBag": { + "description": "Job properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "dynamicErrorMessage": { + "description": "Non localized error message on job execution.", + "type": "string" + } + } + }, + "AzureStorageJobTaskDetails": { + "description": "Azure storage workload specific job task details.", + "type": "object", + "properties": { + "taskId": { + "description": "The task display name.", + "type": "string" + }, + "status": { + "description": "The status.", + "type": "string" + } + } + }, + "AzureVmWorkloadProtectedItem": { + "description": "Azure VM workload-specific protected item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the DB represented by this backup item.", + "type": "string" + }, + "serverName": { + "description": "Host/Cluster Name for instance or AG", + "type": "string" + }, + "parentName": { + "description": "Parent name of the DB such as Instance or Availability Group.", + "type": "string" + }, + "parentType": { + "description": "Parent type of protected item, example: for a DB, standalone server or distributed", + "type": "string" + }, + "protectionStatus": { + "description": "Backup status of this backup item.", + "type": "string" + }, + "protectionState": { + "description": "Backup state of this backup item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectionState", + "modelAsString": true + } + }, + "lastBackupStatus": { + "description": "Last backup operation status. Possible values: Healthy, Unhealthy.", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" + ], + "type": "string", + "x-ms-enum": { + "name": "LastBackupStatus", + "modelAsString": true + } + }, + "lastBackupTime": { + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item.", + "type": "string" + }, + "lastBackupErrorDetail": { + "$ref": "#/definitions/ErrorDetail", + "description": "Error details in last backup" + }, + "protectedItemDataSourceId": { + "description": "Data ID of the protected item.", + "type": "string" + }, + "protectedItemHealthStatus": { + "description": "Health status of the backup item, evaluated based on last heartbeat received", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "NotReachable", + "IRPending" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectedItemHealthStatus", + "modelAsString": true + } + }, + "extendedInfo": { + "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo", + "description": "Additional information for this backup item." + } + }, + "x-ms-discriminator-value": "AzureVmWorkloadProtectedItem" + }, + "AzureVmWorkloadProtectedItemExtendedInfo": { + "description": "Additional information on Azure Workload for SQL specific backup item.", + "type": "object", + "properties": { + "oldestRecoveryPoint": { + "format": "date-time", + "description": "The oldest backup copy available for this backup item.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "Number of backup copies available for this backup item.", + "type": "integer" + }, + "policyState": { + "description": "Indicates consistency of policy object and policy applied to this backup item.", + "type": "string" + } + } + }, + "AzureVmWorkloadSAPAseDatabaseProtectedItem": { + "description": "Azure VM workload-specific protected item representing SAP ASE Database.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + } + ], + "x-ms-discriminator-value": "AzureVmWorkloadSAPAseDatabase" + }, + "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { + "description": "Azure VM workload-specific protected item representing SAP HANA Database.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + } + ], + "x-ms-discriminator-value": "AzureVmWorkloadSAPHanaDatabase" + }, + "AzureVmWorkloadSQLDatabaseProtectedItem": { + "description": "Azure VM workload-specific protected item representing SQL Database.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + } + ], + "x-ms-discriminator-value": "AzureVmWorkloadSQLDatabase" + }, + "AzureWorkloadErrorInfo": { + "description": "Azure storage specific error information", + "type": "object", + "properties": { + "errorCode": { + "format": "int32", + "description": "Error code.", + "type": "integer" + }, + "errorString": { + "description": "Localized error string.", + "type": "string" + }, + "errorTitle": { + "description": "Title: Typically, the entity that the error pertains to.", + "type": "string" + }, + "recommendations": { + "description": "List of localized recommendations for above error code.", + "type": "array", + "items": { + "type": "string" + } + }, + "additionalDetails": { + "description": "Additional details for above error code.", + "type": "string" + } + } + }, + "AzureWorkloadJob": { + "description": "Azure storage specific job.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "properties": { + "workloadType": { + "description": "Workload type of the job", + "type": "string" + }, + "duration": { + "format": "duration", + "description": "Time elapsed during the execution of this job.", + "type": "string" + }, + "actionsInfo": { + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "type": "array", + "items": { + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "type": "string", + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + } + }, + "errorDetails": { + "description": "Error details on execution of this job.", + "type": "array", + "items": { + "$ref": "#/definitions/AzureWorkloadErrorInfo" + } + }, + "extendedInfo": { + "$ref": "#/definitions/AzureWorkloadJobExtendedInfo", + "description": "Additional information about the job." + } + }, + "x-ms-discriminator-value": "AzureWorkloadJob" + }, + "AzureWorkloadJobExtendedInfo": { + "description": "Azure VM workload-specific additional information for job.", + "type": "object", + "properties": { + "tasksList": { + "description": "List of tasks for this job", + "type": "array", + "items": { + "$ref": "#/definitions/AzureWorkloadJobTaskDetails" + } + }, + "propertyBag": { + "description": "Job properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "dynamicErrorMessage": { + "description": "Non localized error message on job execution.", + "type": "string" + } + } + }, + "AzureWorkloadJobTaskDetails": { + "description": "Azure VM workload specific job task details.", + "type": "object", + "properties": { + "taskId": { + "description": "The task display name.", + "type": "string" + }, + "status": { + "description": "The status.", + "type": "string" + } + } + }, + "AzureWorkloadPointInTimeRecoveryPoint": { + "description": "Recovery point specific to PointInTime", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "properties": { + "timeRanges": { + "description": "List of log ranges", + "type": "array", + "items": { + "$ref": "#/definitions/PointInTimeRange" + } + } + }, + "x-ms-discriminator-value": "AzureWorkloadPointInTimeRecoveryPoint" + }, + "AzureWorkloadPointInTimeRestoreRequest": { + "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "properties": { + "pointInTime": { + "format": "date-time", + "description": "PointInTime value", + "type": "string" + } + }, + "x-ms-discriminator-value": "AzureWorkloadPointInTimeRestoreRequest" + }, + "AzureWorkloadRecoveryPoint": { + "description": "Workload specific recovery point, specifically encapsulates full/diff recovery point", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" + } + ], + "properties": { + "recoveryPointTimeInUTC": { + "format": "date-time", + "description": "UTC time at which recovery point was created", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Type of restore point", + "enum": [ + "Invalid", + "Full", + "Log", + "Differential" + ], + "type": "string", + "x-ms-enum": { + "name": "RestorePointType", + "modelAsString": true + }, + "readOnly": true + } + }, + "x-ms-discriminator-value": "AzureWorkloadRecoveryPoint" + }, + "AzureWorkloadRestoreRequest": { + "description": "AzureWorkload-specific restore.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RestoreRequest" + } + ], + "properties": { + "recoveryType": { + "description": "Type of this recovery.", + "enum": [ + "Invalid", + "OriginalLocation", + "AlternateLocation", + "RestoreDisks", + "Offline" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryType", + "modelAsString": true + } + }, + "sourceResourceId": { + "description": "Fully qualified ARM ID of the VM on which workload that was running is being recovered.", + "type": "string" + }, + "propertyBag": { + "description": "Workload specific property bag.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "targetInfo": { + "$ref": "#/definitions/TargetRestoreInfo", + "description": "Details of target database" + }, + "recoveryMode": { + "description": "Defines whether the current recovery mode is file restore or database restore", + "enum": [ + "Invalid", + "FileRecovery", + "WorkloadRecovery" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryMode", + "modelAsString": true + } + } + }, + "x-ms-discriminator-value": "AzureWorkloadRestoreRequest" + }, + "AzureWorkloadSAPHanaPointInTimeRecoveryPoint": { + "description": "Recovery point specific to PointInTime in SAPHana", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRecoveryPoint" + }, + "AzureWorkloadSAPHanaPointInTimeRestoreRequest": { + "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest" + } + ], + "properties": { + "pointInTime": { + "format": "date-time", + "description": "PointInTime value", + "type": "string" + } + }, + "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreRequest" + }, + "AzureWorkloadSAPHanaRecoveryPoint": { + "description": "SAPHana specific recoverypoint, specifically encapsulates full/diff recoverypoints", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaRecoveryPoint" + }, + "AzureWorkloadSAPHanaRestoreRequest": { + "description": "AzureWorkload SAP Hana-specific restore.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreRequest" + }, + "AzureWorkloadSQLPointInTimeRecoveryPoint": { + "description": "Recovery point specific to PointInTime", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLRecoveryPoint" + } + ], + "properties": { + "timeRanges": { + "description": "List of log ranges", + "type": "array", + "items": { + "$ref": "#/definitions/PointInTimeRange" + } + } + }, + "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRecoveryPoint" + }, + "AzureWorkloadSQLPointInTimeRestoreRequest": { + "description": "AzureWorkload SQL -specific restore. Specifically for PointInTime/Log restore", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest" + } + ], + "properties": { + "pointInTime": { + "format": "date-time", + "description": "PointInTime value", + "type": "string" + } + }, + "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreRequest" + }, + "AzureWorkloadSQLRecoveryPoint": { + "description": "SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint along with extended info", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "properties": { + "extendedInfo": { + "$ref": "#/definitions/AzureWorkloadSQLRecoveryPointExtendedInfo", + "description": "Extended Info that provides data directory details. Will be populated in two cases:\r\nWhen a specific recovery point is accessed using GetRecoveryPoint\r\nOr when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter" + } + }, + "x-ms-discriminator-value": "AzureWorkloadSQLRecoveryPoint" + }, + "AzureWorkloadSQLRecoveryPointExtendedInfo": { + "description": "Extended info class details", + "type": "object", + "properties": { + "dataDirectoryTimeInUTC": { + "format": "date-time", + "description": "UTC time at which data directory info was captured", + "type": "string", + "readOnly": true + }, + "dataDirectoryPaths": { + "description": "List of data directory paths during restore operation.", + "type": "array", + "items": { + "$ref": "#/definitions/SQLDataDirectory" + }, + "readOnly": true + } + } + }, + "AzureWorkloadSQLRestoreRequest": { + "description": "AzureWorkload SQL -specific restore. Specifically for full/diff restore", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "properties": { + "shouldUseAlternateTargetLocation": { + "description": "Default option set to true. If this is set to false, alternate data directory must be provided", + "type": "boolean" + }, + "isNonRecoverable": { + "description": "SQL specific property where user can chose to set no-recovery when restore operation is tried", + "type": "boolean" + }, + "alternateDirectoryPaths": { + "description": "Data directory details", + "type": "array", + "items": { + "$ref": "#/definitions/SQLDataDirectoryMapping" + } + } + }, + "x-ms-discriminator-value": "AzureWorkloadSQLRestoreRequest" + }, + "BEKDetails": { + "description": "BEK is bitlocker encryption key.", + "type": "object", + "properties": { + "secretUrl": { + "description": "Secret is BEK.", + "type": "string" + }, + "secretVaultId": { + "description": "ID of the Key Vault where this Secret is stored.", + "type": "string" + }, + "secretData": { + "description": "BEK data.", + "type": "string" + } + } + }, + "BMSRPQueryObject": { + "description": "Filters to list backup copies.", + "type": "object", + "properties": { + "startDate": { + "format": "date-time", + "description": "Backup copies created after this time.", + "type": "string" + }, + "endDate": { + "format": "date-time", + "description": "Backup copies created before this time.", + "type": "string" + }, + "restorePointQueryType": { + "description": "RestorePoint type", + "enum": [ + "Invalid", + "Full", + "Log", + "Differential", + "FullAndDifferential", + "All" + ], + "type": "string", + "x-ms-enum": { + "name": "RestorePointQueryType", + "modelAsString": true + } + }, + "extendedInfo": { + "description": "In Get Recovery Point, it tells whether extended information about recovery point is asked.", + "type": "boolean" + } + } + }, + "ClientScriptForConnect": { + "description": "Client script details for file / folder restore.", + "type": "object", + "properties": { + "scriptContent": { + "description": "File content of the client script for file / folder restore.", + "type": "string" + }, + "scriptExtension": { + "description": "File extension of the client script for file / folder restore - .ps1 , .sh , etc.", + "type": "string" + }, + "osType": { + "description": "OS type - Windows, Linux etc. for which this file / folder restore client script works.", + "type": "string" + }, + "url": { + "description": "URL of Executable from where to source the content. If this is not null then ScriptContent should not be used", + "type": "string" + }, + "scriptNameSuffix": { + "description": "Mandatory suffix that should be added to the name of script that is given for download to user.\r\nIf its null or empty then , ignore it.", + "type": "string" + } + } + }, + "CrossRegionRestoreRequest": { + "type": "object", + "properties": { + "crossRegionRestoreAccessDetails": { + "$ref": "#/definitions/CrrAccessToken", + "description": "Access details for cross region restore" + }, + "restoreRequest": { + "$ref": "#/definitions/RestoreRequest", + "description": "Request object for triggering restore" + } + } + }, + "CrossRegionRestoreRequestResource": { + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/CrossRegionRestoreRequest", + "description": "CrossRegionRestoreRequestResource properties" + } + } + }, + "CrrAccessToken": { + "description": "Container level access token for CRR", + "type": "object", + "properties": { + "accessTokenString": { + "description": "Access token used for authentication", + "type": "string" + }, + "subscriptionId": { + "description": "Subscription Id of the source vault", + "type": "string" + }, + "resourceGroupName": { + "description": "Resource Group name of the source vault", + "type": "string" + }, + "resourceName": { + "description": "Resource Name of the source vault", + "type": "string" + }, + "resourceId": { + "description": "Resource Id of the source vault", + "type": "string" + }, + "recoveryPointId": { + "description": "Recovery Point Id", + "type": "string" + }, + "recoveryPointTime": { + "description": "Recovery Point Time", + "type": "string" + }, + "containerName": { + "description": "Container Unique name", + "type": "string" + }, + "containerType": { + "description": "Container Type", + "type": "string" + }, + "backupManagementType": { + "description": "Backup Management Type", + "type": "string" + }, + "datasourceType": { + "description": "Datasource Type", + "type": "string" + }, + "datasourceName": { + "description": "Datasource Friendly Name", + "type": "string" + }, + "datasourceId": { + "description": "Datasource Id", + "type": "string" + }, + "datasourceContainerName": { + "description": "Datasource Container Unique Name", + "type": "string" + }, + "coordinatorServiceStampId": { + "description": "CoordinatorServiceStampId to be used by BCM in restore call", + "type": "string" + }, + "coordinatorServiceStampUri": { + "description": "CoordinatorServiceStampUri to be used by BCM in restore call", + "type": "string" + }, + "protectionServiceStampId": { + "description": "ProtectionServiceStampId to be used by BCM in restore call", + "type": "string" + }, + "protectionServiceStampUri": { + "description": "ProtectionServiceStampUri to be used by BCM in restore call", + "type": "string" + }, + "tokenExtendedInformation": { + "description": "Extended Information about the token like FileSpec etc.", + "type": "string" + } + } + }, + "CrrAccessTokenResource": { + "description": "Container level access token for CRR", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/CrrAccessToken", + "description": "CrrAccessTokenResource properties" + } + } + }, + "DiskExclusionProperties": { + "type": "object", + "properties": { + "diskLunList": { + "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.", + "type": "array", + "items": { + "format": "int32", + "type": "integer" + } + }, + "isInclusionList": { + "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup.", + "type": "boolean" + } + } + }, + "DiskInformation": { + "description": "Disk information", + "type": "object", + "properties": { + "lun": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + } + } + }, + "DpmErrorInfo": { + "description": "DPM workload-specific error information.", + "type": "object", + "properties": { + "errorString": { + "description": "Localized error string.", + "type": "string" + }, + "recommendations": { + "description": "List of localized recommendations for above error code.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DpmJob": { + "description": "DPM workload-specific job object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "properties": { + "duration": { + "format": "duration", + "description": "Time elapsed for job.", + "type": "string" + }, + "dpmServerName": { + "description": "DPM server name managing the backup item or backup job.", + "type": "string" + }, + "containerName": { + "description": "Name of cluster/server protecting current backup item, if any.", + "type": "string" + }, + "containerType": { + "description": "Type of container.", + "type": "string" + }, + "workloadType": { + "description": "Type of backup item.", + "type": "string" + }, + "actionsInfo": { + "description": "The state/actions applicable on this job like cancel/retry.", + "type": "array", + "items": { + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "type": "string", + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + } + }, + "errorDetails": { + "description": "The errors.", + "type": "array", + "items": { + "$ref": "#/definitions/DpmErrorInfo" + } + }, + "extendedInfo": { + "$ref": "#/definitions/DpmJobExtendedInfo", + "description": "Additional information for this job." + } + }, + "x-ms-discriminator-value": "DpmJob" + }, + "DpmJobExtendedInfo": { + "description": "Additional information on the DPM workload-specific job.", + "type": "object", + "properties": { + "tasksList": { + "description": "List of tasks associated with this job.", + "type": "array", + "items": { + "$ref": "#/definitions/DpmJobTaskDetails" + } + }, + "propertyBag": { + "description": "The job properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "dynamicErrorMessage": { + "description": "Non localized error message on job execution.", + "type": "string" + } + } + }, + "DpmJobTaskDetails": { + "description": "DPM workload-specific job task details.", + "type": "object", + "properties": { + "taskId": { + "description": "The task display name.", + "type": "string" + }, + "startTime": { + "format": "date-time", + "description": "The start time.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "The end time.", + "type": "string" + }, + "duration": { + "format": "duration", + "description": "Time elapsed for task.", + "type": "string" + }, + "status": { + "description": "The status.", + "type": "string" + } + } + }, + "DPMProtectedItem": { + "description": "Additional information on Backup engine specific backup item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the managed item", + "type": "string" + }, + "backupEngineName": { + "description": "Backup Management server protecting this backup item", + "type": "string" + }, + "protectionState": { + "description": "Protection state of the backup engine", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectedItemState", + "modelAsString": true + } + }, + "extendedInfo": { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo", + "description": "Extended info of the backup item." + } + }, + "x-ms-discriminator-value": "DPMProtectedItem" + }, + "DPMProtectedItemExtendedInfo": { + "description": "Additional information of DPM Protected item.", + "type": "object", + "properties": { + "protectableObjectLoadPath": { + "description": "Attribute to provide information on various DBs.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "protected": { + "description": "To check if backup item is disk protected.", + "type": "boolean" + }, + "isPresentOnCloud": { + "description": "To check if backup item is cloud protected.", + "type": "boolean" + }, + "lastBackupStatus": { + "description": "Last backup status information on backup item.", + "type": "string" + }, + "lastRefreshedAt": { + "format": "date-time", + "description": "Last refresh time on backup item.", + "type": "string" + }, + "oldestRecoveryPoint": { + "format": "date-time", + "description": "Oldest cloud recovery point time.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "cloud recovery point count.", + "type": "integer" + }, + "onPremiseOldestRecoveryPoint": { + "format": "date-time", + "description": "Oldest disk recovery point time.", + "type": "string" + }, + "onPremiseLatestRecoveryPoint": { + "format": "date-time", + "description": "latest disk recovery point time.", + "type": "string" + }, + "onPremiseRecoveryPointCount": { + "format": "int32", + "description": "disk recovery point count.", + "type": "integer" + }, + "isCollocated": { + "description": "To check if backup item is collocated.", + "type": "boolean" + }, + "protectionGroupName": { + "description": "Protection group name of the backup item.", + "type": "string" + }, + "diskStorageUsedInBytes": { + "description": "Used Disk storage in bytes.", + "type": "string" + }, + "totalDiskStorageSizeInBytes": { + "description": "total Disk storage in bytes.", + "type": "string" + } + } + }, + "EncryptionDetails": { + "description": "Details needed if the VM was encrypted at the time of backup.", + "type": "object", + "properties": { + "encryptionEnabled": { + "description": "Identifies whether this backup copy represents an encrypted VM at the time of backup.", + "type": "boolean" + }, + "kekUrl": { + "description": "Key Url.", + "type": "string" + }, + "secretKeyUrl": { + "description": "Secret Url.", + "type": "string" + }, + "kekVaultId": { + "description": "ID of Key Vault where KEK is stored.", + "type": "string" + }, + "secretKeyVaultId": { + "description": "ID of Key Vault where Secret is stored.", + "type": "string" + } + } + }, + "ErrorDetail": { + "description": "Error Detail class which encapsulates Code, Message and Recommendations.", + "type": "object", + "properties": { + "code": { + "description": "Error code.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "Error Message related to the Code.", + "type": "string", + "readOnly": true + }, + "recommendations": { + "description": "List of recommendation strings.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "ExtendedProperties": { + "description": "Extended Properties for Azure IaasVM Backup.", + "type": "object", + "properties": { + "diskExclusionProperties": { + "$ref": "#/definitions/DiskExclusionProperties", + "description": "Extended Properties for Disk Exclusion." + } + } + }, + "GenericProtectedItem": { + "description": "Base class for backup items.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the container.", + "type": "string" + }, + "policyState": { + "description": "Indicates consistency of policy object and policy applied to this backup item.", + "type": "string" + }, + "protectionState": { + "description": "Backup state of this backup item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused" + ], + "type": "string", + "x-ms-enum": { + "name": "ProtectionState", + "modelAsString": true + } + }, + "protectedItemId": { + "format": "int64", + "description": "Data Plane Service ID of the protected item.", + "type": "integer" + }, + "sourceAssociations": { + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "fabricName": { + "description": "Name of this backup item's fabric.", + "type": "string" + } + }, + "x-ms-discriminator-value": "GenericProtectedItem" + }, + "GenericRecoveryPoint": { + "description": "Generic backup copy.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of the backup copy.", + "type": "string" + }, + "recoveryPointType": { + "description": "Type of the backup copy.", + "type": "string" + }, + "recoveryPointTime": { + "format": "date-time", + "description": "Time at which this backup copy was created.", + "type": "string" + }, + "recoveryPointAdditionalInfo": { + "description": "Additional information associated with this backup copy.", + "type": "string" + } + }, + "x-ms-discriminator-value": "GenericRecoveryPoint" + }, + "IaasVMRecoveryPoint": { + "description": "IaaS VM workload specific backup copy.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" + } + ], + "properties": { + "recoveryPointType": { + "description": "Type of the backup copy.", + "type": "string", + "readOnly": true + }, + "recoveryPointTime": { + "format": "date-time", + "description": "Time at which this backup copy was created.", + "type": "string", + "readOnly": true + }, + "recoveryPointAdditionalInfo": { + "description": "Additional information associated with this backup copy.", + "type": "string", + "readOnly": true + }, + "sourceVMStorageType": { + "description": "Storage type of the VM whose backup copy is created.", + "type": "string", + "readOnly": true + }, + "isSourceVMEncrypted": { + "description": "Identifies whether the VM was encrypted when the backup copy is created.", + "type": "boolean", + "readOnly": true + }, + "keyAndSecret": { + "$ref": "#/definitions/KeyAndSecretDetails", + "description": "Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true." + }, + "isInstantIlrSessionActive": { + "description": "Is the session to recover items from this backup copy still active.", + "type": "boolean" + }, + "recoveryPointTierDetails": { + "description": "Recovery point tier information.", + "type": "array", + "items": { + "$ref": "#/definitions/RecoveryPointTierInformation" + } + }, + "isManagedVirtualMachine": { + "description": "Whether VM is with Managed Disks", + "type": "boolean" + }, + "virtualMachineSize": { + "description": "Virtual Machine Size", + "type": "string" + }, + "originalStorageAccountOption": { + "description": "Original Storage Account Option", + "type": "boolean" + }, + "osType": { + "description": "OS type", + "type": "string" + }, + "recoveryPointDiskConfiguration": { + "$ref": "#/definitions/RecoveryPointDiskConfiguration", + "description": "Disk configuration" + } + }, + "x-ms-discriminator-value": "IaasVMRecoveryPoint" + }, + "IaasVMRestoreRequest": { + "description": "IaaS VM workload-specific restore.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RestoreRequest" + } + ], + "properties": { + "recoveryPointId": { + "description": "ID of the backup copy to be recovered.", + "type": "string" + }, + "recoveryType": { + "description": "Type of this recovery.", + "enum": [ + "Invalid", + "OriginalLocation", + "AlternateLocation", + "RestoreDisks", + "Offline" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryType", + "modelAsString": true + } + }, + "sourceResourceId": { + "description": "Fully qualified ARM ID of the VM which is being recovered.", + "type": "string" + }, + "targetVirtualMachineId": { + "description": "This is the complete ARM Id of the VM that will be created.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}", + "type": "string" + }, + "targetResourceGroupId": { + "description": "This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}", + "type": "string" + }, + "storageAccountId": { + "description": "Fully qualified ARM ID of the storage account to which the VM has to be restored.", + "type": "string" + }, + "virtualNetworkId": { + "description": "This is the virtual network Id of the vnet that will be attached to the virtual machine.\r\nUser will be validated for join action permissions in the linked access.", + "type": "string" + }, + "subnetId": { + "description": "Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be\r\n{VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent\r\nthe subnet.", + "type": "string" + }, + "targetDomainNameId": { + "description": "Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic\r\nVirtual Machines.", + "type": "string" + }, + "region": { + "description": "Region in which the virtual machine is restored.", + "type": "string" + }, + "affinityGroup": { + "description": "Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.", + "type": "string" + }, + "createNewCloudService": { + "description": "Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same\r\ncloud service as it was at the time of backup.", + "type": "boolean" + }, + "originalStorageAccountOption": { + "description": "Original Storage Account Option", + "type": "boolean" + }, + "encryptionDetails": { + "$ref": "#/definitions/EncryptionDetails", + "description": "Details needed if the VM was encrypted at the time of backup." + }, + "restoreDiskLunList": { + "description": "List of Disk LUNs for partial restore", + "type": "array", + "items": { + "format": "int32", + "type": "integer" + } + } + }, + "x-ms-discriminator-value": "IaasVMRestoreRequest" + }, + "InstantItemRecoveryTarget": { + "description": "Target details for file / folder restore.", + "type": "object", + "properties": { + "clientScripts": { + "description": "List of client scripts.", + "type": "array", + "items": { + "$ref": "#/definitions/ClientScriptForConnect" + } + } + } + }, + "Job": { + "description": "Defines workload agnostic properties for a job.", + "required": [ + "jobType" + ], + "type": "object", + "properties": { + "entityFriendlyName": { + "description": "Friendly name of the entity on which the current job is executing.", + "type": "string" + }, + "backupManagementType": { + "description": "Backup management type to execute the current job.", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ], + "type": "string", + "x-ms-enum": { + "name": "BackupManagementType", + "modelAsString": true + } + }, + "operation": { + "description": "The operation name.", + "type": "string" + }, + "status": { + "description": "Job status.", + "type": "string" + }, + "startTime": { + "format": "date-time", + "description": "The start time.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "The end time.", + "type": "string" + }, + "activityId": { + "description": "ActivityId of job.", + "type": "string" + }, + "jobType": { + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "type": "string" + } + }, + "discriminator": "jobType" + }, + "JobResource": { + "description": "Defines workload agnostic properties for a job.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/Job", + "description": "JobResource properties" + } + } + }, + "JobResourceList": { + "description": "List of Job resources", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ], + "properties": { + "value": { + "description": "List of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/JobResource" + } + } + } + }, + "KEKDetails": { + "description": "KEK is encryption key for BEK.", + "type": "object", + "properties": { + "keyUrl": { + "description": "Key is KEK.", + "type": "string" + }, + "keyVaultId": { + "description": "Key Vault ID where this Key is stored.", + "type": "string" + }, + "keyBackupData": { + "description": "KEK data.", + "type": "string" + } + } + }, + "KeyAndSecretDetails": { + "description": "BEK is bitlocker key.\r\nKEK is encryption key for BEK\r\nIf the VM was encrypted then we will store following details :\r\n1. Secret(BEK) - Url + Backup Data + vaultId.\r\n2. Key(KEK) - Url + Backup Data + vaultId.\r\n3. EncryptionMechanism\r\nBEK and KEK can potentially have different vault ids.", + "type": "object", + "properties": { + "kekDetails": { + "$ref": "#/definitions/KEKDetails", + "description": "KEK is encryption key for BEK." + }, + "bekDetails": { + "$ref": "#/definitions/BEKDetails", + "description": "BEK is bitlocker encryption key." + }, + "encryptionMechanism": { + "description": "Encryption mechanism: None/ SinglePass/ DoublePass", + "type": "string" + } + } + }, + "MabErrorInfo": { + "description": "MAB workload-specific error information.", + "type": "object", + "properties": { + "errorString": { + "description": "Localized error string.", + "type": "string", + "readOnly": true + }, + "recommendations": { + "description": "List of localized recommendations.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "MabFileFolderProtectedItem": { + "description": "MAB workload-specific backup item.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "properties": { + "friendlyName": { + "description": "Friendly name of this backup item.", + "type": "string" + }, + "computerName": { + "description": "Name of the computer associated with this backup item.", + "type": "string" + }, + "lastBackupStatus": { + "description": "Status of last backup operation.", + "type": "string" + }, + "lastBackupTime": { + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item.", + "type": "string" + }, + "protectionState": { + "description": "Protected, ProtectionStopped, IRPending or ProtectionError", + "type": "string" + }, + "deferredDeleteSyncTimeInUTC": { + "format": "int64", + "description": "Sync time for deferred deletion in UTC", + "type": "integer" + }, + "extendedInfo": { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo", + "description": "Additional information with this backup item." + } + }, + "x-ms-discriminator-value": "MabFileFolderProtectedItem" + }, + "MabFileFolderProtectedItemExtendedInfo": { + "description": "Additional information on the backed up item.", + "type": "object", + "properties": { + "lastRefreshedAt": { + "format": "date-time", + "description": "Last time when the agent data synced to service.", + "type": "string" + }, + "oldestRecoveryPoint": { + "format": "date-time", + "description": "The oldest backup copy available.", + "type": "string" + }, + "recoveryPointCount": { + "format": "int32", + "description": "Number of backup copies associated with the backup item.", + "type": "integer" + } + } + }, + "MabJob": { + "description": "MAB workload-specific job.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "properties": { + "duration": { + "format": "duration", + "description": "Time taken by job to run.", + "type": "string" + }, + "actionsInfo": { + "description": "The state/actions applicable on jobs like cancel/retry.", + "type": "array", + "items": { + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "type": "string", + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + } + }, + "mabServerName": { + "description": "Name of server protecting the DS.", + "type": "string" + }, + "mabServerType": { + "description": "Server type of MAB container.", + "enum": [ + "Invalid", + "Unknown", + "IaasVMContainer", + "IaasVMServiceContainer", + "DPMContainer", + "AzureBackupServerContainer", + "MABContainer", + "Cluster", + "AzureSqlContainer", + "Windows", + "VCenter", + "VMAppContainer", + "SQLAGWorkLoadContainer", + "StorageContainer", + "GenericContainer" + ], + "type": "string", + "x-ms-enum": { + "name": "MabServerType", + "modelAsString": true + } + }, + "workloadType": { + "description": "Workload type of backup item.", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ], + "type": "string", + "x-ms-enum": { + "name": "WorkloadType", + "modelAsString": true + } + }, + "errorDetails": { + "description": "The errors.", + "type": "array", + "items": { + "$ref": "#/definitions/MabErrorInfo" + } + }, + "extendedInfo": { + "$ref": "#/definitions/MabJobExtendedInfo", + "description": "Additional information on the job." + } + }, + "x-ms-discriminator-value": "MabJob" + }, + "MabJobExtendedInfo": { + "description": "Additional information for the MAB workload-specific job.", + "type": "object", + "properties": { + "tasksList": { + "description": "List of tasks for this job.", + "type": "array", + "items": { + "$ref": "#/definitions/MabJobTaskDetails" + } + }, + "propertyBag": { + "description": "The job properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "dynamicErrorMessage": { + "description": "Non localized error message specific to this job.", + "type": "string" + } + } + }, + "MabJobTaskDetails": { + "description": "MAB workload-specific job task details.", + "type": "object", + "properties": { + "taskId": { + "description": "The task display name.", + "type": "string" + }, + "startTime": { + "format": "date-time", + "description": "The start time.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "The end time.", + "type": "string" + }, + "duration": { + "format": "duration", + "description": "Time elapsed for task.", + "type": "string" + }, + "status": { + "description": "The status.", + "type": "string" + } + } + }, + "OperationStatus": { + "description": "Operation status.", + "type": "object", + "properties": { + "id": { + "description": "ID of the operation.", + "type": "string" + }, + "name": { + "description": "Name of the operation.", + "type": "string" + }, + "status": { + "description": "Operation status.", + "enum": [ + "Invalid", + "InProgress", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string", + "x-ms-enum": { + "name": "OperationStatusValues", + "modelAsString": true + } + }, + "startTime": { + "format": "date-time", + "description": "Operation start time. Format: ISO-8601.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "Operation end time. Format: ISO-8601.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/OperationStatusError", + "description": "Error information related to this operation." + }, + "properties": { + "$ref": "#/definitions/OperationStatusExtendedInfo", + "description": "Additional information associated with this operation." + } + } + }, + "OperationStatusError": { + "description": "Error information associated with operation status call.", + "type": "object", + "properties": { + "code": { + "description": "Error code of the operation failure.", + "type": "string" + }, + "message": { + "description": "Error message displayed if the operation failure.", + "type": "string" + } + } + }, + "OperationStatusExtendedInfo": { + "description": "Base class for additional information of operation status.", + "required": [ + "objectType" + ], + "type": "object", + "properties": { + "objectType": { + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "type": "string" + } + }, + "discriminator": "objectType" + }, + "OperationStatusJobExtendedInfo": { + "description": "Operation status job extended info.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OperationStatusExtendedInfo" + } + ], + "properties": { + "jobId": { + "description": "ID of the job created for this protected item.", + "type": "string" + } + }, + "x-ms-discriminator-value": "OperationStatusJobExtendedInfo" + }, + "OperationStatusJobsExtendedInfo": { + "description": "Operation status extended info for list of jobs.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OperationStatusExtendedInfo" + } + ], + "properties": { + "jobIds": { + "description": "IDs of the jobs created for the protected item.", + "type": "array", + "items": { + "type": "string" + } + }, + "failedJobsError": { + "description": "Stores all the failed jobs along with the corresponding error codes.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "x-ms-discriminator-value": "OperationStatusJobsExtendedInfo" + }, + "OperationStatusProvisionILRExtendedInfo": { + "description": "Operation status extended info for ILR provision action.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OperationStatusExtendedInfo" + } + ], + "properties": { + "recoveryTarget": { + "$ref": "#/definitions/InstantItemRecoveryTarget", + "description": "Target details for file / folder restore." + } + }, + "x-ms-discriminator-value": "OperationStatusProvisionILRExtendedInfo" + }, + "OperationStatusRecoveryPointExtendedInfo": { + "description": "Operation status extended info for Updated Recovery Point.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OperationStatusExtendedInfo" + } + ], + "properties": { + "updatedRecoveryPoint": { + "$ref": "#/definitions/RecoveryPoint", + "description": "Recovery Point info with updated source snapshot URI" + }, + "deletedBackupItemVersion": { + "description": "In case the share is in soft-deleted state, populate this field with deleted backup item", + "type": "string" + } + }, + "x-ms-discriminator-value": "OperationStatusRecoveryPointExtendedInfo" + }, + "PointInTimeRange": { + "description": "Provides details for log ranges", + "type": "object", + "properties": { + "startTime": { + "format": "date-time", + "description": "Start time of the time range for log recovery.", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "End time of the time range for log recovery.", + "type": "string" + } + } + }, + "ProtectedItem": { + "description": "Base class for backup items.", + "type": "object", + "required": [ + "protectedItemType" + ], + "properties": { + "protectedItemType": { + "description": "backup item type.", + "type": "string" + }, + "backupManagementType": { + "description": "Type of backup management for the backed up item.", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ], + "type": "string", + "x-ms-enum": { + "name": "BackupManagementType", + "modelAsString": true + } + }, + "workloadType": { + "description": "Type of workload this item represents.", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ], + "type": "string", + "x-ms-enum": { + "name": "DataSourceType", + "modelAsString": true + } + }, + "containerName": { + "description": "Unique name of container", + "type": "string" + }, + "sourceResourceId": { + "description": "ARM ID of the resource to be backed up.", + "type": "string" + }, + "policyId": { + "description": "ID of the backup policy with which this item is backed up.", + "type": "string" + }, + "lastRecoveryPoint": { + "format": "date-time", + "description": "Timestamp when the last (latest) backup copy was created for this backup item.", + "type": "string" + }, + "backupSetName": { + "description": "Name of the backup set the backup item belongs to", + "type": "string" + }, + "createMode": { + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source.", + "enum": [ + "Invalid", + "Default", + "Recover" + ], + "type": "string", + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": true + } + }, + "deferredDeleteTimeInUTC": { + "format": "date-time", + "description": "Time for deferred deletion in UTC", + "type": "string" + }, + "isScheduledForDeferredDelete": { + "description": "Flag to identify whether the DS is scheduled for deferred delete", + "type": "boolean" + }, + "deferredDeleteTimeRemaining": { + "description": "Time remaining before the DS marked for deferred delete is permanently deleted", + "type": "string" + }, + "isDeferredDeleteScheduleUpcoming": { + "description": "Flag to identify whether the deferred deleted DS is to be purged soon", + "type": "boolean" + }, + "isRehydrate": { + "description": "Flag to identify that deferred deleted DS is to be moved into Pause state", + "type": "boolean" + } + }, + "discriminator": "protectedItemType" + }, + "ProtectedItemQueryObject": { + "description": "Filters to list backup items.", + "type": "object", + "properties": { + "healthState": { + "description": "Health State for the backed up item.", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" + ], + "type": "string", + "x-ms-enum": { + "name": "HealthState", + "modelAsString": true + } + }, + "backupManagementType": { + "description": "Backup management type for the backed up item.", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" + ], + "type": "string", + "x-ms-enum": { + "name": "BackupManagementType", + "modelAsString": true + } + }, + "itemType": { + "description": "Type of workload this item represents.", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase" + ], + "type": "string", + "x-ms-enum": { + "name": "DataSourceType", + "modelAsString": true + } + }, + "policyName": { + "description": "Backup policy name associated with the backup item.", + "type": "string" + }, + "containerName": { + "description": "Name of the container.", + "type": "string" + }, + "backupEngineName": { + "description": "Backup Engine name", + "type": "string" + }, + "friendlyName": { + "description": "Friendly name of protected item", + "type": "string" + }, + "fabricName": { + "description": "Name of the fabric.", + "type": "string" + }, + "backupSetName": { + "description": "Name of the backup set.", + "type": "string" + } + } + }, + "ProtectedItemResource": { + "description": "Base class for backup items.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ProtectedItem", + "description": "ProtectedItemResource properties" + } + } + }, + "ProtectedItemResourceList": { + "description": "List of ProtectedItem resources", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ], + "properties": { + "value": { + "description": "List of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ProtectedItemResource" + } + } + } + }, + "RecoveryPoint": { + "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", + "required": [ + "objectType" + ], + "type": "object", + "properties": { + "objectType": { + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "type": "string" + } + }, + "discriminator": "objectType" + }, + "RecoveryPointDiskConfiguration": { + "description": "Disk configuration", + "type": "object", + "properties": { + "numberOfDisksIncludedInBackup": { + "format": "int32", + "description": "Number of disks included in backup", + "type": "integer" + }, + "numberOfDisksAttachedToVm": { + "format": "int32", + "description": "Number of disks attached to the VM", + "type": "integer" + }, + "includedDiskList": { + "description": "Information of disks included in backup", + "type": "array", + "items": { + "$ref": "#/definitions/DiskInformation" + } + }, + "excludedDiskList": { + "description": "Information of disks excluded from backup", + "type": "array", + "items": { + "$ref": "#/definitions/DiskInformation" + } + } + } + }, + "RecoveryPointResource": { + "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/RecoveryPoint", + "description": "RecoveryPointResource properties" + } + } + }, + "RecoveryPointResourceList": { + "description": "List of RecoveryPoint resources", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ], + "properties": { + "value": { + "description": "List of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/RecoveryPointResource" + } + } + } + }, + "RecoveryPointTierInformation": { + "description": "Recovery point tier information.", + "type": "object", + "properties": { + "type": { + "description": "Recovery point tier type.", + "enum": [ + "Invalid", + "InstantRP", + "HardenedRP" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryPointTierType", + "modelAsString": false + } + }, + "status": { + "description": "Recovery point tier status.", + "enum": [ + "Invalid", + "Valid", + "Disabled", + "Deleted" + ], + "type": "string", + "x-ms-enum": { + "name": "RecoveryPointTierStatus", + "modelAsString": false + } + } + } + }, + "Resource": { + "description": "ARM Resource.", + "type": "object", + "properties": { + "id": { + "description": "Resource Id represents the complete path to the resource.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "Resource name associated with the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...", + "type": "string", + "readOnly": true + }, + "location": { + "description": "Resource location.", + "type": "string" + }, + "tags": { + "description": "Resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "eTag": { + "description": "Optional ETag.", + "type": "string" + } + }, + "x-ms-azure-resource": true + }, + "ResourceList": { + "description": "Base for all lists of resources.", + "type": "object", + "properties": { + "nextLink": { + "description": "The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.", + "type": "string" + } + } + }, + "RestoreFileSpecs": { + "description": "Restore file specs like file path, type and target folder path info.", + "type": "object", + "properties": { + "path": { + "description": "Source File/Folder path", + "type": "string" + }, + "fileSpecType": { + "description": "Indicates what the Path variable stands for", + "type": "string" + }, + "targetFolderPath": { + "description": "Destination folder path in target FileShare", + "type": "string" + } + } + }, + "RestoreRequest": { + "description": "Base class for restore request. Workload-specific restore requests are derived from this class.", + "required": [ + "objectType" + ], + "type": "object", + "properties": { + "objectType": { + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "type": "string" + } + }, + "discriminator": "objectType" + }, + "SQLDataDirectory": { + "description": "SQLDataDirectory info", + "type": "object", + "properties": { + "type": { + "description": "Type of data directory mapping", + "enum": [ + "Invalid", + "Data", + "Log" + ], + "type": "string", + "x-ms-enum": { + "name": "SQLDataDirectoryType", + "modelAsString": true + } + }, + "path": { + "description": "File path", + "type": "string" + }, + "logicalName": { + "description": "Logical name of the file", + "type": "string" + } + } + }, + "SQLDataDirectoryMapping": { + "description": "Encapsulates information regarding data directory", + "type": "object", + "properties": { + "mappingType": { + "description": "Type of data directory mapping", + "enum": [ + "Invalid", + "Data", + "Log" + ], + "type": "string", + "x-ms-enum": { + "name": "SQLDataDirectoryType", + "modelAsString": true + } + }, + "sourceLogicalName": { + "description": "Restore source logical name path", + "type": "string" + }, + "sourcePath": { + "description": "Restore source path", + "type": "string" + }, + "targetPath": { + "description": "Target path", + "type": "string" + } + } + }, + "TargetAFSRestoreInfo": { + "description": "Target Azure File Share Info.", + "type": "object", + "properties": { + "name": { + "description": "File share name", + "type": "string" + }, + "targetResourceId": { + "description": "Target file share resource ARM ID", + "type": "string" + } + } + }, + "TargetRestoreInfo": { + "description": "Details about target workload during restore operation.", + "type": "object", + "properties": { + "overwriteOption": { + "description": "Can Overwrite if Target DataBase already exists", + "enum": [ + "Invalid", + "FailOnConflict", + "Overwrite" + ], + "type": "string", + "x-ms-enum": { + "name": "OverwriteOptions", + "modelAsString": true + } + }, + "containerId": { + "description": "Resource Id name of the container in which Target DataBase resides", + "type": "string" + }, + "databaseName": { + "description": "Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana", + "type": "string" + }, + "targetDirectoryMapping": { + "description": "This will contain the target folder mapping for the Full/Diff/Log/Incremental pits.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters":{ + "SubscriptionId":{ + "name":"subscriptionId", + "in":"path", + "description":"The subscription Id.", + "required":true, + "type":"string" + }, + "AzureRegion":{ + "name":"azureRegion", + "in":"path", + "description":"Azure region to hit Api", + "required":true, + "type":"string", + "x-ms-parameter-location":"method" + }, + "ApiVersion":{ + "name":"api-version", + "in":"query", + "description":"Client Api Version.", + "required":true, + "type":"string" + }, + "ResourceGroupName":{ + "name":"resourceGroupName", + "in":"path", + "description":"The name of the resource group where the recovery services vault is present.", + "required":true, + "type":"string", + "x-ms-parameter-location":"method" + }, + "VaultName":{ + "name":"vaultName", + "in":"path", + "description":"The name of the recovery services vault.", + "required":true, + "type":"string", + "x-ms-parameter-location":"method" + } + }, + "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" + ] + } + ] +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupAadProperties_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupAadProperties_Get.json new file mode 100644 index 000000000000..09e6468b1643 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupAadProperties_Get.json @@ -0,0 +1,18 @@ +{ + "parameters":{ + "subscriptionId":"00000000-0000-0000-0000-000000000000", + "azureRegion":"southeastasia", + "api-version":"2018-12-20" + }, + "responses":{ + "200":{ + "body":{ + "properties":{ + "tenantId":"33e01921-4d64-4f8c-a055-5bdaffd5e33d", + "audience":"https://RecoveryServices/IaasCoord/aadmgmt/ecy", + "servicePrincipalObjectId":"07e0a67b-cba3-4fcf-a58c-b670d5ced06d" + } + } + } + } +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupProtectedItems_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupProtectedItems_List.json new file mode 100644 index 000000000000..85d863d25ac1 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/BackupProtectedItems_List.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "SwaggerTestRg", + "vaultName": "NetSDKTestRsVault", + "api-version": "2019-05-13", + "$filter": "backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "properties": { + "friendlyName": "iaasvm-1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "protectionStatus": "Healthy", + "protectionState": "Protected", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.ClassicCompute/virtualMachines", + "backupManagementType": "AzureIaasVM", + "workloadType": "VM", + "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z" + } + } + ] + } + } + } +} diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetAccessToken_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetAccessToken_Get.json new file mode 100644 index 000000000000..d7706573b4a7 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetAccessToken_Get.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "rshhtestmdvmrg", + "vaultName": "rshvault", + "fabricName": "Azure", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "recoveryPointId": "26083826328862", + "api-version": "2018-12-20-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/26083826328862", + "name": "26083826328862", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "properties": { + "accessTokenString": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjVocE9ZWkdhZnk2VG50bUhKeGZZaEZKWHpQcyJ9.eyJVc2VySWRlbnRpdHlUeXBlIjoiQUFEIiwiQWFkVGVuYW50SWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJBYWRTUE9iamVjdElkIjoiODlkMmY3NzQtODBkNy00YzU0LTgwMjQtMjY2YzIzZGI0ZWNiIiwiUmVzdG9yZVBvaW50UGVybWlzc2lvbnMiOiJSZWFkIiwiUmVzdG9yZVBvaW50SUQiOiJyZXNvdXJjZXMvMzYzOTI0OTUyNDMwMjg4Mjk3MS9wcm90ZWN0aW9uQ29udGFpbmVycy8xMDA2NjAwL3Byb3RlY3RlZEl0ZW1zLzIyNTIzNDUxNzI0OTY4MjgyMTEvcmVjb3ZlcnlQb2ludHMvMjI1Mjg4NDA2MDEwNDg4OTkwNyIsImlzcyI6Imh0dHBzOi8vUmVjb3ZlcnlTZXJ2aWNlIiwiYXVkIjoiaHR0cHM6Ly9SZWNvdmVyeVNlcnZpY2VzL1Byb3RlY3Rpb25TZXJ2aWNlIiwiZXhwIjoxNTcwMjAwOTEzLCJuYmYiOjE1NzAxMTQyMTN9.gOGEmAhrAio3M6gcQHZ7EpEAbz4o-JaLE6dIFa4bF_-6VaP4LiBU_Qemjev_s-2fKZTAk3AVEXevbxbKIX6DENALXyOy3cMZsSPIr7L0_VrC6nlNnrwMBpiwQWGLuPckh4LHhsQE2cgOKmsIifqb4XrSJlwNq18aT_XyV6ZlkKqog3w7n4f-_eANJXDjxzOvAzsDIjnw_R-rVBNUI8w5OyO01mK1s2xStYgCBLpkTNEw5dxTTNOv5wPzmgjgRa2p-GmecE0ZTUfsL3VUvzpzfO8tRHBTbUYIIAG2Cn9utmXLK-PmAAanJVCOQ0YuoNSTN40D1NhpklJOtyD_TKdmvA", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "gaallaReportingV2", + "resourceName": "garbvtd2", + "resourceId": "3639249524302882971", + "recoveryPointId": "2252884060104889907", + "recoveryPointTime": "10/3/2019 1:35:19 AM", + "containerName": "iaasvmcontainerv2;anubhtest;anubh-ext-2", + "containerType": "IaasVMContainer", + "backupManagementType": "AzureIaasVM", + "datasourceType": "VM", + "datasourceName": "anubh-ext-2", + "datasourceId": "2252345172496828211", + "datasourceContainerName": "iaasvmcontainerv2;anubhtest;anubh-ext-2", + "coordinatorServiceStampUri": "https://sea-bvtd2-coord1-t56tl.ext.trafficmanager.net", + "protectionServiceStampId": "253c2223-fefd-483d-912f-55fb46ce0eab", + "protectionServiceStampUri": "https://sea-bvtd2-prot1-t56tl.ext.trafficmanager.net", + "tokenExtendedInformation": "V2015_091a2311d9-66f5-47d3-a9fb-7a37da63934b;BackUpOperationJobId;e1ebcf24-81a5-434e-b64b-cc81be65ae16falsefalsetrueWindowsCrashConsistentNormalStorageStandard_D2s_v3" + } + } + } + } +} diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrJob_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrJob_Post.json new file mode 100644 index 000000000000..cb00f9eaa6ee --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrJob_Post.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "azureRegion": "southeastasia", + "api-version": "2018-12-20", + "parameters": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm", + "jobName":"02585cc9-d7f4-4b46-860c-14c048cce178" + } + }, + "responses": { + "200": { + "body": + { + "id":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupJobs/02585cc9-d7f4-4b46-860c-14c048cce178", + "name":"02585cc9-d7f4-4b46-860c-14c048cce178", + "type":"Microsoft.RecoveryServices/vaults/backupJobs", + "properties":{ + "jobType":"AzureIaaSVMJob", + "duration":"1.20:17:03.2938821", + "virtualMachineVersion":"Compute", + "extendedInfo":{ + "tasksList":[ + + ], + "propertyBag":{ + + } + }, + "entityFriendlyName":"sriniccylinux", + "backupManagementType":"AzureIaasVM", + "operation":"CrossRegionRestore", + "status":"InProgress", + "startTime":"2019-10-12T10:22:43.9139656Z", + "activityId":"6e503ee3-1093-4a83-a62a-3b666cc8c028-2019-10-12T10:22:43Z-Ibz" + } + } + } + } +} diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationResults_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationResults_Get.json new file mode 100644 index 000000000000..4f020690aa4e --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationResults_Get.json @@ -0,0 +1,21 @@ +{ + "parameters":{ + "subscriptionId":"00000000-0000-0000-0000-000000000000", + "azureRegion":"southeastasia", + "operationId":"00000000-0000-0000-0000-000000000000", + "api-version":"2018-12-20", + "parameters":{ + "resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm" + } + }, + "responses":{ + "202":{ + "headers":{ + "Location":"location: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationResults/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview", + "Azure-AsyncOperation":"azure-asyncoperation: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview", + "Retry-After":60 + } + }, + "200": {} + } +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationStatus_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationStatus_Get.json new file mode 100644 index 000000000000..640210ec8332 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/GetCrrOperationStatus_Get.json @@ -0,0 +1,22 @@ +{ + "parameters":{ + "subscriptionId":"00000000-0000-0000-0000-000000000000", + "azureRegion":"southeastasia", + "operationId":"00000000-0000-0000-0000-000000000000", + "api-version":"2018-12-20", + "parameters":{ + "resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm" + } + }, + "responses":{ + "200":{ + "body":{ + "id":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=", + "name":"MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=", + "status":"Succeeded", + "startTime":"2019-10-14T06:46:44.3225024Z", + "endTime":"2019-10-14T06:46:44Z" + } + } + } +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/ListCrrJobs_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/ListCrrJobs_Post.json new file mode 100644 index 000000000000..e1123c31e99f --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/ListCrrJobs_Post.json @@ -0,0 +1,34 @@ +{ + "parameters":{ + "subscriptionId":"00000000-0000-0000-0000-000000000000", + "azureRegion":"southeastasia", + "api-version":"2018-12-20", + "parameters":{ + "resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm" + } + }, + "responses":{ + "200": { + "body": { + "value": [ + { + "id":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupJobs/02585cc9-d7f4-4b46-860c-14c048cce178", + "name":"02585cc9-d7f4-4b46-860c-14c048cce178", + "type":"Microsoft.RecoveryServices/vaults/backupJobs", + "properties":{ + "jobType":"AzureIaaSVMJob", + "duration":"1.19:59:12.7946856", + "virtualMachineVersion":"Compute", + "entityFriendlyName":"sriniccylinux", + "backupManagementType":"AzureIaasVM", + "operation":"CrossRegionRestore", + "status":"InProgress", + "startTime":"2019-10-12T10:22:43.9139656Z", + "activityId":"6e503ee3-1093-4a83-a62a-3b666cc8c028-2019-10-12T10:22:43Z-Ibz" + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/RecoveryPoints_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/RecoveryPoints_List.json new file mode 100644 index 000000000000..6504b3546ee9 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/RecoveryPoints_List.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "rshhtestmdvmrg", + "vaultName": "rshvault", + "fabricName": "Azure", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "api-version": "2019-05-13" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", + "name": "22244821112382", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "properties": { + "objectType": "IaasVMRecoveryPoint", + "recoveryPointType": "CrashConsistent", + "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "recoveryPointAdditionalInfo": "", + "sourceVMStorageType": "NormalStorage", + "isSourceVMEncrypted": false, + "isInstantIlrSessionActive": false, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Valid" + }, + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "isManagedVirtualMachine": true, + "virtualMachineSize": "Standard_D1", + "originalStorageAccountOption": false + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", + "name": "24977149827250", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "properties": { + "objectType": "IaasVMRecoveryPoint", + "recoveryPointType": "CrashConsistent", + "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "recoveryPointAdditionalInfo": "", + "sourceVMStorageType": "NormalStorage", + "isSourceVMEncrypted": false, + "isInstantIlrSessionActive": false, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Valid" + }, + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "isManagedVirtualMachine": true, + "virtualMachineSize": "Standard_D1", + "originalStorageAccountOption": false + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/TriggerCrossRegionRestore_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/TriggerCrossRegionRestore_Post.json new file mode 100644 index 000000000000..a6ae3e5e2e91 --- /dev/null +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2018-12-20/examples/AzureIaasVm/TriggerCrossRegionRestore_Post.json @@ -0,0 +1,59 @@ +{ + "parameters":{ + "subscriptionId":"00000000-0000-0000-0000-000000000000", + "azureRegion":"southeastasia", + "api-version":"2018-12-20", + "parameters":{ + "properties":{ + "crossRegionRestoreAccessDetails":{ + "accessTokenString":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhqaUJHdVExa2lWV2hyc2lzLUhEckhyWVZNbyJ9.eyJVc2VySWRlbnRpdHlUeXBlIjoiQUFEIiwiQWFkVGVuYW50SWQiOiIzM2UwMTkyMS00ZDY0LTRmOGMtYTA1NS01YmRhZmZkNWUzM2QiLCJBYWRTUE9iamVjdElkIjoiOTMzMjc2ZmMtMWJiNy00ZWNiLTk0ZTYtYWY3ODMyNWY3MjZhIiwiUmVzdG9yZVBvaW50UGVybWlzc2lvbnMiOiJSZWFkIiwiUmVzdG9yZVBvaW50SUQiOiJyZXNvdXJjZXMvMTMzMDgzNzkwNjQxODEzODE2MC9wcm90ZWN0aW9uQ29udGFpbmVycy8xMTE0Ni9wcm90ZWN0ZWRJdGVtcy8xMTQyOTM3MDMxL3JlY292ZXJ5UG9pbnRzLzg3MTc4MzU1MzkyNzE2IiwiaXNzIjoiaHR0cHM6Ly9SZWNvdmVyeVNlcnZpY2UiLCJhdWQiOiJodHRwczovL1JlY292ZXJ5U2VydmljZXMvUHJvdGVjdGlvblNlcnZpY2UiLCJleHAiOjE1NzExMjE5ODYsIm5iZiI6MTU3MTAzNTI4Nn0.oNbeX8ueE6JRGU0IagFjkOlU-o48ez9gCeCrn1-8XEsaVtYJIFKq9FeHfPAoCMxiLQvwL7S0JTjDTjiEsZEvr_VM7tDVwW3sESo2oW-SZlxT_1dJiUBn0jVlQyfDcHEMzbkaTuZswgNWfowgOrnJ67y-ztSUcegf3eVKPEhN1enBBS7pIuL9bZ3SVwMuqznUen6dH54y9lN2w6H14X0UK2CwSN94Uh-spB27j9SbksxLY_tyZm6xsamZFTHpwbgZwR24-GDtElPSxpFL6n_tWLSCHQtN9s84o0X7PfFaMkVmGWbOf4AZmP9M6agagG0JLnlOwObr07YrzZRkg3s2eQ", + "backupManagementType":"AzureIaasVM", + "containerName":"iaasvmcontainerv2;srinivasccyrg;sriniccylinux", + "containerType":"IaasVMContainer", + "coordinatorServiceStampUri":"https://pod01-coord1.ccy.backup.windowsazure.com", + "datasourceContainerName":"iaasvmcontainerv2;srinivasccyrg;sriniccylinux", + "datasourceId":"1142937031", + "datasourceName":"sriniccylinux", + "datasourceType":"VM", + "protectionServiceStampId":"90d98224-2ac6-4bda-9f35-33fb22841f2a", + "protectionServiceStampUri":"https://pod01-prot1-int.ccy.backup.windowsazure.com", + "recoveryPointId":"87178355392716", + "recoveryPointTime":"10/9/2019 6:05:54 PM", + "resourceGroupName":"srinivasccyrg", + "resourceId":"1330837906418138160", + "resourceName":"sriniccyvault", + "subscriptionId":"f2edfd5d-5496-4683-b94f-b3588c579009", + "tokenExtendedInformation":"V2015_09f2edfd5d-5496-4683-b94f-b3588c579009;AzureBackup_sriniccylinux_1142937031;AzureBackup_20191009_060554;AzureBackupRG_centraluseuap_1truetruefalseLinuxFileSystemConsistentPremiumVMOnPremiumStorageStandard_D2s_v3" + }, + "restoreRequest":{ + "affinityGroup":"", + "createNewCloudService":false, + "encryptionDetails":{ + "encryptionEnabled":false + }, + "objectType":"IaasVMRestoreRequest", + "originalStorageAccountOption":false, + "recoveryPointId":"87178355392716", + "recoveryType":"AlternateLocation", + "region":"eastus2euap", + "sourceResourceId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/srinivasccyrg/providers/Microsoft.Compute/virtualMachines/sriniccylinux", + "storageAccountId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00prjaiTestRg1/providers/Microsoft.Storage/storageAccounts/00prjaitestrg1disks993", + "subnetId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAcklVaultCCY/providers/Microsoft.Network/virtualNetworks/00networkAcklVaultCCY-vnet/subnets/default", + "targetDomainNameId":null, + "targetResourceGroupId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAckl", + "targetVirtualMachineId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAckl/providers/Microsoft.Compute/virtualMachines/gaallaVM", + "virtualNetworkId":"/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAcklVaultCCY/providers/Microsoft.Network/virtualNetworks/00networkAcklVaultCCY-vnet" + } + } + } + }, + "responses":{ + "202":{ + "headers":{ + "Location":"location: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationResults/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview", + "Azure-AsyncOperation":"azure-asyncoperation: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview", + "Retry-After":60 + } + } + } +} \ No newline at end of file diff --git a/specification/recoveryservicesbackup/resource-manager/readme.md b/specification/recoveryservicesbackup/resource-manager/readme.md index 0aa7a9b3d7db..e9ea8c8212d4 100644 --- a/specification/recoveryservicesbackup/resource-manager/readme.md +++ b/specification/recoveryservicesbackup/resource-manager/readme.md @@ -75,6 +75,7 @@ These settings apply only when `--tag=package-2017-07` is specified on the comma ``` yaml $(tag) == 'package-2017-07' input-file: +- Microsoft.RecoveryServices/stable/2018-12-20/bms.json - Microsoft.RecoveryServices/stable/2017-07-01/bms.json - Microsoft.RecoveryServices/stable/2016-12-01/bms.json - Microsoft.RecoveryServices/stable/2016-08-10/operations.json @@ -180,6 +181,7 @@ input-file: - $(this-folder)/Microsoft.RecoveryServices/stable/2016-12-01/bms.json - $(this-folder)/Microsoft.RecoveryServices/stable/2016-08-10/operations.json - $(this-folder)/Microsoft.RecoveryServices/stable/2019-05-13/bms.json + - $(this-folder)/Microsoft.RecoveryServices/stable/2018-12-20/bms.json - $(this-folder)/Microsoft.RecoveryServices/stable/2016-06-01/recoveryservicesbackup.json - $(this-folder)/Microsoft.RecoveryServices/stable/2016-06-01/registeredIdentities.json diff --git a/specification/search/data-plane/Microsoft.Azure.Search.Service/stable/2019-05-06/searchservice.json b/specification/search/data-plane/Microsoft.Azure.Search.Service/stable/2019-05-06/searchservice.json index a623a1484fcc..a160c1a6e433 100644 --- a/specification/search/data-plane/Microsoft.Azure.Search.Service/stable/2019-05-06/searchservice.json +++ b/specification/search/data-plane/Microsoft.Azure.Search.Service/stable/2019-05-06/searchservice.json @@ -5317,12 +5317,15 @@ "VisualFeature": { "type": "string", "enum": [ + "adult", + "brands", "categories", - "tags", + "color", "description", "faces", "imageType", - "color" + "objects", + "tags" ], "x-ms-enum": { "name": "VisualFeature", @@ -6205,6 +6208,9 @@ "type": "string", "enum": [ "en", + "es", + "ja", + "pt", "zh" ], "x-ms-enum": { @@ -6215,6 +6221,18 @@ "value": "en", "description": "English" }, + { + "value": "es", + "description": "Spanish" + }, + { + "value": "ja", + "description": "Japanese" + }, + { + "value": "pt", + "description": "Portuguese" + }, { "value": "zh", "description": "Chinese" diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json new file mode 100644 index 000000000000..96bfced0e2af --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json @@ -0,0 +1,166 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Center", + "description": "API spec for Microsoft.Security (Azure Security Center) resource provider", + "version": "2019-01-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/{resourceId}/providers/Microsoft.Security/advancedThreatProtectionSettings/{settingName}": { + "get": { + "x-ms-examples": { + "Gets the Advanced Threat Protection settings for the specified resource.": { + "$ref": "./examples/AdvancedThreatProtection/GetAdvancedThreatProtectionSettings_example.json" + } + }, + "tags": [ + "AdvancedThreatProtection" + ], + "description": "Gets the Advanced Threat Protection settings for the specified resource.", + "operationId": "AdvancedThreatProtection_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceId" + }, + { + "$ref": "#/parameters/AdvancedThreatProtectionSettingName" + } + ], + "responses": { + "200": { + "description": "Successful request to get Advanced Threat Protection settings.", + "schema": { + "$ref": "#/definitions/AdvancedThreatProtectionSetting" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates the Advanced Threat Protection settings on a specified resource.": { + "$ref": "./examples/AdvancedThreatProtection/PutAdvancedThreatProtectionSettings_example.json" + } + }, + "tags": [ + "AdvancedThreatProtection" + ], + "description": "Creates or updates the Advanced Threat Protection settings on a specified resource.", + "operationId": "AdvancedThreatProtection_Create", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceId" + }, + { + "$ref": "#/parameters/AdvancedThreatProtectionSettingName" + }, + { + "$ref": "#/parameters/AdvancedThreatProtectionSetting" + } + ], + "responses": { + "200": { + "description": "Successful request to put Advanced Threat Protection settings.", + "schema": { + "$ref": "#/definitions/AdvancedThreatProtectionSetting" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "AdvancedThreatProtectionProperties": { + "properties": { + "isEnabled": { + "type": "boolean", + "description": "Indicates whether Advanced Threat Protection is enabled." + } + }, + "description": "The Advanced Threat Protection settings." + }, + "AdvancedThreatProtectionSetting": { + "type": "object", + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AdvancedThreatProtectionProperties" + } + }, + "description": "The Advanced Threat Protection resource." + } + }, + "parameters": { + "AdvancedThreatProtectionSettingName": { + "name": "settingName", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "current" + ], + "description": "Advanced Threat Protection setting name.", + "x-ms-parameter-location": "method" + }, + "AdvancedThreatProtectionSetting": { + "name": "advancedThreatProtectionSetting", + "in": "body", + "required": true, + "description": "Advanced Threat Protection Settings", + "schema": { + "$ref": "#/definitions/AdvancedThreatProtectionSetting" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/GetAdvancedThreatProtectionSettings_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/GetAdvancedThreatProtectionSettings_example.json new file mode 100644 index 000000000000..fd9c6dc599a0 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/GetAdvancedThreatProtectionSettings_example.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2019-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/SampleRG/providers/Microsoft.Storage/storageAccounts/samplestorageaccount", + "settingName": "current" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/SampleRG/providers/Microsoft.Storage/storageAccounts/samplestorageaccount/providers/Microsoft.Security/advancedThreatProtectionSettings/current", + "name": "current", + "type": "Microsoft.Security/advancedThreatProtectionSettings", + "properties": { + "isEnabled": true + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/PutAdvancedThreatProtectionSettings_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/PutAdvancedThreatProtectionSettings_example.json new file mode 100644 index 000000000000..0af9838f82e6 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2019-01-01/examples/AdvancedThreatProtection/PutAdvancedThreatProtectionSettings_example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2019-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/SampleRG/providers/Microsoft.Storage/storageAccounts/samplestorageaccount", + "settingName": "current", + "advancedThreatProtectionSetting": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/SampleRG/providers/Microsoft.Storage/storageAccounts/samplestorageaccount/providers/Microsoft.Security/advancedThreatProtectionSettings/current", + "name": "current", + "type": "Microsoft.Security/advancedThreatProtectionSettings", + "properties": { + "isEnabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/SampleRG/providers/Microsoft.Storage/storageAccounts/samplestorageaccount/providers/Microsoft.Security/advancedThreatProtectionSettings/current", + "name": "current", + "type": "Microsoft.Security/advancedThreatProtectionSettings", + "properties": { + "isEnabled": true + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessmentMetadata.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessmentMetadata.json new file mode 100644 index 000000000000..9f173f276099 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessmentMetadata.json @@ -0,0 +1,558 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Center", + "description": "API spec for Microsoft.Security (Azure Security Center) resource provider", + "version": "2020-01-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/providers/Microsoft.Security/assessmentMetadata": { + "get": { + "x-ms-examples": { + "List security assessment metadata": { + "$ref": "./examples/AssessmentsMetadata/ListAssessmentsMetadata_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Get metadata information on all assessment types", + "operationId": "AssessmentsMetadata_List", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadataList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Security/assessmentMetadata/{assessmentMetadataName}": { + "get": { + "x-ms-examples": { + "Get security assessment metadata": { + "$ref": "./examples/AssessmentsMetadata/GetAssessmentsMetadata_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Get metadata information on an assessment type", + "operationId": "AssessmentsMetadata_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AssessmentsMetadataName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadata" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Security/assessmentMetadata": { + "get": { + "x-ms-examples": { + "List security assessment metadata for subscription": { + "$ref": "./examples/AssessmentsMetadata/ListAssessmentsMetadata_subscription_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Get metadata information on all assessment types in a specific subscription", + "operationId": "AssessmentsMetadataSubscription_List", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadataList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Security/assessmentMetadata/{assessmentMetadataName}": { + "get": { + "x-ms-examples": { + "Get security assessment metadata for subscription": { + "$ref": "./examples/AssessmentsMetadata/GetAssessmentsMetadata_subscription_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Get metadata information on an assessment type in a specific subscription", + "operationId": "AssessmentsMetadataSubscription_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AssessmentsMetadataName" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadata" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create security assessment metadata for subscription": { + "$ref": "./examples/AssessmentsMetadata/CreateAssessmentsMetadata_subscription_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Create metadata information on an assessment type in a specific subscription", + "operationId": "AssessmentsMetadataSubscription_Create", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AssessmentsMetadataName" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + }, + { + "$ref": "#/parameters/SecurityAssessmentMetadata" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadata" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a security assessment metadata for subscription": { + "$ref": "./examples/AssessmentsMetadata/DeleteAssessmentsMetadata_subscription_example.json" + } + }, + "tags": [ + "Assessments Metadata" + ], + "description": "Delete metadata information on an assessment type in a specific subscription, will cause the deletion of all the assessments of that type in that subscription", + "operationId": "AssessmentsMetadataSubscription_Delete", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AssessmentsMetadataName" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "SecurityAssessmentMetadataList": { + "type": "object", + "description": "List of security assessment metadata", + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/SecurityAssessmentMetadata" + } + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "The URI to fetch the next page." + } + } + }, + "SecurityAssessmentMetadata": { + "type": "object", + "description": "Security assessment metadata", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SecurityAssessmentMetadataProperties" + } + }, + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/Resource" + } + ] + }, + "SecurityAssessmentMetadataProperties": { + "type": "object", + "description": "Describes properties of an assessment metadata.", + "properties": { + "displayName": { + "type": "string", + "description": "User friendly display name of the assessment" + }, + "policyDefinitionId": { + "readOnly": true, + "type": "string", + "description": "Azure resource ID of the policy definition that turns this assessment calculation on" + }, + "description": { + "type": "string", + "description": "Human readable description of the assessment" + }, + "remediationDescription": { + "type": "string", + "description": "Human readable description of what you should do to mitigate this security issue" + }, + "category": { + "type": "array", + "items": { + "type": "string", + "description": "The category of resource that is at risk when the assessment is unhealthy", + "enum": [ + "Compute", + "Networking", + "Data", + "IdentityAndAccess", + "IoT" + ], + "x-ms-enum": { + "name": "category", + "modelAsString": true, + "values": [ + { + "value": "Compute" + }, + { + "value": "Networking" + }, + { + "value": "Data" + }, + { + "value": "IdentityAndAccess" + }, + { + "value": "IoT" + } + ] + } + } + }, + "severity": { + "type": "string", + "description": "The severity level of the assessment", + "enum": [ + "Low", + "Medium", + "High" + ], + "x-ms-enum": { + "name": "severity", + "modelAsString": true, + "values": [ + { + "value": "Low" + }, + { + "value": "Medium" + }, + { + "value": "High" + } + ] + } + }, + "userImpact": { + "type": "string", + "description": "The user impact of the assessment", + "enum": [ + "Low", + "Moderate", + "High" + ], + "x-ms-enum": { + "name": "userImpact", + "modelAsString": true, + "values": [ + { + "value": "Low" + }, + { + "value": "Moderate" + }, + { + "value": "High" + } + ] + } + }, + "implementationEffort": { + "type": "string", + "description": "The implementation effort required to remediate this assessment", + "enum": [ + "Low", + "Moderate", + "High" + ], + "x-ms-enum": { + "name": "implementationEffort", + "modelAsString": true, + "values": [ + { + "value": "Low" + }, + { + "value": "Moderate" + }, + { + "value": "High" + } + ] + } + }, + "threats": { + "type": "array", + "items": { + "type": "string", + "description": "Threats impact of the assessment", + "enum": [ + "accountBreach", + "dataExfiltration", + "dataSpillage", + "maliciousInsider", + "elevationOfPrivilege", + "threatResistance", + "missingCoverage", + "denialOfService" + ], + "x-ms-enum": { + "name": "threats", + "modelAsString": true, + "values": [ + { + "value": "accountBreach" + }, + { + "value": "dataExfiltration" + }, + { + "value": "dataSpillage" + }, + { + "value": "maliciousInsider" + }, + { + "value": "elevationOfPrivilege" + }, + { + "value": "threatResistance" + }, + { + "value": "missingCoverage" + }, + { + "value": "denialOfService" + } + ] + } + } + }, + "preview": { + "type": "boolean", + "description": "True if this assessment is in preview release status" + }, + "assessmentType": { + "type": "string", + "description": "BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition", + "enum": [ + "BuiltIn", + "CustomPolicy", + "CustomerManaged", + "VerifiedPartner" + ], + "x-ms-enum": { + "name": "assessmentType", + "modelAsString": true, + "values": [ + { + "value": "BuiltIn", + "description": "Azure Security Center managed assessments" + }, + { + "value": "CustomPolicy", + "description": "User defined policies that are automatically ingested from Azure Policy to Azure Security Center" + }, + { + "value": "CustomerManaged", + "description": "User assessments pushed directly by the user or other third party to Azure Security Center" + }, + { + "value": "VerifiedPartner", + "description": "An assessment that was created by a verified 3rd party if the user connected it to ASC" + } + ] + } + }, + "partnerData": { + "$ref": "#/definitions/SecurityAssessmentMetadataPartnerData" + } + }, + "required": [ + "displayName", + "severity", + "assessmentType" + ] + }, + "SecurityAssessmentMetadataPartnerData": { + "type": "object", + "description": "Describes the partner that created the assessment", + "properties": { + "partnerName": { + "type": "string", + "readOnly": true, + "description": "Name of the company of the partner" + }, + "productName": { + "type": "string", + "description": "Name of the product of the partner that created the assessment" + }, + "secret": { + "type": "string", + "description": "Secret to authenticate the partner and verify it created the assessment - write only", + "x-ms-secret": true + } + } + } + }, + "parameters": { + "AssessmentsMetadataName": { + "name": "assessmentMetadataName", + "in": "path", + "required": true, + "type": "string", + "description": "The Assessment Key - Unique key for the assessment type", + "x-ms-parameter-location": "method" + }, + "SecurityAssessmentMetadata": { + "name": "assessmentMetadata", + "in": "body", + "required": true, + "description": "AssessmentMetadata object", + "schema": { + "$ref": "#/definitions/SecurityAssessmentMetadata" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessments.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessments.json new file mode 100644 index 000000000000..b4b3a332cbd9 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/assessments.json @@ -0,0 +1,391 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Center", + "description": "API spec for Microsoft.Security (Azure Security Center) resource provider", + "version": "2020-01-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/{scope}/providers/Microsoft.Security/assessments": { + "get": { + "x-ms-examples": { + "List security assessments": { + "$ref": "./examples/Assessments/ListAssessments_example.json" + } + }, + "tags": [ + "Assessments" + ], + "description": "Get security assessments on all your scanned resources inside a scope", + "operationId": "Assessments_List", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/Scope" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessmentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/{resourceId}/providers/Microsoft.Security/assessments/{assessmentName}": { + "get": { + "x-ms-examples": { + "Get security recommendation task from security data location": { + "$ref": "./examples/Assessments/GetAssessment_example.json" + }, + "Get security recommendation task from security data location with expand parameter": { + "$ref": "./examples/Assessments/GetAssessmentWithExpand_example.json" + } + }, + "tags": [ + "Assessments" + ], + "description": "Get a security assessment on your scanned resource", + "operationId": "Assessments_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceId" + }, + { + "$ref": "#/parameters/AssessmentName" + }, + { + "$ref": "#/parameters/ExpandAssessments" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityAssessment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create security recommendation task on a resource": { + "$ref": "./examples/Assessments/PutAssessment_example.json" + } + }, + "tags": [ + "Assessments" + ], + "description": "Create a security assessment on your resource. An assessment metadata that describes this assessment must be predefined with the same name before inserting the assessment result", + "operationId": "Assessments_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceId" + }, + { + "$ref": "#/parameters/AssessmentName" + }, + { + "$ref": "#/parameters/AssessmentBody" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SecurityAssessment" + } + }, + "200": { + "description": "OK - Updated", + "schema": { + "$ref": "#/definitions/SecurityAssessment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a security recommendation task on a resource": { + "$ref": "./examples/Assessments/DeleteAssessment_example.json" + } + }, + "tags": [ + "Assessments" + ], + "description": "Delete a security assessment on your resource. An assessment metadata that describes this assessment must be predefined with the same name before inserting the assessment result", + "operationId": "Assessments_Delete", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceId" + }, + { + "$ref": "#/parameters/AssessmentName" + } + ], + "responses": { + "200": { + "description": "OK - Assessment was deleted" + }, + "204": { + "description": "No Content - Assessment does not exist" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "SecurityAssessmentList": { + "type": "object", + "description": "Page of a security assessments list", + "properties": { + "value": { + "description": "Collection of security assessments in this page", + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/SecurityAssessment" + } + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "The URI to fetch the next page." + } + } + }, + "SecurityAssessment": { + "type": "object", + "description": "Security assessment on a resource", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SecurityAssessmentProperties" + } + }, + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/Resource" + } + ] + }, + "SecurityAssessmentProperties": { + "type": "object", + "description": "Describes properties of an assessment.", + "properties": { + "resourceDetails": { + "$ref": "../../../common/v1/types.json#/definitions/ResourceDetails" + }, + "displayName": { + "readOnly": true, + "type": "string", + "description": "User friendly display name of the assessment" + }, + "status": { + "$ref": "#/definitions/AssessmentStatus" + }, + "additionalData": { + "type": "object", + "description": "Additional data regarding the assessment", + "additionalProperties": { + "type": "string" + } + }, + "links": { + "$ref": "#/definitions/AssessmentLinks" + }, + "metadata": { + "$ref": "./assessmentMetadata.json#/definitions/SecurityAssessmentMetadataProperties" + }, + "partnersData": { + "$ref": "#/definitions/SecurityAssessmentPartnerData" + } + }, + "required": [ + "resourceDetails", + "status" + ] + }, + "SecurityAssessmentPartnerData": { + "type": "object", + "description": "Data regarding 3rd party partner integration", + "properties": { + "secret": { + "type": "string", + "description": "secret to authenticate the partner - write only", + "x-ms-secret": true + } + } + }, + "AssessmentLinks": { + "type": "object", + "description": "Links relevant to the assessment", + "readOnly": true, + "properties": { + "azurePortalUri": { + "type": "string", + "description": "Link to assessment in Azure Portal", + "readOnly": true + } + } + }, + "AssessmentStatus": { + "type": "object", + "description": "The result of the assessment", + "properties": { + "code": { + "type": "string", + "description": "Programmatic code for the status of the assessment", + "enum": [ + "Healthy", + "Unhealthy", + "NotApplicable" + ], + "x-ms-enum": { + "name": "AssessmentStatusCode", + "modelAsString": true, + "values": [ + { + "value": "Healthy", + "description": "The resource is healthy" + }, + { + "value": "Unhealthy", + "description": "The resource has a security issue that needs to be addressed" + }, + { + "value": "NotApplicable", + "description": "Assessment for this resource did not happen" + } + ] + } + }, + "cause": { + "type": "string", + "description": "Programmatic code for the cause of the assessment status" + }, + "description": { + "type": "string", + "description": "Human readable description of the assessment status" + } + }, + "required": [ + "code" + ] + } + }, + "parameters": { + "ExpandAssessments": { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expand. Optional.", + "x-ms-parameter-location": "method", + "enum": [ + "links", + "metadata" + ], + "x-ms-enum": { + "name": "ExpandEnum", + "modelAsString": true, + "values": [ + { + "value": "links", + "description": "All links associated with an assessment" + }, + { + "value": "metadata", + "description": "Assessment metadata" + } + ] + } + }, + "AssessmentName": { + "name": "assessmentName", + "in": "path", + "required": true, + "type": "string", + "description": "The Assessment Key - Unique key for the assessment type", + "x-ms-parameter-location": "method" + }, + "AssessmentBody": { + "name": "assessment", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecurityAssessment" + }, + "description": "Calculated assessment on a pre-defined assessment metadata", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/DeleteAssessment_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/DeleteAssessment_example.json new file mode 100644 index 000000000000..5c8971c3bf59 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/DeleteAssessment_example.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2", + "assessmentName": "8bb8be0a-6010-4789-812f-e4d661c4ed0e" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessmentWithExpand_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessmentWithExpand_example.json new file mode 100644 index 000000000000..eff07cfaf4de --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessmentWithExpand_example.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2", + "assessmentName": "21300918-b2e3-0346-785f-c77ff57d243b", + "$expand": "links" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2/providers/Microsoft.Security/assessments/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2" + }, + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "status": { + "code": "NotApplicable", + "cause": "OffByPolicy", + "description": "The effective policy for the assessment was evaluated to off - use Microsoft.Authorization/policyAssignments to turn this assessment on" + }, + "additionalData": { + "linkedWorkspaceId": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myLaWorkspace" + }, + "links": { + "azurePortalUri": "https://www.portal.azure.com/?fea#blade/Microsoft_Azure_Security/RecommendationsBlade/assessmentKey/21300918-b2e3-0346-785f-c77ff57d243b" + } + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessment_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessment_example.json new file mode 100644 index 000000000000..6db02e032bfa --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/GetAssessment_example.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2", + "assessmentName": "21300918-b2e3-0346-785f-c77ff57d243b" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2/providers/Microsoft.Security/assessments/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2" + }, + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "status": { + "code": "NotApplicable", + "cause": "OffByPolicy", + "description": "The effective policy for the assessment was evaluated to off - use Microsoft.Authorization/policyAssignments to turn this assessment on" + }, + "additionalData": { + "linkedWorkspaceId": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myLaWorkspace" + } + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/ListAssessments_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/ListAssessments_example.json new file mode 100644 index 000000000000..78b7a01d1cb6 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/ListAssessments_example.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "scope": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1" + }, + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "status": { + "code": "Healthy" + } + } + }, + { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2/providers/Microsoft.Security/assessments/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2" + }, + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "status": { + "code": "NotApplicable", + "cause": "OffByPolicy", + "description": "The effective policy for the assessment was evaluated to off - use Microsoft.Authorization/policyAssignments to turn this assessment on" + }, + "additionalData": { + "linkedWorkspaceId": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myLaWorkspace" + } + } + } + ] + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/PutAssessment_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/PutAssessment_example.json new file mode 100644 index 000000000000..63873813b0ac --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/Assessments/PutAssessment_example.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss2", + "assessmentName": "8bb8be0a-6010-4789-812f-e4d661c4ed0e", + "assessment": { + "properties": { + "resourceDetails": { + "source": "Azure" + }, + "status": { + "code": "Healthy" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/8bb8be0a-6010-4789-812f-e4d661c4ed0e", + "name": "8bb8be0a-6010-4789-812f-e4d661c4ed0e", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/8bb8be0a-6010-4789-812f-e4d661c4ed0e" + }, + "displayName": "Install internal agent on VM", + "status": { + "code": "Healthy" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/8bb8be0a-6010-4789-812f-e4d661c4ed0e", + "name": "8bb8be0a-6010-4789-812f-e4d661c4ed0e", + "type": "Microsoft.Security/assessments", + "properties": { + "resourceDetails": { + "source": "Azure", + "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/8bb8be0a-6010-4789-812f-e4d661c4ed0e" + }, + "displayName": "Install internal agent on VM", + "status": { + "code": "Healthy" + } + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/CreateAssessmentsMetadata_subscription_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/CreateAssessmentsMetadata_subscription_example.json new file mode 100644 index 000000000000..617146f3ec81 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/CreateAssessmentsMetadata_subscription_example.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "subscriptionId": "0980887d-03d6-408c-9566-532f3456804e", + "assessmentMetadataName": "ca039e75-a276-4175-aebc-bcd41e4b14b7", + "assessmentMetadata": { + "properties": { + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/26a828e1-e88f-464e-bbb3-c134a282b9de", + "description": "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.", + "remediationDescription": "To install an endpoint protection solution: 1. Follow the instructions in How do I turn on antimalware in my virtual machine scale set", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "CustomerManaged" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Security/assessmentMetadata/ca039e75-a276-4175-aebc-bcd41e4b14b7", + "name": "ca039e75-a276-4175-aebc-bcd41e4b14b7", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "My organization security assessment", + "description": "Assessment that my organization created to view our security assessment in Azure Security Center", + "remediationDescription": "Fix it with these remediation instructions", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "CustomerManaged" + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/DeleteAssessmentsMetadata_subscription_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/DeleteAssessmentsMetadata_subscription_example.json new file mode 100644 index 000000000000..1ab5daf14e38 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/DeleteAssessmentsMetadata_subscription_example.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "subscriptionId": "0980887d-03d6-408c-9566-532f3456804e", + "assessmentMetadataName": "ca039e75-a276-4175-aebc-bcd41e4b14b7" + }, + "responses": { + "200": {} + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_example.json new file mode 100644 index 000000000000..f2202a19c14f --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_example.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "assessmentMetadataName": "21300918-b2e3-0346-785f-c77ff57d243b" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Security/assessmentMetadata/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/26a828e1-e88f-464e-bbb3-c134a282b9de", + "description": "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.", + "remediationDescription": "To install an endpoint protection solution: 1. Follow the instructions in How do I turn on antimalware in my virtual machine scale set", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "BuiltIn" + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_subscription_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_subscription_example.json new file mode 100644 index 000000000000..ae60eb4cbb9e --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/GetAssessmentsMetadata_subscription_example.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "subscriptionId": "0980887d-03d6-408c-9566-532f3456804e", + "assessmentMetadataName": "21300918-b2e3-0346-785f-c77ff57d243b" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Security/assessmentMetadata/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/26a828e1-e88f-464e-bbb3-c134a282b9de", + "description": "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.", + "remediationDescription": "To install an endpoint protection solution: 1. Follow the instructions in How do I turn on antimalware in my virtual machine scale set", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "BuiltIn" + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_example.json new file mode 100644 index 000000000000..937869acbbd8 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_example.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "2020-01-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/providers/Microsoft.Security/assessmentMetadata/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/26a828e1-e88f-464e-bbb3-c134a282b9de", + "description": "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.", + "remediationDescription": "To install an endpoint protection solution: 1. Follow the instructions in How do I turn on antimalware in my virtual machine scale set", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "BuiltIn" + } + }, + { + "id": "/providers/Microsoft.Security/assessmentMetadata/bc303248-3d14-44c2-96a0-55f5c326b5fe", + "name": "bc303248-3d14-44c2-96a0-55f5c326b5fe", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Close management ports on your virtual machines", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/22730e10-96f6-4aac-ad84-9383d35b5917", + "description": "Open remote management ports expose your VM to a high level of risk from internet-based attacks that attempt to brute force credentials to gain admin access to the machine.", + "remediationDescription": "We recommend that you edit the inbound rules of the below virtual machines to restrict access to specific source ranges.
To restrict the access to your virtual machines: 1. Click on a VM from the list below 2. At the 'Networking' blade, click on each of the rules that allow management ports (e.g. RDP-3389, WINRM-5985, SSH-22) 3. Change the 'Action' property to 'Deny' 4. Click 'Save'", + "category": [ + "Networking" + ], + "severity": "Medium", + "userImpact": "High", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "preview": true, + "assessmentType": "CustomPolicy" + } + }, + { + "id": "/providers/Microsoft.Security/assessmentMetadata/ca039e75-a276-4175-aebc-bcd41e4b14b7", + "name": "ca039e75-a276-4175-aebc-bcd41e4b14b7", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "My organization security assessment", + "description": "Assessment that my organization created to view our security assessment in Azure Security Center", + "remediationDescription": "Fix it with these remediation instructions", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [], + "assessmentType": "CustomerManaged" + } + } + ] + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_subscription_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_subscription_example.json new file mode 100644 index 000000000000..8bde3eae2b3d --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/AssessmentsMetadata/ListAssessmentsMetadata_subscription_example.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2020-01-01", + "subscriptionId": "0980887d-03d6-408c-9566-532f3456804e" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/providers/Microsoft.Security/assessmentMetadata/21300918-b2e3-0346-785f-c77ff57d243b", + "name": "21300918-b2e3-0346-785f-c77ff57d243b", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Install endpoint protection solution on virtual machine scale sets", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/26a828e1-e88f-464e-bbb3-c134a282b9de", + "description": "Install an endpoint protection solution on your virtual machines scale sets, to protect them from threats and vulnerabilities.", + "remediationDescription": "To install an endpoint protection solution: 1. Follow the instructions in How do I turn on antimalware in my virtual machine scale set", + "category": [ + "Compute" + ], + "severity": "Medium", + "userImpact": "Low", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "assessmentType": "BuiltIn" + } + }, + { + "id": "/providers/Microsoft.Security/assessmentMetadata/bc303248-3d14-44c2-96a0-55f5c326b5fe", + "name": "bc303248-3d14-44c2-96a0-55f5c326b5fe", + "type": "Microsoft.Security/assessmentMetadata", + "properties": { + "displayName": "Close management ports on your virtual machines", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/22730e10-96f6-4aac-ad84-9383d35b5917", + "description": "Open remote management ports expose your VM to a high level of risk from internet-based attacks that attempt to brute force credentials to gain admin access to the machine.", + "remediationDescription": "We recommend that you edit the inbound rules of the below virtual machines to restrict access to specific source ranges.
To restrict the access to your virtual machines: 1. Click on a VM from the list below 2. At the 'Networking' blade, click on each of the rules that allow management ports (e.g. RDP-3389, WINRM-5985, SSH-22) 3. Change the 'Action' property to 'Deny' 4. Click 'Save'", + "category": [ + "Networking" + ], + "severity": "Medium", + "userImpact": "High", + "implementationEffort": "Low", + "threats": [ + "dataExfiltration", + "dataSpillage", + "maliciousInsider" + ], + "preview": true, + "assessmentType": "CustomPolicy" + } + } + ] + } + } + } +} diff --git a/specification/security/resource-manager/readme.md b/specification/security/resource-manager/readme.md index 0055b511b065..299d49432ab6 100644 --- a/specification/security/resource-manager/readme.md +++ b/specification/security/resource-manager/readme.md @@ -135,6 +135,7 @@ input-file: - Microsoft.Security/stable/2018-06-01/pricings.json - Microsoft.Security/stable/2019-01-01/alerts.json - Microsoft.Security/stable/2019-01-01/settings.json +- Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json - Microsoft.Security/stable/2019-08-01/deviceSecurityGroups.json - Microsoft.Security/stable/2019-08-01/iotSecuritySolutions.json - Microsoft.Security/stable/2019-08-01/iotSecuritySolutionAnalytics.json @@ -147,7 +148,6 @@ input-file: - Microsoft.Security/preview/2015-06-01-preview/operations.json - Microsoft.Security/preview/2015-06-01-preview/tasks.json - Microsoft.Security/preview/2015-06-01-preview/topologies.json -- Microsoft.Security/preview/2017-08-01-preview/advancedThreatProtectionSettings.json - Microsoft.Security/preview/2017-08-01-preview/autoProvisioningSettings.json - Microsoft.Security/preview/2017-08-01-preview/compliances.json - Microsoft.Security/preview/2017-08-01-preview/informationProtectionPolicies.json @@ -157,8 +157,8 @@ input-file: - Microsoft.Security/preview/2019-01-01-preview/serverVulnerabilityAssessments.json - Microsoft.Security/preview/2019-01-01-preview/subAssessments.json - Microsoft.Security/preview/2019-01-01-preview/automations.json -- Microsoft.Security/preview/2019-01-01-preview/assessmentMetadata.json -- Microsoft.Security/preview/2019-01-01-preview/assessments.json +- Microsoft.Security/stable/2020-01-01/assessmentMetadata.json +- Microsoft.Security/stable/2020-01-01/assessments.json # Needed when there is more than one input file override-info: @@ -364,10 +364,13 @@ input-file: - $(this-folder)/Microsoft.Security/stable/2019-01-01/alerts.json - $(this-folder)/Microsoft.Security/stable/2017-08-01/complianceResults.json - $(this-folder)/Microsoft.Security/stable/2019-01-01/settings.json + - $(this-folder)/Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json - $(this-folder)/Microsoft.Security/stable/2019-08-01/deviceSecurityGroups.json - $(this-folder)/Microsoft.Security/stable/2019-08-01/iotSecuritySolutions.json - $(this-folder)/Microsoft.Security/stable/2019-08-01/iotSecuritySolutionAnalytics.json - $(this-folder)/Microsoft.Security/preview/2019-01-01-preview/serverVulnerabilityAssessments.json + - $(this-folder)/Microsoft.Security/stable/2020-01-01/assessmentMetadata.json + - $(this-folder)/Microsoft.Security/stable/2020-01-01/assessments.json - $(this-folder)/Microsoft.Security/preview/2019-01-01-preview/assessmentMetadata.json - $(this-folder)/Microsoft.Security/preview/2019-01-01-preview/assessments.json diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2019-06-01-preview/examples/ClusterPutOperation_example_max.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2019-06-01-preview/examples/ClusterPutOperation_example_max.json index 26800e01ad87..584bca876090 100644 --- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2019-06-01-preview/examples/ClusterPutOperation_example_max.json +++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2019-06-01-preview/examples/ClusterPutOperation_example_max.json @@ -11,7 +11,7 @@ "name": "myCluster", "tags": {}, "properties": { - "clusterCodeVersion": "6.1.480.9494", + "clusterCodeVersion": "6.5.639.9590", "managementEndpoint": "https://myCluster.eastus.cloudapp.azure.com:19080", "certificateCommonNames": { "commonNames": [ diff --git a/specification/servicefabric/resource-manager/readme.cli.md b/specification/servicefabric/resource-manager/readme.cli.md new file mode 100644 index 000000000000..a05e1835e02f --- /dev/null +++ b/specification/servicefabric/resource-manager/readme.cli.md @@ -0,0 +1,42 @@ +## CLI + +These settings apply only when `--cli` is specified on the command line. + +``` yaml $(cli) +cli: + cli-name: servicefabric + package-name: azure-mgmt-servicefabric + namespace: azure.mgmt.servicefabric + test-scenario: + - name: Put a cluster with minimum parameters + - name: Put a cluster with maximum parameters + - name: Put an application with maximum parameters + - name: Put an application with minimum parameters + - name: Put an application type + - name: Put a service with minimum parameters + - name: Put a service with maximum parameters + - name: Put an application type version + - name: Get an application type version + - name: Get a service + - name: Get a list of application type version resources + - name: Get a list of service resources + - name: Get cluster version by environment + - name: Get an application type + - name: Get an application + - name: List cluster versions by environment + - name: Get a list of application type name resources + - name: Get a list of application resources + - name: Get cluster version + - name: Get a cluster + - name: List cluster versions + - name: List cluster by resource group + - name: List clusters + - name: Patch a service + - name: Patch an application + - name: Patch a cluster + - name: Delete an application type version + - name: Delete a service + - name: Delete an application type + - name: Delete an application + - name: Delete a cluster +``` \ No newline at end of file