package com.bocloud.cmp.model.database;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DbInstanceModel {
    private String username;// 用户名
    private String password;// 密码
    private String instanceId;// 实例ID
    private String engine;// 数据库类型
    private String version;// 版本
    private String payType; // 付费类型
    private String networkType;// 网络类型
    private String connectionMode;// 连接模式
    private String regionId;// 地域
    private String zoneId;// 可用区
    private String connectionString;// 连接地址
    private Integer port;// 端口
    private String instanceType;// 实例类型
    private Integer cpu;// cpu
    private Integer memory;// 内存
    private Integer disk;// 磁盘
    private String netType;// 外网还是内网
    private String lockMode;// 锁的模式
    private Integer dBInstanceStorage;//实例存储空间
    private String dBInstanceNetType; //实例的网络连接类型
    private String instanceNetworkType;//实例的网络类型
    private String vPCId;//专有网络
    private String vSwitchId;//虚拟交换机（VSwitch） ID
    private String autoRenew;//实例是否自动续费
    private String dBParamGroupId;//参数模板ID
    private String dBTimeZone;//UTC时区
    private String dBIsIgnoreCase;//表名是否区分大小写
    private String period;//指定预付费实例为包年或者包月类型
    private String usedTime;//指定购买时长

    public String getVswitchId() {
        return vswitchId;
    }

    public void setVswitchId(String vswitchId) {
        this.vswitchId = vswitchId;
    }

    public Integer getDbInstanceStorage() {
        return dbInstanceStorage;
    }

    public void setDbInstanceStorage(Integer dbInstanceStorage) {
        this.dbInstanceStorage = dbInstanceStorage;
    }

    private String lockReason;// 锁定原因
    private Integer maxConnection;// 最大连接数
    private Integer maxAccount;// 可创建账号的最大数量
    private Integer maxDB;// 可创建最大数据库数量
    private Long vendorId; // 云供应商ID
    private Long region; // 镜像所在区域
    private String clusterId;// 集群ID
    private String expireTime;// 到期时间
    private Integer maxIOPS; // 最大IO请求次数
    private String masterInstanceId;// 主实例ID
    private String instanceClass; // 规格
    private String clusterName;
    private String name; // 名称
    private String remark; // 描述
    private String status; // 状态
    private Date gmtCreate; // 创建时间
    private String uuid; // uuid
    private String requestId; // 请求id
    private String resourceId;
    private String targetMinorVersion;
    /**
     * 内存值
     */
    private String availabilityValue;
    /**
     * 升级版本
     */
    private String autoUpgradeMinorVersion;
    /**
     * 维护时间
     */
    private String maintainTime;
    /**
     * 实例规格组
     */
    private String dBInstanceClassType;
    private String vpcId;
    /**
     * 实例系列 Basic:基础版；
     */
    private String category;
    /**
     * 实例存储空间，单位：GB
     */
    private String dbInstanceStorageType;//实例存储空间，单位：GB
    /**
     * 经典网络切换到专有网络时，会生成一个新的实例Id信息
     */
    private String vpcCloudInstanceId;
    private String vswitchId;
    private Integer dbInstanceStorage;//实例存储空间，单位：GB

    private List<DbInstanceUserModel> userModels;
    private List<DbInstanceDbModel> dbModels;

    public List<DbInstanceUserModel> getUserModels() {
        return userModels;
    }

    public void setUserModels(List<DbInstanceUserModel> userModels) {
        this.userModels = userModels;
    }

    public List<DbInstanceDbModel> getDbModels() {
        return dbModels;
    }

    public void setDbModels(List<DbInstanceDbModel> dbModels) {
        this.dbModels = dbModels;
    }

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * @return the instanceId
     */
    public String getInstanceId() {
        return instanceId;
    }

    /**
     * @param instanceId the instanceId to set
     */
    public void setInstanceId(String instanceId) {
        this.instanceId = instanceId;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public String getUsedTime() {
        return usedTime;
    }

    public void setUsedTime(String usedTime) {
        this.usedTime = usedTime;
    }

    /**
     * @return the engine
     */
    public String getEngine() {
        return engine;
    }

    /**
     * @param engine the engine to set
     */
    public void setEngine(String engine) {
        this.engine = engine;
    }

    /**
     * @return the version
     */
    public String getVersion() {
        return version;
    }

    /**
     * @param version the version to set
     */
    public void setVersion(String version) {
        this.version = version;
    }

    /**
     * @return the payType
     */
    public String getPayType() {
        return payType;
    }

    /**
     * @param payType the payType to set
     */
    public void setPayType(String payType) {
        this.payType = payType;
    }

    /**
     * @return the networkType
     */
    public String getNetworkType() {
        return networkType;
    }

    /**
     * @param networkType the networkType to set
     */
    public void setNetworkType(String networkType) {
        this.networkType = networkType;
    }

    /**
     * @return the connectionMode
     */
    public String getConnectionMode() {
        return connectionMode;
    }

    /**
     * @param connectionMode the connectionMode to set
     */
    public void setConnectionMode(String connectionMode) {
        this.connectionMode = connectionMode;
    }

    /**
     * @return the regionId
     */
    public String getRegionId() {
        return regionId;
    }

    /**
     * @param regionId the regionId to set
     */
    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    /**
     * @return the zoneId
     */
    public String getZoneId() {
        return zoneId;
    }

    /**
     * @param zoneId the zoneId to set
     */
    public void setZoneId(String zoneId) {
        this.zoneId = zoneId;
    }

    /**
     * @return the connectionString
     */
    public String getConnectionString() {
        return connectionString;
    }

    /**
     * @param connectionString the connectionString to set
     */
    public void setConnectionString(String connectionString) {
        this.connectionString = connectionString;
    }

    /**
     * @return the port
     */
    public Integer getPort() {
        return port;
    }

    /**
     * @param port the port to set
     */
    public void setPort(Integer port) {
        this.port = port;
    }

    /**
     * @return the instanceType
     */
    public String getInstanceType() {
        return instanceType;
    }

    /**
     * @param instanceType the instanceType to set
     */
    public void setInstanceType(String instanceType) {
        this.instanceType = instanceType;
    }

    /**
     * @return the cpu
     */
    public Integer getCpu() {
        return cpu;
    }

    /**
     * @param cpu the cpu to set
     */
    public void setCpu(Integer cpu) {
        this.cpu = cpu;
    }

    /**
     * @return the memory
     */
    public Integer getMemory() {
        return memory;
    }

    /**
     * @param memory the memory to set
     */
    public void setMemory(Integer memory) {
        this.memory = memory;
    }

    /**
     * @return the disk
     */
    public Integer getDisk() {
        return disk;
    }

    /**
     * @param disk the disk to set
     */
    public void setDisk(Integer disk) {
        this.disk = disk;
    }

    /**
     * @return the netType
     */
    public String getNetType() {
        return netType;
    }

    /**
     * @param netType the netType to set
     */
    public void setNetType(String netType) {
        this.netType = netType;
    }

    /**
     * @return the lockMode
     */
    public String getLockMode() {
        return lockMode;
    }

    /**
     * @param lockMode the lockMode to set
     */
    public void setLockMode(String lockMode) {
        this.lockMode = lockMode;
    }

    /**
     * @return the lockReason
     */
    public String getLockReason() {
        return lockReason;
    }

    /**
     * @param lockReason the lockReason to set
     */
    public void setLockReason(String lockReason) {
        this.lockReason = lockReason;
    }

    /**
     * @return the maxConnection
     */
    public Integer getMaxConnection() {
        return maxConnection;
    }

    /**
     * @param maxConnection the maxConnection to set
     */
    public void setMaxConnection(Integer maxConnection) {
        this.maxConnection = maxConnection;
    }

    /**
     * @return the maxAccount
     */
    public Integer getMaxAccount() {
        return maxAccount;
    }

    /**
     * @param maxAccount the maxAccount to set
     */
    public void setMaxAccount(Integer maxAccount) {
        this.maxAccount = maxAccount;
    }

    /**
     * @return the maxDB
     */
    public Integer getMaxDB() {
        return maxDB;
    }

    /**
     * @param maxDB the maxDB to set
     */
    public void setMaxDB(Integer maxDB) {
        this.maxDB = maxDB;
    }

    /**
     * @return the vendorId
     */
    public Long getVendorId() {
        return vendorId;
    }

    /**
     * @param vendorId the vendorId to set
     */
    public void setVendorId(Long vendorId) {
        this.vendorId = vendorId;
    }

    /**
     * @return the region
     */
    public Long getRegion() {
        return region;
    }

    /**
     * @param region the region to set
     */
    public void setRegion(Long region) {
        this.region = region;
    }

    /**
     * @return the clusterId
     */
    public String getClusterId() {
        return clusterId;
    }

    /**
     * @param clusterId the clusterId to set
     */
    public void setClusterId(String clusterId) {
        this.clusterId = clusterId;
    }

    /**
     * @return the expireTime
     */
    public String getExpireTime() {
        return expireTime;
    }

    /**
     * @param expireTime the expireTime to set
     */
    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    /**
     * @return the maxIOPS
     */
    public Integer getMaxIOPS() {
        return maxIOPS;
    }

    /**
     * @param maxIOPS the maxIOPS to set
     */
    public void setMaxIOPS(Integer maxIOPS) {
        this.maxIOPS = maxIOPS;
    }

    /**
     * @return the masterInstanceId
     */
    public String getMasterInstanceId() {
        return masterInstanceId;
    }

    /**
     * @param masterInstanceId the masterInstanceId to set
     */
    public void setMasterInstanceId(String masterInstanceId) {
        this.masterInstanceId = masterInstanceId;
    }

    /**
     * @return the instanceClass
     */
    public String getInstanceClass() {
        return instanceClass;
    }

    /**
     * @param instanceClass the instanceClass to set
     */
    public void setInstanceClass(String instanceClass) {
        this.instanceClass = instanceClass;
    }

    /**
     * @return the clusterName
     */
    public String getClusterName() {
        return clusterName;
    }

    /**
     * @param clusterName the clusterName to set
     */
    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the remark
     */
    public String getRemark() {
        return remark;
    }

    /**
     * @param remark the remark to set
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * @return the status
     */
    public String getStatus() {
        return status;
    }

    /**
     * @param status the status to set
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * @return the gmtCreate
     */
    public Date getGmtCreate() {
        return gmtCreate;
    }

    /**
     * @param gmtCreate the gmtCreate to set
     */
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * @return the uuid
     */
    public String getUuid() {
        return uuid;
    }

    /**
     * @param uuid the uuid to set
     */
    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    /**
     * @return the requestId
     */
    public String getRequestId() {
        return requestId;
    }

    /**
     * @param requestId the requestId to set
     */
    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public String getAvailabilityValue() {
        return availabilityValue;
    }

    public void setAvailabilityValue(String availabilityValue) {
        this.availabilityValue = availabilityValue;
    }

    public String getAutoUpgradeMinorVersion() {
        return autoUpgradeMinorVersion;
    }

    public void setAutoUpgradeMinorVersion(String autoUpgradeMinorVersion) {
        this.autoUpgradeMinorVersion = autoUpgradeMinorVersion;
    }

    public String getMaintainTime() {
        return maintainTime;
    }

    public void setMaintainTime(String maintainTime) {
        this.maintainTime = maintainTime;
    }

    public String getdBInstanceClassType() {
        return dBInstanceClassType;
    }

    public void setdBInstanceClassType(String dBInstanceClassType) {
        this.dBInstanceClassType = dBInstanceClassType;
    }

    public String getVpcId() {
        return vpcId;
    }

    public void setVpcId(String vpcId) {
        this.vpcId = vpcId;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getDbInstanceStorageType() {
        return dbInstanceStorageType;
    }

    public void setDbInstanceStorageType(String dbInstanceStorageType) {
        this.dbInstanceStorageType = dbInstanceStorageType;
    }

    public String getVpcCloudInstanceId() {
        return vpcCloudInstanceId;
    }

    public void setVpcCloudInstanceId(String vpcCloudInstanceId) {
        this.vpcCloudInstanceId = vpcCloudInstanceId;
    }
}
