-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Flexible MySQL: Adding apis for BackupAndExport/LTR Backup #20675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 8 commits
117fdf3
0d2927e
a29849e
13b829a
80837cb
0018d44
c1b8710
d3c1acb
4c057a2
c090b06
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,338 @@ | ||
| { | ||
| "swagger": "2.0", | ||
| "consumes": [ | ||
| "application/json" | ||
| ], | ||
| "definitions": { | ||
| "BackupRequestBase": { | ||
| "description": "BackupRequestBase is the base for all backup request.", | ||
| "required": [ | ||
| "backupSettings" | ||
| ], | ||
| "type": "object", | ||
| "properties": { | ||
| "backupSettings": { | ||
| "$ref": "#/definitions/BackupSettings", | ||
| "description": "Backup Settings" | ||
| } | ||
| } | ||
| }, | ||
| "BackupAndExportRequest": { | ||
| "description": "BackupAndExport API Request", | ||
| "type": "object", | ||
| "allOf": [ | ||
| { | ||
| "$ref": "#/definitions/BackupRequestBase" | ||
| } | ||
| ], | ||
| "required": [ | ||
| "backupSettings", | ||
| "targetDetails" | ||
| ], | ||
| "properties": { | ||
| "targetDetails": { | ||
| "$ref": "#/definitions/BackupStoreDetails", | ||
| "description": "Backup Target Store Details" | ||
| } | ||
| } | ||
| }, | ||
| "PreBackupRequest": { | ||
| "description": "PreBackup API Request.", | ||
| "type": "object", | ||
| "allOf": [ | ||
| { | ||
| "$ref": "#/definitions/BackupRequestBase" | ||
| } | ||
| ] | ||
| }, | ||
| "BackupStoreDetails": { | ||
| "description": "Details about the target where the backup content will be stored.", | ||
| "required": [ | ||
| "objectType" | ||
| ], | ||
| "type": "object", | ||
| "properties": { | ||
| "objectType": { | ||
| "description": "Type of the specific object - used for deserializing", | ||
| "type": "string", | ||
| "readOnly": false | ||
| } | ||
| }, | ||
| "discriminator": "objectType" | ||
| }, | ||
| "FullBackupStoreDetails": { | ||
| "description": "FullBackupStoreDetails is used for scenarios where backup data is streamed/copied over to a storage destination.", | ||
| "type": "object", | ||
| "required": [ | ||
| "sasUriList" | ||
| ], | ||
| "allOf": [ | ||
| { | ||
| "$ref": "#/definitions/BackupStoreDetails" | ||
| } | ||
| ], | ||
| "properties": { | ||
| "sasUriList": { | ||
| "description": "SASUriList of storage containers where backup data is to be streamed/copied.", | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "BackupSettings": { | ||
| "description": "Backup Settings", | ||
| "type": "object", | ||
| "required": [ | ||
| "backupName" | ||
| ], | ||
| "properties": { | ||
| "backupName": { | ||
| "type": "string", | ||
| "description": "Backup Name for the current backup" | ||
| }, | ||
| "backupFormat": { | ||
| "description": "Backup Format for the current backup.", | ||
| "enum": [ | ||
| "None", | ||
| "CollatedFormat" | ||
| ], | ||
| "type": "string", | ||
| "x-ms-enum": { | ||
| "name": "BackupFormat", | ||
| "modelAsString": true | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "PreBackupResponseProperties": { | ||
| "description": "PreBackup Response Properties", | ||
| "type": "object", | ||
| "required": [ | ||
| "numberOfContainers" | ||
| ], | ||
| "properties": { | ||
| "numberOfContainers": { | ||
| "format": "int32", | ||
| "description": "Estimated no of storage containers required for resource data to be backed up.", | ||
| "type": "integer" | ||
| } | ||
| } | ||
| }, | ||
| "BackupAndExportResponseProperties": { | ||
| "description": "BackupAndExport Response Properties", | ||
| "type": "object", | ||
| "required": [ | ||
| "datasourceSizeInBytes", | ||
| "dataTransferredInBytes", | ||
| "backupMetadata" | ||
| ], | ||
| "properties": { | ||
| "datasourceSizeInBytes": { | ||
| "format": "int64", | ||
| "description": "Size of datasource in bytes", | ||
| "type": "integer" | ||
| }, | ||
| "dataTransferredInBytes": { | ||
| "format": "int64", | ||
| "description": "Data transferred in bytes", | ||
| "type": "integer" | ||
| }, | ||
| "backupMetadata": { | ||
| "description": "Metadata related to backup to be stored for restoring resource in key-value pairs.", | ||
| "type": "string" | ||
| } | ||
| } | ||
| }, | ||
| "BackupAndExportResponse": { | ||
| "type": "object", | ||
| "properties": { | ||
| "properties": { | ||
| "$ref": "#/definitions/BackupAndExportResponseProperties", | ||
| "x-ms-client-flatten": true, | ||
| "description": "The response properties of an backup and export operation." | ||
| } | ||
| }, | ||
| "allOf": [ | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" | ||
| } | ||
| ], | ||
| "description": "Represents BackupAndExport API Response" | ||
| }, | ||
| "PreBackupResponse": { | ||
| "type": "object", | ||
| "properties": { | ||
| "properties": { | ||
| "$ref": "#/definitions/PreBackupResponseProperties", | ||
| "x-ms-client-flatten": true, | ||
| "description": "The response properties of an pre backup operation." | ||
| } | ||
| }, | ||
| "description": "Represents PreBackup API Response" | ||
| }, | ||
| "CloudError": { | ||
| "type": "object", | ||
| "x-ms-external": true, | ||
| "properties": { | ||
| "error": { | ||
| "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse", | ||
| "description": "The resource management error response." | ||
| } | ||
| }, | ||
| "description": "An error response from the Batch service." | ||
| } | ||
| }, | ||
| "host": "management.azure.com", | ||
| "info": { | ||
| "title": "MySQLManagementClient", | ||
| "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules and configurations.", | ||
| "version": "2022-08-01-privatepreview" | ||
| }, | ||
|
||
| "parameters": { | ||
| "ServerNameParameter": { | ||
| "name": "serverName", | ||
| "in": "path", | ||
| "required": true, | ||
| "type": "string", | ||
| "description": "The name of the server.", | ||
| "x-ms-parameter-location": "method" | ||
| } | ||
| }, | ||
| "paths": { | ||
| "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/flexibleServers/{serverName}/backupAndExport": { | ||
| "post": { | ||
| "tags": [ | ||
| "Servers" | ||
| ], | ||
| "operationId": "Servers_BackupAndExport", | ||
| "x-ms-examples": { | ||
| "Create and Export Backup": { | ||
| "$ref": "./examples/BackupAndExport.json" | ||
| } | ||
| }, | ||
| "description": "Exports the backup of the given server by creating a backup if not existing.", | ||
| "parameters": [ | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" | ||
| }, | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" | ||
| }, | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" | ||
| }, | ||
| { | ||
| "$ref": "#/parameters/ServerNameParameter" | ||
| }, | ||
| { | ||
| "name": "parameters", | ||
| "in": "body", | ||
| "required": true, | ||
| "schema": { | ||
| "$ref": "#/definitions/BackupAndExportRequest" | ||
| }, | ||
| "description": "The required parameters for creating and exporting backup of the given server." | ||
| } | ||
| ], | ||
| "responses": { | ||
| "200": { | ||
| "description": "OK", | ||
| "schema": { | ||
| "$ref": "#/definitions/BackupAndExportResponse" | ||
| } | ||
| }, | ||
| "202": { | ||
| "description": "Accepted" | ||
| }, | ||
| "default": { | ||
| "description": "Error response describing why the operation failed.", | ||
| "schema": { | ||
| "$ref": "#/definitions/CloudError" | ||
| } | ||
| } | ||
| }, | ||
| "x-ms-long-running-operation": true, | ||
| "x-ms-long-running-operation-options": { | ||
| "final-state-via": "azure-async-operation" | ||
| } | ||
| } | ||
| }, | ||
| "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/flexibleServers/{serverName}/preBackup": { | ||
|
||
| "post": { | ||
| "tags": [ | ||
| "Servers" | ||
| ], | ||
| "operationId": "Servers_PreBackup", | ||
| "x-ms-examples": { | ||
| "Pre Backup": { | ||
| "$ref": "./examples/PreBackup.json" | ||
| } | ||
| }, | ||
| "description": "Validates if backup can be performed for given server.", | ||
| "parameters": [ | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" | ||
| }, | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" | ||
| }, | ||
| { | ||
| "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" | ||
| }, | ||
| { | ||
| "$ref": "#/parameters/ServerNameParameter" | ||
| }, | ||
| { | ||
| "name": "parameters", | ||
| "in": "body", | ||
| "required": true, | ||
| "schema": { | ||
| "$ref": "#/definitions/PreBackupRequest" | ||
| }, | ||
| "description": "The required parameters for validating if backup can be performed for given server." | ||
| } | ||
| ], | ||
| "responses": { | ||
| "200": { | ||
| "description": "OK", | ||
| "schema": { | ||
| "$ref": "#/definitions/PreBackupResponse" | ||
| } | ||
| }, | ||
| "default": { | ||
| "description": "Error response describing why the operation failed.", | ||
| "schema": { | ||
| "$ref": "#/definitions/CloudError" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "produces": [ | ||
| "application/json" | ||
| ], | ||
| "schemes": [ | ||
| "https" | ||
| ], | ||
| "security": [ | ||
| { | ||
| "azure_auth": [ | ||
| "user_impersonation" | ||
| ] | ||
| } | ||
| ], | ||
| "securityDefinitions": { | ||
| "azure_auth": { | ||
| "type": "oauth2", | ||
| "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", | ||
| "flow": "implicit", | ||
| "description": "Azure Active Directory OAuth2 Flow", | ||
| "scopes": { | ||
| "user_impersonation": "impersonate your user account" | ||
| } | ||
| } | ||
| } | ||
|
||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| { | ||
| "parameters": { | ||
| "api-version": "2022-08-01-privatepreview", | ||
| "serverName": "mysqltestserver", | ||
| "resourceGroupName": "TestGroup", | ||
| "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", | ||
| "parameters": { | ||
| "targetDetails": { | ||
| "objectType": "FullBackupStoreDetails", | ||
| "sasUriList": [ | ||
| "sasuri1", | ||
| "sasuri2" | ||
| ] | ||
| }, | ||
| "backupSettings": { | ||
| "backupName": "customer-backup-name" | ||
| } | ||
| } | ||
| }, | ||
| "responses": { | ||
| "200": { | ||
| "body": { | ||
| "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestserver/backups/customer-backup-name", | ||
| "name": "customer-backup-name", | ||
| "type": "Microsoft.DBforMySQL/flexibleServers/backups", | ||
| "properties": { | ||
| "datasourceSizeInBytes": 1024, | ||
| "dataTransferredInBytes": 1024, | ||
| "backupMetadata": "{\"key1\":\"value1\",\"key2\":\"value2\"}" | ||
| } | ||
| } | ||
| }, | ||
| "202": {} | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| { | ||
| "parameters": { | ||
| "api-version": "2022-08-01-privatepreview", | ||
| "serverName": "mysqltestserver", | ||
| "resourceGroupName": "TestGroup", | ||
| "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", | ||
| "parameters": { | ||
| "backupSettings": { | ||
| "backupName": "customer-backup-name" | ||
| } | ||
| } | ||
| }, | ||
| "responses": { | ||
| "200": { | ||
| "body": { | ||
| "properties": { | ||
| "numberOfContainers": 1 | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move definitions after paths
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done