diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/datamigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/datamigration.json new file mode 100644 index 000000000000..2fe5133d9112 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/datamigration.json @@ -0,0 +1,1899 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview", + "description": "The Database Migration Service helps people migrate their data from on-premise database servers to Azure, or from older database software to newer software. The service manages one or more workers that are joined to a customer's virtual network, which is assumed to provide connectivity to their databases. To avoid frequent updates to the resource provider, data migration tasks are implemented by the resource provider in a generic way as task resources, each of which has a task type (which identifies the type of work to run), input, and output. The client is responsible for providing appropriate task type and inputs, which will be passed through unexamined to the machines that implement the functionality, and for understanding the output, which is passed back unexamined to the client.", + "x-ms-code-generation-settings": { + "name": "DataMigrationServiceClient", + "useDateTimeOffset": true + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "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" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/skus": { + "get": { + "summary": "Get supported SKUs", + "description": "The skus action returns the list of SKUs that DMS supports.", + "tags": [ + "Standard operation", + "GET" + ], + "operationId": "ResourceSkus_ListSkus", + "x-ms-examples": { + "ListSkus": { + "$ref": "./examples/ResourceSkus_ListSkus.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got SKUs", + "schema": { + "$ref": "./definitions/ResourceSkus.json#/definitions/ResourceSkusResult" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}": { + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "put": { + "summary": "Create or update DMS Instance", + "description": "The services resource is the top-level resource that represents the Database Migration Service. The PUT method creates a new service or updates an existing one. When a service is updated, existing child resources (i.e. tasks) are unaffected. Services currently support a single kind, \"vm\", which refers to a VM-based service, although other kinds may be added in the future. This method can change the kind, SKU, and network of the service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request (\"ServiceIsBusy\"). The provider will reply when successful with 200 OK or 201 Created. Long-running operations use the provisioningState property.", + "tags": [ + "Service resource", + "Standard operation", + "PUT" + ], + "operationId": "Services_CreateOrUpdate", + "x-ms-examples": { + "Services_CreateOrUpdate": { + "$ref": "./examples/Services_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/service" + } + ], + "x-ms-long-running-operation": true, + "responses": { + "200": { + "description": "Service updated", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationService" + } + }, + "201": { + "description": "Service created (use provisioningState)", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationService" + } + }, + "202": { + "description": "Update accepted" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "get": { + "summary": "Get DMS Service Instance", + "description": "The services resource is the top-level resource that represents the Database Migration Service. The GET method retrieves information about a service instance.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "Services_Get", + "x-ms-examples": { + "Services_CreateOrUpdate": { + "$ref": "./examples/Services_Get.json" + } + }, + "responses": { + "200": { + "description": "A service instance resource", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationService" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "delete": { + "summary": "Delete DMS Service Instance", + "description": "The services resource is the top-level resource that represents the Database Migration Service. The DELETE method deletes a service. Any running tasks will be canceled.", + "tags": [ + "Service resource", + "Standard operation", + "DELETE" + ], + "parameters": [ + { + "$ref": "#/parameters/deleteRunningTasks" + } + ], + "operationId": "Services_Delete", + "x-ms-examples": { + "Services_CreateOrUpdate": { + "$ref": "./examples/Services_Delete.json" + } + }, + "x-ms-long-running-operation": true, + "responses": { + "200": { + "description": "Service resource deleted" + }, + "202": { + "description": "Deletion accepted" + }, + "204": { + "description": "Service not found" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "patch": { + "summary": "Create or update DMS Service Instance", + "description": "The services resource is the top-level resource that represents the Database Migration Service. The PATCH method updates an existing service. This method can change the kind, SKU, and network of the service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request (\"ServiceIsBusy\").", + "tags": [ + "Service resource", + "Standard operation", + "PATCH" + ], + "operationId": "Services_Update", + "x-ms-examples": { + "Services_CreateOrUpdate": { + "$ref": "./examples/Services_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/service" + } + ], + "x-ms-long-running-operation": true, + "responses": { + "200": { + "description": "Service resource updated", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationService" + } + }, + "202": { + "description": "Update accepted" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/checkStatus": { + "post": { + "summary": "Check service health status", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This action performs a health check and returns the status of the service and virtual machine size.", + "tags": [ + "Service resource", + "Custom operation", + "POST" + ], + "operationId": "Services_CheckStatus", + "x-ms-examples": { + "Services_CheckStatus": { + "$ref": "./examples/Services_CheckStatus.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "responses": { + "200": { + "description": "Health checked", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationServiceStatusResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/start": { + "post": { + "summary": "Start service", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This action starts the service and the service can be used for data migration.", + "tags": [ + "Service resource", + "Custom operation", + "POST" + ], + "operationId": "Services_Start", + "x-ms-examples": { + "Services_Start": { + "$ref": "./examples/Services_Start.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-long-running-operation": true, + "responses": { + "200": { + "description": "The service has already been started." + }, + "202": { + "description": "The request to start service is accepted." + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/stop": { + "post": { + "summary": "Stop service", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This action stops the service and the service cannot be used for data migration. The service owner won't be billed when the service is stopped.", + "tags": [ + "Service resource", + "Custom operation", + "POST" + ], + "operationId": "Services_Stop", + "x-ms-examples": { + "Services_Stop": { + "$ref": "./examples/Services_Stop.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-long-running-operation": true, + "responses": { + "200": { + "description": "The service has already been stopped." + }, + "202": { + "description": "The request to stop service is accepted." + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/skus": { + "get": { + "summary": "Get compatible SKUs", + "description": "The services resource is the top-level resource that represents the Database Migration Service. The skus action returns the list of SKUs that a service resource can be updated to.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "Services_ListSkus", + "x-ms-examples": { + "Services_ListSkus": { + "$ref": "./examples/Services_ListSkus.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got SKUs", + "schema": { + "$ref": "./definitions/Services.json#/definitions/ServiceSkuList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks": { + "get": { + "summary": "Get tasks in a service", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This method returns a list of tasks owned by a service resource. Some tasks may have a status of Unknown, which indicates that an error occurred while querying the status of that task.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "Tasks_List", + "x-ms-examples": { + "Tasks_List": { + "$ref": "./examples/Tasks_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/apiVersion" + }, + { + "$ref": "#/parameters/taskType" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got tasks", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/TaskList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/serviceTasks": { + "get": { + "summary": "Get service level tasks for a service", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This method returns a list of service level tasks owned by a service resource. Some tasks may have a status of Unknown, which indicates that an error occurred while querying the status of that task.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "ServiceTasks_List", + "x-ms-examples": { + "ServiceTasks_List": { + "$ref": "./examples/ServiceTasks_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + }, + { + "$ref": "#/parameters/taskType" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got service tasks", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/TaskList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/checkNameAvailability": { + "post": { + "summary": "Check nested resource name validity and availability", + "description": "This method checks whether a proposed nested resource name is valid and available.", + "tags": [ + "Custom operation", + "POST" + ], + "operationId": "Services_CheckChildrenNameAvailability", + "x-ms-examples": { + "Services_CheckChildrenNameAvailability": { + "$ref": "./examples/Services_CheckChildrenNameAvailability.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/apiVersion" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/requestedName" + } + ], + "responses": { + "200": { + "description": "Name checked", + "schema": { + "$ref": "./definitions/Common.json#/definitions/NameAvailabilityResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services": { + "get": { + "summary": "Get services in resource group", + "description": "The Services resource is the top-level resource that represents the Database Migration Service. This method returns a list of service resources in a resource group.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "Services_ListByResourceGroup", + "x-ms-examples": { + "Services_ListByResourceGroup": { + "$ref": "./examples/Services_ListByResourceGroup.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got services", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationServiceList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/services": { + "get": { + "summary": "Get services in subscription", + "description": "The services resource is the top-level resource that represents the Database Migration Service. This method returns a list of service resources in a subscription.", + "tags": [ + "Service resource", + "Standard operation", + "GET" + ], + "operationId": "Services_List", + "x-ms-examples": { + "Services_List": { + "$ref": "./examples/Services_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Got services", + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationServiceList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}": { + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/taskName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "put": { + "summary": "Create or update task", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PUT method creates a new task or updates an existing one, although since tasks have no mutable custom properties, there is little reason to update an existing one.", + "tags": [ + "Task resource", + "Standard operation", + "PUT" + ], + "operationId": "Tasks_CreateOrUpdate", + "x-ms-examples": { + "Tasks_CreateOrUpdate": { + "$ref": "./examples/Tasks_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectTask" + } + ], + "responses": { + "200": { + "description": "Task updated", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "201": { + "description": "Task created", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "get": { + "summary": "Get task information", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The GET method retrieves information about a task.", + "tags": [ + "Task resource", + "Standard operation", + "GET" + ], + "operationId": "Tasks_Get", + "x-ms-examples": { + "Tasks_Get": { + "$ref": "./examples/Tasks_Get.json" + } + }, + "parameters": [ + { + "name": "$expand", + "description": "Expand the response", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "A task resource", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "delete": { + "summary": "Delete task", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The DELETE method deletes a task, canceling it first if it's running.", + "tags": [ + "Task resource", + "Standard operation", + "DELETE" + ], + "parameters": [ + { + "$ref": "#/parameters/deleteRunningTasks" + } + ], + "operationId": "Tasks_Delete", + "x-ms-examples": { + "Tasks_Delete": { + "$ref": "./examples/Tasks_Delete.json" + } + }, + "responses": { + "200": { + "description": "Task resource deleted" + }, + "204": { + "description": "Not found" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "patch": { + "summary": "Create or update task", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PATCH method updates an existing task, but since tasks have no mutable custom properties, there is little reason to do so.", + "tags": [ + "Task resource", + "Standard operation", + "PATCH" + ], + "operationId": "Tasks_Update", + "x-ms-examples": { + "Tasks_Update": { + "$ref": "./examples/Tasks_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectTask" + } + ], + "responses": { + "200": { + "description": "Task resource updated", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/serviceTasks/{taskName}": { + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/taskName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "put": { + "summary": "Create or update service task", + "description": "The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PUT method creates a new service task or updates an existing one, although since service tasks have no mutable custom properties, there is little reason to update an existing one.", + "tags": [ + "Service Task resource", + "Standard operation", + "PUT" + ], + "operationId": "ServiceTasks_CreateOrUpdate", + "x-ms-examples": { + "Tasks_CreateOrUpdate": { + "$ref": "./examples/ServiceTasks_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectTask" + } + ], + "responses": { + "200": { + "description": "Service task updated", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "201": { + "description": "Service task created", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "get": { + "summary": "Get service task information", + "description": "The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The GET method retrieves information about a service task.", + "tags": [ + "Service Task resource", + "Standard operation", + "GET" + ], + "operationId": "ServiceTasks_Get", + "x-ms-examples": { + "Tasks_Get": { + "$ref": "./examples/ServiceTasks_Get.json" + } + }, + "parameters": [ + { + "name": "$expand", + "description": "Expand the response", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "A service task resource", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "delete": { + "summary": "Delete service task", + "description": "The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The DELETE method deletes a service task, canceling it first if it's running.", + "tags": [ + "Service Task resource", + "Standard operation", + "DELETE" + ], + "parameters": [ + { + "$ref": "#/parameters/deleteRunningTasks" + } + ], + "operationId": "ServiceTasks_Delete", + "x-ms-examples": { + "Tasks_Delete": { + "$ref": "./examples/ServiceTasks_Delete.json" + } + }, + "responses": { + "200": { + "description": "Service Task resource deleted" + }, + "204": { + "description": "Not found" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "patch": { + "summary": "Create or update service task", + "description": "The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PATCH method updates an existing service task, but since service tasks have no mutable custom properties, there is little reason to do so.", + "tags": [ + "Service Task resource", + "Standard operation", + "PATCH" + ], + "operationId": "ServiceTasks_Update", + "x-ms-examples": { + "Tasks_Update": { + "$ref": "./examples/ServiceTasks_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectTask" + } + ], + "responses": { + "200": { + "description": "Service Task resource updated", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}/cancel": { + "post": { + "summary": "Cancel a task", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method cancels a task if it's currently queued or running.", + "tags": [ + "Task resource", + "Custom operation", + "POST" + ], + "operationId": "Tasks_Cancel", + "x-ms-examples": { + "Tasks_Cancel": { + "$ref": "./examples/Tasks_Cancel.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/taskName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "responses": { + "200": { + "description": "Task canceled", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/serviceTasks/{taskName}/cancel": { + "post": { + "summary": "Cancel a service task", + "description": "The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method cancels a service task if it's currently queued or running.", + "tags": [ + "Service Task resource", + "Custom operation", + "POST" + ], + "operationId": "ServiceTasks_Cancel", + "x-ms-examples": { + "Tasks_Cancel": { + "$ref": "./examples/ServiceTasks_Cancel.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/taskName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "responses": { + "200": { + "description": "Service Task canceled", + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}/command": { + "post": { + "summary": "Execute a command on a task", + "description": "The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method executes a command on a running task.", + "tags": [ + "Task resource", + "Custom operation", + "POST" + ], + "operationId": "Tasks_Command", + "x-ms-examples": { + "Tasks_Command": { + "$ref": "./examples/Tasks_Command.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/taskName" + }, + { + "$ref": "#/parameters/apiVersion" + }, + { + "$ref": "#/parameters/command" + } + ], + "responses": { + "200": { + "description": "Command executed", + "schema": { + "$ref": "./definitions/Commands.json#/definitions/CommandProperties" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects": { + "get": { + "summary": "Get projects in a service", + "description": "The project resource is a nested resource representing a stored migration project. This method returns a list of projects owned by a service resource.", + "tags": [ + "Project resource", + "Standard operation", + "GET" + ], + "operationId": "Projects_List", + "x-ms-examples": { + "Projects_List": { + "$ref": "./examples/Projects_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "List of projects", + "schema": { + "$ref": "./definitions/Projects.json#/definitions/ProjectList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}": { + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "put": { + "summary": "Create or update project", + "description": "The project resource is a nested resource representing a stored migration project. The PUT method creates a new project or updates an existing one.", + "tags": [ + "Project resource", + "Standard operation", + "PUT" + ], + "operationId": "Projects_CreateOrUpdate", + "x-ms-examples": { + "Projects_CreateOrUpdate": { + "$ref": "./examples/Projects_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/project" + } + ], + "responses": { + "200": { + "description": "Project updated", + "schema": { + "$ref": "./definitions/Projects.json#/definitions/Project" + } + }, + "201": { + "description": "Project created", + "schema": { + "$ref": "./definitions/Projects.json#/definitions/Project" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "get": { + "summary": "Get project information", + "description": "The project resource is a nested resource representing a stored migration project. The GET method retrieves information about a project.", + "tags": [ + "Project resource", + "Standard operation", + "GET" + ], + "operationId": "Projects_Get", + "x-ms-examples": { + "Projects_Get": { + "$ref": "./examples/Projects_Get.json" + } + }, + "responses": { + "200": { + "description": "A project resource", + "schema": { + "$ref": "./definitions/Projects.json#/definitions/Project" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "delete": { + "summary": "Delete project", + "description": "The project resource is a nested resource representing a stored migration project. The DELETE method deletes a project.", + "tags": [ + "Project resource", + "Standard operation", + "DELETE" + ], + "parameters": [ + { + "$ref": "#/parameters/deleteRunningTasks" + } + ], + "operationId": "Projects_Delete", + "x-ms-examples": { + "Projects_Delete": { + "$ref": "./examples/Projects_Delete.json" + } + }, + "responses": { + "200": { + "description": "Project resource deleted" + }, + "204": { + "description": "Not found" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "patch": { + "summary": "Update project", + "description": "The project resource is a nested resource representing a stored migration project. The PATCH method updates an existing project.", + "tags": [ + "Project resource", + "Standard operation", + "PATCH" + ], + "operationId": "Projects_Update", + "x-ms-examples": { + "Projects_Update": { + "$ref": "./examples/Projects_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/project" + } + ], + "responses": { + "200": { + "description": "Project resource updated", + "schema": { + "$ref": "./definitions/Projects.json#/definitions/Project" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/locations/{location}/checkNameAvailability": { + "post": { + "summary": "Check name validity and availability", + "description": "This method checks whether a proposed top-level resource name is valid and available.", + "tags": [ + "Standard operation", + "POST" + ], + "operationId": "Services_CheckNameAvailability", + "x-ms-examples": { + "Services_CheckNameAvailability": { + "$ref": "./examples/Services_CheckNameAvailability.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/location" + }, + { + "$ref": "#/parameters/apiVersion" + }, + { + "$ref": "#/parameters/requestedName" + } + ], + "responses": { + "200": { + "description": "Name checked", + "schema": { + "$ref": "./definitions/Common.json#/definitions/NameAvailabilityResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/locations/{location}/usages": { + "get": { + "summary": "Get resource quotas and usage information", + "description": "This method returns region-specific quotas and resource usage information for the Database Migration Service.", + "tags": [ + "Standard operation", + "GET" + ], + "operationId": "Usages_List", + "x-ms-examples": { + "Services_Usages": { + "$ref": "./examples/Usages_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/location" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Quotas returned", + "schema": { + "$ref": "./definitions/Common.json#/definitions/QuotaList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/files": { + "get": { + "summary": "Get files in a project", + "description": "The project resource is a nested resource representing a stored migration project. This method returns a list of files owned by a project resource.", + "tags": [ + "File resource", + "Standard operation", + "GET" + ], + "operationId": "Files_List", + "x-ms-examples": { + "Files_List": { + "$ref": "./examples/Files_List.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "List of files", + "schema": { + "$ref": "./definitions/Files.json#/definitions/FileList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/files/{fileName}": { + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/fileName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "get": { + "summary": "Get file information", + "description": "The files resource is a nested, proxy-only resource representing a file stored under the project resource. This method retrieves information about a file.", + "tags": [ + "File resource", + "Standard operation", + "GET" + ], + "operationId": "Files_Get", + "x-ms-examples": { + "Files_List": { + "$ref": "./examples/Files_Get.json" + } + }, + "responses": { + "200": { + "description": "A file resource", + "schema": { + "$ref": "./definitions/Files.json#/definitions/ProjectFile" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "put": { + "summary": "Create a file resource", + "description": "The PUT method creates a new file or updates an existing one.", + "tags": [ + "Fie resource", + "Standard operation", + "PUT" + ], + "operationId": "Files_CreateOrUpdate", + "x-ms-examples": { + "Files_CreateOrUpdate": { + "$ref": "./examples/Files_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectFile" + } + ], + "responses": { + "200": { + "description": "File updated", + "schema": { + "$ref": "./definitions/Files.json#/definitions/ProjectFile" + } + }, + "201": { + "description": "File created", + "schema": { + "$ref": "./definitions/Files.json#/definitions/ProjectFile" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "delete": { + "summary": "Delete file", + "description": "This method deletes a file.", + "tags": [ + "File resource", + "Standard operation", + "DELETE" + ], + "operationId": "Files_Delete", + "x-ms-examples": { + "Files_Delete": { + "$ref": "./examples/Files_Delete.json" + } + }, + "responses": { + "200": { + "description": "File resource deleted" + }, + "204": { + "description": "Not found" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + }, + "patch": { + "summary": "Update a file", + "description": "This method updates an existing file.", + "tags": [ + "File resource", + "Standard operation", + "PATCH" + ], + "operationId": "Files_Update", + "x-ms-examples": { + "Files_Update": { + "$ref": "./examples/Files_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/projectFile" + } + ], + "responses": { + "200": { + "description": "File resource updated", + "schema": { + "$ref": "./definitions/Files.json#/definitions/ProjectFile" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/files/{fileName}/read": { + "post": { + "summary": "Request storage information for downloading the file content", + "description": "This method is used for requesting storage information using which contents of the file can be downloaded.", + "tags": [ + "File resource", + "Standard operation", + "POST" + ], + "operationId": "Files_Read", + "x-ms-examples": { + "Files_List": { + "$ref": "./examples/Files_Read.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/fileName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "responses": { + "200": { + "description": "An object describing how to access the file content", + "schema": { + "$ref": "./definitions/Files.json#/definitions/FileStorageInfo" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/files/{fileName}/readwrite": { + "post": { + "summary": "Request information for reading and writing file content.", + "description": "This method is used for requesting information for reading and writing the file content.", + "tags": [ + "File resource", + "Standard operation", + "POST" + ], + "operationId": "Files_ReadWrite", + "x-ms-examples": { + "Files_List": { + "$ref": "./examples/Files_ReadWrite.json" + } + }, + "parameters": [ + { + "$ref": "./sqlmigration.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/groupName" + }, + { + "$ref": "#/parameters/serviceName" + }, + { + "$ref": "#/parameters/projectName" + }, + { + "$ref": "#/parameters/fileName" + }, + { + "$ref": "#/parameters/apiVersion" + } + ], + "responses": { + "200": { + "description": "An object describing how to access the file content", + "schema": { + "$ref": "./definitions/Files.json#/definitions/FileStorageInfo" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./definitions/Common.json#/definitions/ApiError" + } + } + } + } + } + }, + "parameters": { + "apiVersion": { + "name": "api-version", + "description": "Version of the API", + "in": "query", + "required": true, + "type": "string" + }, + "deleteRunningTasks": { + "name": "deleteRunningTasks", + "description": "Delete the resource even if it contains running tasks", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method" + }, + "groupName": { + "name": "groupName", + "description": "Name of the resource group", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "location": { + "name": "location", + "description": "The Azure region of the operation", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "project": { + "name": "parameters", + "description": "Information about the project", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Projects.json#/definitions/Project" + }, + "x-ms-parameter-location": "method" + }, + "projectName": { + "name": "projectName", + "description": "Name of the project", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "requestedName": { + "name": "parameters", + "description": "Requested name to validate", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Common.json#/definitions/NameAvailabilityRequest" + }, + "x-ms-parameter-location": "method" + }, + "taskName": { + "name": "taskName", + "description": "Name of the Task", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "taskType": { + "name": "taskType", + "description": "Filter tasks by task type", + "in": "query", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "service": { + "name": "parameters", + "description": "Information about the service", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Services.json#/definitions/DataMigrationService" + }, + "x-ms-parameter-location": "method" + }, + "serviceName": { + "name": "serviceName", + "description": "Name of the service", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "projectTask": { + "name": "parameters", + "description": "Information about the task", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Tasks.json#/definitions/ProjectTask" + }, + "x-ms-parameter-location": "method" + }, + "timeoutMs": { + "name": "timeoutMs", + "description": "The number of milliseconds the task is allowed to run, up to 20000", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + }, + "command": { + "name": "parameters", + "description": "Command to execute", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Commands.json#/definitions/CommandProperties" + }, + "x-ms-parameter-location": "method" + }, + "projectFile": { + "name": "parameters", + "description": "Information about the file", + "in": "body", + "required": true, + "schema": { + "$ref": "./definitions/Files.json#/definitions/ProjectFile" + }, + "x-ms-parameter-location": "method" + }, + "fileName": { + "name": "fileName", + "description": "Name of the File", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Commands.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Commands.json new file mode 100644 index 000000000000..e7326cf74eb3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Commands.json @@ -0,0 +1,179 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "CommandProperties": { + "type": "object", + "description": "Base class for all types of DMS command properties. If command is not supported by current client, this object is returned.", + "properties": { + "commandType": { + "enum": [ + "Migrate.Sync.Complete.Database", + "Migrate.SqlServer.AzureDbSqlMi.Complete", + "cancel", + "finish", + "restart" + ], + "x-ms-enum": { + "name": "CommandType", + "modelAsString": true + }, + "description": "Command type.", + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ODataError" + }, + "description": "Array of errors. This is ignored if submitted.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the command. This is ignored if submitted.", + "enum": [ + "Unknown", + "Accepted", + "Running", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "CommandState", + "modelAsString": true + }, + "readOnly": true + } + }, + "required": [ + "commandType" + ], + "discriminator": "commandType" + }, + "MigrateSyncCompleteCommandProperties": { + "x-ms-discriminator-value": "Migrate.Sync.Complete.Database", + "type": "object", + "description": "Properties for the command that completes sync migration for a database.", + "properties": { + "input": { + "description": "Command input", + "$ref": "#/definitions/MigrateSyncCompleteCommandInput" + }, + "output": { + "description": "Command output. This is ignored if submitted.", + "$ref": "#/definitions/MigrateSyncCompleteCommandOutput", + "readOnly": true + }, + "commandId": { + "type": "string", + "description": "Command id" + } + }, + "allOf": [ + { + "$ref": "#/definitions/CommandProperties" + } + ] + }, + "MigrateSyncCompleteCommandInput": { + "type": "object", + "description": "Input for command that completes sync migration for a database.", + "properties": { + "databaseName": { + "description": "Name of database", + "type": "string" + }, + "commitTimeStamp": { + "type": "string", + "format": "date-time", + "description": "Time stamp to complete" + } + }, + "required": [ + "databaseName" + ] + }, + "MigrateSyncCompleteCommandOutput": { + "type": "object", + "description": "Output for command that completes sync migration for a database.", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "errors": { + "description": "List of errors that happened during the command execution", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "MigrateMISyncCompleteCommandProperties": { + "x-ms-discriminator-value": "Migrate.SqlServer.AzureDbSqlMi.Complete", + "type": "object", + "description": "Properties for the command that completes online migration for an Azure SQL Database Managed Instance.", + "properties": { + "input": { + "description": "Command input", + "$ref": "#/definitions/MigrateMISyncCompleteCommandInput" + }, + "output": { + "description": "Command output. This is ignored if submitted.", + "$ref": "#/definitions/MigrateMISyncCompleteCommandOutput", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/CommandProperties" + } + ] + }, + "MigrateMISyncCompleteCommandInput": { + "type": "object", + "description": "Input for command that completes online migration for an Azure SQL Database Managed Instance.", + "properties": { + "sourceDatabaseName": { + "description": "Name of managed instance database", + "type": "string" + } + }, + "required": [ + "sourceDatabaseName" + ] + }, + "MigrateMISyncCompleteCommandOutput": { + "type": "object", + "description": "Output for command that completes online migration for an Azure SQL Database Managed Instance.", + "properties": { + "errors": { + "description": "List of errors that happened during the command execution", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + } + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Common.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Common.json new file mode 100644 index 000000000000..a8a3b21f4aae --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Common.json @@ -0,0 +1,668 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ApiError": { + "type": "object", + "description": "Error information.", + "properties": { + "error": { + "description": "Error information in OData format", + "$ref": "#/definitions/ODataError" + }, + "systemData": { + "$ref": "../sqlmigration.json#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + } + }, + "NameAvailabilityResponse": { + "type": "object", + "description": "Indicates whether a proposed resource name is available", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "If true, the name is valid and available. If false, 'reason' describes why not." + }, + "reason": { + "type": "string", + "description": "The reason why the name is not available, if nameAvailable is false", + "enum": [ + "AlreadyExists", + "Invalid" + ], + "x-ms-enum": { + "name": "NameCheckFailureReason", + "modelAsString": true + } + }, + "message": { + "type": "string", + "description": "The localized reason why the name is not available, if nameAvailable is false" + } + } + }, + "NameAvailabilityRequest": { + "type": "object", + "description": "A resource type and proposed name", + "properties": { + "name": { + "type": "string", + "description": "The proposed resource name" + }, + "type": { + "type": "string", + "description": "The resource type chain (e.g. virtualMachines/extensions)" + } + } + }, + "ODataError": { + "type": "object", + "description": "Error information in OData format.", + "properties": { + "code": { + "type": "string", + "description": "The machine-readable description of the error, such as 'InvalidRequest' or 'InternalServerError'" + }, + "message": { + "type": "string", + "description": "The human-readable description of the error" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + }, + "description": "Inner errors that caused this error" + } + } + }, + "Quota": { + "type": "object", + "description": "Describes a quota for or usage details about a resource", + "properties": { + "currentValue": { + "type": "number", + "format": "double", + "description": "The current value of the quota. If null or missing, the current value cannot be determined in the context of the request." + }, + "id": { + "type": "string", + "description": "The resource ID of the quota object" + }, + "limit": { + "type": "number", + "format": "double", + "description": "The maximum value of the quota. If null or missing, the quota has no maximum, in which case it merely tracks usage." + }, + "name": { + "type": "object", + "description": "The name of the quota", + "properties": { + "localizedValue": { + "type": "string", + "description": "The localized name of the quota" + }, + "value": { + "type": "string", + "description": "The unlocalized name (or ID) of the quota" + } + } + }, + "unit": { + "type": "string", + "description": "The unit for the quota, such as Count, Bytes, BytesPerSecond, etc." + } + } + }, + "QuotaList": { + "type": "object", + "description": "OData page of quota objects", + "properties": { + "value": { + "type": "array", + "description": "List of quotas", + "items": { + "$ref": "#/definitions/Quota" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of quotas, or null or missing if this is the last page" + } + } + }, + "ReportableException": { + "type": "object", + "description": "Exception object for all custom exceptions", + "properties": { + "message": { + "type": "string", + "description": "Error message" + }, + "actionableMessage": { + "type": "string", + "description": "Actionable steps for this exception" + }, + "filePath": { + "type": "string", + "description": "The path to the file where exception occurred" + }, + "lineNumber": { + "type": "string", + "description": "The line number where exception occurred" + }, + "hResult": { + "type": "integer", + "description": "Coded numerical value that is assigned to a specific exception" + }, + "stackTrace": { + "type": "string", + "description": "Stack trace" + } + } + }, + "Resource": { + "description": "ARM resource.", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Resource ID." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Resource name." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type." + } + }, + "x-ms-azure-resource": true + }, + "ConnectionInfo": { + "type": "object", + "description": "Defines the connection properties of a server", + "properties": { + "type": { + "type": "string", + "description": "Type of connection info" + }, + "userName": { + "type": "string", + "description": "User name" + }, + "password": { + "type": "string", + "description": "Password credential." + } + }, + "required": [ + "type" + ], + "discriminator": "type" + }, + "AuthenticationType": { + "type": "string", + "description": "An enumeration of possible authentication types when connecting", + "enum": [ + "None", + "WindowsAuthentication", + "SqlAuthentication", + "ActiveDirectoryIntegrated", + "ActiveDirectoryPassword" + ], + "x-ms-enum": { + "name": "AuthenticationType", + "modelAsString": true + } + }, + "MongoDbConnectionInfo": { + "type": "object", + "description": "Describes a connection to a MongoDB data source", + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "properties": { + "connectionString": { + "type": "string", + "description": "A MongoDB connection string or blob container URL. The user name and password can be specified here or in the userName and password properties" + }, + "dataSource": { + "type": "string", + "description": "Data source " + }, + "encryptConnection": { + "type": "boolean", + "description": "Whether to encrypt the connection" + }, + "serverBrandVersion": { + "type": "string", + "description": "server brand version" + }, + "serverVersion": { + "type": "string", + "description": "server version" + }, + "trustServerCertificate": { + "type": "boolean", + "description": "Whether to trust the server certificate", + "default": false + }, + "enforceSSL": { + "type": "boolean" + }, + "port": { + "type": "integer", + "description": "port for server" + }, + "additionalSettings": { + "type": "string", + "description": "Additional connection settings" + } + }, + "required": [ + "connectionString" + ] + }, + "SqlConnectionInfo": { + "x-ms-discriminator-value": "SqlConnectionInfo", + "type": "object", + "description": "Information for connecting to SQL database server", + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "properties": { + "dataSource": { + "type": "string", + "description": "Data source in the format Protocol:MachineName\\SQLServerInstanceName,PortNumber" + }, + "serverName": { + "type": "string", + "description": "name of the server" + }, + "port": { + "type": "integer", + "description": "Port for Server" + }, + "serverVersion": { + "type": "string", + "description": "server version" + }, + "serverBrandVersion": { + "type": "string", + "description": "server brand version" + }, + "resourceId": { + "type": "string", + "description": "Represents the ID of an HTTP resource represented by an Azure resource provider." + }, + "authentication": { + "$ref": "#/definitions/AuthenticationType", + "description": "Authentication type to use for connection" + }, + "encryptConnection": { + "type": "boolean", + "description": "Whether to encrypt the connection", + "default": true + }, + "additionalSettings": { + "type": "string", + "description": "Additional connection settings" + }, + "trustServerCertificate": { + "type": "boolean", + "description": "Whether to trust the server certificate", + "default": false + }, + "platform": { + "$ref": "#/definitions/SqlServerSourcePlatform", + "description": "Server platform type for connection" + } + }, + "required": [ + "dataSource" + ] + }, + "SqlServerSourcePlatform": { + "type": "string", + "description": "An enumeration of source platform types", + "enum": [ + "SqlOnPrem" + ], + "x-ms-enum": { + "name": "SqlSourcePlatform", + "modelAsString": true + } + }, + "MySqlConnectionInfo": { + "x-ms-discriminator-value": "MySqlConnectionInfo", + "type": "object", + "description": "Information for connecting to MySQL server", + "properties": { + "serverName": { + "type": "string", + "description": "Name of the server" + }, + "dataSource": { + "type": "string", + "description": "Data source " + }, + "port": { + "type": "integer", + "description": "Port for Server" + }, + "encryptConnection": { + "type": "boolean", + "description": "Whether to encrypt the connection", + "default": true + }, + "authentication": { + "$ref": "#/definitions/AuthenticationType", + "description": "Authentication type to use for connection" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "required": [ + "serverName", + "port" + ] + }, + "OracleConnectionInfo": { + "x-ms-discriminator-value": "OracleConnectionInfo", + "type": "object", + "description": "Information for connecting to Oracle server", + "properties": { + "dataSource": { + "type": "string", + "description": "EZConnect or TNSName connection string." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "required": [ + "dataSource" + ] + }, + "PostgreSqlConnectionInfo": { + "x-ms-discriminator-value": "PostgreSqlConnectionInfo", + "type": "object", + "description": "Information for connecting to PostgreSQL server", + "properties": { + "serverName": { + "type": "string", + "description": "Name of the server" + }, + "dataSource": { + "type": "string", + "description": "Data source " + }, + "serverVersion": { + "type": "string", + "description": "server version" + }, + "databaseName": { + "type": "string", + "description": "Name of the database" + }, + "port": { + "type": "integer", + "description": "Port for Server" + }, + "encryptConnection": { + "type": "boolean", + "description": "Whether to encrypt the connection", + "default": true + }, + "trustServerCertificate": { + "type": "boolean", + "description": "Whether to trust the server certificate", + "default": false + }, + "additionalSettings": { + "type": "string", + "description": "Additional connection settings" + }, + "serverBrandVersion": { + "type": "string", + "description": "server brand version" + }, + "authentication": { + "$ref": "#/definitions/AuthenticationType", + "description": "Authentication type to use for connection" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "required": [ + "serverName", + "port" + ] + }, + "MySqlTargetPlatform": { + "type": "string", + "description": "An enumeration of possible target types when migrating from MySQL", + "enum": [ + "SqlServer", + "AzureDbForMySQL" + ], + "x-ms-enum": { + "name": "MySqlTargetPlatformType", + "modelAsString": true + } + }, + "ServerLevelPermissionsGroup": { + "type": "string", + "description": "Permission group for validations. These groups will run a set of permissions for validating user activity. Select the permission group for the activity that you are performing.", + "enum": [ + "Default", + "MigrationFromSqlServerToAzureDB", + "MigrationFromSqlServerToAzureMI", + "MigrationFromMySQLToAzureDBForMySQL", + "MigrationFromSqlServerToAzureVM" + ], + "x-ms-enum": { + "name": "ServerLevelPermissionsGroup" + } + }, + "AzureActiveDirectoryApp": { + "type": "object", + "description": "Azure Active Directory Application", + "properties": { + "applicationId": { + "type": "string", + "description": "Application ID of the Azure Active Directory Application" + }, + "appKey": { + "type": "string", + "description": "Key used to authenticate to the Azure Active Directory Application" + }, + "tenantId": { + "type": "string", + "description": "Tenant id of the customer" + }, + "ignoreAzurePermissions": { + "type": "boolean", + "description": "Ignore checking azure permissions on the AAD app" + } + }, + "required": [ + "applicationId", + "appKey", + "tenantId" + ] + }, + "MiSqlConnectionInfo": { + "x-ms-discriminator-value": "MiSqlConnectionInfo", + "type": "object", + "description": "Properties required to create a connection to Azure SQL database Managed instance", + "allOf": [ + { + "$ref": "#/definitions/ConnectionInfo" + } + ], + "properties": { + "managedInstanceResourceId": { + "type": "string", + "description": "Resource id for Azure SQL database Managed instance" + } + }, + "required": [ + "managedInstanceResourceId" + ] + }, + "BackupSetInfo": { + "type": "object", + "description": "Information of backup set", + "properties": { + "backupSetId": { + "type": "string", + "description": "Id for the set of backup files" + }, + "firstLsn": { + "type": "string", + "description": "First log sequence number of the backup file" + }, + "lastLsn": { + "type": "string", + "description": "Last log sequence number of the backup file" + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Last modified time of the backup file in share location" + }, + "backupType": { + "$ref": "#/definitions/BackupType", + "description": "Enum of the different backup types" + }, + "listOfBackupFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupFileInfo" + }, + "description": "List of files in the backup set" + }, + "databaseName": { + "type": "string", + "description": "Name of the database to which the backup set belongs" + }, + "backupStartDate": { + "type": "string", + "format": "date-time", + "description": "Date and time that the backup operation began" + }, + "backupFinishedDate": { + "type": "string", + "format": "date-time", + "description": "Date and time that the backup operation finished" + }, + "isBackupRestored": { + "type": "boolean", + "description": "Whether the backup set is restored or not" + } + }, + "readOnly": true + }, + "BackupType": { + "type": "string", + "description": "Enum of the different backup types.", + "enum": [ + "Database", + "TransactionLog", + "File", + "DifferentialDatabase", + "DifferentialFile", + "Partial", + "DifferentialPartial" + ], + "x-ms-enum": { + "name": "BackupType", + "modelAsString": true + } + }, + "BackupFileInfo": { + "type": "object", + "description": "Information of the backup file", + "properties": { + "fileLocation": { + "type": "string", + "description": "Location of the backup file in shared folder" + }, + "familySequenceNumber": { + "type": "integer", + "description": "Sequence number of the backup file in the backup set" + }, + "status": { + "$ref": "#/definitions/BackupFileStatus", + "description": "Status of the backup file during migration" + } + }, + "readOnly": true + }, + "BackupFileStatus": { + "type": "string", + "description": "An enumeration of Status of the log backup file.", + "enum": [ + "Arrived", + "Queued", + "Uploading", + "Uploaded", + "Restoring", + "Restored", + "Cancelled" + ], + "x-ms-enum": { + "name": "BackupFileStatus", + "modelAsString": true + } + }, + "OrphanedUserInfo": { + "type": "object", + "description": "Information of orphaned users on the SQL server database.", + "properties": { + "name": { + "type": "string", + "description": "Name of the orphaned user" + }, + "databaseName": { + "type": "string", + "description": "Parent database of the user" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceMySqlTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceMySqlTask.json new file mode 100644 index 000000000000..43bf2f47b965 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceMySqlTask.json @@ -0,0 +1,47 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToSourceMySqlTaskInput": { + "type": "object", + "description": "Input for the task that validates MySQL database connection", + "properties": { + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/MySqlConnectionInfo", + "description": "Information for connecting to MySQL source" + }, + "targetPlatform": { + "$ref": "./Common.json#/definitions/MySqlTargetPlatform", + "description": "Target Platform for the migration" + }, + "checkPermissionsGroup": { + "$ref": "./Common.json#/definitions/ServerLevelPermissionsGroup", + "description": "Permission group for validations" + }, + "isOfflineMigration": { + "type": "boolean", + "description": "Flag for whether or not the migration is offline", + "default": false + } + }, + "required": [ + "sourceConnectionInfo" + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourcePostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourcePostgreSqlSyncTask.json new file mode 100644 index 000000000000..09f410e5f9b3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourcePostgreSqlSyncTask.json @@ -0,0 +1,71 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToSourcePostgreSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to PostgreSQL and source server requirements", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source PostgreSQL server", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + } + }, + "required": [ + "sourceConnectionInfo" + ] + }, + "ConnectToSourcePostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to PostgreSQL and source server requirements", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Version of the source server", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of databases on source server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceSqlServerTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceSqlServerTask.json new file mode 100644 index 000000000000..a0458be19bbe --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToSourceSqlServerTask.json @@ -0,0 +1,277 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToSourceSqlServerTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for Source SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "checkPermissionsGroup": { + "$ref": "./Common.json#/definitions/ServerLevelPermissionsGroup", + "description": "Permission group for validations" + }, + "collectDatabases": { + "type": "boolean", + "description": "Flag for whether to collect databases from source server.", + "default": true + }, + "collectLogins": { + "type": "boolean", + "description": "Flag for whether to collect logins from source server.", + "default": false + }, + "collectAgentJobs": { + "type": "boolean", + "description": "Flag for whether to collect agent jobs from source server.", + "default": false + }, + "collectTdeCertificateInfo": { + "type": "boolean", + "description": "Flag for whether to collect TDE Certificate names from source server.", + "default": false + }, + "validateSsisCatalogOnly": { + "type": "boolean", + "description": "Flag for whether to validate SSIS catalog is reachable on the source server.", + "default": false + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + } + }, + "required": [ + "sourceConnectionInfo" + ] + }, + "ConnectToSourceSqlServerTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Type of result - database level or task level", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "ConnectToSourceSqlServerTaskOutputTaskLevel": { + "x-ms-discriminator-value": "TaskLevelOutput", + "type": "object", + "description": "Task level output for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "databases": { + "type": "string", + "description": "Source databases as a map from database name to database id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "logins": { + "type": "string", + "description": "Source logins as a map from login name to login id.", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "agentJobs": { + "type": "string", + "description": "Source agent jobs as a map from agent job name to id.", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "databaseTdeCertificateMapping": { + "type": "string", + "description": "Mapping from database name to TDE certificate name, if applicable", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectToSourceSqlServerTaskOutput" + } + ] + }, + "ConnectToSourceSqlServerTaskOutputDatabaseLevel": { + "x-ms-discriminator-value": "DatabaseLevelOutput", + "type": "object", + "description": "Database level output for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "name": { + "type": "string", + "description": "Database name", + "readOnly": true + }, + "sizeMB": { + "type": "number", + "format": "double", + "description": "Size of the file in megabytes", + "readOnly": true + }, + "databaseFiles": { + "type": "array", + "description": "The list of database files", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseFileInfo" + }, + "readOnly": true + }, + "compatibilityLevel": { + "$ref": "./TasksCommon.json#/definitions/DatabaseCompatLevel", + "description": "SQL Server compatibility level of database", + "readOnly": true + }, + "databaseState": { + "$ref": "./TasksCommon.json#/definitions/DatabaseState", + "description": "State of the database", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectToSourceSqlServerTaskOutput" + } + ] + }, + "ConnectToSourceSqlServerTaskOutputLoginLevel": { + "x-ms-discriminator-value": "LoginLevelOutput", + "type": "object", + "description": "Login level output for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "name": { + "type": "string", + "description": "Login name.", + "readOnly": true + }, + "loginType": { + "$ref": "./TasksCommon.json#/definitions/LoginType", + "description": "The type of login.", + "readOnly": true + }, + "defaultDatabase": { + "type": "string", + "description": "The default database for the login.", + "readOnly": true + }, + "isEnabled": { + "type": "boolean", + "description": "The state of the login.", + "readOnly": true + }, + "migrationEligibility": { + "$ref": "./TasksCommon.json#/definitions/MigrationEligibilityInfo", + "description": "Information about eligibility of login for migration.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectToSourceSqlServerTaskOutput" + } + ] + }, + "ConnectToSourceSqlServerTaskOutputAgentJobLevel": { + "x-ms-discriminator-value": "AgentJobLevelOutput", + "type": "object", + "description": "Agent Job level output for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "name": { + "type": "string", + "description": "Agent Job name", + "readOnly": true + }, + "jobCategory": { + "type": "string", + "description": "The type of Agent Job.", + "readOnly": true + }, + "isEnabled": { + "type": "boolean", + "description": "The state of the original Agent Job.", + "readOnly": true + }, + "jobOwner": { + "type": "string", + "description": "The owner of the Agent Job", + "readOnly": true + }, + "lastExecutedOn": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "UTC Date and time when the Agent Job was last executed." + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "migrationEligibility": { + "$ref": "./TasksCommon.json#/definitions/MigrationEligibilityInfo", + "description": "Information about eligibility of agent job for migration.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectToSourceSqlServerTaskOutput" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForMySqlTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForMySqlTask.json new file mode 100644 index 000000000000..24382fd944ab --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForMySqlTask.json @@ -0,0 +1,81 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetAzureDbForMySqlTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure Database for MySQL and target server requirements", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source MySQL server", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for MySQL server", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "isOfflineMigration": { + "type": "boolean", + "description": "Flag for whether or not the migration is offline", + "default": false + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo" + ] + }, + "ConnectToTargetAzureDbForMySqlTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to Azure Database for MySQL and target server requirements", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "serverVersion": { + "type": "string", + "description": "Version of the target server", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of databases on target server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json new file mode 100644 index 000000000000..ece369b5e24a --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json @@ -0,0 +1,76 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetAzureDbForPostgreSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure Database for PostgreSQL and target server requirements", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source PostgreSQL server", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for PostgreSQL server", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo" + ] + }, + "ConnectToTargetAzureDbForPostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to Azure Database for PostgreSQL and target server requirements", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Version of the target server", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of databases on target server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlDbTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlDbTask.json new file mode 100644 index 000000000000..3a740239bc92 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlDbTask.json @@ -0,0 +1,67 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetSqlDbTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to SQL DB and target server requirements", + "properties": { + "targetConnectionInfo": { + "description": "Connection information for target SQL DB", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "queryObjectCounts": { + "description": "Boolean flag indicating whether to query object counts for each database on the target server", + "type": "boolean" + } + }, + "required": [ + "targetConnectionInfo" + ] + }, + "ConnectToTargetSqlDbTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to SQL DB and target server requirements", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "databases": { + "type": "string", + "description": "Source databases as a map from database name to database id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Version of the target server", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMITask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMITask.json new file mode 100644 index 000000000000..66dd9f9a413c --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMITask.json @@ -0,0 +1,94 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetSqlMITaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure SQL Database Managed Instance.", + "properties": { + "targetConnectionInfo": { + "description": "Connection information for target SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "collectLogins": { + "type": "boolean", + "description": "Flag for whether to collect logins from target SQL MI server.", + "default": true + }, + "collectAgentJobs": { + "type": "boolean", + "description": "Flag for whether to collect agent jobs from target SQL MI server.", + "default": true + }, + "validateSsisCatalogOnly": { + "type": "boolean", + "description": "Flag for whether to validate SSIS catalog is reachable on the target SQL MI server.", + "default": false + } + }, + "required": [ + "targetConnectionInfo" + ] + }, + "ConnectToTargetSqlMITaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to Azure SQL Database Managed Instance.", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "logins": { + "type": "array", + "description": "List of logins on the target server.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "agentJobs": { + "type": "array", + "description": "List of agent jobs on the target server.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMiSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMiSyncTask.json new file mode 100644 index 000000000000..8d40c1f7d0a7 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlMiSyncTask.json @@ -0,0 +1,63 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetSqlMISyncTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure SQL Database Managed Instance online scenario.", + "properties": { + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/MiSqlConnectionInfo", + "description": "Connection information for Azure SQL Database Managed Instance" + }, + "azureApp": { + "description": "Azure Active Directory Application the DMS instance will use to connect to the target instance of Azure SQL Database Managed Instance and the Azure Storage Account", + "$ref": "./Common.json#/definitions/AzureActiveDirectoryApp" + } + }, + "required": [ + "targetConnectionInfo", + "azureApp" + ] + }, + "ConnectToTargetSqlMISyncTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to Azure SQL Database Managed Instance.", + "properties": { + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlSqlDbSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlSqlDbSyncTask.json new file mode 100644 index 000000000000..6731fdeacbab --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ConnectToTargetSqlSqlDbSyncTask.json @@ -0,0 +1,39 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToTargetSqlSqlDbSyncTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure SQL DB and target server requirements", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for target SQL DB", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo" + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Files.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Files.json new file mode 100644 index 000000000000..5577995006a3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Files.json @@ -0,0 +1,108 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Data Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ProjectFileProperties": { + "type": "object", + "description": "Base class for file properties.", + "properties": { + "extension": { + "description": "Optional File extension. If submitted it should not have a leading period and must match the extension from filePath.", + "type": "string" + }, + "filePath": { + "description": "Relative path of this file resource. This property can be set when creating or updating the file resource.", + "type": "string" + }, + "lastModified": { + "description": "Modification DateTime.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "mediaType": { + "description": "File content type. This property can be modified to reflect the file content type.", + "type": "string" + }, + "size": { + "description": "File size.", + "type": "integer", + "format": "int64", + "readOnly": true + } + } + }, + "ProjectFile": { + "type": "object", + "description": "A file resource", + "properties": { + "etag": { + "type": "string", + "description": "HTTP strong entity tag value. This is ignored if submitted." + }, + "properties": { + "description": "Custom file properties", + "$ref": "#/definitions/ProjectFileProperties" + }, + "systemData": { + "$ref": "../sqlmigration.json#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Common.json#/definitions/Resource" + } + ] + }, + "FileList": { + "type": "object", + "description": "OData page of files", + "properties": { + "value": { + "type": "array", + "description": "List of files", + "items": { + "$ref": "#/definitions/ProjectFile" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of files" + } + } + }, + "FileStorageInfo": { + "type": "object", + "description": "File storage information.", + "properties": { + "uri": { + "description": "A URI that can be used to access the file content.", + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetTdeCertificatesSqlTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetTdeCertificatesSqlTask.json new file mode 100644 index 000000000000..ff250dfe8e17 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetTdeCertificatesSqlTask.json @@ -0,0 +1,90 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "GetTdeCertificatesSqlTaskInput": { + "type": "object", + "description": "Input for the task that gets TDE certificates in Base64 encoded format.", + "properties": { + "connectionInfo": { + "description": "Connection information for SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "backupFileShare": { + "$ref": "./TasksCommon.json#/definitions/FileShare", + "description": "Backup file share information for file share to be used for temporarily storing files." + }, + "selectedCertificates": { + "description": "List containing certificate names and corresponding password to use for encrypting the exported certificate.", + "type": "array", + "items": { + "$ref": "#/definitions/SelectedCertificateInput" + } + } + }, + "required": [ + "connectionInfo", + "backupFileShare", + "selectedCertificates" + ] + }, + "GetTdeCertificatesSqlTaskOutput": { + "type": "object", + "description": "Output of the task that gets TDE certificates in Base64 encoded format.", + "properties": { + "base64EncodedCertificates": { + "type": "string", + "description": "Mapping from certificate name to base 64 encoded format.", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "SelectedCertificateInput": { + "type": "object", + "description": "Info for certificate to be exported for TDE enabled databases.", + "properties": { + "certificateName": { + "type": "string", + "description": "Name of certificate to be exported." + }, + "password": { + "type": "string", + "description": "Password to use for encrypting the exported certificate." + } + }, + "required": [ + "certificateName", + "password" + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesMySqlTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesMySqlTask.json new file mode 100644 index 000000000000..612de0195772 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesMySqlTask.json @@ -0,0 +1,72 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "GetUserTablesMySqlTaskInput": { + "type": "object", + "description": "Input for the task that collects user tables for the given list of databases", + "properties": { + "connectionInfo": { + "description": "Connection information for SQL Server", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "selectedDatabases": { + "type": "array", + "description": "List of database names to collect tables for", + "items": { + "type": "string" + } + } + }, + "required": [ + "connectionInfo", + "selectedDatabases" + ] + }, + "GetUserTablesMySqlTaskOutput": { + "type": "object", + "description": "Output of the task that collects user tables for the given list of databases", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "databasesToTables": { + "type": "string", + "description": "Mapping from database name to list of tables", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + } + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlSyncTask.json new file mode 100644 index 000000000000..5ae7ad5566a4 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlSyncTask.json @@ -0,0 +1,102 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "GetUserTablesSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that collects user tables for the given list of databases", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for SQL DB", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "selectedSourceDatabases": { + "type": "array", + "description": "List of source database names to collect tables for", + "items": { + "type": "string" + } + }, + "selectedTargetDatabases": { + "type": "array", + "description": "List of target database names to collect tables for", + "items": { + "type": "string" + } + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo", + "selectedSourceDatabases", + "selectedTargetDatabases" + ] + }, + "GetUserTablesSqlSyncTaskOutput": { + "type": "object", + "description": "Output of the task that collects user tables for the given list of databases", + "properties": { + "databasesToSourceTables": { + "type": "string", + "description": "Mapping from database name to list of source tables", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + } + }, + "readOnly": true + }, + "databasesToTargetTables": { + "type": "string", + "description": "Mapping from database name to list of target tables", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + } + }, + "readOnly": true + }, + "tableValidationErrors": { + "type": "string", + "description": "Mapping from database name to list of validation errors", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlTask.json new file mode 100644 index 000000000000..22bcd3d89924 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/GetUserTablesSqlTask.json @@ -0,0 +1,76 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "GetUserTablesSqlTaskInput": { + "type": "object", + "description": "Input for the task that collects user tables for the given list of databases", + "properties": { + "connectionInfo": { + "description": "Connection information for SQL Server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "selectedDatabases": { + "type": "array", + "description": "List of database names to collect tables for", + "items": { + "type": "string" + } + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + } + }, + "required": [ + "connectionInfo", + "selectedDatabases" + ] + }, + "GetUserTablesSqlTaskOutput": { + "type": "object", + "description": "Output of the task that collects user tables for the given list of databases", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "databasesToTables": { + "type": "string", + "description": "Mapping from database name to list of tables", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + } + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlOfflineTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlOfflineTask.json new file mode 100644 index 000000000000..e81a0675933e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlOfflineTask.json @@ -0,0 +1,408 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateMySqlAzureDbForMySqlOfflineTaskInput": { + "type": "object", + "description": "Input for the task that migrates MySQL databases to Azure Database for MySQL for offline migrations", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source MySQL", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for MySQL", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlOfflineDatabaseInput" + } + }, + "makeSourceServerReadOnly": { + "type": "boolean", + "description": "Setting to set the source server read only", + "default": false + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Parameter to specify when the migration started" + }, + "optionalAgentSettings": { + "type": "object", + "description": "Optional parameters for fine tuning the data transfer rate during migration", + "additionalProperties": { + "type": "string" + } + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo", + "selectedDatabases" + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskOutput": { + "type": "object", + "description": "Output for the task that migrates MySQL databases to Azure Database for MySQL for offline migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "durationInSeconds": { + "type": "integer", + "format": "int64", + "description": "Duration of task execution in seconds.", + "readOnly": true + }, + "status": { + "$ref": "./TasksCommon.json#/definitions/MigrationStatus", + "description": "Current status of migration", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Migration status message", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "databases": { + "type": "string", + "description": "Selected databases as a map from database name to database id", + "additionalProperties": { + "type": "string" + } + }, + "databaseSummary": { + "type": "string", + "description": "Summary of database results in the migration", + "additionalProperties": { + "$ref": "#/definitions/DatabaseSummaryResult" + }, + "readOnly": true + }, + "migrationReportResult": { + "type": "object", + "description": "Migration Report Result, provides unique url for downloading your migration report.", + "$ref": "./MigrationValidation.json#/definitions/MigrationReportResult" + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "lastStorageUpdate": { + "type": "string", + "format": "date-time", + "description": "Last time the storage was updated", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "stage": { + "$ref": "./TasksCommon.json#/definitions/DatabaseMigrationStage", + "description": "Migration stage that this database is in", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Status message", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "numberOfObjects": { + "type": "integer", + "format": "int64", + "description": "Number of objects", + "readOnly": true + }, + "numberOfObjectsCompleted": { + "type": "integer", + "format": "int64", + "description": "Number of successfully completed objects", + "readOnly": true + }, + "errorCount": { + "type": "integer", + "format": "int64", + "description": "Number of database/object errors.", + "readOnly": true + }, + "errorPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all errors of the item", + "readOnly": true + }, + "resultPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all sub-tem results of the item", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "lastStorageUpdate": { + "type": "string", + "format": "date-time", + "description": "Last time the storage was updated", + "readOnly": true + }, + "objectSummary": { + "type": "string", + "description": "Summary of object results in the migration", + "additionalProperties": { + "$ref": "./TasksCommon.json#/definitions/DataItemMigrationSummaryResult" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "objectName": { + "type": "string", + "description": "Name of the item", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Status message", + "readOnly": true + }, + "itemsCount": { + "type": "integer", + "format": "int64", + "description": "Number of items", + "readOnly": true + }, + "itemsCompletedCount": { + "type": "integer", + "format": "int64", + "description": "Number of successfully completed items", + "readOnly": true + }, + "errorPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all errors of the item", + "readOnly": true + }, + "resultPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all sub-tem results of the item", + "readOnly": true + }, + "lastStorageUpdate": { + "type": "string", + "format": "date-time", + "description": "Last time the storage was updated", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the exception", + "readOnly": true + }, + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineDatabaseInput": { + "type": "object", + "description": "Database specific information for offline MySQL to Azure Database for MySQL migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database. Note: Target database will be truncated before starting migration." + }, + "tableMap": { + "type": "object", + "description": "Mapping of source to target tables", + "additionalProperties": { + "type": "string" + } + } + } + }, + "DatabaseSummaryResult": { + "type": "object", + "description": "Summary of database results in the migration", + "properties": { + "sizeMB": { + "type": "number", + "format": "double", + "description": "Size of the database in megabytes", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/DataItemMigrationSummaryResult" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json new file mode 100644 index 000000000000..86d2da515a5e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json @@ -0,0 +1,370 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateMySqlAzureDbForMySqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that migrates MySQL databases to Azure Database for MySQL for online migrations", + "properties": { + "sourceConnectionInfo": { + "description": "Connection information for source MySQL", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for MySQL", + "$ref": "./Common.json#/definitions/MySqlConnectionInfo" + }, + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncDatabaseInput" + } + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo", + "selectedDatabases" + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that migrates MySQL databases to Azure Database for MySQL for online migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServer": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServer": { + "type": "string", + "description": "Target server name", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "migrationState": { + "$ref": "./TasksCommon.json#/definitions/SyncDatabaseMigrationReportingState", + "description": "Migration state that this database is in", + "readOnly": true + }, + "incomingChanges": { + "type": "integer", + "format": "int64", + "description": "Number of incoming changes", + "readOnly": true + }, + "appliedChanges": { + "type": "integer", + "format": "int64", + "description": "Number of applied changes", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc inserts", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc deletes", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc updates", + "readOnly": true + }, + "fullLoadCompletedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables completed in full load", + "readOnly": true + }, + "fullLoadLoadingTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables loading in full load", + "readOnly": true + }, + "fullLoadQueuedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables queued in full load", + "readOnly": true + }, + "fullLoadErroredTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables errored in full load", + "readOnly": true + }, + "initializationCompleted": { + "type": "boolean", + "description": "Indicates if initial load (full load) has been completed", + "readOnly": true + }, + "latency": { + "type": "integer", + "format": "int64", + "description": "CDC apply latency", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "tableName": { + "type": "string", + "description": "Name of the table", + "readOnly": true + }, + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "string", + "description": "Number of applied inserts", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "string", + "description": "Number of applied updates", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "string", + "description": "Number of applied deletes", + "readOnly": true + }, + "fullLoadEstFinishTime": { + "type": "string", + "format": "date-time", + "description": "Estimate to finish full load", + "readOnly": true + }, + "fullLoadStartedOn": { + "type": "string", + "format": "date-time", + "description": "Full load start time", + "readOnly": true + }, + "fullLoadEndedOn": { + "type": "string", + "format": "date-time", + "description": "Full load end time", + "readOnly": true + }, + "fullLoadTotalRows": { + "type": "integer", + "format": "int64", + "description": "Number of rows applied in full load", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/SyncTableMigrationState", + "description": "Current state of the table migration", + "readOnly": true + }, + "totalChangesApplied": { + "type": "integer", + "format": "int64", + "description": "Total number of applied changes", + "readOnly": true + }, + "dataErrorsCounter": { + "type": "integer", + "format": "int64", + "description": "Number of data errors occurred", + "readOnly": true + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Last modified time on target", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskOutputDatabaseError": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelErrorOutput", + "properties": { + "errorMessage": { + "type": "string", + "description": "Error message" + }, + "events": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/SyncMigrationDatabaseErrorEvent" + }, + "description": "List of error events." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncDatabaseInput": { + "type": "object", + "description": "Database specific information for MySQL to Azure Database for MySQL migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database. Note: Target database will be truncated before starting migration." + }, + "migrationSetting": { + "type": "object", + "description": "Migration settings which tune the migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "sourceSetting": { + "type": "object", + "description": "Source settings to tune source endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "targetSetting": { + "type": "object", + "description": "Target settings to tune target endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "tableMap": { + "type": "object", + "description": "Mapping of source to target tables", + "additionalProperties": { + "type": "string" + } + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json new file mode 100644 index 000000000000..f3305a6b500b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json @@ -0,0 +1,422 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that migrates PostgreSQL databases to Azure Database for PostgreSQL for online migrations", + "properties": { + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput" + } + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for PostgreSQL", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + }, + "sourceConnectionInfo": { + "description": "Connection information for source PostgreSQL", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + } + }, + "required": [ + "targetConnectionInfo", + "sourceConnectionInfo", + "selectedDatabases" + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that migrates PostgreSQL databases to Azure Database for PostgreSQL for online migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServer": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServer": { + "type": "string", + "description": "Target server name", + "readOnly": true + }, + "sourceServerType": { + "$ref": "./TasksCommon.json#/definitions/ScenarioSource", + "description": "Source server type.", + "readOnly": true + }, + "targetServerType": { + "$ref": "./TasksCommon.json#/definitions/ScenarioTarget", + "description": "Target server type.", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/ReplicateMigrationState", + "description": "Migration status", + "readOnly": true + }, + "databaseCount": { + "type": "number", + "description": "Number of databases to include" + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "migrationState": { + "$ref": "./TasksCommon.json#/definitions/SyncDatabaseMigrationReportingState", + "description": "Migration state that this database is in", + "readOnly": true + }, + "incomingChanges": { + "type": "integer", + "format": "int64", + "description": "Number of incoming changes", + "readOnly": true + }, + "appliedChanges": { + "type": "integer", + "format": "int64", + "description": "Number of applied changes", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc inserts", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc deletes", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc updates", + "readOnly": true + }, + "fullLoadCompletedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables completed in full load", + "readOnly": true + }, + "fullLoadLoadingTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables loading in full load", + "readOnly": true + }, + "fullLoadQueuedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables queued in full load", + "readOnly": true + }, + "fullLoadErroredTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables errored in full load", + "readOnly": true + }, + "initializationCompleted": { + "type": "boolean", + "description": "Indicates if initial load (full load) has been completed", + "readOnly": true + }, + "latency": { + "type": "integer", + "format": "int64", + "description": "CDC apply latency", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "tableName": { + "type": "string", + "description": "Name of the table", + "readOnly": true + }, + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied inserts", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied updates", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied deletes", + "readOnly": true + }, + "fullLoadEstFinishTime": { + "type": "string", + "format": "date-time", + "description": "Estimate to finish full load", + "readOnly": true + }, + "fullLoadStartedOn": { + "type": "string", + "format": "date-time", + "description": "Full load start time", + "readOnly": true + }, + "fullLoadEndedOn": { + "type": "string", + "format": "date-time", + "description": "Full load end time", + "readOnly": true + }, + "fullLoadTotalRows": { + "type": "integer", + "format": "int64", + "description": "Number of rows applied in full load", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/SyncTableMigrationState", + "description": "Current state of the table migration", + "readOnly": true + }, + "totalChangesApplied": { + "type": "integer", + "format": "int64", + "description": "Total number of applied changes", + "readOnly": true + }, + "dataErrorsCounter": { + "type": "integer", + "format": "int64", + "description": "Number of data errors occurred", + "readOnly": true + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Last modified time on target", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + }, + "events": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/SyncMigrationDatabaseErrorEvent" + }, + "description": "List of error events" + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputDatabaseError": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelErrorOutput", + "properties": { + "errorMessage": { + "type": "string", + "description": "Error message" + }, + "events": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/SyncMigrationDatabaseErrorEvent" + }, + "description": "List of error events." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput": { + "type": "object", + "description": "Database specific information for PostgreSQL to Azure Database for PostgreSQL migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database. Note: Target database will be truncated before starting migration." + }, + "migrationSetting": { + "type": "object", + "description": "Migration settings which tune the migration behavior", + "additionalProperties": {} + }, + "sourceSetting": { + "type": "object", + "description": "Source settings to tune source endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "targetSetting": { + "type": "object", + "description": "Target settings to tune target endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "selectedTables": { + "type": "array", + "description": "Tables selected for migration", + "items": { + "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput" + } + } + } + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput": { + "type": "object", + "description": "Selected tables for the migration", + "properties": { + "name": { + "type": "string", + "description": "Name of the table to migrate" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSchemaSqlServerSqlDbTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSchemaSqlServerSqlDbTask.json new file mode 100644 index 000000000000..25e5861c2040 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSchemaSqlServerSqlDbTask.json @@ -0,0 +1,308 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSchemaSqlServerSqlDbTaskProperties": { + "x-ms-discriminator-value": "MigrateSchemaSqlServerSqlDb", + "type": "object", + "description": "Properties for task that migrates Schema for SQL Server databases to Azure SQL databases", + "properties": { + "input": { + "description": "Task input", + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskOutput" + }, + "readOnly": true + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + }, + "taskId": { + "type": "string", + "description": "Task id " + }, + "isCloneable": { + "type": "boolean", + "description": "whether the task can be cloned or not" + } + }, + "allOf": [ + { + "$ref": "./Tasks.json#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSchemaSqlServerSqlDbTaskInput": { + "type": "object", + "description": "Input for task that migrates Schema for SQL Server databases to Azure SQL databases", + "properties": { + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbDatabaseInput" + } + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + }, + "startedOn": { + "type": "string", + "description": "Migration start time" + } + }, + "required": [ + "selectedDatabases" + ], + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/SqlMigrationTaskInput" + } + ] + }, + "MigrateSchemaSqlServerSqlDbDatabaseInput": { + "type": "object", + "description": "Database input for migrate schema Sql Server to Azure SQL Server scenario", + "properties": { + "name": { + "type": "string", + "description": "Name of source database" + }, + "id": { + "type": "string", + "description": "Id of the source database" + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database" + }, + "schemaSetting": { + "$ref": "#/definitions/SchemaMigrationSetting", + "description": "Database schema migration settings" + } + } + }, + "SchemaMigrationSetting": { + "type": "object", + "description": "Settings for migrating schema from source to target", + "properties": { + "schemaOption": { + "$ref": "#/definitions/SchemaMigrationOption", + "description": "Option on how to migrate the schema" + }, + "fileId": { + "type": "string", + "description": "Resource Identifier of a file resource containing the uploaded schema file" + }, + "fileName": { + "type": "string", + "description": "Name of the file resource containing the uploaded schema file" + } + } + }, + "SchemaMigrationOption": { + "type": "string", + "description": "Option for how schema is extracted and applied to target", + "enum": [ + "None", + "ExtractFromSource", + "UseStorageFile" + ], + "x-ms-enum": { + "name": "SchemaMigrationOption", + "modelAsString": true + } + }, + "MigrateSchemaSqlServerSqlDbTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Overall state of the schema migration", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSchemaSqlServerSqlDbTaskOutputDatabaseLevel": { + "x-ms-discriminator-value": "DatabaseLevelOutput", + "type": "object", + "properties": { + "databaseName": { + "type": "string", + "description": "The name of the database", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "State of the schema migration for this database", + "readOnly": true + }, + "stage": { + "$ref": "./TasksCommon.json#/definitions/SchemaMigrationStage", + "description": "Schema migration stage for this database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "databaseErrorResultPrefix": { + "type": "string", + "description": "Prefix string to use for querying errors for this database", + "readOnly": true + }, + "schemaErrorResultPrefix": { + "type": "string", + "description": "Prefix string to use for querying schema errors for this database", + "readOnly": true + }, + "numberOfSuccessfulOperations": { + "type": "integer", + "format": "int64", + "description": "Number of successful operations for this database", + "readOnly": true + }, + "numberOfFailedOperations": { + "type": "integer", + "format": "int64", + "description": "Number of failed operations for this database", + "readOnly": true + }, + "fileId": { + "type": "string", + "description": "Identifier for the file resource containing the schema of this database", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSchemaSqlServerSqlDbTaskOutputError": { + "x-ms-discriminator-value": "SchemaErrorOutput", + "type": "object", + "properties": { + "commandText": { + "type": "string", + "description": "Schema command which failed", + "readOnly": true + }, + "errorText": { + "type": "string", + "description": "Reason of failure", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSchemaSqlTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSchemaSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSchemaSqlServerSqlDbTaskOutput": { + "type": "object", + "description": "Output for the task that migrates Schema for SQL Server databases to Azure SQL databases", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbSyncTask.json new file mode 100644 index 000000000000..528c3fd5ec77 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbSyncTask.json @@ -0,0 +1,335 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSqlServerSqlDbSyncTaskInput": { + "type": "object", + "description": "Input for the task that migrates on-prem SQL Server databases to Azure SQL Database for online migrations", + "properties": { + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlDbSyncDatabaseInput" + } + }, + "validationOptions": { + "description": "Validation options", + "$ref": "./MigrationValidation.json#/definitions/MigrationValidationOptions" + } + }, + "required": [ + "selectedDatabases" + ], + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/SqlMigrationTaskInput" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskOutput": { + "type": "object", + "description": "Output for the task that migrates on-prem SQL Server databases to Azure SQL Database for online migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateSqlServerSqlDbSyncTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServer": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServer": { + "type": "string", + "description": "Target server name", + "readOnly": true + }, + "databaseCount": { + "type": "integer", + "description": "Count of databases", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "migrationState": { + "$ref": "./TasksCommon.json#/definitions/SyncDatabaseMigrationReportingState", + "description": "Migration state that this database is in", + "readOnly": true + }, + "incomingChanges": { + "type": "integer", + "format": "int64", + "description": "Number of incoming changes", + "readOnly": true + }, + "appliedChanges": { + "type": "integer", + "format": "int64", + "description": "Number of applied changes", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc inserts", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc deletes", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc updates", + "readOnly": true + }, + "fullLoadCompletedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables completed in full load", + "readOnly": true + }, + "fullLoadLoadingTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables loading in full load", + "readOnly": true + }, + "fullLoadQueuedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables queued in full load", + "readOnly": true + }, + "fullLoadErroredTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables errored in full load", + "readOnly": true + }, + "initializationCompleted": { + "type": "boolean", + "description": "Indicates if initial load (full load) has been completed", + "readOnly": true + }, + "latency": { + "type": "integer", + "format": "int64", + "description": "CDC apply latency", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "tableName": { + "type": "string", + "description": "Name of the table", + "readOnly": true + }, + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied inserts", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied updates", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied deletes", + "readOnly": true + }, + "fullLoadEstFinishTime": { + "type": "string", + "format": "date-time", + "description": "Estimate to finish full load", + "readOnly": true + }, + "fullLoadStartedOn": { + "type": "string", + "format": "date-time", + "description": "Full load start time", + "readOnly": true + }, + "fullLoadEndedOn": { + "type": "string", + "format": "date-time", + "description": "Full load end time", + "readOnly": true + }, + "fullLoadTotalRows": { + "type": "integer", + "format": "int64", + "description": "Number of rows applied in full load", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/SyncTableMigrationState", + "description": "Current state of the table migration", + "readOnly": true + }, + "totalChangesApplied": { + "type": "integer", + "format": "int64", + "description": "Total number of applied changes", + "readOnly": true + }, + "dataErrorsCounter": { + "type": "integer", + "format": "int64", + "description": "Number of data errors occurred", + "readOnly": true + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Last modified time on target", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskOutputDatabaseError": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelErrorOutput", + "properties": { + "errorMessage": { + "type": "string", + "description": "Error message" + }, + "events": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/SyncMigrationDatabaseErrorEvent" + }, + "description": "List of error events." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbTask.json new file mode 100644 index 000000000000..d004dbee38ee --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlDbTask.json @@ -0,0 +1,385 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSqlServerSqlDbTaskInput": { + "type": "object", + "description": "Input for the task that migrates on-prem SQL Server databases to Azure SQL Database", + "properties": { + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlDbDatabaseInput" + } + }, + "validationOptions": { + "description": "Options for enabling various post migration validations. Available options, \n 1.) Data Integrity Check: Performs a checksum based comparison on source and target tables after the migration to ensure the correctness of the data. \n 2.) Schema Validation: Performs a thorough schema comparison between the source and target tables and provides a list of differences between the source and target database, 3.) Query Analysis: Executes a set of queries picked up automatically either from the Query Plan Cache or Query Store and execute them and compares the execution time between the source and target database.", + "$ref": "./MigrationValidation.json#/definitions/MigrationValidationOptions" + }, + "startedOn": { + "type": "string", + "description": "Date and time relative to UTC when the migration was started on" + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + } + }, + "required": [ + "selectedDatabases" + ], + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/SqlMigrationTaskInput" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutput": { + "type": "object", + "description": "Output for the task that migrates on-prem SQL Server databases to Azure SQL Database", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateSqlServerSqlDbTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "durationInSeconds": { + "type": "integer", + "format": "int64", + "description": "Duration of task execution in seconds.", + "readOnly": true + }, + "status": { + "$ref": "./TasksCommon.json#/definitions/MigrationStatus", + "description": "Current status of migration", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Migration status message", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "databases": { + "type": "string", + "description": "Selected databases as a map from database name to database id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "databaseSummary": { + "type": "string", + "description": "Summary of database results in the migration", + "additionalProperties": { + "$ref": "#/definitions/DatabaseSummaryResult" + }, + "readOnly": true + }, + "migrationValidationResult": { + "type": "object", + "description": "Migration Validation Results", + "$ref": "./MigrationValidation.json#/definitions/MigrationValidationResult" + }, + "migrationReportResult": { + "type": "object", + "description": "Migration Report Result, provides unique url for downloading your migration report.", + "$ref": "./MigrationValidation.json#/definitions/MigrationReportResult" + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the item", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "stage": { + "$ref": "./TasksCommon.json#/definitions/DatabaseMigrationStage", + "description": "Migration stage that this database is in", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Status message", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "numberOfObjects": { + "type": "integer", + "format": "int64", + "description": "Number of objects", + "readOnly": true + }, + "numberOfObjectsCompleted": { + "type": "integer", + "format": "int64", + "description": "Number of successfully completed objects", + "readOnly": true + }, + "errorCount": { + "type": "integer", + "format": "int64", + "description": "Number of database/object errors.", + "readOnly": true + }, + "errorPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all errors of the item", + "readOnly": true + }, + "resultPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all sub-tem results of the item", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "objectSummary": { + "type": "string", + "description": "Summary of object results in the migration", + "additionalProperties": { + "$ref": "./TasksCommon.json#/definitions/DataItemMigrationSummaryResult" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "objectName": { + "type": "string", + "description": "Name of the item", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Status message", + "readOnly": true + }, + "itemsCount": { + "type": "integer", + "format": "int64", + "description": "Number of items", + "readOnly": true + }, + "itemsCompletedCount": { + "type": "integer", + "format": "int64", + "description": "Number of successfully completed items", + "readOnly": true + }, + "errorPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all errors of the item", + "readOnly": true + }, + "resultPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all sub-tem results of the item", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the exception", + "readOnly": true + }, + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + } + ] + }, + "DatabaseSummaryResult": { + "type": "object", + "description": "Summary of database results in the migration", + "properties": { + "sizeMB": { + "type": "number", + "format": "double", + "description": "Size of the database in megabytes", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/DataItemMigrationSummaryResult" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutputValidationResult": { + "x-ms-discriminator-value": "MigrationValidationOutput", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + }, + { + "$ref": "./MigrationValidation.json#/definitions/MigrationValidationResult" + } + ] + }, + "MigrateSqlServerSqlDbTaskOutputDatabaseLevelValidationResult": { + "x-ms-discriminator-value": "MigrationDatabaseLevelValidationOutput", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlDbTaskOutput" + }, + { + "$ref": "./MigrationValidation.json#/definitions/MigrationValidationDatabaseLevelResult" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMITask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMITask.json new file mode 100644 index 000000000000..ec271cfb7277 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMITask.json @@ -0,0 +1,388 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSqlServerSqlMITaskInput": { + "type": "object", + "description": "Input for task that migrates SQL Server databases to Azure SQL Database Managed Instance.", + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/SqlMigrationTaskInput" + } + ], + "properties": { + "selectedDatabases": { + "description": "Databases to migrate", + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlMIDatabaseInput" + } + }, + "startedOn": { + "type": "string", + "description": "Date and time relative to UTC when the migration was started on" + }, + "selectedLogins": { + "type": "array", + "description": "Logins to migrate.", + "items": { + "type": "string" + } + }, + "selectedAgentJobs": { + "description": "Agent Jobs to migrate.", + "type": "array", + "items": { + "type": "string" + } + }, + "backupFileShare": { + "$ref": "./TasksCommon.json#/definitions/FileShare", + "description": "Backup file share information for all selected databases." + }, + "backupBlobShare": { + "$ref": "./TasksCommon.json#/definitions/BlobShare", + "description": "SAS URI of Azure Storage Account Container to be used for storing backup files." + }, + "backupMode": { + "$ref": "./TasksCommon.json#/definitions/BackupMode", + "description": "Backup Mode to specify whether to use existing backup or create new backup. If using existing backups, backup file paths are required to be provided in selectedDatabases." + }, + "aadDomainName": { + "type": "string", + "description": "Azure Active Directory domain name in the format of 'contoso.com' for federated Azure AD or 'contoso.onmicrosoft.com' for managed domain, required if and only if Windows logins are selected" + }, + "encryptedKeyForSecureFields": { + "type": "string", + "description": "encrypted key for secure fields" + } + }, + "required": [ + "selectedDatabases", + "backupBlobShare" + ] + }, + "MigrateSqlServerSqlMITaskOutput": { + "type": "object", + "description": "Output for task that migrates SQL Server databases to Azure SQL Database Managed Instance.", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateSqlServerSqlMITaskOutputMigrationLevel": { + "type": "object", + "x-ms-discriminator-value": "MigrationLevelOutput", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "status": { + "$ref": "TasksCommon.json#/definitions/MigrationStatus", + "description": "Current status of migration", + "readOnly": true + }, + "state": { + "$ref": "TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "agentJobs": { + "type": "string", + "description": "Selected agent jobs as a map from name to id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "logins": { + "type": "string", + "description": "Selected logins as a map from name to id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "serverRoleResults": { + "type": "string", + "description": "Map of server role migration results.", + "additionalProperties": { + "type": "object", + "description": "Server role migration result object.", + "$ref": "TasksCommon.json#/definitions/StartMigrationScenarioServerRoleResult" + }, + "readOnly": true + }, + "orphanedUsersInfo": { + "type": "array", + "description": "List of orphaned users.", + "items": { + "$ref": "./Common.json#/definitions/OrphanedUserInfo" + }, + "readOnly": true + }, + "databases": { + "type": "string", + "description": "Selected databases as a map from database name to database id", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMITaskOutput" + } + ] + }, + "MigrateSqlServerSqlMITaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "sizeMB": { + "type": "number", + "format": "double", + "description": "Size of the database in megabytes", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "stage": { + "$ref": "./TasksCommon.json#/definitions/DatabaseMigrationStage", + "description": "Current stage of migration", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings", + "type": "array", + "items": { + "$ref": "Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMITaskOutput" + } + ] + }, + "MigrateSqlServerSqlMITaskOutputAgentJobLevel": { + "type": "object", + "x-ms-discriminator-value": "AgentJobLevelOutput", + "properties": { + "name": { + "type": "string", + "description": "Agent Job name.", + "readOnly": true + }, + "isEnabled": { + "type": "boolean", + "description": "The state of the original Agent Job.", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration errors and warnings per job", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMITaskOutput" + } + ] + }, + "MigrateSqlServerSqlMITaskOutputLoginLevel": { + "type": "object", + "x-ms-discriminator-value": "LoginLevelOutput", + "properties": { + "loginName": { + "type": "string", + "description": "Login name.", + "readOnly": true + }, + "state": { + "$ref": "TasksCommon.json#/definitions/MigrationState", + "description": "Current state of login", + "readOnly": true + }, + "stage": { + "$ref": "./TasksCommon.json#/definitions/LoginMigrationStage", + "description": "Current stage of login", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Login migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Login migration end time", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Login migration progress message", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Login migration errors and warnings per login", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMITaskOutput" + } + ] + }, + "MigrateSqlServerSqlMITaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the exception", + "readOnly": true + }, + "error": { + "$ref": "Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMITaskOutput" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMiSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMiSyncTask.json new file mode 100644 index 000000000000..e7f906509db1 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSqlServerSqlMiSyncTask.json @@ -0,0 +1,220 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSqlServerSqlMISyncTaskInput": { + "type": "object", + "description": "Input for task that migrates SQL Server databases to Azure SQL Database Managed Instance online scenario.", + "properties": { + "numberOfParallelDatabaseMigrations": { + "type": "number", + "description": "Number of database migrations to start in parallel" + } + }, + "allOf": [ + { + "$ref": "TasksCommon.json#/definitions/SqlServerSqlMISyncTaskInput" + } + ] + }, + "MigrateSqlServerSqlMISyncTaskOutput": { + "type": "object", + "description": "Output for task that migrates SQL Server databases to Azure SQL Database Managed Instance using Log Replay Service.", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateSqlServerSqlMISyncTaskOutputMigrationLevel": { + "type": "object", + "x-ms-discriminator-value": "MigrationLevelOutput", + "properties": { + "databaseCount": { + "type": "integer", + "description": "Count of databases", + "readOnly": true + }, + "state": { + "$ref": "TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerName": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerName": { + "type": "string", + "description": "Target server name", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "databaseErrorCount": { + "type": "integer", + "description": "Number of database level errors", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMISyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlMISyncTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "sourceDatabaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "migrationState": { + "$ref": "./TasksCommon.json#/definitions/DatabaseMigrationState", + "description": "Current state of database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Database migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Database migration end time", + "readOnly": true + }, + "fullBackupSetInfo": { + "type": "object", + "description": "Details of full backup set", + "$ref": "Common.json#/definitions/BackupSetInfo", + "readOnly": true + }, + "lastRestoredBackupSetInfo": { + "type": "object", + "description": "Last applied backup set information", + "$ref": "Common.json#/definitions/BackupSetInfo", + "readOnly": true + }, + "activeBackupSets": { + "description": "Backup sets that are currently active (Either being uploaded or getting restored)", + "type": "array", + "items": { + "$ref": "Common.json#/definitions/BackupSetInfo" + }, + "readOnly": true + }, + "containerName": { + "description": "Name of container created in the Azure Storage account where backups are copied to", + "type": "string", + "readOnly": true + }, + "errorPrefix": { + "description": "prefix string to use for querying errors for this database", + "type": "string", + "readOnly": true + }, + "isFullBackupRestored": { + "description": "Whether full backup has been applied to the target database or not", + "type": "boolean", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings", + "type": "array", + "items": { + "$ref": "Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMISyncTaskOutput" + } + ] + }, + "MigrateSqlServerSqlMISyncTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the exception", + "readOnly": true + }, + "error": { + "$ref": "Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSqlServerSqlMISyncTaskOutput" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSsisTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSsisTask.json new file mode 100644 index 000000000000..b4f436db1454 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrateSsisTask.json @@ -0,0 +1,180 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrateSsisTaskInput": { + "type": "object", + "description": "Input for task that migrates SSIS packages from SQL Server to Azure SQL Database Managed Instance.", + "allOf": [ + { + "$ref": "./TasksCommon.json#/definitions/SqlMigrationTaskInput" + } + ], + "properties": { + "ssisMigrationInfo": { + "$ref": "./TasksCommon.json#/definitions/SsisMigrationInfo", + "description": "SSIS package migration information." + } + }, + "required": [ + "ssisMigrationInfo" + ] + }, + "MigrateSsisTaskOutput": { + "type": "object", + "description": "Output for task that migrates SSIS packages from SQL Server to Azure SQL Database Managed Instance.", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateSsisTaskOutputMigrationLevel": { + "type": "object", + "x-ms-discriminator-value": "MigrationLevelOutput", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "status": { + "$ref": "TasksCommon.json#/definitions/MigrationStatus", + "description": "Current status of migration", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "stage": { + "description": "Stage of SSIS migration.", + "$ref": "./TasksCommon.json#/definitions/SsisMigrationStage", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSsisTaskOutput" + } + ] + }, + "MigrateSsisTaskOutputProjectLevel": { + "type": "object", + "x-ms-discriminator-value": "SsisProjectLevelOutput", + "properties": { + "folderName": { + "type": "string", + "description": "Name of the folder", + "readOnly": true + }, + "projectName": { + "type": "string", + "description": "Name of the project", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "stage": { + "description": "Stage of SSIS migration.", + "$ref": "./TasksCommon.json#/definitions/SsisMigrationStage", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Migration progress message", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings", + "type": "array", + "items": { + "$ref": "Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateSsisTaskOutput" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrationValidation.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrationValidation.json new file mode 100644 index 000000000000..34de9033c521 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MigrationValidation.json @@ -0,0 +1,413 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MigrationValidationOptions": { + "type": "object", + "description": "Types of validations to run after the migration", + "properties": { + "enableSchemaValidation": { + "type": "boolean", + "description": "Allows to compare the schema information between source and target." + }, + "enableDataIntegrityValidation": { + "type": "boolean", + "description": "Allows to perform a checksum based data integrity validation between source and target for the selected database / tables ." + }, + "enableQueryAnalysisValidation": { + "type": "boolean", + "description": "Allows to perform a quick and intelligent query analysis by retrieving queries from the source database and executes them in the target. The result will have execution statistics for executions in source and target databases for the extracted queries." + } + } + }, + "MigrationReportResult": { + "type": "object", + "description": "Migration validation report result, contains the url for downloading the generated report.", + "properties": { + "id": { + "type": "string", + "description": "Migration validation result identifier" + }, + "reportUrl": { + "type": "string", + "description": "The url of the report." + } + } + }, + "MigrationValidationResult": { + "type": "object", + "description": "Migration Validation Result", + "properties": { + "id": { + "type": "string", + "description": "Migration validation result identifier", + "readOnly": true + }, + "migrationId": { + "type": "string", + "description": "Migration Identifier", + "readOnly": true + }, + "summaryResults": { + "type": "object", + "description": "Validation summary results for each database", + "additionalProperties": { + "$ref": "#/definitions/MigrationValidationDatabaseSummaryResult" + } + }, + "status": { + "$ref": "#/definitions/ValidationStatus", + "description": "Current status of validation at the migration level. Status from the database validation result status will be aggregated here.", + "readOnly": true + } + } + }, + "MigrationValidationDatabaseSummaryResult": { + "type": "object", + "description": "Migration Validation Database level summary result", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "migrationId": { + "type": "string", + "description": "Migration Identifier", + "readOnly": true + }, + "sourceDatabaseName": { + "type": "string", + "description": "Name of the source database", + "readOnly": true + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of the target database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Validation start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Validation end time", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/ValidationStatus", + "description": "Current status of validation at the database level", + "readOnly": true + } + } + }, + "MigrationValidationDatabaseLevelResult": { + "type": "object", + "description": "Database level validation results", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "migrationId": { + "type": "string", + "description": "Migration Identifier", + "readOnly": true + }, + "sourceDatabaseName": { + "type": "string", + "description": "Name of the source database", + "readOnly": true + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of the target database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Validation start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Validation end time", + "readOnly": true + }, + "dataIntegrityValidationResult": { + "description": "Provides data integrity validation result between the source and target tables that are migrated.", + "$ref": "#/definitions/DataIntegrityValidationResult", + "readOnly": true + }, + "schemaValidationResult": { + "description": "Provides schema comparison result between source and target database", + "$ref": "#/definitions/SchemaComparisonValidationResult", + "readOnly": true + }, + "queryAnalysisValidationResult": { + "description": "Results of some of the query execution result between source and target database", + "$ref": "#/definitions/QueryAnalysisValidationResult", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/ValidationStatus", + "description": "Current status of validation at the database level", + "readOnly": true + } + } + }, + "DataIntegrityValidationResult": { + "type": "object", + "description": "Results for checksum based Data Integrity validation results", + "properties": { + "failedObjects": { + "type": "object", + "description": "List of failed table names of source and target pair", + "additionalProperties": { + "type": "string" + } + }, + "validationErrors": { + "type": "array", + "description": "List of errors that happened while performing data integrity validation", + "$ref": "#/definitions/ValidationError" + } + } + }, + "SchemaComparisonValidationResult": { + "type": "object", + "description": "Results for schema comparison between the source and target", + "properties": { + "schemaDifferences": { + "type": "array", + "description": "List of schema differences between the source and target databases", + "$ref": "#/definitions/SchemaComparisonValidationResultType" + }, + "validationErrors": { + "type": "array", + "description": "List of errors that happened while performing schema compare validation", + "$ref": "#/definitions/ValidationError" + }, + "sourceDatabaseObjectCount": { + "type": "object", + "description": "Count of source database objects", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "targetDatabaseObjectCount": { + "type": "object", + "description": "Count of target database objects", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + } + }, + "SchemaComparisonValidationResultType": { + "type": "object", + "description": "Description about the errors happen while performing migration validation", + "properties": { + "objectName": { + "type": "string", + "description": "Name of the object that has the difference" + }, + "objectType": { + "type": "object", + "$ref": "./TasksCommon.json#/definitions/DatabaseObjectType", + "description": "Type of the object that has the difference. e.g (Table/View/StoredProcedure)" + }, + "updateAction": { + "type": "string", + "description": "Update action type with respect to target", + "$ref": "#/definitions/UpdateActionType" + } + } + }, + "UpdateActionType": { + "type": "string", + "description": "Type of the actual difference for the compared object, while performing schema comparison", + "enum": [ + "DeletedOnTarget", + "ChangedOnTarget", + "AddedOnTarget" + ], + "x-ms-enum": { + "name": "UpdateActionType", + "modelAsString": true + } + }, + "QueryAnalysisValidationResult": { + "type": "object", + "description": "Results for query analysis comparison between the source and target", + "properties": { + "queryResults": { + "type": "array", + "description": "List of queries executed and it's execution results in source and target", + "$ref": "#/definitions/QueryExecutionResult" + }, + "validationErrors": { + "type": "array", + "description": "Errors that are part of the execution", + "$ref": "#/definitions/ValidationError" + } + } + }, + "QueryExecutionResult": { + "type": "object", + "description": "Describes query analysis results for execution in source and target", + "properties": { + "queryText": { + "type": "string", + "description": "Query text retrieved from the source server" + }, + "statementsInBatch": { + "type": "integer", + "format": "int64", + "description": "Total no. of statements in the batch" + }, + "sourceResult": { + "type": "object", + "description": "Query analysis result from the source", + "$ref": "#/definitions/ExecutionStatistics" + }, + "targetResult": { + "type": "object", + "description": "Query analysis result from the target", + "$ref": "#/definitions/ExecutionStatistics" + } + } + }, + "ExecutionStatistics": { + "type": "object", + "description": "Description about the errors happen while performing migration validation", + "properties": { + "executionCount": { + "type": "integer", + "format": "int64", + "description": "No. of query executions" + }, + "cpuTimeMs": { + "type": "number", + "format": "float", + "description": "CPU Time in millisecond(s) for the query execution" + }, + "elapsedTimeMs": { + "type": "number", + "format": "float", + "description": "Time taken in millisecond(s) for executing the query" + }, + "waitStats": { + "type": "object", + "description": "Dictionary of sql query execution wait types and the respective statistics", + "additionalProperties": { + "type": "object", + "$ref": "#/definitions/WaitStatistics" + } + }, + "hasErrors": { + "type": "boolean", + "description": "Indicates whether the query resulted in an error" + }, + "sqlErrors": { + "type": "array", + "description": "List of sql Errors", + "items": { + "type": "string" + } + } + } + }, + "WaitStatistics": { + "type": "object", + "description": "Wait statistics gathered during query batch execution", + "properties": { + "waitType": { + "type": "string", + "description": "Type of the Wait" + }, + "waitTimeMs": { + "type": "number", + "format": "float", + "default": 0, + "description": "Total wait time in millisecond(s) " + }, + "waitCount": { + "type": "integer", + "format": "int64", + "description": "Total no. of waits" + } + } + }, + "Severity": { + "type": "string", + "description": "Severity of the validation error", + "enum": [ + "Message", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true + } + }, + "ValidationError": { + "type": "object", + "description": "Description about the errors happen while performing migration validation", + "properties": { + "text": { + "type": "string", + "description": "Error Text" + }, + "severity": { + "type": "string", + "description": "Severity of the error", + "$ref": "#/definitions/Severity" + } + } + }, + "ValidationStatus": { + "type": "string", + "description": "Current status of the validation", + "enum": [ + "Default", + "NotStarted", + "Initialized", + "InProgress", + "Completed", + "CompletedWithIssues", + "Stopped", + "Failed" + ], + "x-ms-enum": { + "name": "ValidationStatus", + "modelAsString": true + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MongoDbTasks.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MongoDbTasks.json new file mode 100644 index 000000000000..5005dd5cbd87 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/MongoDbTasks.json @@ -0,0 +1,608 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "MongoDbCancelCommand": { + "x-ms-discriminator-value": "cancel", + "type": "object", + "description": "Properties for the command that cancels a migration in whole or in part", + "properties": { + "input": { + "$ref": "#/definitions/MongoDbCommandInput", + "description": "Command input" + } + }, + "allOf": [ + { + "$ref": "Commands.json#/definitions/CommandProperties" + } + ] + }, + "MongoDbClusterInfo": { + "type": "object", + "description": "Describes a MongoDB data source", + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/definitions/MongoDbDatabaseInfo" + }, + "description": "A list of non-system databases in the cluster" + }, + "supportsSharding": { + "type": "boolean", + "description": "Whether the cluster supports sharded collections" + }, + "type": { + "type": "string", + "description": "The type of data source", + "enum": [ + "BlobContainer", + "CosmosDb", + "MongoDb" + ], + "x-ms-enum": { + "name": "MongoDbClusterType", + "modelAsString": true + } + }, + "version": { + "type": "string", + "description": "The version of the data source in the form x.y.z (e.g. 3.6.7). Not used if Type is BlobContainer." + } + }, + "required": [ + "databases", + "supportsSharding", + "type", + "version" + ] + }, + "MongoDbCollectionInfo": { + "type": "object", + "description": "Describes a supported collection within a MongoDB database", + "properties": { + "databaseName": { + "type": "string", + "description": "The name of the database containing the collection" + }, + "isCapped": { + "type": "boolean", + "description": "Whether the collection is a capped collection (i.e. whether it has a fixed size and acts like a circular buffer)" + }, + "isSystemCollection": { + "type": "boolean", + "description": "Whether the collection is system collection" + }, + "isView": { + "type": "boolean", + "description": "Whether the collection is a view of another collection" + }, + "shardKey": { + "$ref": "#/definitions/MongoDbShardKeyInfo", + "description": "The shard key on the collection, or null if the collection is not sharded" + }, + "supportsSharding": { + "type": "boolean", + "description": "Whether the database has sharding enabled. Note that the migration task will enable sharding on the target if necessary." + }, + "viewOf": { + "type": "string", + "description": "The name of the collection that this is a view of, if IsView is true" + } + }, + "allOf": [ + { + "$ref": "#/definitions/MongoDbObjectInfo" + } + ], + "required": [ + "databaseName", + "isCapped", + "isSystemCollection", + "isView", + "supportsSharding" + ] + }, + "MongoDbCollectionProgress": { + "x-ms-discriminator-value": "Collection", + "type": "object", + "description": "Describes the progress of a collection", + "allOf": [ + { + "$ref": "#/definitions/MongoDbProgress" + } + ] + }, + "MongoDbCollectionSettings": { + "type": "object", + "description": "Describes how an individual MongoDB collection should be migrated", + "properties": { + "canDelete": { + "type": "boolean", + "description": "Whether the migrator is allowed to drop the target collection in the course of performing a migration. The default is true." + }, + "shardKey": { + "$ref": "#/definitions/MongoDbShardKeySetting" + }, + "targetRUs": { + "type": "integer", + "format": "int32", + "description": "The RUs that should be configured on a CosmosDB target, or null to use the default. This has no effect on non-CosmosDB targets." + } + } + }, + "MongoDbCommandInput": { + "type": "object", + "description": "Describes the input to the 'cancel' and 'restart' MongoDB migration commands", + "properties": { + "objectName": { + "type": "string", + "description": "The qualified name of a database or collection to act upon, or null to act upon the entire migration" + } + } + }, + "MongoDbDatabaseInfo": { + "type": "object", + "description": "Describes a database within a MongoDB data source", + "properties": { + "collections": { + "type": "array", + "items": { + "$ref": "#/definitions/MongoDbCollectionInfo" + }, + "description": "A list of supported collections in a MongoDB database" + }, + "supportsSharding": { + "type": "boolean", + "description": "Whether the database has sharding enabled. Note that the migration task will enable sharding on the target if necessary." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MongoDbObjectInfo" + } + ], + "required": [ + "collections", + "supportsSharding" + ] + }, + "MongoDbDatabaseProgress": { + "x-ms-discriminator-value": "Database", + "type": "object", + "description": "Describes the progress of a database", + "properties": { + "collections": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MongoDbCollectionProgress" + }, + "description": "The progress of the collections in the database. The keys are the unqualified names of the collections" + } + }, + "allOf": [ + { + "$ref": "#/definitions/MongoDbProgress" + } + ] + }, + "MongoDbDatabaseSettings": { + "type": "object", + "description": "Describes how an individual MongoDB database should be migrated", + "properties": { + "collections": { + "type": "object", + "description": "The collections on the source database to migrate to the target. The keys are the unqualified names of the collections.", + "additionalProperties": { + "$ref": "#/definitions/MongoDbCollectionSettings" + } + }, + "targetRUs": { + "type": "integer", + "format": "int32", + "description": "The RUs that should be configured on a CosmosDB target, or null to use the default, or 0 if throughput should not be provisioned for the database. This has no effect on non-CosmosDB targets." + } + }, + "required": [ + "collections" + ] + }, + "MongoDbError": { + "type": "object", + "description": "Describes an error or warning that occurred during a MongoDB migration", + "properties": { + "code": { + "type": "string", + "description": "The non-localized, machine-readable code that describes the error or warning" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The number of times the error or warning has occurred" + }, + "message": { + "type": "string", + "description": "The localized, human-readable message that describes the error or warning" + }, + "type": { + "type": "string", + "description": "The type of error or warning", + "enum": [ + "Error", + "ValidationError", + "Warning" + ], + "x-ms-enum": { + "name": "MongoDbErrorType", + "modelAsString": true + } + } + } + }, + "MongoDbFinishCommand": { + "x-ms-discriminator-value": "finish", + "type": "object", + "description": "Properties for the command that finishes a migration in whole or in part", + "properties": { + "input": { + "$ref": "#/definitions/MongoDbFinishCommandInput", + "description": "Command input" + } + }, + "allOf": [ + { + "$ref": "Commands.json#/definitions/CommandProperties" + } + ] + }, + "MongoDbFinishCommandInput": { + "type": "object", + "description": "Describes the input to the 'finish' MongoDB migration command", + "properties": { + "immediate": { + "type": "boolean", + "description": "If true, replication for the affected objects will be stopped immediately. If false, the migrator will finish replaying queued events before finishing the replication." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MongoDbCommandInput" + } + ], + "required": [ + "immediate" + ] + }, + "MongoDbMigrationSettings": { + "type": "object", + "description": "Describes how a MongoDB data migration should be performed", + "properties": { + "boostRUs": { + "type": "integer", + "format": "int32", + "description": "The RU limit on a CosmosDB target that collections will be temporarily increased to (if lower) during the initial copy of a migration, from 10,000 to 1,000,000, or 0 to use the default boost (which is generally the maximum), or null to not boost the RUs. This setting has no effect on non-CosmosDB targets." + }, + "databases": { + "type": "object", + "description": "The databases on the source cluster to migrate to the target. The keys are the names of the databases.", + "additionalProperties": { + "$ref": "#/definitions/MongoDbDatabaseSettings" + } + }, + "replication": { + "type": "string", + "description": "Describes how changes will be replicated from the source to the target. The default is OneTime.", + "enum": [ + "Disabled", + "OneTime", + "Continuous" + ], + "x-ms-enum": { + "name": "MongoDbReplication", + "modelAsString": true + } + }, + "source": { + "$ref": "./Common.json#/definitions/MongoDbConnectionInfo", + "description": "Settings used to connect to the source cluster" + }, + "target": { + "$ref": "./Common.json#/definitions/MongoDbConnectionInfo", + "description": "Settings used to connect to the target cluster" + }, + "throttling": { + "$ref": "#/definitions/MongoDbThrottlingSettings", + "description": "Settings used to limit the resource usage of the migration" + } + }, + "required": [ + "databases", + "source", + "target" + ] + }, + "MongoDbProgress": { + "type": "object", + "description": "Base class for MongoDB migration outputs", + "properties": { + "bytesCopied": { + "type": "integer", + "format": "int64", + "description": "The number of document bytes copied during the Copying stage" + }, + "documentsCopied": { + "type": "integer", + "format": "int64", + "description": "The number of documents copied during the Copying stage" + }, + "elapsedTime": { + "type": "string", + "description": "The elapsed time in the format [ddd.]hh:mm:ss[.fffffff] (i.e. TimeSpan format)" + }, + "errors": { + "type": "object", + "description": "The errors and warnings that have occurred for the current object. The keys are the error codes.", + "additionalProperties": { + "$ref": "#/definitions/MongoDbError" + } + }, + "eventsPending": { + "type": "integer", + "format": "int64", + "description": "The number of oplog events awaiting replay" + }, + "eventsReplayed": { + "type": "integer", + "format": "int64", + "description": "The number of oplog events replayed so far" + }, + "lastEventTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the last oplog event received, or null if no oplog event has been received yet" + }, + "lastReplayTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the last oplog event replayed, or null if no oplog event has been replayed yet" + }, + "name": { + "type": "string", + "description": "The name of the progress object. For a collection, this is the unqualified collection name. For a database, this is the database name. For the overall migration, this is null." + }, + "qualifiedName": { + "type": "string", + "description": "The qualified name of the progress object. For a collection, this is the database-qualified name. For a database, this is the database name. For the overall migration, this is null." + }, + "resultType": { + "type": "string", + "description": "The type of progress object", + "enum": [ + "Migration", + "Database", + "Collection" + ] + }, + "state": { + "type": "string", + "enum": [ + "NotStarted", + "ValidatingInput", + "Initializing", + "Restarting", + "Copying", + "InitialReplay", + "Replaying", + "Finalizing", + "Complete", + "Canceled", + "Failed" + ], + "x-ms-enum": { + "name": "MongoDbMigrationState", + "modelAsString": true + } + }, + "totalBytes": { + "type": "integer", + "format": "int64", + "description": "The total number of document bytes on the source at the beginning of the Copying stage, or -1 if the total size was unknown" + }, + "totalDocuments": { + "type": "integer", + "format": "int64", + "description": "The total number of documents on the source at the beginning of the Copying stage, or -1 if the total count was unknown" + } + }, + "required": [ + "bytesCopied", + "documentsCopied", + "elapsedTime", + "errors", + "eventsPending", + "eventsReplayed", + "resultType", + "state", + "totalBytes", + "totalDocuments" + ], + "discriminator": "resultType" + }, + "MongoDbMigrationProgress": { + "x-ms-discriminator-value": "Migration", + "type": "object", + "description": "Describes the progress of the overall migration", + "properties": { + "databases": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MongoDbDatabaseProgress" + }, + "description": "The progress of the databases in the migration. The keys are the names of the databases" + } + }, + "allOf": [ + { + "$ref": "#/definitions/MongoDbProgress" + } + ] + }, + "MongoDbObjectInfo": { + "type": "object", + "description": "Describes a database or collection within a MongoDB data source", + "properties": { + "averageDocumentSize": { + "type": "integer", + "format": "int64", + "description": "The average document size, or -1 if the average size is unknown" + }, + "dataSize": { + "type": "integer", + "format": "int64", + "description": "The estimated total data size, in bytes, or -1 if the size is unknown." + }, + "documentCount": { + "type": "integer", + "format": "int64", + "description": "The estimated total number of documents, or -1 if the document count is unknown" + }, + "name": { + "type": "string", + "description": "The unqualified name of the database or collection" + }, + "qualifiedName": { + "type": "string", + "description": "The qualified name of the database or collection. For a collection, this is the database-qualified name." + } + }, + "required": [ + "averageDocumentSize", + "dataSize", + "documentCount", + "name", + "qualifiedName" + ] + }, + "MongoDbRestartCommand": { + "x-ms-discriminator-value": "restart", + "type": "object", + "description": "Properties for the command that restarts a migration in whole or in part", + "properties": { + "input": { + "$ref": "#/definitions/MongoDbCommandInput", + "description": "Command input" + } + }, + "allOf": [ + { + "$ref": "Commands.json#/definitions/CommandProperties" + } + ] + }, + "MongoDbShardKeyField": { + "type": "object", + "description": "Describes a field reference within a MongoDB shard key", + "properties": { + "name": { + "type": "string", + "description": "The name of the field" + }, + "order": { + "type": "string", + "description": "The field ordering", + "enum": [ + "Forward", + "Reverse", + "Hashed" + ], + "x-ms-enum": { + "name": "MongoDbShardKeyOrder", + "modelAsString": true + } + } + }, + "required": [ + "name", + "order" + ] + }, + "MongoDbShardKeyInfo": { + "type": "object", + "description": "Describes a MongoDB shard key", + "properties": { + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/MongoDbShardKeyField" + }, + "description": "The fields within the shard key" + }, + "isUnique": { + "type": "boolean", + "description": "Whether the shard key is unique" + } + }, + "required": [ + "fields", + "isUnique" + ] + }, + "MongoDbShardKeySetting": { + "type": "object", + "description": "Describes a MongoDB shard key", + "properties": { + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/MongoDbShardKeyField" + }, + "description": "The fields within the shard key" + }, + "isUnique": { + "type": "boolean", + "description": "Whether the shard key is unique" + } + }, + "required": [ + "fields" + ] + }, + "MongoDbThrottlingSettings": { + "type": "object", + "description": "Specifies resource limits for the migration", + "properties": { + "minFreeCpu": { + "type": "integer", + "format": "int32", + "description": "The percentage of CPU time that the migrator will try to avoid using, from 0 to 100" + }, + "minFreeMemoryMb": { + "type": "integer", + "format": "int32", + "description": "The number of megabytes of RAM that the migrator will try to avoid using" + }, + "maxParallelism": { + "type": "integer", + "format": "int32", + "description": "The maximum number of work items (e.g. collection copies) that will be processed in parallel" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json new file mode 100644 index 000000000000..6d0668876661 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json @@ -0,0 +1,599 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ConnectToSourceOracleSyncTaskInput": { + "type": "object", + "description": "Input for the task that validates Oracle database connection", + "properties": { + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/OracleConnectionInfo", + "description": "Information for connecting to Oracle source" + } + }, + "required": [ + "sourceConnectionInfo" + ] + }, + "ConnectToSourceOracleSyncTaskOutput": { + "type": "object", + "description": "Output for the task that validates Oracle database connection", + "properties": { + "sourceServerVersion": { + "type": "string", + "description": "Version of the source server", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of schemas on source server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Source server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that validates connection to Azure Database for PostgreSQL and target server requirements for Oracle source.", + "properties": { + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for PostgreSQL server", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + } + }, + "required": [ + "targetConnectionInfo" + ] + }, + "ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that validates connection to Azure Database for PostgreSQL and target server requirements for Oracle source.", + "properties": { + "targetServerVersion": { + "type": "string", + "description": "Version of the target server", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of databases on target server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "targetServerBrandVersion": { + "type": "string", + "description": "Target server brand version", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "databaseSchemaMap": { + "type": "array", + "description": "Mapping of schemas per database", + "items": { + "type": "object", + "properties": { + "database": { + "type": "string" + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "GetUserTablesOracleTaskInput": { + "type": "object", + "description": "Input for the task that gets the list of tables contained within a provided list of Oracle schemas.", + "properties": { + "connectionInfo": { + "$ref": "./Common.json#/definitions/OracleConnectionInfo", + "description": "Information for connecting to Oracle source" + }, + "selectedSchemas": { + "type": "array", + "description": "List of Oracle schemas for which to collect tables", + "items": { + "type": "string" + } + } + }, + "required": [ + "connectionInfo", + "selectedSchemas" + ] + }, + "GetUserTablesOracleTaskOutput": { + "type": "object", + "description": "Output for the task that gets the list of tables contained within a provided list of Oracle schemas.", + "properties": { + "schemaName": { + "type": "string", + "description": "The schema this result is for", + "readOnly": true + }, + "tables": { + "type": "array", + "description": "List of valid tables found for this schema", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "GetUserTablesPostgreSqlTaskInput": { + "type": "object", + "description": "Input for the task that gets the list of tables for a provided list of PostgreSQL databases.", + "properties": { + "connectionInfo": { + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo", + "description": "Information for connecting to PostgreSQL source" + }, + "selectedDatabases": { + "type": "array", + "description": "List of PostgreSQL databases for which to collect tables", + "items": { + "type": "string" + } + } + }, + "required": [ + "connectionInfo", + "selectedDatabases" + ] + }, + "GetUserTablesPostgreSqlTaskOutput": { + "type": "object", + "description": "Output for the task that gets the list of tables for a provided list of PostgreSQL databases.", + "properties": { + "databaseName": { + "type": "string", + "description": "The database this result is for", + "readOnly": true + }, + "tables": { + "type": "array", + "description": "List of valid tables found for this database", + "items": { + "$ref": "./TasksCommon.json#/definitions/DatabaseTable" + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "ValidateOracleAzureDbPostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for task that validates migration input for Oracle to Azure Database for PostgreSQL for online migrations", + "properties": { + "validationErrors": { + "description": "Errors associated with a selected database object", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskInput": { + "type": "object", + "description": "Input for the task that migrates Oracle databases to Azure Database for PostgreSQL for online migrations", + "properties": { + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncDatabaseInput" + } + }, + "targetConnectionInfo": { + "description": "Connection information for target Azure Database for PostgreSQL", + "$ref": "./Common.json#/definitions/PostgreSqlConnectionInfo" + }, + "sourceConnectionInfo": { + "description": "Connection information for source Oracle", + "$ref": "./Common.json#/definitions/OracleConnectionInfo" + } + }, + "required": [ + "targetConnectionInfo", + "sourceConnectionInfo", + "selectedDatabases" + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutput": { + "type": "object", + "description": "Output for the task that migrates Oracle databases to Azure Database for PostgreSQL for online migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "resultType" + ], + "discriminator": "resultType" + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutputMigrationLevel": { + "x-ms-discriminator-value": "MigrationLevelOutput", + "type": "object", + "properties": { + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "sourceServerVersion": { + "type": "string", + "description": "Source server version", + "readOnly": true + }, + "sourceServer": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "targetServerVersion": { + "type": "string", + "description": "Target server version", + "readOnly": true + }, + "targetServer": { + "type": "string", + "description": "Target server name", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + } + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutputDatabaseLevel": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelOutput", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "migrationState": { + "$ref": "./TasksCommon.json#/definitions/SyncDatabaseMigrationReportingState", + "description": "Migration state that this database is in", + "readOnly": true + }, + "incomingChanges": { + "type": "integer", + "format": "int64", + "description": "Number of incoming changes", + "readOnly": true + }, + "appliedChanges": { + "type": "integer", + "format": "int64", + "description": "Number of applied changes", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc inserts", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc deletes", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of cdc updates", + "readOnly": true + }, + "fullLoadCompletedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables completed in full load", + "readOnly": true + }, + "fullLoadLoadingTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables loading in full load", + "readOnly": true + }, + "fullLoadQueuedTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables queued in full load", + "readOnly": true + }, + "fullLoadErroredTables": { + "type": "integer", + "format": "int64", + "description": "Number of tables errored in full load", + "readOnly": true + }, + "initializationCompleted": { + "type": "boolean", + "description": "Indicates if initial load (full load) has been completed", + "readOnly": true + }, + "latency": { + "type": "integer", + "format": "int64", + "description": "CDC apply latency", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + } + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutputTableLevel": { + "type": "object", + "x-ms-discriminator-value": "TableLevelOutput", + "properties": { + "tableName": { + "type": "string", + "description": "Name of the table", + "readOnly": true + }, + "databaseName": { + "type": "string", + "description": "Name of the database", + "readOnly": true + }, + "cdcInsertCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied inserts", + "readOnly": true + }, + "cdcUpdateCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied updates", + "readOnly": true + }, + "cdcDeleteCounter": { + "type": "integer", + "format": "int64", + "description": "Number of applied deletes", + "readOnly": true + }, + "fullLoadEstFinishTime": { + "type": "string", + "format": "date-time", + "description": "Estimate to finish full load", + "readOnly": true + }, + "fullLoadStartedOn": { + "type": "string", + "format": "date-time", + "description": "Full load start time", + "readOnly": true + }, + "fullLoadEndedOn": { + "type": "string", + "format": "date-time", + "description": "Full load end time", + "readOnly": true + }, + "fullLoadTotalRows": { + "type": "integer", + "format": "int64", + "description": "Number of rows applied in full load", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/SyncTableMigrationState", + "description": "Current state of the table migration", + "readOnly": true + }, + "totalChangesApplied": { + "type": "integer", + "format": "int64", + "description": "Total number of applied changes", + "readOnly": true + }, + "dataErrorsCounter": { + "type": "integer", + "format": "int64", + "description": "Number of data errors occurred", + "readOnly": true + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Last modified time on target", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + } + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutputError": { + "type": "object", + "x-ms-discriminator-value": "ErrorOutput", + "properties": { + "error": { + "$ref": "./Common.json#/definitions/ReportableException", + "description": "Migration error", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + } + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncTaskOutputDatabaseError": { + "type": "object", + "x-ms-discriminator-value": "DatabaseLevelErrorOutput", + "properties": { + "errorMessage": { + "type": "string", + "description": "Error message" + }, + "events": { + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/SyncMigrationDatabaseErrorEvent" + }, + "description": "List of error events." + } + }, + "allOf": [ + { + "$ref": "#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + } + ] + }, + "MigrateOracleAzureDbPostgreSqlSyncDatabaseInput": { + "type": "object", + "description": "Database specific information for Oracle to Azure Database for PostgreSQL migration task inputs", + "properties": { + "caseManipulation": { + "type": "string", + "description": "How to handle object name casing: either Preserve or ToLower" + }, + "name": { + "type": "string", + "description": "Name of the migration pipeline" + }, + "schemaName": { + "type": "string", + "description": "Name of the source schema" + }, + "tableMap": { + "type": "object", + "description": "Mapping of source to target tables", + "additionalProperties": { + "type": "string" + } + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database. Note: Target database will be truncated before starting migration." + }, + "migrationSetting": { + "type": "object", + "description": "Migration settings which tune the migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "sourceSetting": { + "type": "object", + "description": "Source settings to tune source endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "targetSetting": { + "type": "object", + "description": "Target settings to tune target endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Projects.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Projects.json new file mode 100644 index 000000000000..d0bd9b88f2c9 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Projects.json @@ -0,0 +1,164 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "Project": { + "type": "object", + "description": "A project resource", + "properties": { + "properties": { + "description": "Project properties", + "x-ms-client-flatten": true, + "$ref": "#/definitions/ProjectProperties" + }, + "systemData": { + "$ref": "../sqlmigration.json#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + }, + "etag": { + "type": "string", + "description": "HTTP strong entity tag value. This is ignored if submitted." + } + }, + "allOf": [ + { + "$ref": "../sqlmigration.json#/definitions/TrackedResource" + } + ] + }, + "ProjectList": { + "type": "object", + "description": "OData page of project resources", + "properties": { + "value": { + "type": "array", + "description": "List of projects", + "items": { + "$ref": "#/definitions/Project" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of projects" + } + } + }, + "ProjectProperties": { + "type": "object", + "description": "Project-specific properties", + "properties": { + "sourcePlatform": { + "description": "Source platform for the project", + "$ref": "#/definitions/ProjectSourcePlatform" + }, + "azureAuthenticationInfo": { + "description": "Field that defines the Azure active directory application info, used to connect to the target Azure resource", + "type": "object", + "$ref": "./Common.json#/definitions/AzureActiveDirectoryApp" + }, + "targetPlatform": { + "description": "Target platform for the project", + "$ref": "#/definitions/ProjectTargetPlatform" + }, + "creationTime": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "UTC Date and time when project was created" + }, + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/ConnectionInfo", + "description": "Information for connecting to source" + }, + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/ConnectionInfo", + "description": "Information for connecting to target" + }, + "databasesInfo": { + "type": "array", + "description": "List of DatabaseInfo", + "items": { + "$ref": "#/definitions/DatabaseInfo" + } + }, + "provisioningState": { + "type": "string", + "readOnly": true, + "description": "The project's provisioning state", + "enum": [ + "Deleting", + "Succeeded" + ], + "x-ms-enum": { + "name": "ProjectProvisioningState", + "modelAsString": true + } + } + }, + "required": [ + "sourcePlatform", + "targetPlatform" + ] + }, + "DatabaseInfo": { + "type": "object", + "description": "Project Database Details", + "properties": { + "sourceDatabaseName": { + "type": "string", + "description": "Name of the database" + } + }, + "required": [ + "sourceDatabaseName" + ] + }, + "ProjectSourcePlatform": { + "type": "string", + "description": "Source platform of the project", + "enum": [ + "SQL", + "MySQL", + "PostgreSql", + "MongoDb", + "Unknown" + ], + "x-ms-enum": { + "name": "ProjectSourcePlatform", + "modelAsString": true + } + }, + "ProjectTargetPlatform": { + "type": "string", + "description": "Target platform of the project", + "enum": [ + "SQLDB", + "SQLMI", + "AzureDbForMySql", + "AzureDbForPostgreSql", + "MongoDb", + "Unknown" + ], + "x-ms-enum": { + "name": "ProjectTargetPlatform", + "modelAsString": true + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ResourceSkus.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ResourceSkus.json new file mode 100644 index 000000000000..8875d5fbbb03 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ResourceSkus.json @@ -0,0 +1,231 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ResourceSku": { + "properties": { + "resourceType": { + "readOnly": true, + "type": "string", + "description": "The type of resource the SKU applies to." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of SKU." + }, + "tier": { + "readOnly": true, + "type": "string", + "description": "Specifies the tier of DMS in a scale set." + }, + "size": { + "readOnly": true, + "type": "string", + "description": "The Size of the SKU." + }, + "family": { + "readOnly": true, + "type": "string", + "description": "The Family of this particular SKU." + }, + "kind": { + "readOnly": true, + "type": "string", + "description": "The Kind of resources that are supported in this SKU." + }, + "capacity": { + "$ref": "#/definitions/ResourceSkuCapacity", + "readOnly": true, + "description": "Not used." + }, + "locations": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "description": "The set of locations that the SKU is available." + }, + "apiVersions": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "description": "The api versions that support this SKU." + }, + "costs": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ResourceSkuCosts" + }, + "description": "Metadata for retrieving price info." + }, + "capabilities": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ResourceSkuCapabilities" + }, + "description": "A name value pair to describe the capability." + }, + "restrictions": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ResourceSkuRestrictions" + }, + "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions." + } + }, + "description": "Describes an available DMS SKU." + }, + "ResourceSkuCapacity": { + "properties": { + "minimum": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "The minimum capacity." + }, + "maximum": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "The maximum capacity." + }, + "default": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "The default capacity." + }, + "scaleType": { + "type": "string", + "readOnly": true, + "description": "The scale type applicable to the SKU.", + "enum": [ + "Automatic", + "Manual", + "None" + ], + "x-ms-enum": { + "name": "ResourceSkuCapacityScaleType", + "modelAsString": true + } + } + }, + "description": "Describes scaling information of a SKU." + }, + "ResourceSkuCosts": { + "properties": { + "meterID": { + "type": "string", + "readOnly": true, + "description": "Used for querying price from commerce." + }, + "quantity": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "The multiplier is needed to extend the base metered cost." + }, + "extendedUnit": { + "type": "string", + "readOnly": true, + "description": "An invariant to show the extended unit." + } + }, + "description": "Describes metadata for retrieving price info." + }, + "ResourceSkuCapabilities": { + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "An invariant to describe the feature." + }, + "value": { + "type": "string", + "readOnly": true, + "description": "An invariant if the feature is measured by quantity." + } + }, + "description": "Describes The SKU capabilities object." + }, + "ResourceSkuRestrictions": { + "properties": { + "type": { + "type": "string", + "readOnly": true, + "description": "The type of restrictions.", + "enum": [ + "location" + ], + "x-ms-enum": { + "name": "ResourceSkuRestrictionsType", + "modelAsString": true + } + }, + "values": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." + }, + "reasonCode": { + "type": "string", + "readOnly": true, + "description": "The reason code for restriction.", + "enum": [ + "QuotaId", + "NotAvailableForSubscription" + ], + "x-ms-enum": { + "name": "ResourceSkuRestrictionsReasonCode", + "modelAsString": true + } + } + }, + "description": "Describes scaling information of a SKU." + }, + "ResourceSkusResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceSku" + }, + "description": "The list of SKUs available for the subscription." + }, + "nextLink": { + "type": "string", + "description": "The uri to fetch the next page of DMS SKUs. Call ListNext() with this to fetch the next page of DMS SKUs." + } + }, + "required": [ + "value" + ], + "description": "The DMS List SKUs operation response." + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceFeatureOCITask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceFeatureOCITask.json new file mode 100644 index 000000000000..130cef61fddf --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceFeatureOCITask.json @@ -0,0 +1,141 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "OracleOCIDriverInfo": { + "type": "object", + "description": "Information about an Oracle OCI driver.", + "properties": { + "driverName": { + "type": "string", + "description": "The name of the driver package", + "readOnly": true + }, + "driverSize": { + "type": "string", + "description": "The size in bytes of the driver package", + "readOnly": true + }, + "archiveChecksum": { + "type": "string", + "description": "The MD5 Base64 encoded checksum for the driver package.", + "readOnly": true + }, + "oracleChecksum": { + "type": "string", + "description": "The checksum for the driver package provided by Oracle.", + "readOnly": true + }, + "assemblyVersion": { + "type": "string", + "description": "Version listed in the OCI assembly 'oci.dll'", + "readOnly": true + }, + "supportedOracleVersions": { + "type": "array", + "description": "List of Oracle database versions supported by this driver. Only major minor of the version is listed.", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "CheckOCIDriverTaskInput": { + "type": "object", + "description": "Input for the service task to check for OCI drivers.", + "properties": { + "serverVersion": { + "type": "string", + "description": "Version of the source server to check against. Optional." + } + } + }, + "CheckOCIDriverTaskOutput": { + "type": "object", + "description": "Output for the service task to check for OCI drivers.", + "properties": { + "installedDriver": { + "description": "Information about the installed driver if found and valid.", + "$ref": "#/definitions/OracleOCIDriverInfo" + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "UploadOCIDriverTaskInput": { + "type": "object", + "description": "Input for the service task to upload an OCI driver.", + "properties": { + "driverShare": { + "$ref": "./TasksCommon.json#/definitions/FileShare", + "description": "File share information for the OCI driver archive." + } + } + }, + "UploadOCIDriverTaskOutput": { + "type": "object", + "description": "Output for the service task to upload an OCI driver.", + "properties": { + "driverPackageName": { + "type": "string", + "description": "The name of the driver package that was validated and uploaded.", + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "InstallOCIDriverTaskInput": { + "type": "object", + "description": "Input for the service task to install an OCI driver.", + "properties": { + "driverPackageName": { + "type": "string", + "description": "Name of the uploaded driver package to install." + } + } + }, + "InstallOCIDriverTaskOutput": { + "type": "object", + "description": "Output for the service task to install an OCI driver.", + "properties": { + "validationErrors": { + "description": "Validation errors", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceTasks.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceTasks.json new file mode 100644 index 000000000000..d56ed921ce44 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ServiceTasks.json @@ -0,0 +1,90 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Data Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "CheckOCIDriverTaskProperties": { + "x-ms-discriminator-value": "Service.Check.OCI", + "type": "object", + "description": "Properties for the task that checks for OCI drivers.", + "properties": { + "input": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/CheckOCIDriverTaskInput" + }, + "output": { + "type": "array", + "description": "Task output. This is ignored if submitted.", + "items": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/CheckOCIDriverTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Tasks.json#/definitions/ProjectTaskProperties" + } + ] + }, + "UploadOCIDriverTaskProperties": { + "x-ms-discriminator-value": "Service.Upload.OCI", + "type": "object", + "description": "Properties for the task that uploads an OCI driver.", + "properties": { + "input": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/UploadOCIDriverTaskInput" + }, + "output": { + "type": "array", + "description": "Task output. This is ignored if submitted.", + "items": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/UploadOCIDriverTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Tasks.json#/definitions/ProjectTaskProperties" + } + ] + }, + "InstallOCIDriverTaskProperties": { + "x-ms-discriminator-value": "Service.Install.OCI", + "type": "object", + "description": "Properties for the task that installs an OCI driver.", + "properties": { + "input": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/InstallOCIDriverTaskInput" + }, + "output": { + "type": "array", + "description": "Task output. This is ignored if submitted.", + "items": { + "$ref": "./ServiceFeatureOCITask.json#/definitions/InstallOCIDriverTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Tasks.json#/definitions/ProjectTaskProperties" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Services.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Services.json new file mode 100644 index 000000000000..407ac01013a5 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Services.json @@ -0,0 +1,303 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "AvailableServiceSku": { + "type": "object", + "description": "Describes the available service SKU.", + "properties": { + "resourceType": { + "type": "string", + "description": "The resource type, including the provider namespace" + }, + "sku": { + "type": "object", + "description": "SKU name, tier, etc.", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU" + }, + "family": { + "type": "string", + "description": "SKU family" + }, + "size": { + "type": "string", + "description": "SKU size" + }, + "tier": { + "type": "string", + "description": "The tier of the SKU, such as \"Basic\", \"General Purpose\", or \"Business Critical\"" + } + } + }, + "capacity": { + "type": "object", + "description": "A description of the scaling capacities of the SKU", + "properties": { + "minimum": { + "type": "integer", + "description": "The minimum capacity, usually 0 or 1." + }, + "maximum": { + "type": "integer", + "description": "The maximum capacity" + }, + "default": { + "type": "integer", + "description": "The default capacity" + }, + "scaleType": { + "type": "string", + "description": "The scalability approach", + "enum": [ + "none", + "manual", + "automatic" + ], + "x-ms-enum": { + "name": "ServiceScalability", + "modelAsString": true + } + } + } + } + } + }, + "DataMigrationService": { + "type": "object", + "description": "A Database Migration Service resource", + "properties": { + "etag": { + "type": "string", + "description": "HTTP strong entity tag value. Ignored if submitted" + }, + "kind": { + "type": "string", + "description": "The resource kind. Only 'vm' (the default) is supported." + }, + "properties": { + "x-ms-client-flatten": true, + "description": "Custom service properties", + "$ref": "#/definitions/DataMigrationServiceProperties" + }, + "sku": { + "description": "Service SKU", + "$ref": "#/definitions/ServiceSku" + }, + "systemData": { + "$ref": "../sqlmigration.json#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../sqlmigration.json#/definitions/TrackedResource" + } + ] + }, + "DataMigrationServiceList": { + "type": "object", + "description": "OData page of service objects", + "properties": { + "value": { + "type": "array", + "description": "List of services", + "items": { + "$ref": "#/definitions/DataMigrationService" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of services" + } + } + }, + "DataMigrationServiceProperties": { + "type": "object", + "description": "Properties of the Database Migration Service instance", + "properties": { + "provisioningState": { + "type": "string", + "readOnly": true, + "description": "The resource's provisioning state", + "enum": [ + "Accepted", + "Deleting", + "Deploying", + "Stopped", + "Stopping", + "Starting", + "FailedToStart", + "FailedToStop", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "ServiceProvisioningState", + "modelAsString": true + } + }, + "publicKey": { + "type": "string", + "description": "The public key of the service, used to encrypt secrets sent to the service" + }, + "virtualSubnetId": { + "type": "string", + "description": "The ID of the Microsoft.Network/virtualNetworks/subnets resource to which the service should be joined" + }, + "virtualNicId": { + "type": "string", + "description": "The ID of the Microsoft.Network/networkInterfaces resource which the service have" + }, + "autoStopDelay": { + "type": "string", + "description": "The time delay before the service is auto-stopped when idle." + }, + "deleteResourcesOnStop": { + "type": "boolean", + "description": "Whether service resources should be deleted when stopped. (Turned on by default)" + } + } + }, + "DataMigrationServiceStatusResponse": { + "type": "object", + "description": "Service health status", + "properties": { + "agentVersion": { + "type": "string", + "description": "The DMS instance agent version" + }, + "agentConfiguration": { + "type": "object", + "description": "Agent Configuration" + }, + "status": { + "type": "string", + "description": "The machine-readable status, such as 'Initializing', 'Offline', 'Online', 'Deploying', 'Deleting', 'Stopped', 'Stopping', 'Starting', 'FailedToStart', 'FailedToStop' or 'Failed'" + }, + "vmSize": { + "type": "string", + "description": "The services virtual machine size, such as 'Standard_D2_v2'" + }, + "supportedTaskTypes": { + "type": "array", + "description": "The list of supported task types", + "items": { + "type": "string", + "description": "Migration task type" + } + } + } + }, + "ServiceOperation": { + "type": "object", + "description": "Description of an action supported by the Database Migration Service", + "properties": { + "name": { + "type": "string", + "description": "The fully qualified action name, e.g. Microsoft.DataMigration/services/read" + }, + "display": { + "type": "object", + "description": "Localized display text", + "properties": { + "provider": { + "type": "string", + "description": "The localized resource provider name" + }, + "resource": { + "type": "string", + "description": "The localized resource type name" + }, + "operation": { + "type": "string", + "description": "The localized operation name" + }, + "description": { + "type": "string", + "description": "The localized operation description" + } + } + } + } + }, + "ServiceOperationList": { + "type": "object", + "description": "OData page of action (operation) objects", + "properties": { + "value": { + "type": "array", + "description": "List of actions", + "items": { + "$ref": "#/definitions/ServiceOperation" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of actions" + } + } + }, + "ServiceSku": { + "type": "object", + "description": "An Azure SKU instance", + "properties": { + "name": { + "type": "string", + "description": "The unique name of the SKU, such as 'P3'" + }, + "tier": { + "type": "string", + "description": "The tier of the SKU, such as 'Basic', 'General Purpose', or 'Business Critical'" + }, + "family": { + "type": "string", + "description": "The SKU family, used when the service has multiple performance classes within a tier, such as 'A', 'D', etc. for virtual machines" + }, + "size": { + "type": "string", + "description": "The size of the SKU, used when the name alone does not denote a service size or when a SKU has multiple performance classes within a family, e.g. 'A1' for virtual machines" + }, + "capacity": { + "type": "integer", + "description": "The capacity of the SKU, if it supports scaling" + } + } + }, + "ServiceSkuList": { + "type": "object", + "description": "OData page of available SKUs", + "properties": { + "value": { + "type": "array", + "description": "List of service SKUs", + "items": { + "$ref": "#/definitions/AvailableServiceSku" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of service SKUs" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Tasks.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Tasks.json new file mode 100644 index 000000000000..12e8d1f28236 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/Tasks.json @@ -0,0 +1,1037 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ProjectTaskProperties": { + "type": "object", + "description": "Base class for all types of DMS task properties. If task is not supported by current client, this object is returned.", + "properties": { + "taskType": { + "enum": [ + "Connect.MongoDb", + "ConnectToSource.SqlServer", + "ConnectToSource.SqlServer.Sync", + "ConnectToSource.PostgreSql.Sync", + "ConnectToSource.MySql", + "ConnectToSource.Oracle.Sync", + "ConnectToTarget.SqlDb", + "ConnectToTarget.SqlDb.Sync", + "ConnectToTarget.AzureDbForPostgreSql.Sync", + "ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync", + "ConnectToTarget.AzureSqlDbMI", + "ConnectToTarget.AzureSqlDbMI.Sync.LRS", + "ConnectToTarget.AzureDbForMySql", + "GetUserTables.Sql", + "GetUserTables.AzureSqlDb.Sync", + "GetUserTablesOracle", + "GetUserTablesPostgreSql", + "GetUserTablesMySql", + "Migrate.MongoDb", + "Migrate.SqlServer.AzureSqlDbMI", + "Migrate.SqlServer.AzureSqlDbMI.Sync.LRS", + "Migrate.SqlServer.SqlDb", + "Migrate.SqlServer.AzureSqlDb.Sync", + "Migrate.MySql.AzureDbForMySql.Sync", + "Migrate.MySql.AzureDbForMySql", + "Migrate.PostgreSql.AzureDbForPostgreSql.SyncV2", + "Migrate.Oracle.AzureDbForPostgreSql.Sync", + "ValidateMigrationInput.SqlServer.SqlDb.Sync", + "ValidateMigrationInput.SqlServer.AzureSqlDbMI", + "ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS", + "Validate.MongoDb", + "Validate.Oracle.AzureDbPostgreSql.Sync", + "GetTDECertificates.Sql", + "Migrate.Ssis", + "Service.Check.OCI", + "Service.Upload.OCI", + "Service.Install.OCI", + "MigrateSchemaSqlServerSqlDb" + ], + "x-ms-enum": { + "name": "TaskType", + "modelAsString": true + }, + "description": "Task type.", + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ODataError" + }, + "description": "Array of errors. This is ignored if submitted.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the task. This is ignored if submitted.", + "enum": [ + "Unknown", + "Queued", + "Running", + "Canceled", + "Succeeded", + "Failed", + "FailedInputValidation", + "Faulted" + ], + "x-ms-enum": { + "name": "TaskState", + "modelAsString": true + }, + "readOnly": true + }, + "commands": { + "description": "Array of command properties.", + "type": "array", + "items": { + "$ref": "./Commands.json#/definitions/CommandProperties" + }, + "readOnly": true + }, + "clientData": { + "type": "object", + "description": "Key value pairs of client data to attach meta data information to task", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "taskType" + ], + "discriminator": "taskType" + }, + "ProjectTask": { + "type": "object", + "description": "A task resource", + "properties": { + "etag": { + "type": "string", + "description": "HTTP strong entity tag value. This is ignored if submitted." + }, + "properties": { + "description": "Custom task properties", + "$ref": "#/definitions/ProjectTaskProperties" + }, + "systemData": { + "$ref": "../sqlmigration.json#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Common.json#/definitions/Resource" + } + ] + }, + "TaskList": { + "type": "object", + "description": "OData page of tasks", + "properties": { + "value": { + "type": "array", + "description": "List of tasks", + "items": { + "$ref": "#/definitions/ProjectTask" + } + }, + "nextLink": { + "type": "string", + "description": "URL to load the next page of tasks" + } + } + }, + "ConnectToMongoDbTaskProperties": { + "x-ms-discriminator-value": "Connect.MongoDb", + "type": "object", + "description": "Properties for the task that validates the connection to and provides information about a MongoDB server", + "properties": { + "input": { + "$ref": "./Common.json#/definitions/MongoDbConnectionInfo" + }, + "output": { + "type": "array", + "description": "An array containing a single MongoDbClusterInfo object", + "items": { + "$ref": "./MongoDbTasks.json#/definitions/MongoDbClusterInfo" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToSourceSqlServerTaskProperties": { + "x-ms-discriminator-value": "ConnectToSource.SqlServer", + "type": "object", + "description": "Properties for the task that validates connection to SQL Server and also validates source server requirements", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToSourceSqlServerTask.json#/definitions/ConnectToSourceSqlServerTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToSourceSqlServerTask.json#/definitions/ConnectToSourceSqlServerTaskOutput" + }, + "readOnly": true + }, + "taskId": { + "type": "string", + "description": "Task id " + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToSourceSqlServerSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToSource.SqlServer.Sync", + "type": "object", + "description": "Properties for the task that validates connection to SQL Server and source server requirements for online migration", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToSourceSqlServerTask.json#/definitions/ConnectToSourceSqlServerTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToSourceSqlServerTask.json#/definitions/ConnectToSourceSqlServerTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToSourcePostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToSource.PostgreSql.Sync", + "type": "object", + "description": "Properties for the task that validates connection to PostgreSQL server and source server requirements for online migration", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToSourcePostgreSqlSyncTask.json#/definitions/ConnectToSourcePostgreSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToSourcePostgreSqlSyncTask.json#/definitions/ConnectToSourcePostgreSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToSourceMySqlTaskProperties": { + "x-ms-discriminator-value": "ConnectToSource.MySql", + "type": "object", + "description": "Properties for the task that validates MySQL database connection", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToSourceMySqlTask.json#/definitions/ConnectToSourceMySqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/ConnectToSourceNonSqlTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "./Tasks.json#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToSourceOracleSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToSource.Oracle.Sync", + "type": "object", + "description": "Properties for the task that validates Oracle database connection", + "properties": { + "input": { + "description": "Task input", + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/ConnectToSourceOracleSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/ConnectToSourceOracleSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetSqlDbTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.SqlDb", + "type": "object", + "description": "Properties for the task that validates connection to SQL DB and target server requirements", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetSqlDbTask.json#/definitions/ConnectToTargetSqlDbTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetSqlDbTask.json#/definitions/ConnectToTargetSqlDbTaskOutput" + }, + "readOnly": true + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetSqlSqlDbSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.SqlDb.Sync", + "type": "object", + "description": "Properties for the task that validates connection to SQL DB and target server requirements for online migration", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetSqlSqlDbSyncTask.json#/definitions/ConnectToTargetSqlSqlDbSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetSqlDbTask.json#/definitions/ConnectToTargetSqlDbTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetAzureDbForPostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.AzureDbForPostgreSql.Sync", + "type": "object", + "description": "Properties for the task that validates connection to Azure Database For PostgreSQL server and target server requirements for online migration", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetAzureDbForPostgreSqlSyncTask.json#/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetAzureDbForPostgreSqlSyncTask.json#/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync", + "type": "object", + "description": "Properties for the task that validates connection to Azure Database For PostgreSQL server and target server requirements for online migration for Oracle source.", + "properties": { + "input": { + "description": "Task input", + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetUserTablesSqlTaskProperties": { + "x-ms-discriminator-value": "GetUserTables.Sql", + "type": "object", + "description": "Properties for the task that collects user tables for the given list of databases", + "properties": { + "input": { + "description": "Task input", + "$ref": "./GetUserTablesSqlTask.json#/definitions/GetUserTablesSqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./GetUserTablesSqlTask.json#/definitions/GetUserTablesSqlTaskOutput" + }, + "readOnly": true + }, + "taskId": { + "type": "string", + "description": "Task id " + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetUserTablesSqlSyncTaskProperties": { + "x-ms-discriminator-value": "GetUserTables.AzureSqlDb.Sync", + "type": "object", + "description": "Properties for the task that collects user tables for the given list of databases", + "properties": { + "input": { + "description": "Task input", + "$ref": "./GetUserTablesSqlSyncTask.json#/definitions/GetUserTablesSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./GetUserTablesSqlSyncTask.json#/definitions/GetUserTablesSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetUserTablesOracleTaskProperties": { + "x-ms-discriminator-value": "GetUserTablesOracle", + "type": "object", + "description": "Properties for the task that collects user tables for the given list of Oracle schemas", + "properties": { + "input": { + "description": "Task input", + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/GetUserTablesOracleTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/GetUserTablesOracleTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetUserTablesPostgreSqlTaskProperties": { + "x-ms-discriminator-value": "GetUserTablesPostgreSql", + "type": "object", + "description": "Properties for the task that collects user tables for the given list of databases", + "properties": { + "input": { + "description": "Task input", + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/GetUserTablesPostgreSqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/GetUserTablesPostgreSqlTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetUserTablesMySqlTaskProperties": { + "x-ms-discriminator-value": "GetUserTablesMySql", + "type": "object", + "description": "Properties for the task that collects user tables for the given list of databases", + "properties": { + "input": { + "description": "Task input", + "$ref": "./GetUserTablesMySqlTask.json#/definitions/GetUserTablesMySqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./GetUserTablesMySqlTask.json#/definitions/GetUserTablesMySqlTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetSqlMITaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.AzureSqlDbMI", + "type": "object", + "description": "Properties for the task that validates connection to Azure SQL Database Managed Instance", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetSqlMITask.json#/definitions/ConnectToTargetSqlMITaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetSqlMITask.json#/definitions/ConnectToTargetSqlMITaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetSqlMISyncTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.AzureSqlDbMI.Sync.LRS", + "type": "object", + "description": "Properties for the task that validates connection to Azure SQL Database Managed Instance", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetSqlMiSyncTask.json#/definitions/ConnectToTargetSqlMISyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetSqlMiSyncTask.json#/definitions/ConnectToTargetSqlMISyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ConnectToTargetAzureDbForMySqlTaskProperties": { + "x-ms-discriminator-value": "ConnectToTarget.AzureDbForMySql", + "type": "object", + "description": "Properties for the task that validates connection to Azure Database for MySQL and target server requirements", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ConnectToTargetAzureDbForMySqlTask.json#/definitions/ConnectToTargetAzureDbForMySqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ConnectToTargetAzureDbForMySqlTask.json#/definitions/ConnectToTargetAzureDbForMySqlTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateMongoDbTaskProperties": { + "x-ms-discriminator-value": "Migrate.MongoDb", + "type": "object", + "description": "Properties for the task that migrates data between MongoDB data sources", + "properties": { + "input": { + "$ref": "./MongoDbTasks.json#/definitions/MongoDbMigrationSettings" + }, + "output": { + "type": "array", + "items": { + "$ref": "./MongoDbTasks.json#/definitions/MongoDbProgress" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSqlServerSqlMITaskProperties": { + "x-ms-discriminator-value": "Migrate.SqlServer.AzureSqlDbMI", + "type": "object", + "description": "Properties for task that migrates SQL Server databases to Azure SQL Database Managed Instance", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateSqlServerSqlMITask.json#/definitions/MigrateSqlServerSqlMITaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateSqlServerSqlMITask.json#/definitions/MigrateSqlServerSqlMITaskOutput" + }, + "readOnly": true + }, + "taskId": { + "type": "string", + "description": "task id" + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + }, + "parentTaskId": { + "type": "string", + "description": "parent task id" + }, + "isCloneable": { + "type": "boolean", + "description": "whether the task can be cloned or not" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSqlServerSqlMISyncTaskProperties": { + "x-ms-discriminator-value": "Migrate.SqlServer.AzureSqlDbMI.Sync.LRS", + "type": "object", + "description": "Properties for task that migrates SQL Server databases to Azure SQL Database Managed Instance sync scenario", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateSqlServerSqlMiSyncTask.json#/definitions/MigrateSqlServerSqlMISyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateSqlServerSqlMiSyncTask.json#/definitions/MigrateSqlServerSqlMISyncTaskOutput" + }, + "readOnly": true + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSqlServerSqlDbTaskProperties": { + "x-ms-discriminator-value": "Migrate.SqlServer.SqlDb", + "type": "object", + "description": "Properties for the task that migrates on-prem SQL Server databases to Azure SQL Database", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateSqlServerSqlDbTask.json#/definitions/MigrateSqlServerSqlDbTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateSqlServerSqlDbTask.json#/definitions/MigrateSqlServerSqlDbTaskOutput" + }, + "readOnly": true + }, + "taskId": { + "type": "string", + "description": "task id" + }, + "isCloneable": { + "type": "boolean", + "description": "whether the task can be cloned or not" + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSqlServerSqlDbSyncTaskProperties": { + "x-ms-discriminator-value": "Migrate.SqlServer.AzureSqlDb.Sync", + "type": "object", + "description": "Properties for the task that migrates on-prem SQL Server databases to Azure SQL Database for online migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateSqlServerSqlDbSyncTask.json#/definitions/MigrateSqlServerSqlDbSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateSqlServerSqlDbSyncTask.json#/definitions/MigrateSqlServerSqlDbSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateMySqlAzureDbForMySqlSyncTaskProperties": { + "x-ms-discriminator-value": "Migrate.MySql.AzureDbForMySql.Sync", + "type": "object", + "description": "Properties for the task that migrates MySQL databases to Azure Database for MySQL for online migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateMySqlAzureDbForMySqlSyncTask.json#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateMySqlAzureDbForMySqlSyncTask.json#/definitions/MigrateMySqlAzureDbForMySqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateMySqlAzureDbForMySqlOfflineTaskProperties": { + "x-ms-discriminator-value": "Migrate.MySql.AzureDbForMySql", + "type": "object", + "description": "Properties for the task that migrates MySQL databases to Azure Database for MySQL for offline migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateMySqlAzureDbForMySqlOfflineTask.json#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateMySqlAzureDbForMySqlOfflineTask.json#/definitions/MigrateMySqlAzureDbForMySqlOfflineTaskOutput" + }, + "readOnly": true + }, + "isCloneable": { + "type": "boolean", + "description": "whether the task can be cloned or not" + }, + "taskId": { + "type": "string", + "description": "Task id " + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "Migrate.PostgreSql.AzureDbForPostgreSql.SyncV2", + "type": "object", + "description": "Properties for the task that migrates PostgreSQL databases to Azure Database for PostgreSQL for online migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput" + }, + "readOnly": true + }, + "taskId": { + "type": "string", + "description": "task id" + }, + "createdOn": { + "type": "string", + "description": "DateTime in UTC when the task was created" + }, + "isCloneable": { + "type": "boolean", + "description": "whether the task can be cloned or not" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateOracleAzureDbForPostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "Migrate.Oracle.AzureDbForPostgreSql.Sync", + "type": "object", + "description": "Properties for the task that migrates Oracle to Azure Database for PostgreSQL for online migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ValidateMigrationInputSqlServerSqlDbSyncTaskProperties": { + "x-ms-discriminator-value": "ValidateMigrationInput.SqlServer.SqlDb.Sync", + "type": "object", + "description": "Properties for task that validates migration input for SQL to Azure SQL DB sync migrations", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ValidateSyncMigrationInputSqlServerTask.json#/definitions/ValidateSyncMigrationInputSqlServerTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ValidateSyncMigrationInputSqlServerTask.json#/definitions/ValidateSyncMigrationInputSqlServerTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ValidateMigrationInputSqlServerSqlMITaskProperties": { + "x-ms-discriminator-value": "ValidateMigrationInput.SqlServer.AzureSqlDbMI", + "type": "object", + "description": "Properties for task that validates migration input for SQL to Azure SQL Database Managed Instance", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ValidateMigrationInputSqlServerSqlMITask.json#/definitions/ValidateMigrationInputSqlServerSqlMITaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ValidateMigrationInputSqlServerSqlMITask.json#/definitions/ValidateMigrationInputSqlServerSqlMITaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ValidateMigrationInputSqlServerSqlMISyncTaskProperties": { + "x-ms-discriminator-value": "ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS", + "type": "object", + "description": "Properties for task that validates migration input for SQL to Azure SQL Database Managed Instance sync scenario", + "properties": { + "input": { + "description": "Task input", + "$ref": "./ValidateMigrationInputSqlServerSqlMiSyncTask.json#/definitions/ValidateMigrationInputSqlServerSqlMISyncTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./ValidateMigrationInputSqlServerSqlMiSyncTask.json#/definitions/ValidateMigrationInputSqlServerSqlMISyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ValidateMongoDbTaskProperties": { + "x-ms-discriminator-value": "Validate.MongoDb", + "type": "object", + "description": "Properties for the task that validates a migration between MongoDB data sources", + "properties": { + "input": { + "$ref": "./MongoDbTasks.json#/definitions/MongoDbMigrationSettings" + }, + "output": { + "type": "array", + "description": "An array containing a single MongoDbMigrationProgress object", + "items": { + "$ref": "./MongoDbTasks.json#/definitions/MongoDbMigrationProgress" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "ValidateOracleAzureDbForPostgreSqlSyncTaskProperties": { + "x-ms-discriminator-value": "Validate.Oracle.AzureDbPostgreSql.Sync", + "type": "object", + "description": "Properties for the task that validates a migration for Oracle to Azure Database for PostgreSQL for online migrations", + "properties": { + "input": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/MigrateOracleAzureDbPostgreSqlSyncTaskInput" + }, + "output": { + "type": "array", + "description": "An array containing a single validation error response object", + "items": { + "$ref": "./OracleAzureDbPostgreSqlSyncTask.json#/definitions/ValidateOracleAzureDbPostgreSqlSyncTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "GetTdeCertificatesSqlTaskProperties": { + "x-ms-discriminator-value": "GetTDECertificates.Sql", + "type": "object", + "description": "Properties for the task that gets TDE certificates in Base64 encoded format.", + "properties": { + "input": { + "description": "Task input", + "$ref": "./GetTdeCertificatesSqlTask.json#/definitions/GetTdeCertificatesSqlTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./GetTdeCertificatesSqlTask.json#/definitions/GetTdeCertificatesSqlTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + }, + "MigrateSsisTaskProperties": { + "x-ms-discriminator-value": "Migrate.Ssis", + "type": "object", + "description": "Properties for task that migrates SSIS packages from SQL Server databases to Azure SQL Database Managed Instance.", + "properties": { + "input": { + "description": "Task input", + "$ref": "./MigrateSsisTask.json#/definitions/MigrateSsisTaskInput" + }, + "output": { + "description": "Task output. This is ignored if submitted.", + "type": "array", + "items": { + "$ref": "./MigrateSsisTask.json#/definitions/MigrateSsisTaskOutput" + }, + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProjectTaskProperties" + } + ] + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/TasksCommon.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/TasksCommon.json new file mode 100644 index 000000000000..fb287f632099 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/TasksCommon.json @@ -0,0 +1,1312 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "Database": { + "type": "object", + "description": "Information about a single database", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the database" + }, + "name": { + "type": "string", + "description": "Name of the database" + }, + "compatibilityLevel": { + "$ref": "#/definitions/DatabaseCompatLevel", + "description": "SQL Server compatibility level of database" + }, + "collation": { + "type": "string", + "description": "Collation name of the database" + }, + "serverName": { + "type": "string", + "description": "Name of the server" + }, + "fqdn": { + "type": "string", + "description": "Fully qualified name" + }, + "installId": { + "type": "string", + "description": "Install id of the database" + }, + "serverVersion": { + "type": "string", + "description": "Version of the server" + }, + "serverEdition": { + "type": "string", + "description": "Edition of the server" + }, + "serverLevel": { + "type": "string", + "description": "Product level of the server (RTM, SP, CTP)." + }, + "serverDefaultDataPath": { + "type": "string", + "description": "Default path of the data files" + }, + "serverDefaultLogPath": { + "type": "string", + "description": "Default path of the log files" + }, + "serverDefaultBackupPath": { + "type": "string", + "description": "Default path of the backup folder" + }, + "serverCoreCount": { + "type": "integer", + "description": "Number of cores on the server" + }, + "serverVisibleOnlineCoreCount": { + "type": "integer", + "description": "Number of cores on the server that have VISIBLE ONLINE status" + }, + "databaseState": { + "$ref": "#/definitions/DatabaseState", + "description": "State of the database" + }, + "serverId": { + "type": "string", + "description": "The unique Server Id" + } + } + }, + "DatabaseCompatLevel": { + "type": "string", + "description": "An enumeration of SQL Server database compatibility levels", + "enum": [ + "CompatLevel80", + "CompatLevel90", + "CompatLevel100", + "CompatLevel110", + "CompatLevel120", + "CompatLevel130", + "CompatLevel140" + ], + "x-ms-enum": { + "name": "DatabaseCompatLevel", + "modelAsString": true + } + }, + "DatabaseState": { + "type": "string", + "description": "An enumeration of SQL Server Database states", + "enum": [ + "Online", + "Restoring", + "Recovering", + "RecoveryPending", + "Suspect", + "Emergency", + "Offline", + "Copying", + "OfflineSecondary" + ], + "x-ms-enum": { + "name": "DatabaseState", + "modelAsString": true + } + }, + "DatabaseObjectType": { + "type": "string", + "description": "An enumeration of type of objects", + "enum": [ + "StoredProcedures", + "Table", + "User", + "View", + "Function" + ], + "x-ms-enum": { + "name": "ObjectType", + "modelAsString": true + } + }, + "ScenarioSource": { + "type": "string", + "description": "An enumeration of source type", + "enum": [ + "Access", + "DB2", + "MySQL", + "Oracle", + "SQL", + "Sybase", + "PostgreSQL", + "MongoDB", + "SQLRDS", + "MySQLRDS", + "PostgreSQLRDS" + ], + "x-ms-enum": { + "name": "ScenarioSource", + "modelAsString": true + } + }, + "ScenarioTarget": { + "type": "string", + "description": "An enumeration of target type", + "enum": [ + "SQLServer", + "SQLDB", + "SQLDW", + "SQLMI", + "AzureDBForMySql", + "AzureDBForPostgresSQL", + "MongoDB" + ], + "x-ms-enum": { + "name": "ScenarioTarget", + "modelAsString": true + } + }, + "ReplicateMigrationState": { + "type": "string", + "description": "Wrapper for replicate reported migration states.", + "enum": [ + "UNDEFINED", + "VALIDATING", + "PENDING", + "COMPLETE", + "ACTION_REQUIRED", + "FAILED" + ], + "x-ms-enum": { + "name": "ReplicateMigrationState", + "modelAsString": true + } + }, + "DatabaseObjectName": { + "type": "object", + "description": "A representation of the name of an object in a database", + "properties": { + "databaseName": { + "type": "string", + "description": "The unescaped name of the database containing the object", + "readOnly": true + }, + "objectName": { + "type": "string", + "description": "The unescaped name of the object", + "readOnly": true + }, + "schemaName": { + "type": "string", + "description": "The unescaped name of the schema containing the object", + "readOnly": true + }, + "objectType": { + "$ref": "#/definitions/DatabaseObjectType", + "description": "Type of the object in the database" + } + } + }, + "DataItemMigrationSummaryResult": { + "type": "object", + "description": "Basic summary of a data item migration", + "properties": { + "name": { + "type": "string", + "description": "Name of the item", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "statusMessage": { + "type": "string", + "description": "Status message", + "readOnly": true + }, + "itemsCount": { + "type": "integer", + "format": "int64", + "description": "Number of items", + "readOnly": true + }, + "itemsCompletedCount": { + "type": "integer", + "format": "int64", + "description": "Number of successfully completed items", + "readOnly": true + }, + "errorPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all errors of the item", + "readOnly": true + }, + "resultPrefix": { + "type": "string", + "description": "Wildcard string prefix to use for querying all sub-tem results of the item", + "readOnly": true + } + } + }, + "DataMigrationProjectMetadata": { + "type": "object", + "description": "Common metadata for migration projects", + "properties": { + "sourceServerName": { + "type": "string", + "description": "Source server name", + "readOnly": true + }, + "sourceServerPort": { + "type": "string", + "description": "Source server port number", + "readOnly": true + }, + "sourceUsername": { + "type": "string", + "description": "Source username", + "readOnly": true + }, + "targetServerName": { + "type": "string", + "description": "Target server name", + "readOnly": true + }, + "targetUsername": { + "type": "string", + "description": "Target username", + "readOnly": true + }, + "targetDbName": { + "type": "string", + "description": "Target database name", + "readOnly": true + }, + "targetUsingWinAuth": { + "type": "boolean", + "description": "Whether target connection is Windows authentication", + "readOnly": true + }, + "selectedMigrationTables": { + "type": "array", + "description": "List of tables selected for migration", + "readOnly": true, + "items": { + "$ref": "#/definitions/MigrationTableMetadata" + } + } + } + }, + "DatabaseTable": { + "type": "object", + "description": "Table properties", + "properties": { + "hasRows": { + "type": "boolean", + "description": "Indicates whether table is empty or not", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Schema-qualified name of the table", + "readOnly": true + } + } + }, + "GetProjectDetailsNonSqlTaskInput": { + "type": "object", + "description": "Input for the task that reads configuration from project artifacts", + "properties": { + "projectName": { + "type": "string", + "description": "Name of the migration project" + }, + "projectLocation": { + "type": "string", + "description": "A URL that points to the location to access project artifacts" + } + }, + "required": [ + "projectName", + "projectLocation" + ] + }, + "SqlServerSqlMISyncTaskInput": { + "type": "object", + "description": "Input for task that migrates SQL Server databases to Azure SQL Database Managed Instance online scenario.", + "properties": { + "selectedDatabases": { + "description": "Databases to migrate", + "type": "array", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlMIDatabaseInput" + } + }, + "backupFileShare": { + "$ref": "./TasksCommon.json#/definitions/FileShare", + "description": "Backup file share information for all selected databases." + }, + "storageResourceId": { + "type": "string", + "description": "Fully qualified resourceId of storage" + }, + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Connection information for source SQL Server" + }, + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/MiSqlConnectionInfo", + "description": "Connection information for Azure SQL Database Managed Instance" + }, + "azureApp": { + "$ref": "./Common.json#/definitions/AzureActiveDirectoryApp", + "description": "Azure Active Directory Application the DMS instance will use to connect to the target instance of Azure SQL Database Managed Instance and the Azure Storage Account" + } + }, + "required": [ + "selectedDatabases", + "azureApp", + "sourceConnectionInfo", + "targetConnectionInfo", + "storageResourceId" + ] + }, + "MigrationState": { + "type": "string", + "description": "Current state of migration", + "enum": [ + "None", + "InProgress", + "Failed", + "Warning", + "Completed", + "Skipped", + "Stopped" + ], + "x-ms-enum": { + "name": "MigrationState", + "modelAsString": true + } + }, + "MigrationStatus": { + "type": "string", + "description": "Current status of migration", + "enum": [ + "Default", + "Connecting", + "SourceAndTargetSelected", + "SelectLogins", + "Configured", + "Running", + "Error", + "Stopped", + "Completed", + "CompletedWithWarnings" + ], + "x-ms-enum": { + "name": "MigrationStatus", + "modelAsString": true + } + }, + "SqlMigrationTaskInput": { + "type": "object", + "description": "Base class for migration task input", + "properties": { + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Information for connecting to source" + }, + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Information for connecting to target" + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo" + ] + }, + "MigrateSqlServerSqlDbDatabaseInput": { + "type": "object", + "description": "Database specific information for SQL to Azure SQL DB migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "targetDatabaseName": { + "type": "string", + "description": "Name of target database. Note: Target database will be truncated before starting migration." + }, + "makeSourceDbReadOnly": { + "type": "boolean", + "description": "Whether to set database read only before migration" + }, + "tableMap": { + "type": "object", + "description": "Mapping of source to target tables", + "additionalProperties": { + "type": "string" + } + }, + "schemaSetting": { + "type": "object", + "description": "Settings selected for DB schema migration." + }, + "id": { + "type": "string", + "description": "id of the database" + } + } + }, + "MigrateSqlServerSqlDbSyncDatabaseInput": { + "type": "object", + "description": "Database specific information for SQL to Azure SQL DB sync migration task inputs", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for database" + }, + "name": { + "type": "string", + "description": "Name of database" + }, + "targetDatabaseName": { + "type": "string", + "description": "Target database name" + }, + "schemaName": { + "type": "string", + "description": "Schema name to be migrated" + }, + "tableMap": { + "type": "object", + "description": "Mapping of source to target tables", + "additionalProperties": { + "type": "string" + } + }, + "migrationSetting": { + "type": "object", + "description": "Migration settings which tune the migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "sourceSetting": { + "type": "object", + "description": "Source settings to tune source endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + }, + "targetSetting": { + "type": "object", + "description": "Target settings to tune target endpoint migration behavior", + "additionalProperties": { + "type": "string" + } + } + } + }, + "MigrationTableMetadata": { + "type": "object", + "description": "Metadata for tables selected in migration project", + "properties": { + "sourceTableName": { + "type": "string", + "description": "Source table name", + "readOnly": true + }, + "targetTableName": { + "type": "string", + "description": "Target table name", + "readOnly": true + } + } + }, + "NonSqlMigrationTaskInput": { + "type": "object", + "description": "Base class for non sql migration task input", + "properties": { + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Information for connecting to target" + }, + "targetDatabaseName": { + "type": "string", + "description": "Target database name" + }, + "projectName": { + "type": "string", + "description": "Name of the migration project" + }, + "projectLocation": { + "type": "string", + "description": "A URL that points to the drop location to access project artifacts" + }, + "selectedTables": { + "type": "array", + "description": "Metadata of the tables selected for migration", + "items": { + "$ref": "#/definitions/NonSqlDataMigrationTable" + } + } + }, + "required": [ + "targetConnectionInfo", + "targetDatabaseName", + "projectName", + "projectLocation", + "selectedTables" + ] + }, + "NonSqlDataMigrationTable": { + "type": "object", + "description": "Defines metadata for table to be migrated", + "properties": { + "sourceName": { + "type": "string", + "description": "Source table name" + } + } + }, + "NonSqlMigrationTaskOutput": { + "type": "object", + "description": "Base class for non sql migration task output", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "startedOn": { + "type": "string", + "format": "date-time", + "description": "Migration start time", + "readOnly": true + }, + "endedOn": { + "type": "string", + "format": "date-time", + "description": "Migration end time", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/MigrationStatus", + "description": "Current state of migration", + "readOnly": true + }, + "dataMigrationTableResults": { + "type": "string", + "description": "Results of the migration. The key contains the table name and the value the table result object", + "additionalProperties": { + "$ref": "#/definitions/NonSqlDataMigrationTableResult" + }, + "readOnly": true + }, + "progressMessage": { + "type": "string", + "description": "Message about the progress of the migration", + "readOnly": true + }, + "sourceServerName": { + "type": "string", + "description": "Name of source server", + "readOnly": true + }, + "targetServerName": { + "type": "string", + "description": "Name of target server", + "readOnly": true + } + } + }, + "NonSqlDataMigrationTableResult": { + "type": "object", + "description": "Object used to report the data migration results of a table", + "properties": { + "resultCode": { + "type": "string", + "description": "Result code of the data migration", + "enum": [ + "Initial", + "Completed", + "ObjectNotExistsInSource", + "ObjectNotExistsInTarget", + "TargetObjectIsInaccessible", + "FatalError" + ], + "x-ms-enum": { + "name": "DataMigrationResultCode", + "modelAsString": true + }, + "readOnly": true + }, + "sourceName": { + "type": "string", + "description": "Name of the source table", + "readOnly": true + }, + "targetName": { + "type": "string", + "description": "Name of the target table", + "readOnly": true + }, + "sourceRowCount": { + "type": "integer", + "format": "int64", + "description": "Number of rows in the source table", + "readOnly": true + }, + "targetRowCount": { + "type": "integer", + "format": "int64", + "description": "Number of rows in the target table", + "readOnly": true + }, + "elapsedTimeInMiliseconds": { + "type": "number", + "format": "double", + "description": "Time taken to migrate the data", + "readOnly": true + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/DataMigrationError" + }, + "description": "List of errors, if any, during migration", + "readOnly": true + } + } + }, + "DataMigrationError": { + "type": "object", + "description": "Migration Task errors", + "properties": { + "message": { + "type": "string", + "description": "Error description", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ErrorType" + } + } + }, + "ErrorType": { + "type": "string", + "description": "Error type", + "enum": [ + "Default", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "ErrorType", + "modelAsString": true + } + }, + "MigrateSqlServerSqlMIDatabaseInput": { + "type": "object", + "description": "Database specific information for SQL to Azure SQL DB Managed Instance migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "restoreDatabaseName": { + "type": "string", + "description": "Name of the database at destination" + }, + "backupFileShare": { + "$ref": "#/definitions/FileShare", + "description": "Backup file share information for backing up this database." + }, + "backupFilePaths": { + "type": "array", + "description": "The list of backup files to be used in case of existing backups.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "id of the database" + } + }, + "required": [ + "name", + "restoreDatabaseName" + ] + }, + "MigrateSqlServerSqlServerDatabaseInput": { + "type": "object", + "description": "Database specific information for SQL to SQL migration task inputs", + "properties": { + "name": { + "type": "string", + "description": "Name of the database" + }, + "restoreDatabaseName": { + "type": "string", + "description": "Name of the database at destination" + }, + "backupAndRestoreFolder": { + "type": "string", + "description": "The backup and restore folder" + }, + "databaseFiles": { + "type": "array", + "description": "The list of database files", + "items": { + "$ref": "#/definitions/DatabaseFileInput" + } + } + } + }, + "DatabaseFileInput": { + "type": "object", + "description": "Database file specific information for input", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for database file" + }, + "logicalName": { + "type": "string", + "description": "Logical name of the file" + }, + "physicalFullName": { + "type": "string", + "description": "Operating-system full path of the file" + }, + "restoreFullName": { + "type": "string", + "description": "Suggested full path of the file for restoring" + }, + "fileType": { + "$ref": "#/definitions/DatabaseFileType", + "description": "Database file type" + } + } + }, + "DatabaseFileInfo": { + "type": "object", + "description": "Database file specific information", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the database" + }, + "id": { + "type": "string", + "description": "Unique identifier for database file" + }, + "logicalName": { + "type": "string", + "description": "Logical name of the file" + }, + "physicalFullName": { + "type": "string", + "description": "Operating-system full path of the file" + }, + "restoreFullName": { + "type": "string", + "description": "Suggested full path of the file for restoring" + }, + "fileType": { + "$ref": "#/definitions/DatabaseFileType", + "description": "Database file type" + }, + "sizeMB": { + "type": "number", + "format": "double", + "description": "Size of the file in megabytes" + } + } + }, + "DatabaseFileType": { + "type": "string", + "description": "An enumeration of SQL Server database file types", + "enum": [ + "Rows", + "Log", + "Filestream", + "NotSupported", + "Fulltext" + ], + "x-ms-enum": { + "name": "DatabaseFileType", + "modelAsString": true + } + }, + "ConnectToSourceNonSqlTaskOutput": { + "type": "object", + "description": "Output for connect to MySQL type source", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "sourceServerBrandVersion": { + "type": "string", + "description": "Server brand version", + "readOnly": true + }, + "serverProperties": { + "$ref": "#/definitions/ServerProperties", + "description": "Server properties", + "readOnly": true + }, + "databases": { + "type": "array", + "description": "List of databases on the server", + "items": { + "type": "string" + }, + "readOnly": true + }, + "validationErrors": { + "description": "Validation errors associated with the task", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "ServerProperties": { + "type": "object", + "description": "Server properties for MySQL type source", + "properties": { + "serverPlatform": { + "type": "string", + "description": "Name of the server platform", + "readOnly": true + }, + "serverName": { + "type": "string", + "description": "Name of the server", + "readOnly": true + }, + "serverVersion": { + "type": "string", + "description": "Version of the database server", + "readOnly": true + }, + "serverEdition": { + "type": "string", + "description": "Edition of the database server", + "readOnly": true + }, + "serverOperatingSystemVersion": { + "type": "string", + "description": "Version of the operating system", + "readOnly": true + }, + "serverDatabaseCount": { + "type": "integer", + "description": "Number of databases in the server", + "readOnly": true + } + } + }, + "DatabaseMigrationStage": { + "type": "string", + "description": "Current stage of migration", + "enum": [ + "None", + "Initialize", + "Backup", + "FileCopy", + "Restore", + "Completed" + ], + "x-ms-enum": { + "name": "DatabaseMigrationStage", + "modelAsString": true + } + }, + "SchemaMigrationStage": { + "type": "string", + "description": "Current stage of schema migration", + "enum": [ + "NotStarted", + "ValidatingInputs", + "CollectingObjects", + "DownloadingScript", + "GeneratingScript", + "UploadingScript", + "DeployingSchema", + "Completed", + "CompletedWithWarnings", + "Failed" + ], + "x-ms-enum": { + "name": "SchemaMigrationStage", + "modelAsString": true + } + }, + "BlobShare": { + "type": "object", + "description": "Blob container storage information.", + "properties": { + "sasUri": { + "type": "string", + "description": "SAS URI of Azure Storage Account Container." + } + } + }, + "FileShare": { + "type": "object", + "description": "File share information with Path, Username, and Password.", + "properties": { + "userName": { + "type": "string", + "description": "User name credential to connect to the share location" + }, + "password": { + "type": "string", + "description": "Password credential used to connect to the share location." + }, + "path": { + "type": "string", + "description": "The folder path for this share." + } + }, + "required": [ + "path" + ] + }, + "StartMigrationScenarioServerRoleResult": { + "type": "object", + "description": "Server role migration result", + "properties": { + "name": { + "type": "string", + "description": "Name of server role.", + "readOnly": true + }, + "state": { + "$ref": "./TasksCommon.json#/definitions/MigrationState", + "description": "Current state of migration", + "readOnly": true + }, + "exceptionsAndWarnings": { + "description": "Migration exceptions and warnings.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + }, + "LoginType": { + "type": "string", + "description": "Enum mapping of SMO LoginType.", + "enum": [ + "WindowsUser", + "WindowsGroup", + "SqlLogin", + "Certificate", + "AsymmetricKey", + "ExternalUser", + "ExternalGroup" + ], + "x-ms-enum": { + "name": "LoginType", + "modelAsString": true + } + }, + "LoginMigrationStage": { + "type": "string", + "description": "Enum of the different stage of login migration.", + "enum": [ + "None", + "Initialize", + "LoginMigration", + "EstablishUserMapping", + "AssignRoleMembership", + "AssignRoleOwnership", + "EstablishServerPermissions", + "EstablishObjectPermissions", + "Completed" + ], + "x-ms-enum": { + "name": "LoginMigrationStage", + "modelAsString": true + } + }, + "MigrationEligibilityInfo": { + "type": "object", + "description": "Information about migration eligibility of a server object", + "properties": { + "isEligibleForMigration": { + "type": "boolean", + "description": "Whether object is eligible for migration or not.", + "readOnly": true + }, + "validationMessages": { + "description": "Information about eligibility failure for the server object.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "SyncDatabaseMigrationReportingState": { + "type": "string", + "description": "Enum of the different state of database level online migration.", + "enum": [ + "UNDEFINED", + "CONFIGURING", + "INITIALIAZING", + "STARTING", + "RUNNING", + "READY_TO_COMPLETE", + "COMPLETING", + "COMPLETE", + "CANCELLING", + "CANCELLED", + "FAILED", + "VALIDATING", + "VALIDATION_COMPLETE", + "VALIDATION_FAILED", + "RESTORE_IN_PROGRESS", + "RESTORE_COMPLETED", + "BACKUP_IN_PROGRESS", + "BACKUP_COMPLETED" + ], + "x-ms-enum": { + "name": "SyncDatabaseMigrationReportingState", + "modelAsString": true + } + }, + "SyncTableMigrationState": { + "type": "string", + "description": "Enum of the different state of table level online migration.", + "enum": [ + "BEFORE_LOAD", + "FULL_LOAD", + "COMPLETED", + "CANCELED", + "ERROR", + "FAILED" + ], + "x-ms-enum": { + "name": "SyncTableMigrationState", + "modelAsString": true + } + }, + "SyncMigrationDatabaseErrorEvent": { + "type": "object", + "description": "Database migration errors for online migration", + "properties": { + "timestampString": { + "type": "string", + "description": "String value of timestamp.", + "readOnly": true + }, + "eventTypeString": { + "description": "Event type.", + "type": "string", + "readOnly": true + }, + "eventText": { + "description": "Event text.", + "type": "string", + "readOnly": true + } + } + }, + "BackupMode": { + "type": "string", + "description": "An enumeration of backup modes", + "enum": [ + "CreateBackup", + "ExistingBackup" + ], + "x-ms-enum": { + "name": "BackupMode", + "modelAsString": true + } + }, + "DatabaseBackupInfo": { + "type": "object", + "description": "Information about backup files when existing backup mode is used.", + "properties": { + "databaseName": { + "type": "string", + "description": "Database name.", + "readOnly": true + }, + "backupType": { + "description": "Backup Type.", + "$ref": "#/definitions/BackupType", + "readOnly": true + }, + "backupFiles": { + "type": "array", + "description": "The list of backup files for the current database.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "position": { + "description": "Position of current database backup in the file.", + "type": "integer", + "readOnly": true + }, + "isDamaged": { + "type": "boolean", + "description": "Database was damaged when backed up, but the backup operation was requested to continue despite errors.", + "readOnly": true + }, + "isCompressed": { + "type": "boolean", + "description": "Whether the backup set is compressed", + "readOnly": true + }, + "familyCount": { + "type": "integer", + "description": "Number of files in the backup set.", + "readOnly": true + }, + "backupFinishDate": { + "type": "string", + "format": "date-time", + "description": "Date and time when the backup operation finished.", + "readOnly": true + } + } + }, + "BackupType": { + "type": "string", + "description": "Enum of the different backup types.", + "enum": [ + "Database", + "TransactionLog", + "File", + "DifferentialDatabase", + "DifferentialFile", + "Partial", + "DifferentialPartial" + ], + "x-ms-enum": { + "name": "BackupType", + "modelAsString": true + } + }, + "DatabaseMigrationState": { + "type": "string", + "description": "Database level migration state.", + "enum": [ + "UNDEFINED", + "INITIAL", + "FULL_BACKUP_UPLOAD_START", + "LOG_SHIPPING_START", + "UPLOAD_LOG_FILES_START", + "CUTOVER_START", + "POST_CUTOVER_COMPLETE", + "COMPLETED", + "CANCELLED", + "FAILED" + ], + "x-ms-enum": { + "name": "DatabaseMigrationState", + "modelAsString": true + } + }, + "SsisMigrationInfo": { + "type": "object", + "description": "SSIS migration info with SSIS store type, overwrite policy.", + "properties": { + "ssisStoreType": { + "$ref": "#/definitions/SsisStoreType", + "description": "The SSIS store type of source, only SSIS catalog is supported now in DMS" + }, + "projectOverwriteOption": { + "$ref": "#/definitions/SsisMigrationOverwriteOption", + "description": "The overwrite option for the SSIS project migration" + }, + "environmentOverwriteOption": { + "$ref": "#/definitions/SsisMigrationOverwriteOption", + "description": "The overwrite option for the SSIS environment migration" + } + } + }, + "SsisStoreType": { + "type": "string", + "description": "An enumeration of supported source SSIS store type in DMS", + "enum": [ + "SsisCatalog" + ], + "x-ms-enum": { + "name": "SsisStoreType", + "modelAsString": true + } + }, + "SsisMigrationOverwriteOption": { + "type": "string", + "description": "The overwrite option for SSIS object migration, only ignore and overwrite are supported in DMS now and future may add Reuse option for container object", + "enum": [ + "Ignore", + "Overwrite" + ], + "x-ms-enum": { + "name": "SsisMigrationOverwriteOption", + "modelAsString": true + } + }, + "SsisMigrationStage": { + "type": "string", + "description": "Current stage of SSIS migration", + "enum": [ + "None", + "Initialize", + "InProgress", + "Completed" + ], + "x-ms-enum": { + "name": "SsisMigrationStage", + "modelAsString": true + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json new file mode 100644 index 000000000000..9a134917db5f --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json @@ -0,0 +1,127 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ValidateMigrationInputSqlServerSqlMITaskInput": { + "type": "object", + "description": "Input for task that validates migration input for SQL to Azure SQL Managed Instance", + "properties": { + "sourceConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Information for connecting to source" + }, + "targetConnectionInfo": { + "$ref": "./Common.json#/definitions/SqlConnectionInfo", + "description": "Information for connecting to target" + }, + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlMIDatabaseInput" + } + }, + "selectedLogins": { + "type": "array", + "description": "Logins to migrate", + "items": { + "type": "string" + } + }, + "backupFileShare": { + "$ref": "./TasksCommon.json#/definitions/FileShare", + "description": "Backup file share information for all selected databases." + }, + "backupBlobShare": { + "$ref": "./TasksCommon.json#/definitions/BlobShare", + "description": "SAS URI of Azure Storage Account Container to be used for storing backup files." + }, + "backupMode": { + "$ref": "./TasksCommon.json#/definitions/BackupMode", + "description": "Backup Mode to specify whether to use existing backup or create new backup." + } + }, + "required": [ + "sourceConnectionInfo", + "targetConnectionInfo", + "selectedDatabases", + "backupBlobShare" + ] + }, + "ValidateMigrationInputSqlServerSqlMITaskOutput": { + "type": "object", + "description": "Output for task that validates migration input for SQL to Azure SQL Managed Instance migrations", + "properties": { + "id": { + "type": "string", + "description": "Result identifier", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of database", + "readOnly": true + }, + "restoreDatabaseNameErrors": { + "description": "Errors associated with the RestoreDatabaseName", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "backupFolderErrors": { + "description": "Errors associated with the BackupFolder path", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "backupShareCredentialsErrors": { + "description": "Errors associated with backup share user name and password credentials", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "backupStorageAccountErrors": { + "description": "Errors associated with the storage account provided.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "existingBackupErrors": { + "description": "Errors associated with existing backup files.", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + }, + "databaseBackupInfo": { + "$ref": "./TasksCommon.json#/definitions/DatabaseBackupInfo", + "description": "Information about backup files when existing backup mode is used." + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json new file mode 100644 index 000000000000..cda86c6de543 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json @@ -0,0 +1,54 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ValidateMigrationInputSqlServerSqlMISyncTaskInput": { + "type": "object", + "description": "Input for task that migrates SQL Server databases to Azure SQL Database Managed Instance online scenario.", + "allOf": [ + { + "$ref": "TasksCommon.json#/definitions/SqlServerSqlMISyncTaskInput" + } + ] + }, + "ValidateMigrationInputSqlServerSqlMISyncTaskOutput": { + "type": "object", + "description": "Output for task that validates migration input for Azure SQL Database Managed Instance online migration", + "properties": { + "id": { + "type": "string", + "description": "Database identifier", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of database", + "readOnly": true + }, + "validationErrors": { + "description": "Errors associated with a selected database object", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateSyncMigrationInputSqlServerTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateSyncMigrationInputSqlServerTask.json new file mode 100644 index 000000000000..9dbd123acc81 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/definitions/ValidateSyncMigrationInputSqlServerTask.json @@ -0,0 +1,71 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Database Migration Service Resource Provider", + "version": "2022-01-30-preview" + }, + "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" + } + } + }, + "paths": {}, + "definitions": { + "ValidateSyncMigrationInputSqlServerTaskInput": { + "type": "object", + "description": "Input for task that validates migration input for SQL sync migrations", + "properties": { + "sourceConnectionInfo": { + "description": "Information for connecting to source SQL server", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "targetConnectionInfo": { + "description": "Information for connecting to target", + "$ref": "./Common.json#/definitions/SqlConnectionInfo" + }, + "selectedDatabases": { + "type": "array", + "description": "Databases to migrate", + "items": { + "$ref": "./TasksCommon.json#/definitions/MigrateSqlServerSqlDbSyncDatabaseInput" + } + } + }, + "required": [ + "targetConnectionInfo", + "sourceConnectionInfo", + "selectedDatabases" + ] + }, + "ValidateSyncMigrationInputSqlServerTaskOutput": { + "type": "object", + "description": "Output for task that validates migration input for SQL sync migrations", + "properties": { + "id": { + "type": "string", + "description": "Database identifier", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of database", + "readOnly": true + }, + "validationErrors": { + "description": "Errors associated with a selected database object", + "type": "array", + "items": { + "$ref": "./Common.json#/definitions/ReportableException" + }, + "readOnly": true + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMAX.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMAX.json new file mode 100644 index 000000000000..9d525f5a5b67 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMAX.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "testagent", + "api-version": "2022-01-30-preview", + "parameters": { + "location": "northeurope" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Updating" + }, + "location": "northeurope", + "tags": { + "myTag": "myVal" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "provisioningState": "Updating" + }, + "location": "northeurope", + "tags": { + "myTag": "myVal" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMIN.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMIN.json new file mode 100644 index 000000000000..9d525f5a5b67 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/CreateOrUpdateMigrationServiceMIN.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "testagent", + "api-version": "2022-01-30-preview", + "parameters": { + "location": "northeurope" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Updating" + }, + "location": "northeurope", + "tags": { + "myTag": "myVal" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "provisioningState": "Updating" + }, + "location": "northeurope", + "tags": { + "myTag": "myVal" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteIntegrationRuntimeNode.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteIntegrationRuntimeNode.json new file mode 100644 index 000000000000..3bcc63747bd0 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteIntegrationRuntimeNode.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview", + "parameters": { + "nodeName": "nodeName", + "integrationRuntimeName": "IRName" + } + }, + "responses": { + "200": { + "body": { + "nodeName": "nodeName", + "integrationRuntimeName": "IRName" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteMigrationService.json new file mode 100644 index 000000000000..1b309d4b6496 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/DeleteMigrationService.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": {}, + "202": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_CreateOrUpdate.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_CreateOrUpdate.json new file mode 100644 index 000000000000..1fdd8c0a057b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_CreateOrUpdate.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "filePath": "DmsSdkFilePath/DmsSdkFile.sql" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "extension": "sql", + "filePath": "DmsSdkFilePath/DmsSdkFile.sql" + }, + "etag": "C2WE6C3yt2I0hunjpjzffY8LhTLqrJZHJ20gkuq2ZOA=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/x114d023d8", + "name": "x114d023d8", + "type": "Microsoft.DataMigration/services/projects/files" + } + }, + "201": { + "body": { + "properties": { + "extension": "sql", + "filePath": "DmsSdkFilePath/DmsSdkFile.sql" + }, + "etag": "C2WE6C3yt2I0hunjpjzffY8LhTLqrJZHJ20gkuq2ZOA=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/x114d023d8", + "name": "x114d023d8", + "type": "Microsoft.DataMigration/services/projects/files" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Delete.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Delete.json new file mode 100644 index 000000000000..76c000df0583 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Get.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Get.json new file mode 100644 index 000000000000..9dd41934ba05 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "extension": "sql", + "filePath": "SchemaInput/DmsSdkFile.sql", + "lastModified": "2018-08-15T20:01:33+00:00", + "mediaType": "text/plain", + "size": 51835 + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/x114d023d8", + "name": "x114d023d8", + "type": "Microsoft.DataMigration/services/projects/files" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_List.json new file mode 100644 index 000000000000..69d3dc4cd555 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_List.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "extension": "sql", + "filePath": "SchemaInput/DmsSdkFile.sql", + "lastModified": "2018-08-15T20:01:33+00:00", + "mediaType": "text/plain", + "size": 51835 + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/x114d023d8", + "name": "x114d023d8", + "type": "Microsoft.DataMigration/services/projects/files" + }, + { + "properties": { + "extension": "sql", + "filePath": "7daf055f-82b0-483e-9da0-4244b4eaa9b0/AdventureWorks2008.sql", + "lastModified": "2018-10-05T16:51:03+00:00", + "mediaType": "text/plain", + "size": 910278 + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/pfpu7fxqcpziyg2h3qj2vb7d8jpbbg7p", + "name": "pfpu7fxqcpziyg2h3qj2vb7d8jpbbg7p", + "type": "Microsoft.DataMigration/services/projects/files" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Read.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Read.json new file mode 100644 index 000000000000..0cb5de29fe6b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Read.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "uri": "https://dmssdkservicestorage.blob.core.windows.net/dmssdkservicecontainer/_rpfiles/dmssdkproject/pfpu7fxqcpziyg2h3qj2vb7d8jpbbg7p?sv=2016-05-31&sr=b&sig=sassignature&se=2018-10-05T18%3A21%3A42Z&sp=r", + "headers": { + "x-ms-blob-type": "BlockBlob" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_ReadWrite.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_ReadWrite.json new file mode 100644 index 000000000000..5ee11c43199c --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_ReadWrite.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "uri": "https://dmssdkservicestorage.blob.core.windows.net/dmssdkservicecontainer/_rpfiles/dmssdkproject/pfpu7fxqcpziyg2h3qj2vb7d8jpbbg7p?sv=2016-05-31&sr=b&sig=sassignature&se=2018-10-05T18%3A21%3A42Z&sp=racwd", + "headers": { + "x-ms-blob-type": "BlockBlob" + } + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Update.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Update.json new file mode 100644 index 000000000000..5f4708654f56 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Files_Update.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "fileName": "x114d023d8", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "filePath": "DmsSdkFilePath/DmsSdkFile.sql" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "extension": "sql", + "filePath": "DmsSdkFilePath/DmsSdkFile.sql" + }, + "etag": "C2WE6C3yt2I0hunjpjzffY8LhTLqrJZHJ20gkuq2ZOA=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/files/x114d023d8", + "name": "x114d023d8", + "type": "Microsoft.DataMigration/services/projects/files" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMigrationService.json new file mode 100644 index 000000000000..d593c5fb5452 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMigrationService.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "myTag": "myVal" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/service1", + "name": "service1", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMonitorDataMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMonitorDataMigrationService.json new file mode 100644 index 000000000000..e28e8f7379f4 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/GetMonitorDataMigrationService.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "name": "IntegrationRuntime1", + "nodes": [ + { + "nodeName": "DESKTOP-6AAAAAA", + "availableMemoryInMB": 4219, + "cpuUtilization": 66, + "concurrentJobsLimit": 20, + "concurrentJobsRunning": 0, + "sentBytes": 0.24564747512340546, + "receivedBytes": 0.14946500957012177 + }, + { + "nodeName": "DESKTOP-6AAAAAB", + "availableMemoryInMB": 4219, + "cpuUtilization": 66, + "concurrentJobsLimit": 20, + "concurrentJobsRunning": 0, + "sentBytes": 0.24564747512340546, + "receivedBytes": 0.14946500957012177 + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListAuthKeysMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListAuthKeysMigrationService.json new file mode 100644 index 000000000000..f5f7880cf625 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListAuthKeysMigrationService.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "authKey1": "IR@3c400518-8dce-479f-97f9-83d17c3d8c24@dmsv2test7@ServiceEndpoint=wu.frontend.int.clouddatahub-int.net@Kjvm37BceBapP0z7R2n3zZrvY/M79yo7Hg3rR+LjFFI=", + "authKey2": "IR@3c499528-8ace-47xf-97z9-83d17c3d8c24@dmsv2test7@ServiceEndpoint=wu.frontend.int.clouddatahub-int.net@Kjvm37BceBapP0z7R2n3zZrvY/M79yo7Hg3rR+LjFFI=" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListByResourceGroupMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListByResourceGroupMigrationService.json new file mode 100644 index 000000000000..ec0c7f400de2 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListByResourceGroupMigrationService.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/service1", + "name": "service1", + "type": "Microsoft.DataMigration/sqlMigrationServices" + }, + { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/service1", + "name": "service2", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListBySubscriptionMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListBySubscriptionMigrationService.json new file mode 100644 index 000000000000..6fd671aa458c --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListBySubscriptionMigrationService.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/managedInstance1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg1/providers/Microsoft.DataMigration/sqlMigrationServices/service1", + "name": "service1", + "type": "Microsoft.DataMigration/sqlMigrationServices" + }, + { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg2/providers/Microsoft.DataMigration/sqlMigrationServices/service2", + "name": "service2", + "type": "Microsoft.DataMigration/sqlMigrationServices" + }, + { + "properties": { + "provisioningState": "Succeeded", + "integrationRuntimeState": "NeedRegistration" + }, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg2/providers/Microsoft.DataMigration/sqlMigrationServices/service3", + "name": "service3", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListMigrationsByMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListMigrationsByMigrationService.json new file mode 100644 index 000000000000..fa6f14cb3bce --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListMigrationsByMigrationService.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + }, + { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListOperation.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListOperation.json new file mode 100644 index 000000000000..4db07bd48b29 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ListOperation.json @@ -0,0 +1,236 @@ +{ + "parameters": { + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.DataMigration/sqlMigrationServices/write", + "display": { + "resource": "SQL Migration Service", + "operation": "Create or update properties of existing Service", + "description": "Create a new or change properties of existing Service" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/write", + "display": { + "resource": "SQL Migration Service", + "operation": "Update tag of the Service", + "description": "Update tag of the Service" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/delete", + "display": { + "resource": "SQL Migration Service", + "operation": "Delete existing Service", + "description": "Delete existing Service" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/read", + "display": { + "resource": "SQL Migration Service", + "operation": "Get Migration Service details", + "description": "Retrieve details of Migration Service" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/read", + "display": { + "resource": "SQL Migration Service", + "operation": "Get Migration Service details in a Resource Group", + "description": "Retrieve details of Migration Services in a Resource Group" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action", + "display": { + "resource": "SQL Migration Service", + "operation": "Get List of AuthKeys", + "description": "Retrieve the List of AuthKeys" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action", + "display": { + "resource": "SQL Migration Service", + "operation": "Regenerate the AuthKeys", + "description": "Regenerate the AuthKeys" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/monitoringData/action", + "display": { + "resource": "SQL Migration Service", + "operation": "Get the Monitoring Data", + "description": "Retrieve the Monitoring Data" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/updateNode/action", + "display": { + "resource": "SQL Migration Service", + "operation": "Update Node", + "description": "Update Node" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/deleteNode/action", + "display": { + "resource": "SQL Migration Service", + "operation": "DeleteNode", + "description": "Delete Node" + } + }, + { + "name": "Microsoft.DataMigration/operations/read", + "display": { + "resource": "Available REST operations", + "operation": "Get all REST Operations", + "description": "Get all REST Operations" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/databaseMigrations/cancel/action", + "display": { + "resource": "Database Migration Resource", + "operation": "Stop ongoing migration for the database", + "description": "Stop ongoing migration for the database" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/databaseMigrations/start/action", + "display": { + "resource": "Database Migration Resource", + "operation": "Start stopped migration for the database", + "description": "Start stopped migration for the database" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/databaseMigrations/cutover/action", + "display": { + "resource": "Database Migration Resource", + "operation": "Cutover online migration operation for the database", + "description": "Cutover online migration operation for the database" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/databaseMigrations/write", + "display": { + "resource": "Database Migration Resource", + "operation": "Create or Update Database Migration resource", + "description": "Create or Update Database Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/databaseMigrations/write", + "display": { + "resource": "Database Migration Resource", + "operation": "Update Database Migration resource", + "description": "Update Database Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/delete", + "display": { + "resource": "Database Migration Resource", + "operation": "Delete Database Migration resource", + "description": "Delete Database Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/read", + "display": { + "resource": "Database Migration Resource", + "operation": "Get the Database Migration resource", + "description": "Retrieve the Database Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/Microsoft.DataMigration/read", + "display": { + "resource": "Database Migration Resource", + "operation": "Get Database Migration in the server", + "description": "Retrieve Database Migration for the server" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/cancel/action", + "display": { + "resource": "Login Migration Resource", + "operation": "Stop ongoing login migration", + "description": "Stop ongoing login migration" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/validate/action", + "display": { + "resource": "Login Migration Resource", + "operation": "Validate login migration", + "description": "Validate login migration" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/checkNameAvailability/action", + "display": { + "resource": "Login Migration Resource", + "operation": "Check Name availability for login migration" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/write", + "display": { + "resource": "Login Migration Resource", + "operation": "Create or Update Login Migration resource", + "description": "Create or Update Login Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/write", + "display": { + "resource": "Login Migration Resource", + "operation": "Update Login Migration resource", + "description": "Update Login Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/delete", + "display": { + "resource": "Login Migration Resource", + "operation": "Delete Login Migration resource", + "description": "Delete Login Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/read", + "display": { + "resource": "Login Migration Resource", + "operation": "Get Login Migration resource", + "description": "Retrieve the Login Migration resource" + } + }, + { + "name": "Microsoft.Sql/managedInstances/providers/loginMigrations/read", + "display": { + "resource": "Login Migration Resource", + "operation": "Get all Login Migration resources by server", + "description": "Retrieve the Login Migrations" + } + }, + { + "name": "Microsoft.DataMigration/sqlMigrationServices/read", + "display": { + "resource": "SQL Migration Service", + "operation": "Get all services in the Subscription", + "description": "Retrieve all services in the Subscription" + } + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_CreateOrUpdate.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_CreateOrUpdate.json new file mode 100644 index 000000000000..abedd46374ea --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_CreateOrUpdate.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview", + "parameters": { + "location": "southcentralus", + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-03T02:14:54.2458282-07:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject", + "location": "southcentralus", + "name": "DmsSdkProject", + "type": "Microsoft.DataMigration/services/projects" + } + }, + "201": { + "body": { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-03T02:14:54.2458282-07:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject", + "location": "southcentralus", + "name": "DmsSdkProject", + "type": "Microsoft.DataMigration/services/projects" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Delete.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Delete.json new file mode 100644 index 000000000000..9aede2fb62d3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Get.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Get.json new file mode 100644 index 000000000000..d44af24df08b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Get.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-03T02:35:11.6561001-07:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject", + "location": "southcentralus", + "name": "DmsSdkProject", + "type": "Microsoft.DataMigration/services/projects" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_List.json new file mode 100644 index 000000000000..cfb242f862c7 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_List.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-14T01:29:56.3049263+00:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/project1", + "location": "southcentralus", + "name": "project1", + "type": "Microsoft.DataMigration/services/projects" + }, + { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-14T01:30:05.6185148+00:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/project2", + "location": "southcentralus", + "name": "project2", + "type": "Microsoft.DataMigration/services/projects" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Update.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Update.json new file mode 100644 index 000000000000..8c709dbcb18d --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Projects_Update.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview", + "parameters": { + "location": "southcentralus", + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "sourcePlatform": "SQL", + "targetPlatform": "SQLDB", + "creationTime": "2017-11-03T02:14:54.2458282-07:00", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject", + "location": "southcentralus", + "name": "DmsSdkProject", + "type": "Microsoft.DataMigration/services/projects" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/RegenAuthKeysMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/RegenAuthKeysMigrationService.json new file mode 100644 index 000000000000..358ef4a91a85 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/RegenAuthKeysMigrationService.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "service1", + "api-version": "2022-01-30-preview", + "parameters": { + "keyName": "authKey1" + } + }, + "responses": { + "200": { + "body": { + "authKey1": "IR@3c400538-8dce-479f-97f9-8abcd@dmsv2test7@ServiceEndpoint=wu.frontend.int.clouddatahub-int.net@KXYZ=" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ResourceSkus_ListSkus.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ResourceSkus_ListSkus.json new file mode 100644 index 000000000000..a2c7fa5c1068 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ResourceSkus_ListSkus.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "subscriptionId": "subid", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "resourceType": "services", + "name": "PP1", + "locations": [ + "East Asia", + "Southeast Asia", + "Australia East", + "Australia Southeast", + "Brazil South", + "Canada Central", + "Canada East", + "North Europe", + "West Europe", + "Central India", + "South India", + "West India", + "Japan East", + "Japan West", + "Korea South", + "Korea Central", + "UK South", + "UK South 2", + "UK North", + "UK West", + "East US 2 EUAP", + "Central US", + "East US", + "East US 2", + "North Central US", + "South Central US", + "West Central US", + "West US", + "West US 2" + ], + "restrictions": [] + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Cancel.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Cancel.json new file mode 100644 index 000000000000..273d6ffabf86 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Cancel.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_CreateOrUpdate.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_CreateOrUpdate.json new file mode 100644 index 000000000000..3702f4549df6 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_CreateOrUpdate.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "taskType": "Service.Check.OCI", + "input": { + "serverVersion": "NA" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + }, + "201": { + "body": { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Delete.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Delete.json new file mode 100644 index 000000000000..621f82f4a50e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Get.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Get.json new file mode 100644 index 000000000000..273d6ffabf86 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_List.json new file mode 100644 index 000000000000..5497cae812e9 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_List.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Update.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Update.json new file mode 100644 index 000000000000..3a7ec4498e59 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/ServiceTasks_Update.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "taskType": "Service.Check.OCI", + "input": { + "serverVersion": "NA" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "serverVersion": "NA" + }, + "taskType": "Service.Check.OCI", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/serviceTasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/serviceTasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckChildrenNameAvailability.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckChildrenNameAvailability.json new file mode 100644 index 000000000000..fc9baf49fa37 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckChildrenNameAvailability.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview", + "parameters": { + "name": "Task1", + "type": "tasks" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckNameAvailability.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckNameAvailability.json new file mode 100644 index 000000000000..9326050f3fc4 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckNameAvailability.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "api-version": "2022-01-30-preview", + "location": "eastus", + "parameters": { + "name": "DmsSdkService", + "type": "services" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckStatus.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckStatus.json new file mode 100644 index 000000000000..610dd2fb9a8d --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CheckStatus.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "agentVersion": "3.3.3871.6", + "status": "Online", + "vmSize": "Standard_A4_v2", + "supportedTaskTypes": [ + "diagnostic.count", + "diagnostic.echo", + "diagnostic.error", + "diagnostic.fastCount", + "ConnectToSource.SqlServer.Sync", + "SyncMigrationOperationalTelemetry.LogCollector", + "GetUserTables.AzureSqlDb.Sync", + "ConnectToTarget.SqlDb.Sync", + "Migrate.MySql.AzureDbForMySql.Sync", + "Migrate.SqlServer.AzureSqlDb.Sync", + "ValidateMigrationInput.SqlServer.SqlDb.Sync", + "DataMigration.AzureSqlDbPostMigrationValidationScenarioId", + "GetTDECertificates.Sql", + "Migrate.SqlServer.AzureSqlDbMI", + "ValidateMigrationInput.SqlServer.AzureSqlDbMI", + "ConnectToTarget.AzureDbForMySql", + "ConnectToSource.SqlServer", + "GetUserTables.Sql", + "ConnectToTarget.AzureSqlDbMI", + "ConnectToTarget.SqlDb", + "Migrate.SqlServer.SqlDb", + "ConnectToSource.MySql" + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CreateOrUpdate.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CreateOrUpdate.json new file mode 100644 index 000000000000..b4a66068d5e6 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_CreateOrUpdate.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "sku": { + "name": "Basic_1vCore" + }, + "location": "southcentralus" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Accepted", + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "etag": "9QuK/U0GvTJpjIrlOzITXVy68+bmmQ3bFkHudLxmkUw=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService", + "location": "southcentralus", + "name": "DmsSdkService", + "sku": { + "name": "Basic_1vCore", + "size": "1 vCore", + "tier": "Basic" + }, + "type": "Microsoft.DataMigration/services" + } + }, + "201": { + "body": { + "properties": { + "provisioningState": "Accepted", + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "etag": "9QuK/U0GvTJpjIrlOzITXVy68+bmmQ3bFkHudLxmkUw=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService", + "location": "southcentralus", + "name": "DmsSdkService", + "sku": { + "name": "Basic_1vCore", + "size": "1 vCore", + "tier": "Basic" + }, + "type": "Microsoft.DataMigration/services" + } + }, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Delete.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Delete.json new file mode 100644 index 000000000000..60bd74b17793 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "202": {}, + "200": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Get.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Get.json new file mode 100644 index 000000000000..422ad9b7216b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Succeeded", + "publicKey": "0;AQAB;sCMXX00QDnuOIEQdXyY96h3VPSk3ccsBeYOGxntqg7y6oXbq4JbQHf8GnUhf5NsmUYBq1rO+6xSumIuLLANIIqNPpHCT8x7W+tcuShlju4fdSKfpyKbJnTJJzGLhRJYG97hDPo9D76qpEYQN66k0IfkKJVDTh7LAxqcE3lxdA98LB2EDM6vYoZ+raKXygYc1UUHDpkfksLk2YRTVCaayTFBh5HT/+CY+48V+rbx/nruvEEEbSg720m5Fc0k8ivM3A+RGkeK9pzQx+TtskSCDXiWL50a8Rrb5ORkBusgY+s0XLyKOuxZCIUOEO8JzUjCeZYdOfLJzx8yfTxEmSlOPqQ==", + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "etag": "qt85+bWDN84/6PR8Gllxf63krZcXZX1h3wxAbs6pCjc=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService", + "location": "southcentralus", + "name": "DmsSdkService", + "sku": { + "name": "Basic_1vCore", + "size": "1 vCore", + "tier": "Basic" + }, + "type": "Microsoft.DataMigration/services" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_List.json new file mode 100644 index 000000000000..dbb205d2cefd --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_List.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg1/providers/Microsoft.DataMigration/services/DmsSdkService1", + "name": "DmsSdkService1", + "type": "Microsoft.DataMigration/services", + "sku": { + "name": "GeneralPurpose_4vCores", + "tier": "General Purpose", + "size": "4 vCores" + }, + "location": "southcentralus" + }, + { + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg2/providers/Microsoft.DataMigration/services/DmsSdkService2", + "name": "DmsSdkService2", + "type": "Microsoft.DataMigration/services", + "sku": { + "name": "Basic_2vCores", + "tier": "Basic", + "size": "2 vCores" + }, + "location": "centralus" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListByResourceGroup.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListByResourceGroup.json new file mode 100644 index 000000000000..306616f4d301 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListByResourceGroup.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService1", + "name": "DmsSdkService1", + "type": "Microsoft.DataMigration/services", + "sku": { + "name": "GeneralPurpose_4vCores", + "tier": "General Purpose", + "size": "4 vCores" + }, + "location": "southcentralus" + }, + { + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService2", + "name": "DmsSdkService2", + "type": "Microsoft.DataMigration/services", + "sku": { + "name": "Basic_2vCores", + "tier": "Basic", + "size": "2 vCores" + }, + "location": "southcentralus" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListSkus.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListSkus.json new file mode 100644 index 000000000000..6390d1672a63 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_ListSkus.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "resourceType": "Microsoft.DataMigration/services", + "sku": { + "name": "Basic_1vCore", + "size": "1 vCore", + "tier": "Basic" + } + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Start.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Start.json new file mode 100644 index 000000000000..4b9d5bac0ae3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Start.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "202": {}, + "200": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Stop.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Stop.json new file mode 100644 index 000000000000..4b9d5bac0ae3 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Stop.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview" + }, + "responses": { + "202": {}, + "200": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Update.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Update.json new file mode 100644 index 000000000000..ad6b64dd8e11 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Services_Update.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "location": "southcentralus" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "provisioningState": "Accepted", + "virtualSubnetId": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkTestNetwork/providers/Microsoft.Network/virtualNetworks/DmsSdkTestNetwork/subnets/default" + }, + "etag": "9QuK/U0GvTJpjIrlOzITXVy68+bmmQ3bFkHudLxmkUw=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService", + "location": "southcentralus", + "name": "DmsSdkService", + "sku": { + "name": "Basic_1vCore", + "size": "1 vCore", + "tier": "Basic" + }, + "type": "Microsoft.DataMigration/services" + } + }, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCancelDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCancelDatabaseMigration.json new file mode 100644 index 000000000000..2d7b78a6bda0 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCancelDatabaseMigration.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "migrationOperationId": "4124fe90-d1b6-4b50-b4d9-46d02381f59a" + } + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMAX.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMAX.json new file mode 100644 index 000000000000..b0ea81cfed85 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMAX.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "kind": "SqlMi", + "sourceDatabaseName": "aaa", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationService": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "offlineConfiguration": { + "offline": true, + "lastBackupName": "last_backup_file_name" + }, + "backupConfiguration": { + "targetLocation": { + "storageAccountResourceId": "account.database.windows.net", + "accountKey": "abcd" + }, + "sourceLocation": { + "fileShare": { + "path": "C:\\aaa\\bbb\\ccc", + "username": "name", + "password": "placeholder" + } + } + }, + "sourceSqlConnection": { + "dataSource": "aaa", + "userName": "bbb", + "password": "placeholder", + "encryptConnection": true, + "trustServerCertificate": true, + "authentication": "WindowsAuthentication" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMIN.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMIN.json new file mode 100644 index 000000000000..b0ea81cfed85 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCreateOrUpdateDatabaseMigrationMIN.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "kind": "SqlMi", + "sourceDatabaseName": "aaa", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationService": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "offlineConfiguration": { + "offline": true, + "lastBackupName": "last_backup_file_name" + }, + "backupConfiguration": { + "targetLocation": { + "storageAccountResourceId": "account.database.windows.net", + "accountKey": "abcd" + }, + "sourceLocation": { + "fileShare": { + "path": "C:\\aaa\\bbb\\ccc", + "username": "name", + "password": "placeholder" + } + } + }, + "sourceSqlConnection": { + "dataSource": "aaa", + "userName": "bbb", + "password": "placeholder", + "encryptConnection": true, + "trustServerCertificate": true, + "authentication": "WindowsAuthentication" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/instance", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCutoverDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCutoverDatabaseMigration.json new file mode 100644 index 000000000000..2d7b78a6bda0 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiCutoverDatabaseMigration.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "migrationOperationId": "4124fe90-d1b6-4b50-b4d9-46d02381f59a" + } + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigration.json new file mode 100644 index 000000000000..79192b3f434e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigration.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/managedInstance1", + "migrationStatus": "InProgress", + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigrationExpanded.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigrationExpanded.json new file mode 100644 index 000000000000..430885047870 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlMiGetDatabaseMigrationExpanded.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "managedInstanceName": "managedInstance1", + "targetDbName": "db1", + "$expand": "MigrationStatusDetails", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlMi", + "scope": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/managedInstance1", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/miname/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCancelDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCancelDatabaseMigration.json new file mode 100644 index 000000000000..9a251da031a8 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCancelDatabaseMigration.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "migrationOperationId": "4124fe90-d1b6-4b50-b4d9-46d02381f59a" + } + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMAX.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMAX.json new file mode 100644 index 000000000000..5b00369febbd --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMAX.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "kind": "SqlVm", + "sourceDatabaseName": "aaa", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationService": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "offlineConfiguration": { + "offline": true, + "lastBackupName": "last_backup_file_name" + }, + "backupConfiguration": { + "targetLocation": { + "storageAccountResourceId": "account.database.windows.net", + "accountKey": "abcd" + }, + "sourceLocation": { + "fileShare": { + "path": "C:\\aaa\\bbb\\ccc", + "username": "name", + "password": "placeholder" + } + } + }, + "sourceSqlConnection": { + "dataSource": "aaa", + "userName": "bbb", + "password": "placeholder", + "encryptConnection": true, + "trustServerCertificate": true, + "authentication": "WindowsAuthentication" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMIN.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMIN.json new file mode 100644 index 000000000000..5b00369febbd --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCreateOrUpdateDatabaseMigrationMIN.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "kind": "SqlVm", + "sourceDatabaseName": "aaa", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationService": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "offlineConfiguration": { + "offline": true, + "lastBackupName": "last_backup_file_name" + }, + "backupConfiguration": { + "targetLocation": { + "storageAccountResourceId": "account.database.windows.net", + "accountKey": "abcd" + }, + "sourceLocation": { + "fileShare": { + "path": "C:\\aaa\\bbb\\ccc", + "username": "name", + "password": "placeholder" + } + } + }, + "sourceSqlConnection": { + "dataSource": "aaa", + "userName": "bbb", + "password": "placeholder", + "encryptConnection": true, + "trustServerCertificate": true, + "authentication": "WindowsAuthentication" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCutoverDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCutoverDatabaseMigration.json new file mode 100644 index 000000000000..9a251da031a8 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmCutoverDatabaseMigration.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "api-version": "2022-01-30-preview", + "parameters": { + "migrationOperationId": "4124fe90-d1b6-4b50-b4d9-46d02381f59a" + } + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigration.json new file mode 100644 index 000000000000..006559951d54 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigration.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigrationExpanded.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigrationExpanded.json new file mode 100644 index 000000000000..dbe0cda57959 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/SqlVmGetDatabaseMigrationExpanded.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlVirtualMachineName": "testvm", + "targetDbName": "db1", + "$expand": "MigrationStatusDetails", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "kind": "SqlVm", + "scope": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm", + "migrationStatus": "InProgress", + "migrationStatusDetails": { + "migrationState": "WaitForFullBackupUploadOperation", + "activeBackupSets": [], + "isFullBackupRestored": false + }, + "startedOn": "0001-01-01T08:00:00Z", + "endedOn": "0001-01-01T08:00:00Z", + "sourceDatabaseName": "sourcename", + "migrationOperationId": "858ba109-5ab7-4fa1-8aea-bea487cacdcd" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm/providers/Microsoft.DataMigration/databaseMigrations/targetdb", + "name": "targetdb", + "type": "Microsoft.DataMigration/dataMigrations" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Cancel.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Cancel.json new file mode 100644 index 000000000000..1ab234f2a13d --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Cancel.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Command.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Command.json new file mode 100644 index 000000000000..e61db404258c --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Command.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview", + "parameters": { + "input": { + "databaseName": "TestDatabase" + }, + "commandType": "Migrate.Sync.Complete.Database" + } + }, + "responses": { + "200": { + "body": { + "input": { + "databaseName": "TestDatabase" + }, + "commandType": "Migrate.Sync.Complete.Database", + "state": "Accepted" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_CreateOrUpdate.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_CreateOrUpdate.json new file mode 100644 index 000000000000..ce365cbef11e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_CreateOrUpdate.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "taskType": "ConnectToTarget.SqlDb", + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser", + "password": "testpassword" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + }, + "201": { + "body": { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Delete.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Delete.json new file mode 100644 index 000000000000..213fd7130c5e --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Get.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Get.json new file mode 100644 index 000000000000..1ab234f2a13d --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Get.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_List.json new file mode 100644 index 000000000000..b8be77786818 --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_List.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Update.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Update.json new file mode 100644 index 000000000000..d3d43cc6f33b --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Tasks_Update.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "subscriptionId": "fc04246f-04c5-437e-ac5e-206a19e7193f", + "groupName": "DmsSdkRg", + "serviceName": "DmsSdkService", + "projectName": "DmsSdkProject", + "taskName": "DmsSdkTask", + "api-version": "2022-01-30-preview", + "parameters": { + "properties": { + "taskType": "ConnectToTarget.SqlDb", + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser", + "password": "testpassword" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "input": { + "targetConnectionInfo": { + "type": "SqlConnectionInfo", + "dataSource": "ssma-test-server.database.windows.net", + "authentication": "SqlAuthentication", + "encryptConnection": true, + "trustServerCertificate": true, + "userName": "testuser" + } + }, + "taskType": "ConnectToTarget.SqlDb", + "state": "Queued" + }, + "etag": "0vPYxzfnDaDH9yhOJAnqTyTRpa09Kb7pm+LEukDBbw8=", + "id": "/subscriptions/fc04246f-04c5-437e-ac5e-206a19e7193f/resourceGroups/DmsSdkRg/providers/Microsoft.DataMigration/services/DmsSdkService/projects/DmsSdkProject/tasks/DmsSdkTask", + "name": "DmsSdkTask", + "type": "Microsoft.DataMigration/services/projects/tasks" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/UpdateMigrationService.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/UpdateMigrationService.json new file mode 100644 index 000000000000..27c48e48f40d --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/UpdateMigrationService.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "testrg", + "sqlMigrationServiceName": "testagent", + "api-version": "2022-01-30-preview", + "parameters": { + "tags": { + "mytag": "myval" + } + } + }, + "responses": { + "200": { + "body": { + "properties": {}, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + }, + "201": { + "body": { + "properties": {}, + "location": "northeurope", + "tags": { + "mytag": "myval" + }, + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/sqlMigrationServices/testagent", + "name": "testagent", + "type": "Microsoft.DataMigration/sqlMigrationServices" + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Usages_List.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Usages_List.json new file mode 100644 index 000000000000..c1c1d05d4dda --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/examples/Usages_List.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "90fb80a6-0f71-4761-8f03-921e7396f3c0", + "location": "westus", + "api-version": "2022-01-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "currentValue": 1.0, + "id": "/subscriptions/90fb80a6-0f71-4761-8f03-921e7396f3c0/providers/Microsoft.DataMigration/locations/westus/usages/Services", + "limit": 2.0, + "name": { + "localizedValue": "DMS service instances per region", + "value": "Services" + }, + "unit": "Count" + } + ] + } + } + } +} diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/sqlmigration.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/sqlmigration.json new file mode 100644 index 000000000000..6971b55178eb --- /dev/null +++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2022-03-30-preview/sqlmigration.json @@ -0,0 +1,2037 @@ +{ + "swagger": "2.0", + "info": { + "version": "2022-01-30-preview", + "title": "SqlMigrationManagementClient", + "description": "The SQL Migration management API provides a RESTful set of web APIs that allow users to migrate their SQL Server databases to Azure SQL." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}": { + "get": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Retrieve the specified database migration for a given SQL Managed Instance.", + "operationId": "DatabaseMigrationsSqlMi_Get", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "managedInstanceName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "migrationOperationId", + "in": "query", + "description": "Optional migration operation ID. If this is provided, then details of migration operation for that ID are retrieved. If not provided (default), then details related to most recent or current operation are retrieved.", + "required": false, + "type": "string", + "format": "uuid" + }, + { + "name": "$expand", + "in": "query", + "description": "The child resources to include in the response.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlMi" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - \n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + } + }, + "x-ms-examples": { + "Get Sql MI database Migration without the expand parameter.": { + "$ref": "./examples/SqlMiGetDatabaseMigration.json" + }, + "Get Sql MI database Migration with the expand parameter.": { + "$ref": "./examples/SqlMiGetDatabaseMigrationExpanded.json" + } + } + }, + "put": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Create a new database migration to a given SQL Managed Instance.", + "operationId": "DatabaseMigrationsSqlMi_CreateOrUpdate", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "managedInstanceName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlMi" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully updated the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlMi" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - \n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "201": { + "description": "Successfully created the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlMi" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create or Update Database Migration resource with Minimum parameters.": { + "$ref": "./examples/SqlMiCreateOrUpdateDatabaseMigrationMIN.json" + }, + "Create or Update Database Migration resource with Maximum parameters.": { + "$ref": "./examples/SqlMiCreateOrUpdateDatabaseMigrationMAX.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}/cancel": { + "post": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Stop in-progress database migration to SQL Managed Instance.", + "operationId": "DatabaseMigrationsSqlMi_cancel", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "managedInstanceName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Required migration operation ID for which cancel will be initiated.", + "required": true, + "schema": { + "$ref": "#/definitions/MigrationOperationInput" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully canceled ongoing migration." + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - \n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "202": { + "description": "Accepted cancellation of ongoing migration." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Stop ongoing migration for the database.": { + "$ref": "./examples/SqlMiCancelDatabaseMigration.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}/cutover": { + "post": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Initiate cutover for in-progress online database migration to SQL Managed Instance.", + "operationId": "DatabaseMigrationsSqlMi_cutover", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "managedInstanceName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Required migration operation ID for which cutover will be initiated.", + "required": true, + "schema": { + "$ref": "#/definitions/MigrationOperationInput" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successful cutover for ongoing migration." + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - \n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "202": { + "description": "Accepted cutover request for ongoing migration." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Cutover online migration operation for the database.": { + "$ref": "./examples/SqlMiCutoverDatabaseMigration.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/{sqlVirtualMachineName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}": { + "get": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Retrieve the specified database migration for a given SQL VM.", + "operationId": "DatabaseMigrationsSqlVm_Get", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "sqlVirtualMachineName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "migrationOperationId", + "in": "query", + "description": "Optional migration operation ID. If this is provided, then details of migration operation for that ID are retrieved. If not provided (default), then details related to most recent or current operation are retrieved.", + "required": false, + "type": "string", + "format": "uuid" + }, + { + "name": "$expand", + "in": "query", + "description": "The child resources to include in the response.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlVm" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - {0}\n\n * 400 RequestFailed - Request to the resource '{0}' failed. Error code : '{1}'. HTTP status code : '{2}'. Error message : '{3}'.\n\n * 400 InvalidContainerName - Invalid storage account container name: '{0}'. Container name 'backup' is not supported in SQL Managed Instance.\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 405 SubscriptionNotReady - Subscription is not in Ready state.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + } + }, + "x-ms-examples": { + "Get Sql VM database Migration without the expand parameter.": { + "$ref": "./examples/SqlVmGetDatabaseMigration.json" + }, + "Get Sql VM database Migration with the expand parameter.": { + "$ref": "./examples/SqlVmGetDatabaseMigrationExpanded.json" + } + } + }, + "put": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Create a new database migration to a given SQL VM.", + "operationId": "DatabaseMigrationsSqlVm_CreateOrUpdate", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "sqlVirtualMachineName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlVm" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully updated the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlVm" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - {0}\n\n * 400 RequestFailed - Request to the resource '{0}' failed. Error code : '{1}'. HTTP status code : '{2}'. Error message : '{3}'.\n\n * 400 InvalidContainerName - Invalid storage account container name: '{0}'. Container name 'backup' is not supported in SQL Managed Instance.\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 405 SubscriptionNotReady - Subscription is not in Ready state.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "201": { + "description": "Successfully created the Database Migration resource.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationSqlVm" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create or Update Database Migration resource with Minimum parameters.": { + "$ref": "./examples/SqlVmCreateOrUpdateDatabaseMigrationMIN.json" + }, + "Create or Update Database Migration resource with Maximum parameters.": { + "$ref": "./examples/SqlVmCreateOrUpdateDatabaseMigrationMAX.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/{sqlVirtualMachineName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}/cancel": { + "post": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Stop in-progress database migration to SQL VM.", + "operationId": "DatabaseMigrationsSqlVm_cancel", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "sqlVirtualMachineName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MigrationOperationInput" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully canceled ongoing migration." + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - {0}\n\n * 400 RequestFailed - Request to the resource '{0}' failed. Error code : '{1}'. HTTP status code : '{2}'. Error message : '{3}'.\n\n * 400 InvalidContainerName - Invalid storage account container name: '{0}'. Container name 'backup' is not supported in SQL Managed Instance.\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 405 SubscriptionNotReady - Subscription is not in Ready state.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "202": { + "description": "Accepted cancellation of ongoing migration." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Stop ongoing migration for the database.": { + "$ref": "./examples/SqlVmCancelDatabaseMigration.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/{sqlVirtualMachineName}/providers/Microsoft.DataMigration/databaseMigrations/{targetDbName}/cutover": { + "post": { + "tags": [ + "DatabaseMigrations" + ], + "description": "Initiate cutover for in-progress online database migration to SQL VM.", + "operationId": "DatabaseMigrationsSqlVm_cutover", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "name": "sqlVirtualMachineName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/TargetDbNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MigrationOperationInput" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successful cutover for ongoing migration." + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 TestConnectionFailed - Failed to test connections using provided Integration Runtime. Error details: '{0}'\n\n * 400 CutoverNotAllowedMigrationCompleteError - Cutover is not allowed as migration for database '{0}' is already complete\n\n * 400 IntegrationRuntimeIsNotOnline - Integration Runtime '{0}' is not online for resource group '{1}' subscription '{2}'\n\n * 400 InvalidStorageAccount - Invalid storage account: '{0}'. Only BlockBlobStorage kind is supported for premium tier.\n\n * 400 InvalidLocation - Invalid Location: '{0}'. Location should match selected Azure target location '{1}'.\n\n * 400 MigrationNotReadyForCancelError - Database '{0}' is not ready for Cancel operation\n\n * 400 RestoreJobCompletedDuringCancel - Migration cannot be canceled as Restore Job was completed during the cancel process. Target server:'{0}', Target database: '{1}'.\n\n * 400 SqlVmGenericUserError - {0}\n\n * 400 RequestFailed - Request to the resource '{0}' failed. Error code : '{1}'. HTTP status code : '{2}'. Error message : '{3}'.\n\n * 400 InvalidContainerName - Invalid storage account container name: '{0}'. Container name 'backup' is not supported in SQL Managed Instance.\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 MigrationNotReadyForCutoverError - Database '{0}' is not ready for Cutover operation\n\n * 400 CutoverFailedOrCancelled - Cutover failed or cancelled for database '{0}'. Error details: '{1}'\n\n * 400 MigrationCancelFailed - Cancel could not be performed on operation '{0}' for database '{1}'. This can happen if the migration with MigrationId '{0}' is already completed or canceled. Please check the migration for details.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 405 SubscriptionNotReady - Subscription is not in Ready state.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider.\n\n * 500 CancelVmRestoreJobFailed - Failed to cancel VM restore job. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 AdfCleanupFailureAfterMigration - Failed to clean up ADF resources after migration has completed successfully. Target server:'{0}', Target database: '{1}', Error details: '{2}'.\n\n * 500 CancelMigrationFailed - Failed to cancel migration. Target server:'{0}', Target database: '{1}', Migration Id: '{2}', Error details: '{3}'." + }, + "202": { + "description": "Accepted cutover request for ongoing migration." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Cutover online migration operation for the database.": { + "$ref": "./examples/SqlVmCutoverDatabaseMigration.json" + } + } + } + }, + "/providers/Microsoft.DataMigration/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available SQL Migration REST API operations.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved operations.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "*** Error Responses: ***" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Lists all of the available SQL Rest API operations.": { + "$ref": "./examples/ListOperation.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}": { + "get": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve the Database Migration Service", + "operationId": "SqlMigrationServices_Get", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the Migration Service.", + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-examples": { + "Get Migration Service.": { + "$ref": "./examples/GetMigrationService.json" + } + } + }, + "put": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Create or Update Database Migration Service.", + "operationId": "SqlMigrationServices_CreateOrUpdate", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully updated the SQL migration Service.", + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + }, + "201": { + "description": "Successfully created the SQL migration Service.", + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create or Update SQL Migration Service with minimum parameters.": { + "$ref": "./examples/CreateOrUpdateMigrationServiceMIN.json" + }, + "Create or Update SQL Migration Service with maximum parameters.": { + "$ref": "./examples/CreateOrUpdateMigrationServiceMAX.json" + } + } + }, + "delete": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Delete Database Migration Service.", + "operationId": "SqlMigrationServices_Delete", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully deleted the SQL migration Service." + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + }, + "202": { + "description": "Deleting the SQL migration Service." + }, + "204": { + "description": "The specified SQL migration Service does not exist." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Delete SQL Migration Service.": { + "$ref": "./examples/DeleteMigrationService.json" + } + } + }, + "patch": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Update Database Migration Service.", + "operationId": "SqlMigrationServices_Update", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/SqlMigrationServiceUpdate" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully updated the SQL migration Service.", + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + }, + "201": { + "description": "Successfully created the SQL migration Service.", + "schema": { + "$ref": "#/definitions/SqlMigrationService" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Update SQL Migration Service.": { + "$ref": "./examples/UpdateMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices": { + "get": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve all SQL migration services in the resource group.", + "operationId": "SqlMigrationServices_ListByResourceGroup", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the Migration SErvices in the resource group.", + "schema": { + "$ref": "#/definitions/SqlMigrationListResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Get Migration Services in the Resource Group.": { + "$ref": "./examples/ListByResourceGroupMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}/listAuthKeys": { + "post": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve the List of Authentication Keys for Self Hosted Integration Runtime.", + "operationId": "SqlMigrationServices_listAuthKeys", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully return of List Authentication Keys.", + "schema": { + "$ref": "#/definitions/AuthenticationKeys" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-examples": { + "Retrieve the List of Authentication Keys.": { + "$ref": "./examples/ListAuthKeysMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}/regenerateAuthKeys": { + "post": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Regenerate a new set of Authentication Keys for Self Hosted Integration Runtime.", + "operationId": "SqlMigrationServices_regenerateAuthKeys", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/RegenAuthKeys" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully regenerate of Authentication Keys.", + "schema": { + "$ref": "#/definitions/RegenAuthKeys" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-examples": { + "Regenerate the of Authentication Keys.": { + "$ref": "./examples/RegenAuthKeysMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}/deleteNode": { + "post": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Delete the integration runtime node.", + "operationId": "SqlMigrationServices_deleteNode", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "Details of SqlMigrationService resource.", + "required": true, + "schema": { + "$ref": "#/definitions/deleteNode" + } + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully delete the integration runtime node.", + "schema": { + "$ref": "#/definitions/deleteNode" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-examples": { + "Delete the integration runtime node.": { + "$ref": "./examples/DeleteIntegrationRuntimeNode.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}/listMigrations": { + "get": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve the List of database migrations attached to the service.", + "operationId": "SqlMigrationServices_listMigrations", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully return of migrations attached to the service.", + "schema": { + "$ref": "#/definitions/DatabaseMigrationListResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List database migrations attached to the service.": { + "$ref": "./examples/ListMigrationsByMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/{sqlMigrationServiceName}/listMonitoringData": { + "post": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve the registered Integration Runtime nodes and their monitoring data for a given Database Migration Service.", + "operationId": "SqlMigrationServices_listMonitoringData", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/SqlMigrationServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the monitoring data.", + "schema": { + "$ref": "#/definitions/IntegrationRuntimeMonitoringData" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-examples": { + "Retrieve the Monitoring Data.": { + "$ref": "./examples/GetMonitorDataMigrationService.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/sqlMigrationServices": { + "get": { + "tags": [ + "SqlMigrationServices" + ], + "description": "Retrieve all SQL migration services in the subscriptions.", + "operationId": "SqlMigrationServices_ListBySubscription", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the Migration Services in the Subscription.", + "schema": { + "$ref": "#/definitions/SqlMigrationListResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was provided for parameter '{0}'.\n\n * 400 GenericUser - User Failure when calling other Resource Provider.\n\n * 400 OperationIdNotFound - Operation ID '{0}' not found.\n\n * 400 OperationTypeNotFound - Operation Type '{0}' not found.\n\n * 400 InvalidArgument - Invalid argument '{0}'.\n\n * 400 RegenerateAuthenticationKeyNameInvalid - Key name '{0}' is invalid. Valid key names are authKey1 and authKey2.\n\n * 400 DeleteServiceNotAllowed - One or more migrations attached to the migration service '{0}' are currently running. To delete the migration service, please wait until all migrations have completed or cancel the migrations manually and retry deleting the service. Running migrations are: '{1}'\n\n * 400 IntegrationRuntimeIsNotSelfHosted - Integration Runtime is not self-hosted for subscription '{0}' resource group '{1}' and name '{2}'\n\n * 400 SerializationError - There was an error while processing response from RP Service : '{0}'\n\n * 400 ServiceNameInvalid - Service name '{0}' is not valid. Please refer https://aka.ms/dmsv2naming for naming rules.\n\n * 403 AccessDenied - Access denied.\n\n * 404 ResourceNotFound - The requested resource was not found.\n\n * 404 SubscriptionDoesNotExist - Subscription id does not exist.\n\n * 404 ResourceDoesNotExist - Resource does not exist.\n\n * 409 OperationInProgress - Operation in progress on resource already.\n\n * 409 OperationCanceled - Operation Cancelled.\n\n * 409 ResourceAlreadyExists - Resource already exists.\n\n * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress\n\n * 500 UnExpectedErrorOccurred - Unexpected error occurred.\n\n * 500 OperationTimeout - Operation timed out.\n\n * 500 GenericSystem - System Failure when calling other Resource Provider." + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Get Services in the Subscriptions.": { + "$ref": "./examples/ListBySubscriptionMigrationService.json" + } + } + } + } + }, + "definitions": { + "DatabaseMigrationProperties": { + "required": [ + "kind" + ], + "description": "Database Migration Resource properties.", + "type": "object", + "properties": { + "kind": { + "enum": [ + "SqlMi", + "SqlVm" + ], + "type": "string", + "x-ms-enum": { + "name": "ResourceType", + "modelAsString": true + } + }, + "scope": { + "description": "Resource Id of the target resource (SQL VM or SQL Managed Instance).", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningState": { + "description": "Provisioning State of migration. ProvisioningState as Succeeded implies that validations have been performed and migration has started.", + "type": "string", + "readOnly": true + }, + "migrationStatus": { + "description": "Migration status.", + "type": "string", + "readOnly": true + }, + "startedOn": { + "format": "date-time", + "description": "Database migration start time.", + "type": "string", + "readOnly": true + }, + "endedOn": { + "format": "date-time", + "description": "Database migration end time.", + "type": "string", + "readOnly": true + }, + "sourceSqlConnection": { + "$ref": "#/definitions/SqlConnectionInformation", + "description": "Source SQL Server connection details." + }, + "sourceDatabaseName": { + "description": "Name of the source database.", + "type": "string" + }, + "migrationService": { + "description": "Resource Id of the Migration Service.", + "type": "string" + }, + "migrationOperationId": { + "description": "ID tracking current migration operation.", + "type": "string" + }, + "migrationFailureError": { + "$ref": "#/definitions/ErrorInfo", + "description": "Error details in case of migration failure.", + "readOnly": true + } + }, + "discriminator": "kind" + }, + "DatabaseMigrationPropertiesSqlMi": { + "x-ms-discriminator-value": "SqlMi", + "allOf": [ + { + "$ref": "#/definitions/DatabaseMigrationProperties" + } + ], + "description": "Database Migration Resource properties for SQL Managed Instance.", + "type": "object", + "properties": { + "migrationStatusDetails": { + "$ref": "#/definitions/MigrationStatusDetails", + "description": "Detailed migration status. Not included by default.", + "readOnly": true + }, + "targetDatabaseCollation": { + "description": "Database collation to be used for the target database.", + "type": "string" + }, + "provisioningError": { + "description": "Error message for migration provisioning failure, if any.", + "type": "string" + }, + "backupConfiguration": { + "$ref": "#/definitions/BackupConfiguration", + "description": "Backup configuration info." + }, + "offlineConfiguration": { + "$ref": "#/definitions/OfflineConfiguration", + "description": "Offline configuration." + } + } + }, + "DatabaseMigrationPropertiesSqlVm": { + "x-ms-discriminator-value": "SqlVm", + "allOf": [ + { + "$ref": "#/definitions/DatabaseMigrationProperties" + } + ], + "description": "Database Migration Resource properties for SQL Virtual Machine.", + "type": "object", + "properties": { + "migrationStatusDetails": { + "$ref": "#/definitions/MigrationStatusDetails", + "description": "Detailed migration status. Not included by default.", + "readOnly": true + }, + "targetDatabaseCollation": { + "description": "Database collation to be used for the target database.", + "type": "string" + }, + "provisioningError": { + "description": "Error message for migration provisioning failure, if any.", + "type": "string" + }, + "backupConfiguration": { + "$ref": "#/definitions/BackupConfiguration", + "description": "Backup configuration info." + }, + "offlineConfiguration": { + "$ref": "#/definitions/OfflineConfiguration", + "description": "Offline configuration." + } + } + }, + "ProxyResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + } + } + }, + "MigrationStatusDetails": { + "description": "Detailed status of current migration.", + "type": "object", + "properties": { + "migrationState": { + "description": "Current State of Migration.", + "type": "string", + "readOnly": true + }, + "fullBackupSetInfo": { + "$ref": "#/definitions/SqlBackupSetInfo", + "description": "Details of full backup set.", + "readOnly": true + }, + "lastRestoredBackupSetInfo": { + "$ref": "#/definitions/SqlBackupSetInfo", + "description": "Last applied backup set information.", + "readOnly": true + }, + "activeBackupSets": { + "description": "Backup sets that are currently active.", + "type": "array", + "items": { + "$ref": "#/definitions/SqlBackupSetInfo" + }, + "readOnly": true + }, + "invalidFiles": { + "description": "Files that are not valid backup files.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "blobContainerName": { + "description": "Name of blob container.", + "type": "string", + "readOnly": true + }, + "isFullBackupRestored": { + "description": "Whether full backup has been applied to the target database or not.", + "type": "boolean", + "readOnly": true + }, + "restoreBlockingReason": { + "description": "Restore blocking reason, if any", + "type": "string", + "readOnly": true + }, + "completeRestoreErrorMessage": { + "description": "Complete restore error message, if any", + "type": "string", + "readOnly": true + }, + "fileUploadBlockingErrors": { + "description": "File upload blocking errors, if any.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "currentRestoringFilename": { + "description": "File name that is currently being restored.", + "type": "string", + "readOnly": true + }, + "lastRestoredFilename": { + "description": "Last restored file name.", + "type": "string", + "readOnly": true + }, + "pendingLogBackupsCount": { + "format": "int32", + "description": "Total pending log backups.", + "type": "integer", + "readOnly": true + } + } + }, + "SqlConnectionInformation": { + "description": "Source SQL Connection", + "type": "object", + "properties": { + "dataSource": { + "description": "Data source.", + "type": "string" + }, + "authentication": { + "description": "Authentication type.", + "type": "string" + }, + "userName": { + "description": "User name to connect to source SQL.", + "type": "string" + }, + "password": { + "description": "Password to connect to source SQL.", + "type": "string", + "x-ms-secret": true + }, + "encryptConnection": { + "description": "Whether to encrypt connection or not.", + "type": "boolean" + }, + "trustServerCertificate": { + "description": "Whether to trust server certificate or not.", + "type": "boolean" + } + } + }, + "BackupConfiguration": { + "description": "Backup Configuration", + "type": "object", + "properties": { + "sourceLocation": { + "$ref": "#/definitions/SourceLocation", + "description": "Source location of backups." + }, + "targetLocation": { + "$ref": "#/definitions/TargetLocation", + "description": "Target location for copying backups." + } + } + }, + "OfflineConfiguration": { + "description": "Offline configuration", + "type": "object", + "properties": { + "offline": { + "description": "Offline migration", + "type": "boolean" + }, + "lastBackupName": { + "description": "Last backup name for offline migration. This is optional for migrations from file share. If it is not provided, then the service will determine the last backup file name based on latest backup files present in file share.", + "type": "string" + } + } + }, + "ErrorInfo": { + "description": "Error details", + "type": "object", + "properties": { + "code": { + "description": "Error code.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "Error message.", + "type": "string", + "readOnly": true + } + } + }, + "SqlBackupSetInfo": { + "description": "Information of backup set", + "type": "object", + "properties": { + "backupSetId": { + "format": "uuid", + "description": "Backup set id.", + "type": "string", + "readOnly": true + }, + "firstLSN": { + "description": "First LSN of the backup set.", + "type": "string", + "readOnly": true + }, + "lastLSN": { + "description": "Last LSN of the backup set.", + "type": "string", + "readOnly": true + }, + "backupType": { + "description": "Backup type.", + "type": "string", + "readOnly": true + }, + "listOfBackupFiles": { + "description": "List of files in the backup set.", + "type": "array", + "items": { + "$ref": "#/definitions/SqlBackupFileInfo" + }, + "readOnly": true + }, + "backupStartDate": { + "format": "date-time", + "description": "Backup start date.", + "type": "string", + "readOnly": true + }, + "backupFinishDate": { + "format": "date-time", + "description": "Backup end time.", + "type": "string", + "readOnly": true + }, + "isBackupRestored": { + "description": "Whether this backup set has been restored or not.", + "type": "boolean", + "readOnly": true + }, + "hasBackupChecksums": { + "description": "Has Backup Checksums", + "type": "boolean", + "readOnly": true + }, + "familyCount": { + "format": "int32", + "description": "Media family count", + "type": "integer", + "readOnly": true + }, + "ignoreReasons": { + "description": "The reasons why the backup set is ignored", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "SourceLocation": { + "description": "Source Location details of backups.", + "type": "object", + "properties": { + "fileShare": { + "$ref": "#/definitions/SqlFileShare", + "description": "Source File share." + }, + "azureBlob": { + "$ref": "#/definitions/AzureBlob", + "description": "Source Azure Blob." + } + } + }, + "TargetLocation": { + "description": "Target Location details for optional copy of backups", + "type": "object", + "properties": { + "storageAccountResourceId": { + "description": "Resource Id of the storage account copying backups.", + "type": "string" + }, + "accountKey": { + "description": "Storage Account Key.", + "type": "string" + } + } + }, + "SqlBackupFileInfo": { + "description": "Information of backup file", + "type": "object", + "properties": { + "fileName": { + "description": "File name.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Status of the file. (Initial, Uploading, Uploaded, Restoring, Restored or Skipped)", + "type": "string", + "readOnly": true + }, + "totalSize": { + "format": "int64", + "description": "File size in bytes", + "type": "integer", + "readOnly": true + }, + "dataRead": { + "format": "int64", + "description": "Bytes read", + "type": "integer", + "readOnly": true + }, + "dataWritten": { + "format": "int64", + "description": "Bytes written", + "type": "integer", + "readOnly": true + }, + "copyThroughput": { + "format": "double", + "description": "Copy throughput in KBps", + "type": "number", + "readOnly": true + }, + "copyDuration": { + "format": "int32", + "description": "Copy Duration in seconds", + "type": "integer", + "readOnly": true + }, + "familySequenceNumber": { + "format": "int32", + "description": "Media family sequence number", + "type": "integer", + "readOnly": true + } + } + }, + "SqlFileShare": { + "description": "File share", + "type": "object", + "properties": { + "path": { + "description": "Location as SMB share or local drive where backups are placed.", + "type": "string" + }, + "username": { + "description": "Username to access the file share location for backups.", + "type": "string" + }, + "password": { + "description": "Password for username to access file share location.", + "type": "string", + "x-ms-secret": true, + "x-ms-mutability": [ + "create", + "update" + ] + } + } + }, + "AzureBlob": { + "description": "Azure Blob Details", + "type": "object", + "properties": { + "storageAccountResourceId": { + "description": "Resource Id of the storage account where backups are stored.", + "type": "string" + }, + "accountKey": { + "description": "Storage Account Key.", + "type": "string", + "x-ms-secret": true + }, + "blobContainerName": { + "description": "Blob container name where backups are stored.", + "type": "string" + } + } + }, + "DatabaseMigration": { + "description": "Database Migration Resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProxyResource" + } + ], + "properties": { + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/DatabaseMigrationProperties", + "x-ms-client-flatten": false + } + }, + "x-ms-azure-resource": true + }, + "DatabaseMigrationSqlMi": { + "description": "Database Migration Resource for SQL Managed Instance.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProxyResource" + } + ], + "properties": { + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/DatabaseMigrationPropertiesSqlMi", + "x-ms-client-flatten": false + } + }, + "x-ms-azure-resource": true + }, + "DatabaseMigrationSqlVm": { + "description": "Database Migration Resource for SQL Virtual Machine.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProxyResource" + } + ], + "properties": { + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/DatabaseMigrationPropertiesSqlVm", + "x-ms-client-flatten": false + } + }, + "x-ms-azure-resource": true + }, + "DatabaseMigrationListResult": { + "description": "A list of Database Migrations.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DatabaseMigration" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "readOnly": true + } + } + }, + "MigrationOperationInput": { + "description": "Migration Operation Input", + "type": "object", + "properties": { + "migrationOperationId": { + "format": "uuid", + "description": "ID tracking migration operation.", + "type": "string" + } + } + }, + "OperationListResult": { + "description": "Result of the request to list SQL operations.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/OperationsDefinition" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "readOnly": true + } + } + }, + "OperationsDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "readOnly": true + }, + "isDataAction": { + "description": "Indicates whether the operation is a data action", + "type": "boolean" + }, + "display": { + "$ref": "#/definitions/OperationsDisplayDefinition", + "readOnly": true + }, + "origin": { + "enum": [ + "user", + "system" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "OperationOrigin", + "modelAsString": true + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "readOnly": true, + "x-ms-client-flatten": false + } + } + }, + "OperationsDisplayDefinition": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "readOnly": true + }, + "resource": { + "type": "string", + "readOnly": true + }, + "operation": { + "type": "string", + "readOnly": true + }, + "description": { + "type": "string", + "readOnly": true + } + } + }, + "SystemData": { + "type": "object", + "readOnly": true, + "properties": { + "createdBy": { + "type": "string" + }, + "createdByType": { + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "type": "string", + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "lastModifiedBy": { + "type": "string" + }, + "lastModifiedByType": { + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "type": "string", + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "format": "date-time", + "type": "string" + } + } + }, + "SqlMigrationServiceProperties": { + "description": "The SQL Migration Service properties.", + "type": "object", + "properties": { + "provisioningState": { + "description": "Provisioning state to track the async operation status.", + "type": "string", + "readOnly": true + }, + "integrationRuntimeState": { + "description": "Current state of the Integration runtime.", + "type": "string", + "readOnly": true + } + } + }, + "TrackedResource": { + "type": "object", + "properties": { + "location": { + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "SqlMigrationService": { + "description": "A SQL Migration Service.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "properties": { + "systemData": { + "$ref": "#/definitions/SystemData", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/SqlMigrationServiceProperties", + "x-ms-client-flatten": true + } + }, + "x-ms-azure-resource": true + }, + "SqlMigrationServiceUpdate": { + "description": "An update to a SQL Migration Service.", + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "SqlMigrationListResult": { + "description": "A list of SQL Migration Service.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SqlMigrationService" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "readOnly": true + } + } + }, + "AuthenticationKeys": { + "description": "An authentication key.", + "type": "object", + "properties": { + "authKey1": { + "description": "The first authentication key.", + "type": "string", + "x-ms-secret": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "authKey2": { + "description": "The second authentication key.", + "type": "string", + "x-ms-secret": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "RegenAuthKeys": { + "description": "An authentication key to regenerate.", + "type": "object", + "properties": { + "keyName": { + "description": "The name of authentication key to generate.", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "authKey1": { + "description": "The first authentication key.", + "type": "string", + "x-ms-secret": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "authKey2": { + "description": "The second authentication key.", + "type": "string", + "x-ms-secret": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "deleteNode": { + "description": "Details of node to be deleted.", + "type": "object", + "properties": { + "nodeName": { + "description": "The name of node to delete.", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "integrationRuntimeName": { + "description": "The name of integration runtime.", + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "IntegrationRuntimeMonitoringData": { + "description": "Integration Runtime Monitoring Data.", + "type": "object", + "properties": { + "name": { + "description": "The name of Integration Runtime.", + "type": "string", + "readOnly": true + }, + "nodes": { + "description": "Integration Runtime node monitoring data.", + "type": "array", + "items": { + "$ref": "#/definitions/NodeMonitoringData" + }, + "readOnly": true + } + } + }, + "NodeMonitoringData": { + "type": "object", + "properties": { + "additionalProperties": { + "description": " Unmatched properties from the message are deserialized in this collection.", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "readOnly": true + }, + "nodeName": { + "description": "Name of the integration runtime node.", + "type": "string", + "readOnly": true + }, + "availableMemoryInMB": { + "format": "int32", + "description": "Available memory (MB) on the integration runtime node.", + "type": "integer", + "readOnly": true + }, + "cpuUtilization": { + "format": "int32", + "description": "CPU percentage on the integration runtime node.", + "type": "integer", + "readOnly": true + }, + "concurrentJobsLimit": { + "format": "int32", + "description": "Maximum concurrent jobs on the integration runtime node.", + "type": "integer", + "readOnly": true + }, + "concurrentJobsRunning": { + "format": "int32", + "description": "The number of jobs currently running on the integration runtime node.", + "type": "integer", + "readOnly": true + }, + "maxConcurrentJobs": { + "format": "int32", + "description": "The maximum concurrent jobs in this integration runtime.", + "type": "integer", + "readOnly": true + }, + "sentBytes": { + "format": "double", + "description": "Sent bytes on the integration runtime node.", + "type": "number", + "readOnly": true + }, + "receivedBytes": { + "format": "double", + "description": "Received bytes on the integration runtime node.", + "type": "number", + "readOnly": true + } + } + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID that identifies an Azure subscription.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "API version to use for the request.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + }, + "ResourceGroupParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "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" + }, + "SqlMigrationServiceNameParameter": { + "name": "sqlMigrationServiceName", + "in": "path", + "description": "Name of the SQL Migration Service.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "TargetDbNameParameter": { + "name": "targetDbName", + "in": "path", + "description": "The name of the target database.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LoginNameParameter": { + "name": "loginName", + "in": "path", + "description": "The Login Name for migration.", + "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" + } + } + } +}