diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/BackupAndExport.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/BackupAndExport.json new file mode 100644 index 000000000000..59028e2d6005 --- /dev/null +++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/BackupAndExport.json @@ -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": { + "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" + ] + } + ] +} diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/BackupAndExport.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/BackupAndExport.json new file mode 100644 index 000000000000..9430e206ff15 --- /dev/null +++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/BackupAndExport.json @@ -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": {} + } +} diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/ValidateBackup.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/ValidateBackup.json new file mode 100644 index 000000000000..06087e435f60 --- /dev/null +++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/examples/ValidateBackup.json @@ -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 + } + } + } + } +} diff --git a/specification/mysql/resource-manager/readme.md b/specification/mysql/resource-manager/readme.md index 0432467d6613..984c362b02b6 100644 --- a/specification/mysql/resource-manager/readme.md +++ b/specification/mysql/resource-manager/readme.md @@ -160,6 +160,23 @@ input-file: - Microsoft.DBforMySQL/preview/2021-12-01-preview/AzureADAdministrator.json ``` +### Tag: package-flexibleserver-2022-08-01-privatepreview + +These settings apply only when `--tag=package-flexibleserver-2022-08-01-preview` is specified on the command line. + +``` yaml $(tag) == 'package-flexibleserver-2022-08-01-preview' +input-file: +- Microsoft.DBforMySQL/preview/2021-12-01-preview/Backups.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/Configurations.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/Databases.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/FirewallRules.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/FlexibleServers.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/LogFiles.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json +- Microsoft.DBforMySQL/preview/2021-12-01-preview/AzureADAdministrator.json +- Microsoft.DBforMySQL/preview/2022-08-01-privatepreview/BackupAndExport.json +``` + ## Suppression ``` yaml