@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Azure Data Migration Service Resource Provider
@base https://management.azure.com
@version 2018-03-15-preview
@auth OAuth2
@endpoints 26
@hint download_for_search
@toc subscriptions(25), providers(1)

@group subscriptions
@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/skus
@desc Get supported SKUs
@required {subscriptionId: any # Identifier of the subscription, api-version: any # Version of the API}
@returns(200) Got SKUs

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}
@desc Create or update DMS Instance
@required {parameters: any # Information about the service}
@returns(200) Service updated
@returns(201) Service created (use provisioningState)
@returns(202) Update accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}
@desc Get DMS Service Instance
@returns(200) A service instance resource

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}
@desc Delete DMS Service Instance
@optional {deleteRunningTasks: any # Delete the resource even if it contains running tasks}
@returns(200) Service resource deleted
@returns(202) Deletion accepted
@returns(204) Service not found

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}
@desc Create or update DMS Service Instance
@required {parameters: any # Information about the service}
@returns(200) Service resource updated
@returns(202) Update accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/checkStatus
@desc Check service health status
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, api-version: any # Version of the API}
@returns(200) Health checked

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/start
@desc Start service
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, api-version: any # Version of the API}
@returns(200) The service has already been started.
@returns(202) The request to start service is accepted.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/stop
@desc Stop service
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, api-version: any # Version of the API}
@returns(200) The service has already been stopped.
@returns(202) The request to stop service is accepted.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/skus
@desc Get compatible SKUs
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, api-version: any # Version of the API}
@returns(200) Got SKUs

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks
@desc Get tasks in a service
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, projectName: any # Name of the project, api-version: any # Version of the API}
@optional {taskType: any # Filter tasks by task type}
@returns(200) Got tasks

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/checkNameAvailability
@desc Check nested resource name validity and availability
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, api-version: any # Version of the API, serviceName: any # Name of the service, parameters: any # Requested name to validate}
@returns(200) Name checked

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services
@desc Get services in resource group
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, api-version: any # Version of the API}
@returns(200) Got services

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/services
@desc Get services in subscription
@required {subscriptionId: any # Identifier of the subscription, api-version: any # Version of the API}
@returns(200) Got services

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}
@desc Create or update task
@required {parameters: any # Information about the task}
@returns(200) Task updated
@returns(201) Task created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}
@desc Get task information
@optional {$expand: any # Expand the response}
@returns(200) A task resource

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}
@desc Delete task
@optional {deleteRunningTasks: any # Delete the resource even if it contains running tasks}
@returns(200) Task resource deleted
@returns(204) Not found

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}
@desc Create or update task
@required {parameters: any # Information about the task}
@returns(200) Task resource updated

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}/tasks/{taskName}/cancel
@desc Cancel a task
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, projectName: any # Name of the project, taskName: any # Name of the Task, api-version: any # Version of the API}
@returns(200) Task canceled

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects
@desc Get projects in a service
@required {subscriptionId: any # Identifier of the subscription, groupName: any # Name of the resource group, serviceName: any # Name of the service, api-version: any # Version of the API}
@returns(200) List of projects

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}
@desc Create or update project
@required {parameters: any # Information about the project}
@returns(200) Project updated
@returns(201) Project created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}
@desc Get project information
@returns(200) A project resource

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}
@desc Delete project
@optional {deleteRunningTasks: any # Delete the resource even if it contains running tasks}
@returns(200) Project resource deleted
@returns(204) Not found

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}
@desc Update project
@required {parameters: any # Information about the project}
@returns(200) Project resource updated

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/locations/{location}/checkNameAvailability
@desc Check name validity and availability
@required {subscriptionId: any # Identifier of the subscription, api-version: any # Version of the API, location: any # The Azure region of the operation, parameters: any # Requested name to validate}
@returns(200) Name checked

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.DataMigration/locations/{location}/usages
@desc Get resource quotas and usage information
@required {subscriptionId: any # Identifier of the subscription, location: any # The Azure region of the operation, api-version: any # Version of the API}
@returns(200) Quotas returned

@endgroup

@group providers
@endpoint GET /providers/Microsoft.DataMigration/operations
@desc Get available resource provider actions (operations)
@required {api-version: any # Version of the API}
@returns(200) Got action list

@endgroup

@end
