/*
 * clouddb
 * Cloud DB<br/>https://ncloud.apigw.ntruss.com/clouddb/v2
 *
 * NBP corp.
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */


package com.ncloud.clouddb.model;

import java.util.Objects;

/**
 * CreateCloudDBInstanceRequest
 */
public class CreateCloudDBInstanceRequest {
	private String cloudDBImageProductCode = null;

	private String cloudDBProductCode = null;

	private String dbKindCode = null;

	private String collation = null;

	private String dataStorageTypeCode = null;

	private Boolean isHa = null;

	private String hostIp = null;

	private String cloudDBServerName = null;

	private String cloudDBServiceName = null;

	private String cloudDBBasicName = null;

	private String cloudDBUserName = null;

	private String cloudDBUserPassword = null;

	private Integer cloudDBPort = null;

	private String cloudDBConfigGroupNo = null;

	private Boolean isBackup = null;

	private Integer backupFileRetentionPeriod = null;

	private Boolean isAutomaticBackup = null;

	private String backupTime = null;

	private String regionNo = null;

	private String zoneNo = null;

	private String responseFormatType = null;

	public CreateCloudDBInstanceRequest cloudDBImageProductCode(String cloudDBImageProductCode) {
		this.cloudDBImageProductCode = cloudDBImageProductCode;
		return this;
	}

	 /**
	 * CloudDB이미지상품코드
	 * @return cloudDBImageProductCode
	**/
	public String getCloudDBImageProductCode() {
		return cloudDBImageProductCode;
	}

	public void setCloudDBImageProductCode(String cloudDBImageProductCode) {
		this.cloudDBImageProductCode = cloudDBImageProductCode;
	}

	public CreateCloudDBInstanceRequest cloudDBProductCode(String cloudDBProductCode) {
		this.cloudDBProductCode = cloudDBProductCode;
		return this;
	}

	 /**
	 * CloudDB상품코드
	 * @return cloudDBProductCode
	**/
	public String getCloudDBProductCode() {
		return cloudDBProductCode;
	}

	public void setCloudDBProductCode(String cloudDBProductCode) {
		this.cloudDBProductCode = cloudDBProductCode;
	}

	public CreateCloudDBInstanceRequest dbKindCode(String dbKindCode) {
		this.dbKindCode = dbKindCode;
		return this;
	}

	 /**
	 * DB유형코드
	 * @return dbKindCode
	**/
	public String getDbKindCode() {
		return dbKindCode;
	}

	public void setDbKindCode(String dbKindCode) {
		this.dbKindCode = dbKindCode;
	}

	public CreateCloudDBInstanceRequest collation(String collation) {
		this.collation = collation;
		return this;
	}

	 /**
	 * Collation
	 * @return collation
	**/
	public String getCollation() {
		return collation;
	}

	public void setCollation(String collation) {
		this.collation = collation;
	}

	public CreateCloudDBInstanceRequest dataStorageTypeCode(String dataStorageTypeCode) {
		this.dataStorageTypeCode = dataStorageTypeCode;
		return this;
	}

	 /**
	 * 데이터스토리지타입
	 * @return dataStorageTypeCode
	**/
	public String getDataStorageTypeCode() {
		return dataStorageTypeCode;
	}

	public void setDataStorageTypeCode(String dataStorageTypeCode) {
		this.dataStorageTypeCode = dataStorageTypeCode;
	}

	public CreateCloudDBInstanceRequest isHa(Boolean isHa) {
		this.isHa = isHa;
		return this;
	}

	 /**
	 * HA여부
	 * @return isHa
	**/
	public Boolean isIsHa() {
		return isHa;
	}

	public void setIsHa(Boolean isHa) {
		this.isHa = isHa;
	}

	public CreateCloudDBInstanceRequest hostIp(String hostIp) {
		this.hostIp = hostIp;
		return this;
	}

	 /**
	 * 호스트IP
	 * @return hostIp
	**/
	public String getHostIp() {
		return hostIp;
	}

	public void setHostIp(String hostIp) {
		this.hostIp = hostIp;
	}

	public CreateCloudDBInstanceRequest cloudDBServerName(String cloudDBServerName) {
		this.cloudDBServerName = cloudDBServerName;
		return this;
	}

	 /**
	 * CloudDB서버이름
	 * @return cloudDBServerName
	**/
	public String getCloudDBServerName() {
		return cloudDBServerName;
	}

	public void setCloudDBServerName(String cloudDBServerName) {
		this.cloudDBServerName = cloudDBServerName;
	}

	public CreateCloudDBInstanceRequest cloudDBServiceName(String cloudDBServiceName) {
		this.cloudDBServiceName = cloudDBServiceName;
		return this;
	}

	 /**
	 * CloudDB서비스이름
	 * @return cloudDBServiceName
	**/
	public String getCloudDBServiceName() {
		return cloudDBServiceName;
	}

	public void setCloudDBServiceName(String cloudDBServiceName) {
		this.cloudDBServiceName = cloudDBServiceName;
	}

	public CreateCloudDBInstanceRequest cloudDBBasicName(String cloudDBBasicName) {
		this.cloudDBBasicName = cloudDBBasicName;
		return this;
	}

	 /**
	 * CloudDB기본이름
	 * @return cloudDBBasicName
	**/
	public String getCloudDBBasicName() {
		return cloudDBBasicName;
	}

	public void setCloudDBBasicName(String cloudDBBasicName) {
		this.cloudDBBasicName = cloudDBBasicName;
	}

	public CreateCloudDBInstanceRequest cloudDBUserName(String cloudDBUserName) {
		this.cloudDBUserName = cloudDBUserName;
		return this;
	}

	 /**
	 * CloudDB유저이름
	 * @return cloudDBUserName
	**/
	public String getCloudDBUserName() {
		return cloudDBUserName;
	}

	public void setCloudDBUserName(String cloudDBUserName) {
		this.cloudDBUserName = cloudDBUserName;
	}

	public CreateCloudDBInstanceRequest cloudDBUserPassword(String cloudDBUserPassword) {
		this.cloudDBUserPassword = cloudDBUserPassword;
		return this;
	}

	 /**
	 * CloudDB유저패스워드
	 * @return cloudDBUserPassword
	**/
	public String getCloudDBUserPassword() {
		return cloudDBUserPassword;
	}

	public void setCloudDBUserPassword(String cloudDBUserPassword) {
		this.cloudDBUserPassword = cloudDBUserPassword;
	}

	public CreateCloudDBInstanceRequest cloudDBPort(Integer cloudDBPort) {
		this.cloudDBPort = cloudDBPort;
		return this;
	}

	 /**
	 * CloudDB포트
	 * @return cloudDBPort
	**/
	public Integer getCloudDBPort() {
		return cloudDBPort;
	}

	public void setCloudDBPort(Integer cloudDBPort) {
		this.cloudDBPort = cloudDBPort;
	}

	public CreateCloudDBInstanceRequest cloudDBConfigGroupNo(String cloudDBConfigGroupNo) {
		this.cloudDBConfigGroupNo = cloudDBConfigGroupNo;
		return this;
	}

	 /**
	 * CloudDB설정그룹번호
	 * @return cloudDBConfigGroupNo
	**/
	public String getCloudDBConfigGroupNo() {
		return cloudDBConfigGroupNo;
	}

	public void setCloudDBConfigGroupNo(String cloudDBConfigGroupNo) {
		this.cloudDBConfigGroupNo = cloudDBConfigGroupNo;
	}

	public CreateCloudDBInstanceRequest isBackup(Boolean isBackup) {
		this.isBackup = isBackup;
		return this;
	}

	 /**
	 * 백업여부
	 * @return isBackup
	**/
	public Boolean isIsBackup() {
		return isBackup;
	}

	public void setIsBackup(Boolean isBackup) {
		this.isBackup = isBackup;
	}

	public CreateCloudDBInstanceRequest backupFileRetentionPeriod(Integer backupFileRetentionPeriod) {
		this.backupFileRetentionPeriod = backupFileRetentionPeriod;
		return this;
	}

	 /**
	 * 백업파일보관기간
	 * @return backupFileRetentionPeriod
	**/
	public Integer getBackupFileRetentionPeriod() {
		return backupFileRetentionPeriod;
	}

	public void setBackupFileRetentionPeriod(Integer backupFileRetentionPeriod) {
		this.backupFileRetentionPeriod = backupFileRetentionPeriod;
	}

	public CreateCloudDBInstanceRequest isAutomaticBackup(Boolean isAutomaticBackup) {
		this.isAutomaticBackup = isAutomaticBackup;
		return this;
	}

	 /**
	 * 자동Backup여부
	 * @return isAutomaticBackup
	**/
	public Boolean isIsAutomaticBackup() {
		return isAutomaticBackup;
	}

	public void setIsAutomaticBackup(Boolean isAutomaticBackup) {
		this.isAutomaticBackup = isAutomaticBackup;
	}

	public CreateCloudDBInstanceRequest backupTime(String backupTime) {
		this.backupTime = backupTime;
		return this;
	}

	 /**
	 * 백업시간
	 * @return backupTime
	**/
	public String getBackupTime() {
		return backupTime;
	}

	public void setBackupTime(String backupTime) {
		this.backupTime = backupTime;
	}

	public CreateCloudDBInstanceRequest regionNo(String regionNo) {
		this.regionNo = regionNo;
		return this;
	}

	 /**
	 * 리전번호
	 * @return regionNo
	**/
	public String getRegionNo() {
		return regionNo;
	}

	public void setRegionNo(String regionNo) {
		this.regionNo = regionNo;
	}

	public CreateCloudDBInstanceRequest zoneNo(String zoneNo) {
		this.zoneNo = zoneNo;
		return this;
	}

	 /**
	 * zone번호
	 * @return zoneNo
	**/
	public String getZoneNo() {
		return zoneNo;
	}

	public void setZoneNo(String zoneNo) {
		this.zoneNo = zoneNo;
	}

	public CreateCloudDBInstanceRequest responseFormatType(String responseFormatType) {
		this.responseFormatType = responseFormatType;
		return this;
	}

	 /**
	 * responseFormatType {json, xml}
	 * @return responseFormatType
	**/
	public String getResponseFormatType() {
		return responseFormatType;
	}

	public void setResponseFormatType(String responseFormatType) {
		this.responseFormatType = responseFormatType;
	}


	@Override
	public boolean equals(java.lang.Object o) {
		if (this == o) {
			return true;
		}
		if (o == null || getClass() != o.getClass()) {
			return false;
		}
		CreateCloudDBInstanceRequest createCloudDBInstanceRequest = (CreateCloudDBInstanceRequest) o;
		return Objects.equals(this.cloudDBImageProductCode, createCloudDBInstanceRequest.cloudDBImageProductCode) &&
				Objects.equals(this.cloudDBProductCode, createCloudDBInstanceRequest.cloudDBProductCode) &&
				Objects.equals(this.dbKindCode, createCloudDBInstanceRequest.dbKindCode) &&
				Objects.equals(this.collation, createCloudDBInstanceRequest.collation) &&
				Objects.equals(this.dataStorageTypeCode, createCloudDBInstanceRequest.dataStorageTypeCode) &&
				Objects.equals(this.isHa, createCloudDBInstanceRequest.isHa) &&
				Objects.equals(this.hostIp, createCloudDBInstanceRequest.hostIp) &&
				Objects.equals(this.cloudDBServerName, createCloudDBInstanceRequest.cloudDBServerName) &&
				Objects.equals(this.cloudDBServiceName, createCloudDBInstanceRequest.cloudDBServiceName) &&
				Objects.equals(this.cloudDBBasicName, createCloudDBInstanceRequest.cloudDBBasicName) &&
				Objects.equals(this.cloudDBUserName, createCloudDBInstanceRequest.cloudDBUserName) &&
				Objects.equals(this.cloudDBUserPassword, createCloudDBInstanceRequest.cloudDBUserPassword) &&
				Objects.equals(this.cloudDBPort, createCloudDBInstanceRequest.cloudDBPort) &&
				Objects.equals(this.cloudDBConfigGroupNo, createCloudDBInstanceRequest.cloudDBConfigGroupNo) &&
				Objects.equals(this.isBackup, createCloudDBInstanceRequest.isBackup) &&
				Objects.equals(this.backupFileRetentionPeriod, createCloudDBInstanceRequest.backupFileRetentionPeriod) &&
				Objects.equals(this.isAutomaticBackup, createCloudDBInstanceRequest.isAutomaticBackup) &&
				Objects.equals(this.backupTime, createCloudDBInstanceRequest.backupTime) &&
				Objects.equals(this.regionNo, createCloudDBInstanceRequest.regionNo) &&
				Objects.equals(this.zoneNo, createCloudDBInstanceRequest.zoneNo) &&
				Objects.equals(this.responseFormatType, createCloudDBInstanceRequest.responseFormatType);
	}

	@Override
	public int hashCode() {
		return Objects.hash(cloudDBImageProductCode, cloudDBProductCode, dbKindCode, collation, dataStorageTypeCode, isHa, hostIp, cloudDBServerName, cloudDBServiceName, cloudDBBasicName, cloudDBUserName, cloudDBUserPassword, cloudDBPort, cloudDBConfigGroupNo, isBackup, backupFileRetentionPeriod, isAutomaticBackup, backupTime, regionNo, zoneNo, responseFormatType);
	}


	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("class CreateCloudDBInstanceRequest {\n");
		
		sb.append("		cloudDBImageProductCode: ").append(toIndentedString(cloudDBImageProductCode)).append("\n");
		sb.append("		cloudDBProductCode: ").append(toIndentedString(cloudDBProductCode)).append("\n");
		sb.append("		dbKindCode: ").append(toIndentedString(dbKindCode)).append("\n");
		sb.append("		collation: ").append(toIndentedString(collation)).append("\n");
		sb.append("		dataStorageTypeCode: ").append(toIndentedString(dataStorageTypeCode)).append("\n");
		sb.append("		isHa: ").append(toIndentedString(isHa)).append("\n");
		sb.append("		hostIp: ").append(toIndentedString(hostIp)).append("\n");
		sb.append("		cloudDBServerName: ").append(toIndentedString(cloudDBServerName)).append("\n");
		sb.append("		cloudDBServiceName: ").append(toIndentedString(cloudDBServiceName)).append("\n");
		sb.append("		cloudDBBasicName: ").append(toIndentedString(cloudDBBasicName)).append("\n");
		sb.append("		cloudDBUserName: ").append(toIndentedString(cloudDBUserName)).append("\n");
		sb.append("		cloudDBUserPassword: ").append(toIndentedString(cloudDBUserPassword)).append("\n");
		sb.append("		cloudDBPort: ").append(toIndentedString(cloudDBPort)).append("\n");
		sb.append("		cloudDBConfigGroupNo: ").append(toIndentedString(cloudDBConfigGroupNo)).append("\n");
		sb.append("		isBackup: ").append(toIndentedString(isBackup)).append("\n");
		sb.append("		backupFileRetentionPeriod: ").append(toIndentedString(backupFileRetentionPeriod)).append("\n");
		sb.append("		isAutomaticBackup: ").append(toIndentedString(isAutomaticBackup)).append("\n");
		sb.append("		backupTime: ").append(toIndentedString(backupTime)).append("\n");
		sb.append("		regionNo: ").append(toIndentedString(regionNo)).append("\n");
		sb.append("		zoneNo: ").append(toIndentedString(zoneNo)).append("\n");
		sb.append("		responseFormatType: ").append(toIndentedString(responseFormatType)).append("\n");
		sb.append("}");
		return sb.toString();
	}

	/**
	 * Convert the given object to string with each line indented by 4 spaces
	 * (except the first line).
	 */
	private String toIndentedString(java.lang.Object o) {
		if (o == null) {
			return "null";
		}
		return o.toString().replace("\n", "\n		");
	}

}

