com.aliyun.dts20200101.models.CreateSynchronizationJobRequest Maven / Gradle / Ivy
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.dts20200101.models;
import com.aliyun.tea.*;
public class CreateSynchronizationJobRequest extends TeaModel {
@NameInMap("DestinationEndpoint")
public CreateSynchronizationJobRequestDestinationEndpoint destinationEndpoint;
@NameInMap("SourceEndpoint")
public CreateSynchronizationJobRequestSourceEndpoint sourceEndpoint;
/**
* The ID of the Alibaba Cloud account. You do not need to specify this parameter because this parameter will be removed in the future.
*/
@NameInMap("AccountId")
public String accountId;
/**
* The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests. The **ClientToken** parameter can contain only ASCII characters and cannot exceed 64 characters in length.
*/
@NameInMap("ClientToken")
public String clientToken;
/**
* If you set the **SourceEndpoint.InstanceType** parameter to **DRDS**, you must specify the DBInstanceCount parameter. This parameter specifies the number of private RDS instances attached to the source PolarDB-X instance. Default value: **1**.
*/
@NameInMap("DBInstanceCount")
public Integer DBInstanceCount;
/**
* The ID of the region where the destination database resides. For more information, see [List of supported regions](~~141033~~).
*
* > If the **SourceRegion** parameter is set to the China (Hong Kong) region or a region outside the Chinese mainland, you must set the DestRegion parameter to the same region ID.
*/
@NameInMap("DestRegion")
public String destRegion;
@NameInMap("OwnerId")
public String ownerId;
/**
* The billing method of the data synchronization instance.
*
* * **PrePaid**: subscription
* * **PostPaid** (default value): pay-as-you-go
*/
@NameInMap("PayType")
public String payType;
/**
* The billing cycle of the subscription instance. Valid values:
*
* * **Year**
* * **Month**
*
* > You must specify this parameter only if you set the PayType parameter to **PrePaid**.
*/
@NameInMap("Period")
public String period;
@NameInMap("RegionId")
public String regionId;
@NameInMap("ResourceGroupId")
public String resourceGroupId;
/**
* The ID of the region where the source database resides. For more information, see [List of supported regions](~~141033~~).
*/
@NameInMap("SourceRegion")
public String sourceRegion;
/**
* The specification of the data synchronization instance. Valid values: **micro**, **small**, **medium**, and **large**.
*
* > For more information about the test performance of each specification, see [Specifications of data synchronization instances](~~26605~~).
*/
@NameInMap("SynchronizationJobClass")
public String synchronizationJobClass;
/**
* The synchronization topology. Valid values:
*
* * **oneway**: one-way synchronization
* * **bidirectional**: two-way synchronization
*
* >
* * The default value is **oneway**.
* * This parameter can be set to **bidirectional** only when the **SourceEndpoint.InstanceType** and **DestinationEndpoint.InstanceType** parameters are set to **MySQL**, **PolarDB**, or **Redis**.
*/
@NameInMap("Topology")
public String topology;
/**
* The subscription length.
*
* * If the billing cycle is **Year**, the value range is **1 to 5**.
* * If the billing cycle is **Month**, the value range is **1 to 60**.
*
* > You must specify this parameter only if you set the PayType parameter to **PrePaid**.
*/
@NameInMap("UsedTime")
public Integer usedTime;
/**
* The network type. Valid value: **Intranet**, which indicates virtual private cloud (VPC).
*/
@NameInMap("networkType")
public String networkType;
public static CreateSynchronizationJobRequest build(java.util.Map map) throws Exception {
CreateSynchronizationJobRequest self = new CreateSynchronizationJobRequest();
return TeaModel.build(map, self);
}
public CreateSynchronizationJobRequest setDestinationEndpoint(CreateSynchronizationJobRequestDestinationEndpoint destinationEndpoint) {
this.destinationEndpoint = destinationEndpoint;
return this;
}
public CreateSynchronizationJobRequestDestinationEndpoint getDestinationEndpoint() {
return this.destinationEndpoint;
}
public CreateSynchronizationJobRequest setSourceEndpoint(CreateSynchronizationJobRequestSourceEndpoint sourceEndpoint) {
this.sourceEndpoint = sourceEndpoint;
return this;
}
public CreateSynchronizationJobRequestSourceEndpoint getSourceEndpoint() {
return this.sourceEndpoint;
}
public CreateSynchronizationJobRequest setAccountId(String accountId) {
this.accountId = accountId;
return this;
}
public String getAccountId() {
return this.accountId;
}
public CreateSynchronizationJobRequest setClientToken(String clientToken) {
this.clientToken = clientToken;
return this;
}
public String getClientToken() {
return this.clientToken;
}
public CreateSynchronizationJobRequest setDBInstanceCount(Integer DBInstanceCount) {
this.DBInstanceCount = DBInstanceCount;
return this;
}
public Integer getDBInstanceCount() {
return this.DBInstanceCount;
}
public CreateSynchronizationJobRequest setDestRegion(String destRegion) {
this.destRegion = destRegion;
return this;
}
public String getDestRegion() {
return this.destRegion;
}
public CreateSynchronizationJobRequest setOwnerId(String ownerId) {
this.ownerId = ownerId;
return this;
}
public String getOwnerId() {
return this.ownerId;
}
public CreateSynchronizationJobRequest setPayType(String payType) {
this.payType = payType;
return this;
}
public String getPayType() {
return this.payType;
}
public CreateSynchronizationJobRequest setPeriod(String period) {
this.period = period;
return this;
}
public String getPeriod() {
return this.period;
}
public CreateSynchronizationJobRequest setRegionId(String regionId) {
this.regionId = regionId;
return this;
}
public String getRegionId() {
return this.regionId;
}
public CreateSynchronizationJobRequest setResourceGroupId(String resourceGroupId) {
this.resourceGroupId = resourceGroupId;
return this;
}
public String getResourceGroupId() {
return this.resourceGroupId;
}
public CreateSynchronizationJobRequest setSourceRegion(String sourceRegion) {
this.sourceRegion = sourceRegion;
return this;
}
public String getSourceRegion() {
return this.sourceRegion;
}
public CreateSynchronizationJobRequest setSynchronizationJobClass(String synchronizationJobClass) {
this.synchronizationJobClass = synchronizationJobClass;
return this;
}
public String getSynchronizationJobClass() {
return this.synchronizationJobClass;
}
public CreateSynchronizationJobRequest setTopology(String topology) {
this.topology = topology;
return this;
}
public String getTopology() {
return this.topology;
}
public CreateSynchronizationJobRequest setUsedTime(Integer usedTime) {
this.usedTime = usedTime;
return this;
}
public Integer getUsedTime() {
return this.usedTime;
}
public CreateSynchronizationJobRequest setNetworkType(String networkType) {
this.networkType = networkType;
return this;
}
public String getNetworkType() {
return this.networkType;
}
public static class CreateSynchronizationJobRequestDestinationEndpoint extends TeaModel {
/**
* The instance type of the destination database. Valid values:
*
* * **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database
* * **PolarDB**: PolarDB for MySQL cluster or PolarDB O Edition cluster
* * **Redis**: Redis database
* * **MaxCompute**: MaxCompute project
*
* >
* * Default value: **MySQL**.
* * For more information about the supported source and destination databases, see [Database types, initial synchronization types, and synchronization topologies](~~130744~~).
*/
@NameInMap("InstanceType")
public String instanceType;
public static CreateSynchronizationJobRequestDestinationEndpoint build(java.util.Map map) throws Exception {
CreateSynchronizationJobRequestDestinationEndpoint self = new CreateSynchronizationJobRequestDestinationEndpoint();
return TeaModel.build(map, self);
}
public CreateSynchronizationJobRequestDestinationEndpoint setInstanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
public String getInstanceType() {
return this.instanceType;
}
}
public static class CreateSynchronizationJobRequestSourceEndpoint extends TeaModel {
/**
* The instance type of the source database. Valid values:
*
* * **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database
* * **PolarDB**: PolarDB for MySQL cluster or PolarDB O Edition cluster
* * **Redis**: Redis database
* * **DRDS**: PolarDB-X instance V1.0
*
* >
* * Default value: **MySQL**.
* * For more information about the supported source and destination databases, see [Database types, initial synchronization types, and synchronization topologies](~~130744~~).
*/
@NameInMap("InstanceType")
public String instanceType;
public static CreateSynchronizationJobRequestSourceEndpoint build(java.util.Map map) throws Exception {
CreateSynchronizationJobRequestSourceEndpoint self = new CreateSynchronizationJobRequestSourceEndpoint();
return TeaModel.build(map, self);
}
public CreateSynchronizationJobRequestSourceEndpoint setInstanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
public String getInstanceType() {
return this.instanceType;
}
}
}