From 99b5b0c4914d9d485d6106fbd620ce8ef8bbea05 Mon Sep 17 00:00:00 2001 From: brandong-ms <44618010+brandong-ms@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:54:48 -0700 Subject: [PATCH] Add 2020-02-02-preview related to new ImportExport API (#10428) * Add 2020-02-02-preview related to new ImportExport API * Add missing example json * Update after merge DsMainDev * Update with missed change from after merge * Run prettier * Update with tweak to IE parameters to split by API * Run prettier * Update readme.md * Change to use ImportExport tag to prevent task failure for lint * Run prettier * Add importexport.json * Update readme.md for importexport.json * Fix ApiVersion description * Update CODEOWNERS for sql * Manually update API version parameter * Update 2014 importexport to use the new api version parameter description * Make operation name consistent between 2014 and 2020 * Make descriptions consistent in the 2014 version * Move more common parameters to reference; make some parameter descriptions consistent * Fix copy-paste error * Fix resource group parameter reference * try to add back 2014 parameters * Remove 2014 from composite v3 * checkout 2014 version after removing from composite * Change to use different common reference for ApiVersion * Make ApiVersionParameter consistent across all of 2020 * Fix copy paste error * Make importexport consistent with other 2020 APIs for SubscriptionId, ResourceGroup parameters * Fix UniqueXmsEnumName violation * StorageKeyTypeParameter * Backtrack to cc51227b2 * Try to move StorageKeyType to common definition ref * StorageKeType2Haha don't check in * Try to just make storage key type a string * Attempt to resolve ApiVersionParameter issue again - this time revert everything back except importexport.json, and update to use the reference in the types.json under sql common * Revert the ResourceGroupNameParameter for managedDatabases.json * Fix two more files with different ApiVersionParameter * Shotgun approach - change ALL ApiVersionParameter to reference types.json * Undo everything except importexport.json and new exaples * Change types.json under sql common to be consistent with common-types types.json * Undo change to types.json * Update with changes to DS_Main_Dev * Run prettier, update examples with x'd out access key parameter --- CODEOWNERS | 2 +- .../examples/ExportDatabase.json | 37 + .../ExportDatabaseWithNetworkIsolation.json | 41 + .../examples/ImportDatabase.json | 37 + .../ImportDatabaseWithNetworkIsolation.json | 41 + .../examples/ImportNewDatabase.json | 37 + ...ImportNewDatabaseWithNetworkIsolation.json | 41 + .../2020-02-02-preview/importexport.json | 700 ++++++++++++++++++ specification/sql/resource-manager/readme.md | 3 +- 9 files changed, 937 insertions(+), 2 deletions(-) create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabase.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabaseWithNetworkIsolation.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabase.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabaseWithNetworkIsolation.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabase.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabaseWithNetworkIsolation.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/importexport.json diff --git a/CODEOWNERS b/CODEOWNERS index db90ed7de68d..c7a94e485dbb 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -65,7 +65,7 @@ /specification/service-map/ @daveirwin1 /specification/servicebus/ @sazeesha @v-ajnava /specification/servicefabric/ @juhacket @samedder -/specification/sql/ @jaredmoo @jamestao +/specification/sql/ @jamestao @bcham /specification/storage/ @blueww @jasonyang-msft @xiaonlimsft /specification/storage/data-plane/ @kasobol-msft @seanmcc-msft /specification/storageimportexport/ @leoz-ms diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabase.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabase.json new file mode 100644 index 000000000000..37ed67c3a8cc --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabase.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "databaseName": "testdb", + "api-version": "2020-02-02-preview", + "parameters": { + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Export", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabaseWithNetworkIsolation.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabaseWithNetworkIsolation.json new file mode 100644 index 000000000000..31d6f89f1a8a --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ExportDatabaseWithNetworkIsolation.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "databaseName": "testdb", + "api-version": "2020-02-02-preview", + "parameters": { + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql", + "networkIsolation": { + "sqlServerResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr", + "storageAccountResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Storage/storageAccounts/test-privatelink" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Export", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabase.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabase.json new file mode 100644 index 000000000000..fc10c0c5db2a --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabase.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "databaseName": "testdb", + "api-version": "2020-02-02-preview", + "parameters": { + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Import", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabaseWithNetworkIsolation.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabaseWithNetworkIsolation.json new file mode 100644 index 000000000000..0878179632da --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportDatabaseWithNetworkIsolation.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "databaseName": "testdb", + "api-version": "2020-02-02-preview", + "parameters": { + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql", + "networkIsolation": { + "sqlServerResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr", + "storageAccountResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Storage/storageAccounts/test-privatelink" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Import", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabase.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabase.json new file mode 100644 index 000000000000..3dda74ba10de --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabase.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "api-version": "2020-02-02-preview", + "parameters": { + "databaseName": "testdb", + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Import", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabaseWithNetworkIsolation.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabaseWithNetworkIsolation.json new file mode 100644 index 000000000000..224913c359b0 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/ImportNewDatabaseWithNetworkIsolation.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "Default-SQL-SouthEastAsia", + "serverName": "testsvr", + "api-version": "2020-02-02-preview", + "parameters": { + "databaseName": "testdb", + "storageKeyType": "StorageAccessKey", + "storageKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", + "storageUri": "https://test.blob.core.windows.net/test.bacpac", + "administratorLogin": "login", + "administratorLoginPassword": "password", + "authenticationType": "Sql", + "networkIsolation": { + "sqlServerResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr", + "storageAccountResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Storage/storageAccounts/test-privatelink" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "requestId": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "requestType": "Import", + "queuedTime": "2/2/2020 8:33:27 PM", + "lastModifiedTime": "2/2/2020 8:34:47 PM", + "blobUri": "https://test.blob.core.windows.net/test.bacpac", + "serverName": "testsvr.database.windows.net", + "databaseName": "testdb", + "status": "Completed" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb/importExportOperationResults/9d9a794a-5cec-4f23-af70-d29511b522a4", + "name": "9d9a794a-5cec-4f23-af70-d29511b522a4", + "type": "Microsoft.Sql/servers/databases/importExportOperationResults" + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/importexport.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/importexport.json new file mode 100644 index 000000000000..ed2aedc3a803 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/importexport.json @@ -0,0 +1,700 @@ +{ + "swagger": "2.0", + "info": { + "version": "2020-02-02-preview", + "title": "SqlManagementClient", + "description": "The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/import": { + "post": { + "tags": [ + "ImportExport" + ], + "description": "Imports a bacpac into a new database.", + "operationId": "ImportExport_Import", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ServerNameParameter" + }, + { + "$ref": "#/parameters/DatabaseNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The database import request parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/ImportExistingDatabaseDefinition" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully imported the database.", + "schema": { + "$ref": "#/definitions/ImportExportOperationResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 MissingImportExportInputParameters - Missing ImportExport input parameters.\n\n * 400 PolybaseImportAuthenticationTypeNotSupported - Authentication type parameter is not support for PolybaseImport operation.\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 InvalidOperationType - Provide a valid operation type.\n\n * 404 ResourceNotFound - Invalid request specifying a non-existent resource.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ImportExportOperationIdNotFound - The operation Id for import or export cannot be found.\n\n * 404 ServerNotInSubscription - Specified server does not exist on the specified subscription.\n\n * 409 ImportExportOperationInProgress - There is an import or export operation in progress on the database." + }, + "202": { + "description": "Importing the database is in progress." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Imports to an existing empty database.": { + "$ref": "./examples/ImportDatabase.json" + }, + "Imports to an existing empty database, using private link to communicate with SQL server and storage account.": { + "$ref": "./examples/ImportDatabaseWithNetworkIsolation.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/import": { + "post": { + "tags": [ + "ImportExport" + ], + "description": "Imports a bacpac into a new database.", + "operationId": "Servers_ImportDatabase", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ServerNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The database import request parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/ImportNewDatabaseDefinition" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully imported the database.", + "schema": { + "$ref": "#/definitions/ImportExportOperationResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 MissingImportExportInputParameters - Missing ImportExport input parameters.\n\n * 400 PolybaseImportAuthenticationTypeNotSupported - Authentication type parameter is not support for PolybaseImport operation.\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 InvalidOperationType - Provide a valid operation type.\n\n * 404 ResourceNotFound - Invalid request specifying a non-existent resource.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ImportExportOperationIdNotFound - The operation Id for import or export cannot be found.\n\n * 404 ServerNotInSubscription - Specified server does not exist on the specified subscription.\n\n * 409 ImportExportOperationInProgress - There is an import or export operation in progress on the database." + }, + "202": { + "description": "Importing the database is in progress." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Imports to a new database.": { + "$ref": "./examples/ImportNewDatabase.json" + }, + "Imports to a new database, using private link for the SQL server and storage account.": { + "$ref": "./examples/ImportNewDatabaseWithNetworkIsolation.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/export": { + "post": { + "tags": [ + "ImportExport" + ], + "description": "Exports a database.", + "operationId": "Databases_Export", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ServerNameParameter" + }, + { + "$ref": "#/parameters/DatabaseNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The database export request parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/ExportDatabaseDefinition" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully exported the database.", + "schema": { + "$ref": "#/definitions/ImportExportOperationResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 MissingImportExportInputParameters - Missing ImportExport input parameters.\n\n * 400 PolybaseImportAuthenticationTypeNotSupported - Authentication type parameter is not support for PolybaseImport operation.\n\n * 400 FeatureDisabledOnSelectedEdition - User attempted to use a feature which is disabled on current database edition.\n\n * 400 InvalidOperationType - Provide a valid operation type.\n\n * 404 ResourceNotFound - Invalid request specifying a non-existent resource.\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ImportExportOperationIdNotFound - The operation Id for import or export cannot be found.\n\n * 404 ServerNotInSubscription - Specified server does not exist on the specified subscription.\n\n * 409 ImportExportOperationInProgress - There is an import or export operation in progress on the database." + }, + "202": { + "description": "Exporting the database is in progress." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Exports a database.": { + "$ref": "./examples/ExportDatabase.json" + }, + "Exports a database, using private link to communicate with SQL server and storage account.": { + "$ref": "./examples/ExportDatabaseWithNetworkIsolation.json" + } + } + } + } + }, + "definitions": { + "ImportExistingDatabaseDefinition": { + "description": "Contains the information necessary to perform import operation for existing database.", + "required": [ + "storageKeyType", + "storageKey", + "storageUri", + "administratorLogin", + "administratorLoginPassword" + ], + "type": "object", + "properties": { + "storageKeyType": { + "description": "Storage key type.", + "enum": [ + "SharedAccessKey", + "StorageAccessKey" + ], + "type": "string", + "x-ms-enum": { + "name": "StorageKeyType", + "modelAsString": true + }, + "x-ms-mutability": [ + "create" + ] + }, + "storageKey": { + "description": "Storage key.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "storageUri": { + "description": "Storage Uri.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLogin": { + "description": "Administrator login name.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLoginPassword": { + "description": "Administrator login password.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "authenticationType": { + "description": "Authentication type.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "networkIsolation": { + "$ref": "#/definitions/NetworkIsolationSettings", + "description": "Optional resource information to enable network isolation for request.", + "x-ms-mutability": [ + "create" + ] + } + } + }, + "NetworkIsolationSettings": { + "description": "Contains the ARM resources for which to create private endpoint connection.", + "type": "object", + "properties": { + "storageAccountResourceId": { + "description": "The resource id for the storage account used to store BACPAC file. If set, private endpoint connection will be created for the storage account. Must match storage account used for StorageUri parameter.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "sqlServerResourceId": { + "description": "The resource id for the SQL server which is the target of this request. If set, private endpoint connection will be created for the SQL server. Must match server which is target of the operation.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + } + } + }, + "ImportExportOperationResultProperties": { + "description": "Contains the operation result properties for import/export operation.", + "type": "object", + "properties": { + "requestId": { + "format": "uuid", + "description": "Request Id.", + "type": "string", + "readOnly": true + }, + "requestType": { + "description": "Request type.", + "type": "string", + "readOnly": true + }, + "queuedTime": { + "description": "Queued time.", + "type": "string", + "readOnly": true + }, + "lastModifiedTime": { + "description": "Last modified time.", + "type": "string", + "readOnly": true + }, + "blobUri": { + "description": "Blob Uri.", + "type": "string", + "readOnly": true + }, + "serverName": { + "description": "Server name.", + "type": "string", + "readOnly": true + }, + "databaseName": { + "description": "Database name.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Operation status.", + "type": "string", + "readOnly": true + }, + "errorMessage": { + "description": "Error message.", + "type": "string", + "readOnly": true + }, + "privateEndpointConnections": { + "description": "Gets the status of private endpoints associated with this request.", + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnectionRequestStatus" + }, + "readOnly": true + } + } + }, + "PrivateEndpointConnectionRequestStatus": { + "description": "Contains the private endpoint connection requests status.", + "type": "object", + "properties": { + "privateLinkServiceId": { + "description": "Resource id for which the private endpoint is created.", + "type": "string", + "readOnly": true + }, + "privateEndpointConnectionName": { + "description": "The connection name for the private endpoint.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Status of this private endpoint connection.", + "type": "string", + "readOnly": true + } + } + }, + "Resource": { + "description": "ARM resource.", + "type": "object", + "properties": { + "id": { + "description": "Resource ID.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "Resource name.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Resource type.", + "type": "string", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ProxyResource": { + "description": "ARM proxy resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": {} + }, + "ImportExportOperationResult": { + "description": "An ImportExport operation result resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ImportExportOperationResultProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + } + }, + "ImportNewDatabaseDefinition": { + "description": "Contains the information necessary to perform import operation for new database.", + "required": [ + "storageKeyType", + "storageKey", + "storageUri", + "administratorLogin", + "administratorLoginPassword" + ], + "type": "object", + "properties": { + "databaseName": { + "description": "Name of the import database.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "edition": { + "description": "Edition of the import database.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "serviceObjectiveName": { + "description": "Service level objective name of the import database.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "maxSizeBytes": { + "description": "Max size in bytes for the import database.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "storageKeyType": { + "description": "Storage key type.", + "enum": [ + "SharedAccessKey", + "StorageAccessKey" + ], + "type": "string", + "x-ms-enum": { + "name": "StorageKeyType", + "modelAsString": true + }, + "x-ms-mutability": [ + "create" + ] + }, + "storageKey": { + "description": "Storage key.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "storageUri": { + "description": "Storage Uri.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLogin": { + "description": "Administrator login name.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLoginPassword": { + "description": "Administrator login password.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "authenticationType": { + "description": "Authentication type.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "networkIsolation": { + "$ref": "#/definitions/NetworkIsolationSettings", + "description": "Optional resource information to enable network isolation for request.", + "x-ms-mutability": [ + "create" + ] + } + } + }, + "ExportDatabaseDefinition": { + "description": "Contains the information necessary to perform export database operation.", + "required": [ + "storageKeyType", + "storageKey", + "storageUri", + "administratorLogin", + "administratorLoginPassword" + ], + "type": "object", + "properties": { + "storageKeyType": { + "description": "Storage key type.", + "enum": [ + "SharedAccessKey", + "StorageAccessKey" + ], + "type": "string", + "x-ms-enum": { + "name": "StorageKeyType", + "modelAsString": true + }, + "x-ms-mutability": [ + "create" + ] + }, + "storageKey": { + "description": "Storage key.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "storageUri": { + "description": "Storage Uri.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLogin": { + "description": "Administrator login name.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "administratorLoginPassword": { + "description": "Administrator login password.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "authenticationType": { + "description": "Authentication type.", + "type": "string", + "x-ms-mutability": [ + "create" + ] + }, + "networkIsolation": { + "$ref": "#/definitions/NetworkIsolationSettings", + "description": "Optional resource information to enable network isolation for request.", + "x-ms-mutability": [ + "create" + ] + } + } + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription ID that identifies an Azure subscription.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for the request.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + }, + "ResourceGroupParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ServerNameParameter": { + "name": "serverName", + "in": "path", + "description": "The name of the server.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ManagedInstanceNameParameter": { + "name": "managedInstanceName", + "in": "path", + "description": "The name of the managed instance.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DatabaseNameParameter": { + "name": "databaseName", + "in": "path", + "description": "The name of the database.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "BlobAuditingPolicyNameParameter": { + "name": "blobAuditingPolicyName", + "in": "path", + "description": "The name of the blob auditing policy.", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-parameter-location": "method" + }, + "SqlVirtualMachineInstanceNameParameter": { + "name": "sqlVirtualMachineInstanceName", + "in": "path", + "description": "The name of the SqlVirtualMachineInstance.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SqlVirtualMachineContainerNameParameter": { + "name": "sqlVirtualMachineContainerName", + "in": "path", + "description": "The name of the SqlVirtualMachineContainer.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "VirtualClusterNameParameter": { + "name": "virtualClusterName", + "in": "path", + "description": "The name of the virtual cluster.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "WorkspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SqlPoolNameParameter": { + "name": "sqlPoolName", + "in": "path", + "description": "The name of the sql pool.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SqlDatabaseNameParameter": { + "name": "sqlDatabaseName", + "in": "path", + "description": "The name of the sql database.", + "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" + } + } + } +} diff --git a/specification/sql/resource-manager/readme.md b/specification/sql/resource-manager/readme.md index 7453d7b45f09..e66bdb264fc8 100644 --- a/specification/sql/resource-manager/readme.md +++ b/specification/sql/resource-manager/readme.md @@ -71,7 +71,6 @@ input-file: - Microsoft.Sql/stable/2014-04-01/dataMasking.json - Microsoft.Sql/stable/2014-04-01/firewallRules.json - Microsoft.Sql/stable/2014-04-01/geoBackupPolicies.json -- Microsoft.Sql/stable/2014-04-01/importExport.json - Microsoft.Sql/stable/2014-04-01/metrics.json - Microsoft.Sql/stable/2014-04-01/recommendedElasticPoolsDecoupled.json - Microsoft.Sql/stable/2014-04-01/replicationLinks.json @@ -142,6 +141,7 @@ input-file: - Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json - Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json - Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json +- Microsoft.Sql/preview/2020-02-02-preview/importexport.json # Needed when there is more than one input file override-info: @@ -500,6 +500,7 @@ input-file: - ./Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json - ./Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json - Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json +- Microsoft.Sql/preview/2020-02-02-preview/importexport.json # Needed when there is more than one input file override-info: