# Check Task - CheckUDTSTask

## Overview

Provide pre-check function for UDTS tasks






## Definition

### Public Parameters

| Parameter Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **Action**     | string  | Corresponding API command name, the current API is `CheckUDTSTask`.                      | **Yes** |
| **PublicKey**  | string  | The user's public key can be obtained from [Console](https://console.scloudsg.com/uaccount/api_manage)                                             | **Yes** |
| **Signature**  | string  | User signature generated based on public key and API command, see [Signature Algorithm](/docs/api/summary/signature.md)  | **Yes** |

### Request Parameters

| Parameter Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **ProjectId** | string | Project ID. If not filled in, the default project is used, sub-accounts must be filled in. Please refer to the [GetProjectList interface](/docs/api/summary/get_project_list). |No|
| **Name** | string | Task name, length cannot exceed 128 |**Yes**|
| **Type** | string | Task type, value is either 'transfer' or 'integration'. When it's 'transfer', the task is 'Data Migration'. When it's 'integration', the task is 'Data Integration'. |**Yes**|
| **MaxRetryCount** | string | Retry times, maximum is 5. Default is 0. |**Yes**|
| **Source.N.ServiceType** | string | Service type, the value can be small, medium, large, corresponding to "Basic Edition", "Light Edition" and "Flagship Edition" respectively. |**Yes**|
| **Source.N.Mode** | string | Task mode, the value can be full, incremental, full+incremental, bidirectional |No|
| **Source.N.DataType** | string | Database type, such as mysql |No|
| **Source.N.NWType** | string | Source network type, can be public, user, dedicated_line |No|
| **Source.N.MySQLNode.Host** | string | Source database address, for example 10.9.37.200 |No|
| **Source.N.MySQLNode.Port** | int | Source MySQL port, such as 3306 |No|
| **Source.N.MySQLNode.User** | string | Source MySQL username, such as root |No|
| **Source.N.MySQLNode.Password** | string | Source MySQL Password |No|
| **Source.N.MySQLNode.VPCId** | string | VPC ID, can be obtained from https://console.scloudsg.com/vpc/vpc, for example, uvnet-u0ecace |No|
| **Source.N.MySQLNode.SubnetId** | string | Subnet ID, which can be obtained from https://console.scloudsg.com/vpc/subnet, for example subnet-2sloxs |No|
| **Source.N.MySQLNode.DataRegion** | string | Database region, for example cn-bj2 |No|
| **Source.N.MySQLNode.Database** | string | Name of the DB to be migrated |No|
| **Source.N.MySQLNode.Table** | string | Name of the table to be migrated |No|
| **Source.N.MySQLNode.SyncData.BinlogName** | string | The binlog name needs to be specified during the incremental time, which can be obtained through the 'show master status' command, or it will be automatically set in the full + incremental task. |No|
| **Source.N.MySQLNode.SyncData.BinlogPos** | int | The binlog pos that needs to be specified during incremental time can be obtained through show master status, or it will be automatically set by full + incremental tasks. |No|
| **Source.N.MySQLNode.SyncData.ServerID** | int | The serverID that needs to be specified during the increment cannot be duplicated with the existing slave. This value will be checked during the pre-check. |No|
| **Source.N.MySQLNode.SyncData.BinlogGTID** | string | The binlog gtid that needs to be specified during the incremental time can be obtained through the show master status, or it will be automatically set by the full + incremental task. |No|
| **Source.N.MySQLNode.QueryData.N.DBName** | string | Name of the DB to be migrated during data integration |No|
| **Source.N.MySQLNode.QueryData.N.NewDBName** | string | DB Name after Data Integration Migration |No|
| **Query** | string | Discard |No|
| **Target.DataType** | string | Target database type, for example mysql |No|
| **Target.NWType** | string | Target db network type, currently only supports user |No|
| **Target.MySQLNode.Host** | string | Target database address, for example 10.9.37.212 |No|
| **Target.MySQLNode.Port** | int | Target database port, for example 3306 |No|
| **Target.MySQLNode.User** | string | Target database username, for example root |No|
| **Target.MySQLNode.Password** | string | Target Database Password |No|
| **Target.MySQLNode.VPCId** | string | Target Database VPC, for example uvnet-1wz5rqte |No|
| **Target.MySQLNode.SubnetId** | string | Target database subnet ID, for example subnet-zl44fktq |No|
| **Target.MySQLNode.DataRegion** | string | Target database region, for example cn-bj2 |No|

### Response Field

| Field Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **RetCode** | int | Return status code. If it is 0, it means successful return. If it is not 0, it means failure. |**Yes**|
| **Action** | string | Operation command name. |**Yes**|
| **Message** | string | Returns an error message, providing detailed description when `RetCode` is non-zero. |No|
| **Data** | [*CheckUDTSTaskResult*](#checkudtstaskresult) | Check Result |**Yes**|

#### Data Model


#### CheckUDTSTaskResult

| Field Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **Source** | [*CheckResult*](#checkresult) |  |No|
| **Target** | [*CheckResult*](#checkresult) |  |No|

#### CheckResult

| Field Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **Config** | [*CheckResultItem*](#checkresultitem) |  |No|
| **Connection** | [*CheckResultItem*](#checkresultitem) |  |No|
| **Privileges** | [*CheckResultItem*](#checkresultitem) |  |No|

#### CheckResultItem

| Field Name | Type | Description Information | Required |
|:---|:---|:---|:---|
| **State** | string |  |**Yes**|
| **ErrMessage** | string |  |**Yes**|

## Example

### Request Example
    
```
https://api.scloudsg.com/?Action=CheckUDTSTask
&ProjectId=ySxOuFNP
&Name=iybJMhOY
&Type=kKLbtCIE
&Source=WQVyJAPj
&Target=ELyCuYTU
&MaxRetryCount=ozdxEUIr
&Query=PizEAjrP
&Source.N.Mode=PzcXhLrG
&Source.N.DataType=bZWssMSz
&Source.N.NWType=QTIhWJAT
&Source.N.MySQLNode.Host=tYybGVwL
&Source.N.MySQLNode.Port=2
&Source.N.MySQLNode.User=IVvsQESS
&Source.N.MySQLNode.Password=rehIyiiG
&Source.N.MySQLNode.VPCId=oslSTCGw
&Source.N.MySQLNode.SubnetId=knkzvAuv
&Source.N.MySQLNode.DataRegion=BsDfVJsM
&Source.N.MySQLNode.Database=ICfGrSzd
&Source.N.MySQLNode.Table=sSYUlfrC
&Source.N.MySQLNode.SyncData.BinlogName=aUVlvMba
&Source.N.MySQLNode.SyncData.BinlogPos=9
&Source.N.MySQLNode.SyncData.ServerID=9
&Source.N.MySQLNode.SyncData.BinlogGTID=ZfHgMkbW
&Source.N.MySQLNode.QueryData.N.DBName=AXGkZnMf
&Source.N.MySQLNode.QueryData.N.NewDBName=hGUvPTmf
&Target.DataType=vcFAMLPD
&Target.NWType=ttJRgGYj
&Target.MySQLNode.Host=UJQuSQBf
&Target.MySQLNode.Port=4
&Target.MySQLNode.User=FzrvgBcz
&Target.MySQLNode.Password=LbAmOPmz
&Target.MySQLNode.VPCId=kFiSKqpB
&Target.MySQLNode.SubnetId=VTTYIvGY
&Target.MySQLNode.DataRegion=MzdqBMqb
&Source.N.ServiceType=epppksUq
```

### Response Example
    
```json
{
  "Action": "CheckUDTSTaskResponse",
  "Data": {},
  "Message": "aKSpQMwy",
  "RetCode": 0
}
```





