From 3773ec21bada614cef7249f3eac62af1d74da70e Mon Sep 17 00:00:00 2001 From: pratikjoshi14 <59243362+pratikjoshi14@users.noreply.github.com> Date: Tue, 11 May 2021 06:48:06 +0530 Subject: [PATCH] Swagger changes for Stop and Resume protection APIs (#14250) * Added Suspend/Resume APIs * Prettier changes * spell check fix * Fixing version in example * PR feedback changes * changes --- .../2021-02-01-preview/dataprotection.json | 362 ++++++++++++++++++ .../ResumeBackups.json | 19 + .../ResumeProtection.json | 19 + .../StopProtection.json | 19 + .../SuspendBackups.json | 19 + .../SyncBackupInstance.json | 22 ++ 6 files changed, 460 insertions(+) create mode 100644 specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeBackups.json create mode 100644 specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeProtection.json create mode 100644 specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/StopProtection.json create mode 100644 specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SuspendBackups.json create mode 100644 specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SyncBackupInstance.json diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/dataprotection.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/dataprotection.json index 710335d51a87..d262636aea34 100644 --- a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/dataprotection.json +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/dataprotection.json @@ -1520,6 +1520,350 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeBackups": { + "post": { + "tags": [ + "BackupInstances" + ], + "description": "This operation will resume backups for backup instance", + "operationId": "BackupInstances_ResumeBackups", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "backupInstanceName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "ResumeBackups": { + "$ref": "./examples/BackupInstanceOperations/ResumeBackups.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeProtection": { + "post": { + "tags": [ + "BackupInstances" + ], + "description": "This operation will resume protection for a stopped backup instance", + "operationId": "BackupInstances_ResumeProtection", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "backupInstanceName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "ResumeProtection": { + "$ref": "./examples/BackupInstanceOperations/ResumeProtection.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/stopProtection": { + "post": { + "tags": [ + "BackupInstances" + ], + "description": "This operation will stop protection of a backup instance and data will be held forever", + "operationId": "BackupInstances_StopProtection", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "backupInstanceName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "StopProtection": { + "$ref": "./examples/BackupInstanceOperations/StopProtection.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/suspendBackups": { + "post": { + "tags": [ + "BackupInstances" + ], + "description": "This operation will stop backups for backup instance", + "operationId": "BackupInstances_SuspendBackups", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "backupInstanceName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "SuspendBackups": { + "$ref": "./examples/BackupInstanceOperations/SuspendBackups.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/sync": { + "post": { + "tags": [ + "BackupInstances" + ], + "description": "Sync backup instance again in case of failure\r\nThis action will retry last failed operation and will bring backup instance to valid state", + "operationId": "BackupInstances_SyncBackupInstance", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "backupInstanceName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "Request body for operation", + "required": true, + "schema": { + "$ref": "#/definitions/SyncBackupInstanceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Sync BackupInstance": { + "$ref": "./examples/BackupInstanceOperations/SyncBackupInstance.json" + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore": { "post": { "tags": [ @@ -4364,6 +4708,24 @@ } } }, + "SyncBackupInstanceRequest": { + "description": "Sync BackupInstance Request", + "type": "object", + "properties": { + "syncType": { + "description": "Field indicating sync type e.g. to sync only in case of failure or in all cases", + "enum": [ + "Default", + "ForceResync" + ], + "type": "string", + "x-ms-enum": { + "name": "SyncType", + "modelAsString": true + } + } + } + }, "TaggingCriteria": { "description": "Tagging criteria", "properties": { diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeBackups.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeBackups.json new file mode 100644 index 000000000000..fcec21791984 --- /dev/null +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeBackups.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "testrg", + "vaultName": "testvault", + "backupInstanceName": "testbi", + "api-version": "2021-02-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/testrg/providers/Microsoft.DataProtection/backupInstances/testbi/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Azure-AsyncOperation": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Retry-After": "60" + } + }, + "200": {} + } +} diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeProtection.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeProtection.json new file mode 100644 index 000000000000..fcec21791984 --- /dev/null +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/ResumeProtection.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "testrg", + "vaultName": "testvault", + "backupInstanceName": "testbi", + "api-version": "2021-02-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/testrg/providers/Microsoft.DataProtection/backupInstances/testbi/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Azure-AsyncOperation": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Retry-After": "60" + } + }, + "200": {} + } +} diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/StopProtection.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/StopProtection.json new file mode 100644 index 000000000000..fcec21791984 --- /dev/null +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/StopProtection.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "testrg", + "vaultName": "testvault", + "backupInstanceName": "testbi", + "api-version": "2021-02-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/testrg/providers/Microsoft.DataProtection/backupInstances/testbi/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Azure-AsyncOperation": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Retry-After": "60" + } + }, + "200": {} + } +} diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SuspendBackups.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SuspendBackups.json new file mode 100644 index 000000000000..fcec21791984 --- /dev/null +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SuspendBackups.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "testrg", + "vaultName": "testvault", + "backupInstanceName": "testbi", + "api-version": "2021-02-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/testrg/providers/Microsoft.DataProtection/backupInstances/testbi/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Azure-AsyncOperation": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Retry-After": "60" + } + }, + "200": {} + } +} diff --git a/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SyncBackupInstance.json b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SyncBackupInstance.json new file mode 100644 index 000000000000..5b3b57ffaab2 --- /dev/null +++ b/specification/dataprotection/resource-manager/Microsoft.DataProtection/preview/2021-02-01-preview/examples/BackupInstanceOperations/SyncBackupInstance.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "testrg", + "vaultName": "testvault", + "backupInstanceName": "testbi", + "api-version": "2021-02-01-preview", + "parameters": { + "syncType": "Default" + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/testrg/providers/Microsoft.DataProtection/backupInstances/testbi/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Azure-AsyncOperation": "https://api-dogfood.resources.windows-int.net/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2021-02-01-preview", + "Retry-After": "60" + } + }, + "200": {} + } +}