Skip to content

Commit

Permalink
Add data transfer job api (#2)
Browse files Browse the repository at this point in the history
* Adds base for updating Microsoft.DocumentDB from version preview/2021-07-01-preview to version 2021-10-15-preview

* Updates readme

* Updates API version in new specs and examples

* Add DataTransfer job apis

* Fix api version

* Rename connection to endpointUrl

* Rename connection to endpointUrl

* Add dataTransferService in readme.md

* Fix keys

* Fix checks

* Add worker count

* Fix worker count
  • Loading branch information
niteshvijay1995 authored Oct 19, 2021
1 parent 880e31e commit 53e213e
Show file tree
Hide file tree
Showing 5 changed files with 480 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,363 @@
{
"swagger": "2.0",
"info": {
"title": "Cosmos DB",
"description": "Azure Cosmos DB Database Data Transfer Service Resource Provider REST API",
"version": "2021-10-15-preview"
},
"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}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs/{jobName}": {
"put": {
"operationId": "DataTransferJobs_Create",
"description": "Creates a Data Transfer Job.",
"x-ms-examples": {
"CosmosDBDataTransferJobCreate": {
"$ref": "./examples/data-transfer-service/CosmosDBDataTransferJobCreate.json"
}
},
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "./cosmos-db.json#/parameters/accountNameParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
},
{
"$ref": "#/parameters/JobNameParameter"
},
{
"name": "jobCreateParameters",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/CreateJobRequest"
}
}
],
"responses": {
"201": {
"description": "Successful CreateJob response",
"schema": {
"$ref": "#/definitions/DataTransferJobGetResults"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "cosmos-db.json#/definitions/CloudError"
}
}
}
},
"get": {
"operationId": "DataTransferJobs_Get",
"description": "Get a Data Transfer Job.",
"x-ms-examples": {
"CosmosDBDataTransferJobGet": {
"$ref": "./examples/data-transfer-service/CosmosDBDataTransferJobGet.json"
}
},
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "./cosmos-db.json#/parameters/accountNameParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
},
{
"$ref": "#/parameters/JobNameParameter"
}
],
"responses": {
"200": {
"description": "The Data Transfer Job Properties retrieved successfully",
"schema": {
"$ref": "#/definitions/DataTransferJobGetResults"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "cosmos-db.json#/definitions/CloudError"
}
}
}
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs": {
"get": {
"operationId": "DataTransferJobs_ListByDatabaseAccount",
"description": "Get a list of Data Transfer jobs.",
"x-ms-examples": {
"CosmosDBDataTransferJobFeed": {
"$ref": "./examples/data-transfer-service/CosmosDBDataTransferJobFeed.json"
}
},
"x-ms-pageable": {
"nextLinkName": "nextLink"
},
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "./cosmos-db.json#/parameters/accountNameParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
"description": "All Data Transfer Jobs retrieved successfully",
"schema": {
"$ref": "#/definitions/DataTransferJobFeedResults"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "cosmos-db.json#/definitions/CloudError"
}
}
}
}
}
},
"definitions": {
"DataTransferDataSourceSink": {
"type": "object",
"description": "Base class for all DataTransfer source/sink",
"properties": {
"component": {
"type": "string",
"enum": [
"CosmosDBCassandra",
"AzureStorage"
],
"x-ms-enum": {
"name": "DataTransferComponent",
"modelAsString": true
},
"default": "CosmosDBCassandra"
}
},
"discriminator": "component",
"required": [
"component"
]
},
"CosmosCassandraDataTransferDataSourceSink": {
"type": "object",
"description": "A CosmosDB Cassandra API data source/sink",
"properties": {
"keyspaceName": {
"type": "string"
},
"tableName": {
"type": "string"
}
},
"allOf": [
{
"$ref": "#/definitions/DataTransferDataSourceSink"
}
],
"required": [
"keyspaceName",
"tableName"
],
"x-ms-discriminator-value": "CosmosDBCassandra"
},
"AzureBlobDataTransferDataSourceSink": {
"type": "object",
"description": "An Azure Blob Storage data source/sink",
"allOf": [
{
"$ref": "#/definitions/DataTransferDataSourceSink"
}
],
"properties": {
"containerName": {
"type": "string"
},
"endpointUrl": {
"type": "string"
}
},
"required": [
"containerName"
],
"x-ms-discriminator-value": "AzureBlobStorage"
},
"DataTransferCreateJobProperties": {
"description": "Properties to create Data Transfer Job.",
"type": "object",
"properties": {
"source": {
"$ref": "#/definitions/DataTransferDataSourceSink",
"description": "Source DataStore details"
},
"destination": {
"$ref": "#/definitions/DataTransferDataSourceSink",
"description": "Destination DataStore details"
},
"workerCount": {
"description": "Worker count",
"type": "integer",
"minimum": 0,
"format": "int32"
}
},
"required": [
"source",
"destination"
]
},
"DataTransferJobProperties": {
"description": "The properties of a DataTransfer Job",
"type": "object",
"properties": {
"jobName": {
"readOnly": true,
"type": "string",
"description": "Job Name"
},
"source": {
"$ref": "#/definitions/DataTransferDataSourceSink",
"description": "Source DataStore details"
},
"destination": {
"$ref": "#/definitions/DataTransferDataSourceSink",
"description": "Destination DataStore details"
},
"status": {
"readOnly": true,
"type": "string",
"description": "Job Status"
},
"percentageComplete": {
"readOnly": true,
"type": "number",
"description": "Percentage of completion."
},
"lastUpdatedUtcTime": {
"readOnly": true,
"type": "string",
"format": "date-time",
"description": "Last Updated Time (ISO-8601 format)."
},
"workerCount": {
"description": "Worker count",
"type": "integer",
"minimum": 0,
"format": "int32"
},
"error": {
"$ref": "./cosmos-db.json#/definitions/ErrorResponse",
"description": "Error response for Faulted job"
}
}
},
"CreateJobRequest": {
"description": "Parameters to create Data Transfer Job",
"type": "object",
"properties": {
"properties": {
"$ref": "#/definitions/DataTransferCreateJobProperties",
"description": "Data Transfer Create Job Properties"
}
},
"required": [
"properties"
]
},
"DataTransferJobGetResults": {
"description": "A Cosmos DB Data Transfer Job",
"type": "object",
"properties": {
"properties": {
"x-ms-client-flatten": true,
"type": "object",
"$ref": "#/definitions/DataTransferJobProperties"
}
},
"allOf": [
{
"$ref": "./cosmos-db.json#/definitions/ARMProxyResource"
}
]
},
"DataTransferJobFeedResults": {
"description": "The List operation response, that contains the Data Transfer jobs and their properties.",
"type": "object",
"properties": {
"value": {
"readOnly": true,
"type": "array",
"items": {
"$ref": "#/definitions/DataTransferJobGetResults"
},
"description": "List of Data Transfer jobs and their properties."
},
"nextLink": {
"type": "string",
"description": "URL to get the next set of Data Transfer job list results if there are any."
}
}
}
},
"parameters": {
"JobNameParameter": {
"name": "jobName",
"in": "path",
"required": true,
"type": "string",
"x-ms-parameter-location": "method",
"description": "Name of the Data Transfer Job"
}
}
}
Loading

0 comments on commit 53e213e

Please sign in to comment.