Skip to content
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

Flexible MySQL: Adding apis for BackupAndExport/LTR Backup #20675

Merged
Original file line number Diff line number Diff line change
@@ -0,0 +1,338 @@
{
"swagger": "2.0",
"consumes": [
"application/json"
],
"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"
},
"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"
}
}
},
"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}/validateBackup": {
"post": {
"tags": [
"Servers"
],
"operationId": "Servers_ValidateBackup",
"x-ms-examples": {
"Validate Backup": {
"$ref": "./examples/ValidateBackup.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/ValidateBackupRequest"
},
"description": "The required parameters for validating if backup can be performed for given server."
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/ValidateBackupResponse"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/CloudError"
}
}
}
}
}
},
"definitions": {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

definitions

move definitions after paths

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

"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"
}
}
},
"ValidateBackupRequest": {
"description": "ValidateBackup 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. (CollatedFormat is INTERNAL – DO NOT USE)",
"enum": [
"None",
"CollatedFormat"
],
"type": "string",
"x-ms-enum": {
"name": "BackupFormat",
"modelAsString": true
}
}
}
},
"ValidateBackupResponseProperties": {
"description": "ValidateBackup 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"
},
"ValidateBackupResponse": {
"type": "object",
"properties": {
"properties": {
"$ref": "#/definitions/ValidateBackupResponseProperties",
"x-ms-client-flatten": true,
"description": "The response properties of an pre backup operation."
}
},
"description": "Represents ValidateBackup 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."
}
},
"produces": [
"application/json"
],
"schemes": [
"https"
],
"security": [
{
"azure_auth": [
"user_impersonation"
]
}
]
}
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
}
}
}
}
}
Loading