services/oceanbasepro/create_project.go (294 lines of code) (raw):
package oceanbasepro
//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
//
// Code generated by Alibaba Cloud SDK Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
import (
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
)
// CreateProject invokes the oceanbasepro.CreateProject API synchronously
func (client *Client) CreateProject(request *CreateProjectRequest) (response *CreateProjectResponse, err error) {
response = CreateCreateProjectResponse()
err = client.DoAction(request, response)
return
}
// CreateProjectWithChan invokes the oceanbasepro.CreateProject API asynchronously
func (client *Client) CreateProjectWithChan(request *CreateProjectRequest) (<-chan *CreateProjectResponse, <-chan error) {
responseChan := make(chan *CreateProjectResponse, 1)
errChan := make(chan error, 1)
err := client.AddAsyncTask(func() {
defer close(responseChan)
defer close(errChan)
response, err := client.CreateProject(request)
if err != nil {
errChan <- err
} else {
responseChan <- response
}
})
if err != nil {
errChan <- err
close(responseChan)
close(errChan)
}
return responseChan, errChan
}
// CreateProjectWithCallback invokes the oceanbasepro.CreateProject API asynchronously
func (client *Client) CreateProjectWithCallback(request *CreateProjectRequest, callback func(response *CreateProjectResponse, err error)) <-chan int {
result := make(chan int, 1)
err := client.AddAsyncTask(func() {
var response *CreateProjectResponse
var err error
defer close(result)
response, err = client.CreateProject(request)
callback(response, err)
result <- 1
})
if err != nil {
defer close(result)
callback(nil, err)
result <- 0
}
return result
}
// CreateProjectRequest is the request struct for api CreateProject
type CreateProjectRequest struct {
*requests.RpcRequest
SinkEndpointId string `position:"Body" name:"SinkEndpointId"`
UseOss requests.Boolean `position:"Body" name:"UseOss"`
OssKey string `position:"Body" name:"OssKey"`
SourceEndpointId string `position:"Body" name:"SourceEndpointId"`
Type string `position:"Body" name:"Type"`
FullTransferConfig CreateProjectFullTransferConfig `position:"Body" name:"FullTransferConfig" type:"Struct"`
EnableStructTransfer requests.Boolean `position:"Body" name:"EnableStructTransfer"`
TransferMapping CreateProjectTransferMapping `position:"Body" name:"TransferMapping" type:"Struct"`
WorkerGradeId string `position:"Body" name:"WorkerGradeId"`
Id string `position:"Body" name:"Id"`
CommonTransferConfig CreateProjectCommonTransferConfig `position:"Body" name:"CommonTransferConfig" type:"Struct"`
StructTransferConfig CreateProjectStructTransferConfig `position:"Body" name:"StructTransferConfig" type:"Struct"`
ReverseIncrTransferConfig CreateProjectReverseIncrTransferConfig `position:"Body" name:"ReverseIncrTransferConfig" type:"Struct"`
EnableIncrTransfer requests.Boolean `position:"Body" name:"EnableIncrTransfer"`
EnableFullTransfer requests.Boolean `position:"Body" name:"EnableFullTransfer"`
EnableFullVerify requests.Boolean `position:"Body" name:"EnableFullVerify"`
Name string `position:"Body" name:"Name"`
LabelIds *[]string `position:"Body" name:"LabelIds" type:"Json"`
IncrTransferConfig CreateProjectIncrTransferConfig `position:"Body" name:"IncrTransferConfig" type:"Struct"`
EnableReverseIncrTransfer requests.Boolean `position:"Body" name:"EnableReverseIncrTransfer"`
}
// CreateProjectFullTransferConfig is a repeated param struct in CreateProjectRequest
type CreateProjectFullTransferConfig struct {
NonePkUkTruncateDstTable string `name:"NonePkUkTruncateDstTable"`
ThrottleRps string `name:"ThrottleRps"`
FullVerifySpeedMode string `name:"FullVerifySpeedMode"`
WriteWorkerNum string `name:"WriteWorkerNum"`
ReadWorkerNum string `name:"ReadWorkerNum"`
FullTransferSpeedMode string `name:"FullTransferSpeedMode"`
AllowDestTableNotEmpty string `name:"AllowDestTableNotEmpty"`
ThrottleIOPS string `name:"ThrottleIOPS"`
}
// CreateProjectTransferMapping is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMapping struct {
Mode string `name:"Mode"`
Databases *[]CreateProjectTransferMappingDatabasesItem `name:"Databases" type:"Repeated"`
TableAndViewBlackList *[]string `name:"TableAndViewBlackList" type:"Repeated"`
DatabasesBlack *[]CreateProjectTransferMappingDatabasesBlackItem `name:"DatabasesBlack" type:"Repeated"`
TableAndViewWhiteList *[]string `name:"TableAndViewWhiteList" type:"Repeated"`
}
// CreateProjectCommonTransferConfig is a repeated param struct in CreateProjectRequest
type CreateProjectCommonTransferConfig struct {
MqPartition string `name:"MqPartition"`
SyncSchemaColumnName string `name:"SyncSchemaColumnName"`
ActiveActive string `name:"ActiveActive"`
SinkStoreFormat string `name:"SinkStoreFormat"`
RocketMqEnableMsgTrace string `name:"RocketMqEnableMsgTrace"`
CustomColumns *[]CreateProjectCommonTransferConfigCustomColumnsItem `name:"CustomColumns" type:"Repeated"`
RocketMqProducerGroup string `name:"RocketMqProducerGroup"`
MqPartitionMode string `name:"MqPartitionMode"`
RocketMqSendMsgTimeout string `name:"RocketMqSendMsgTimeout"`
TableCategory string `name:"TableCategory"`
DatahubTopicType string `name:"DatahubTopicType"`
RocketMqMsgTags string `name:"RocketMqMsgTags"`
DataWorksBusinessName string `name:"DataWorksBusinessName"`
SourceStoreFormat string `name:"SourceStoreFormat"`
SyncSchema string `name:"SyncSchema"`
MqSerializerType string `name:"MqSerializerType"`
}
// CreateProjectStructTransferConfig is a repeated param struct in CreateProjectRequest
type CreateProjectStructTransferConfig struct {
ByteCharConvertStrategy string `name:"ByteCharConvertStrategy"`
DeferIndexCreation string `name:"DeferIndexCreation"`
}
// CreateProjectReverseIncrTransferConfig is a repeated param struct in CreateProjectRequest
type CreateProjectReverseIncrTransferConfig struct {
ThrottleRps string `name:"ThrottleRps"`
EnableSequencingWithinTxn string `name:"EnableSequencingWithinTxn"`
SupportDDLTypes *[]string `name:"SupportDDLTypes" type:"Repeated"`
StoreLogKeptHour string `name:"StoreLogKeptHour"`
StartTimestamp string `name:"StartTimestamp"`
RecordTypeWhiteList *[]string `name:"RecordTypeWhiteList" type:"Repeated"`
IncrSyncConcurrency string `name:"IncrSyncConcurrency"`
EnableIncrSyncStatistics string `name:"EnableIncrSyncStatistics"`
ThrottleIOPS string `name:"ThrottleIOPS"`
}
// CreateProjectIncrTransferConfig is a repeated param struct in CreateProjectRequest
type CreateProjectIncrTransferConfig struct {
ThrottleRps string `name:"ThrottleRps"`
EnableSequencingWithinTxn string `name:"EnableSequencingWithinTxn"`
SupportDDLTypes *[]string `name:"SupportDDLTypes" type:"Repeated"`
StoreLogKeptHour string `name:"StoreLogKeptHour"`
StartTimestamp string `name:"StartTimestamp"`
RecordTypeWhiteList *[]string `name:"RecordTypeWhiteList" type:"Repeated"`
IncrSyncConcurrency string `name:"IncrSyncConcurrency"`
EnableIncrSyncStatistics string `name:"EnableIncrSyncStatistics"`
ThrottleIOPS string `name:"ThrottleIOPS"`
}
// CreateProjectTransferMappingDatabasesItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItem struct {
MappedName string `name:"MappedName"`
SpecificViews *[]CreateProjectTransferMappingDatabasesItemSpecificViewsItem `name:"SpecificViews" type:"Repeated"`
Tables *[]CreateProjectTransferMappingDatabasesItemTablesItem `name:"Tables" type:"Repeated"`
ClusterName string `name:"ClusterName"`
Name string `name:"Name"`
TenantName string `name:"TenantName"`
Id string `name:"Id"`
SpecificTables *[]CreateProjectTransferMappingDatabasesItemSpecificTablesItem `name:"SpecificTables" type:"Repeated"`
Views *[]CreateProjectTransferMappingDatabasesItemViewsItem `name:"Views" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItem struct {
MappedName string `name:"MappedName"`
SpecificViews *[]CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItem `name:"SpecificViews" type:"Repeated"`
Tables *[]CreateProjectTransferMappingDatabasesBlackItemTablesItem `name:"Tables" type:"Repeated"`
ClusterName string `name:"ClusterName"`
Name string `name:"Name"`
TenantName string `name:"TenantName"`
Id string `name:"Id"`
SpecificTables *[]CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItem `name:"SpecificTables" type:"Repeated"`
Views *[]CreateProjectTransferMappingDatabasesBlackItemViewsItem `name:"Views" type:"Repeated"`
}
// CreateProjectCommonTransferConfigCustomColumnsItem is a repeated param struct in CreateProjectRequest
type CreateProjectCommonTransferConfigCustomColumnsItem struct {
Expression string `name:"Expression"`
ColumnName string `name:"ColumnName"`
}
// CreateProjectTransferMappingDatabasesItemSpecificViewsItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemSpecificViewsItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesItemSpecificViewsItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemTablesItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemTablesItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesItemTablesItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemSpecificTablesItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemSpecificTablesItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesItemSpecificTablesItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemViewsItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemViewsItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesItemViewsItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemTablesItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemTablesItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesBlackItemTablesItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemViewsItem is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemViewsItem struct {
MappedName string `name:"MappedName"`
FilterColumns *[]string `name:"FilterColumns" type:"Repeated"`
AdbTableSchema CreateProjectTransferMappingDatabasesBlackItemViewsItemAdbTableSchema `name:"AdbTableSchema" type:"Struct"`
Name string `name:"Name"`
WhereClause string `name:"WhereClause"`
Id string `name:"Id"`
ShardColumns *[]string `name:"ShardColumns" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemSpecificViewsItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemSpecificViewsItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemTablesItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemTablesItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemSpecificTablesItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemSpecificTablesItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesItemViewsItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesItemViewsItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemSpecificViewsItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemTablesItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemTablesItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemSpecificTablesItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectTransferMappingDatabasesBlackItemViewsItemAdbTableSchema is a repeated param struct in CreateProjectRequest
type CreateProjectTransferMappingDatabasesBlackItemViewsItemAdbTableSchema struct {
PrimaryKeys *[]string `name:"PrimaryKeys" type:"Repeated"`
PartitionStatement string `name:"PartitionStatement"`
PartitionLifeCycle string `name:"PartitionLifeCycle"`
DistributedKeys *[]string `name:"DistributedKeys" type:"Repeated"`
}
// CreateProjectResponse is the response struct for api CreateProject
type CreateProjectResponse struct {
*responses.BaseResponse
}
// CreateCreateProjectRequest creates a request to invoke CreateProject API
func CreateCreateProjectRequest() (request *CreateProjectRequest) {
request = &CreateProjectRequest{
RpcRequest: &requests.RpcRequest{},
}
request.InitWithApiInfo("OceanBasePro", "2019-09-01", "CreateProject", "oceanbase", "openAPI")
request.Method = requests.POST
return
}
// CreateCreateProjectResponse creates a response to parse from CreateProject response
func CreateCreateProjectResponse() (response *CreateProjectResponse) {
response = &CreateProjectResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}