package com.bocloud.cmp.model.h3c;

import java.util.List;

public class H3cBackupStrategyModel {
    /**
     * id
     */
    private Long id;
    /**
     * name
     */
    private String name;
    /**
     * 描述，最大输入长度为120个字符。
     */
    private String description;
    /**
     * 备份类型：0：共享文件系统；1：远端服务器
     */
    private Integer storeMode;
    /**
     * 共享文件位置。
     */
    private String storeLocation;
    /**
     * 目的的服务器IP地址
     */
    private String targetAddr;
    /**
     * 目的服务器用户名
     */
    private String loginName;
    /**
     * 目的服务器密码
     */
    private String password;
    /**
     * 备份策略的频率,0:每月，1：每周，2：每日。
     */
    private Integer frequency;
    /**
     * 备份策略的日期。
     */
    private Integer day;
    /**
     * 备份策略的时间：时。
     */
    private Integer hour;
    /**
     * 备份策略的时间：分
     */
    private Integer minutes;
    /**
     * 备份策略是否生效 1：生效，0：无效。
     */
    private Integer state;
    /**
     * 是否启用增量备份：不启用：0，启用增量备份：1，启用差异备份：2。整型（Integer）类型，必须。
     */
    private Integer incBackupFlag;
    /**
     * 频率:，1：每周，2：每日，3：每小时。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。
     */
    private Integer incBackupFrequency;
    /**
     * 哪天：几日，或星期几，每天 。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。
     */
    private Integer incBackupDay;
    /**
     * 增量备份的时间：时。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。。
     */
    private Integer incBackupHour;
    /**
     * 增量备份的时间：分。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。
     */
    private Integer incBackupMinutes;
    /**
     * 服务器类型，0：选择FTP，1:选择SCP。 整型（Integer）类型，当 storeMode 为 1：远端服务器 时 必须。
     */
    private Integer serverType;
    /**
     * 是否更新云主机列表。 布尔（boolean）类型，必须，默认为true。
     */
    private Boolean updateVMList;
    /**
     * 磁盘I/O阈值(MB)。 整型（Integer）类型，必须。
     */
    private Integer backupThreshold;
    /**
     * 全量备份保留个数。 整型（Integer）类型，可选。
     */
    private Integer keepTimes;
    /**
     * 全量备份时间段截止小时。 整型（Integer）类型，必须。
     */
    private Integer hourEnd;
    /**
     * 全量备份时间段截止分。 整型（Integer）类型，必须。
     */
    private Integer minutesEnd;
    /**
     * 增量备份时间段截止小时。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。
     */
    private Integer incHourEnd;
    /**
     * 增量备份时间段截止分。 整型（Integer）类型，当incBackupFlag为1：启用增量备份或2：启用差异备份时必须。
     */
    private Integer incMinutesEnd;
    /**
     * 备份策略的云主机信息。 集合（List）类型。
     */
    private List<VmListObject> vmList;

    public static class VmListObject {
        /**
         * 云主机ID。 长整型（Long）类型，必须。
         */
        private Long domainId;

        public Long getDomainId() {
            return domainId;
        }

        public void setDomainId(Long domainId) {
            this.domainId = domainId;
        }

        public VmListObject(Long domainId) {
            this.domainId = domainId;
        }
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getStoreMode() {
        return storeMode;
    }

    public void setStoreMode(Integer storeMode) {
        this.storeMode = storeMode;
    }

    public String getStoreLocation() {
        return storeLocation;
    }

    public void setStoreLocation(String storeLocation) {
        this.storeLocation = storeLocation;
    }

    public String getTargetAddr() {
        return targetAddr;
    }

    public void setTargetAddr(String targetAddr) {
        this.targetAddr = targetAddr;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getFrequency() {
        return frequency;
    }

    public void setFrequency(Integer frequency) {
        this.frequency = frequency;
    }

    public Integer getDay() {
        return day;
    }

    public void setDay(Integer day) {
        this.day = day;
    }

    public Integer getHour() {
        return hour;
    }

    public void setHour(Integer hour) {
        this.hour = hour;
    }

    public Integer getMinutes() {
        return minutes;
    }

    public void setMinutes(Integer minutes) {
        this.minutes = minutes;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getIncBackupFlag() {
        return incBackupFlag;
    }

    public void setIncBackupFlag(Integer incBackupFlag) {
        this.incBackupFlag = incBackupFlag;
    }

    public Integer getIncBackupFrequency() {
        return incBackupFrequency;
    }

    public void setIncBackupFrequency(Integer incBackupFrequency) {
        this.incBackupFrequency = incBackupFrequency;
    }

    public Integer getIncBackupDay() {
        return incBackupDay;
    }

    public void setIncBackupDay(Integer incBackupDay) {
        this.incBackupDay = incBackupDay;
    }

    public Integer getIncBackupHour() {
        return incBackupHour;
    }

    public void setIncBackupHour(Integer incBackupHour) {
        this.incBackupHour = incBackupHour;
    }

    public Integer getIncBackupMinutes() {
        return incBackupMinutes;
    }

    public void setIncBackupMinutes(Integer incBackupMinutes) {
        this.incBackupMinutes = incBackupMinutes;
    }

    public Integer getServerType() {
        return serverType;
    }

    public void setServerType(Integer serverType) {
        this.serverType = serverType;
    }

    public Boolean getUpdateVMList() {
        return updateVMList;
    }

    public void setUpdateVMList(Boolean updateVMList) {
        this.updateVMList = updateVMList;
    }

    public Integer getBackupThreshold() {
        return backupThreshold;
    }

    public void setBackupThreshold(Integer backupThreshold) {
        this.backupThreshold = backupThreshold;
    }

    public Integer getKeepTimes() {
        return keepTimes;
    }

    public void setKeepTimes(Integer keepTimes) {
        this.keepTimes = keepTimes;
    }

    public Integer getHourEnd() {
        return hourEnd;
    }

    public void setHourEnd(Integer hourEnd) {
        this.hourEnd = hourEnd;
    }

    public Integer getMinutesEnd() {
        return minutesEnd;
    }

    public void setMinutesEnd(Integer minutesEnd) {
        this.minutesEnd = minutesEnd;
    }

    public Integer getIncHourEnd() {
        return incHourEnd;
    }

    public void setIncHourEnd(Integer incHourEnd) {
        this.incHourEnd = incHourEnd;
    }

    public Integer getIncMinutesEnd() {
        return incMinutesEnd;
    }

    public void setIncMinutesEnd(Integer incMinutesEnd) {
        this.incMinutesEnd = incMinutesEnd;
    }

    public List<VmListObject> getVmList() {
        return vmList;
    }

    public void setVmList(List<VmListObject> vmList) {
        this.vmList = vmList;
    }
}
