package com.bocloud.cmp.model.h3c;

import java.util.Date;

public class H3cAclStrategyModel {
    /**
     * ACL策略名。
     * 字符串（String）类型。
     */
    private String name;
    /**
     * ACL策略描述。
     * 字符串（String）类型。
     */
    private String description;
    /**
     * 入方向默认动作 (0:拒绝;1:允许)。
     * 整数（Integer）类型。
     */
    private Integer defaultAclAction;
    /**
     * 出方向默认动作 (0:拒绝;1:允许)。
     * 整数（Integer）类型。
     */
    private Integer defaultAclOutAction;
    /**
     * ACL类型，3：IPV4，2：二层ACL（基于MAC）。
     * 整数（Integer）类型。
     */
    private Integer type;
    /**
     * 启用时间段，1启用，即ACL只在指定时间内生效，0，不启用。
     * 整数（Integer）类型。
     */
    private Integer timeRangeEnabled;
    /**
     * ACL生效时间段，多个时间段以逗号分隔，时间段格式为"0-3,5-5,8-12"
     * 字符串（String）类型。
     */
    private String effectTimeRange;
    /**
     * ACL策略创建时间。
     * 时间（Date）类型。
     */
    private Date createTime;

    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 getDefaultAclAction() {
        return defaultAclAction;
    }

    public void setDefaultAclAction(Integer defaultAclAction) {
        this.defaultAclAction = defaultAclAction;
    }

    public Integer getDefaultAclOutAction() {
        return defaultAclOutAction;
    }

    public void setDefaultAclOutAction(Integer defaultAclOutAction) {
        this.defaultAclOutAction = defaultAclOutAction;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getTimeRangeEnabled() {
        return timeRangeEnabled;
    }

    public void setTimeRangeEnabled(Integer timeRangeEnabled) {
        this.timeRangeEnabled = timeRangeEnabled;
    }

    public String getEffectTimeRange() {
        return effectTimeRange;
    }

    public void setEffectTimeRange(String effectTimeRange) {
        this.effectTimeRange = effectTimeRange;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public static class Rule {
        /**
         * ACL规则协议号码, ICMP为1,TCP为6,UDP为17，所有协议为65535。
         * 整数（int）类型。
         */
        private Integer protocol;
        /**
         * 源IP地址。
         * 字符串（String）类型。
         */
        private String srcIp;
        /**
         * 源子网掩码。
         * 字符串（String）类型。
         */
        private String srcMask;
        /**
         * 源端口。
         * 整数（Integer）类型。
         */
        private Integer srcPort;
        /**
         * 目的IP地址。
         * 字符串（String）类型。
         */
        private String destIp;
        /**
         * 目的子网掩码。
         * 字符串（String）类型。
         */
        private String destMask;
        /**
         * 目的端口。
         * 整型（Integer）类型。
         */
        private Integer destPort;
        /**
         * ACL规则对报文采取的动作(0:拒绝;1:允许)。
         * 整数（int）类型。
         */
        private Integer action;
        /**
         * 优先级。
         * 整数（int）类型。
         */
        private Integer priority;

        public Integer getProtocol() {
            return protocol;
        }

        public void setProtocol(Integer protocol) {
            this.protocol = protocol;
        }

        public String getSrcIp() {
            return srcIp;
        }

        public void setSrcIp(String srcIp) {
            this.srcIp = srcIp;
        }

        public String getSrcMask() {
            return srcMask;
        }

        public void setSrcMask(String srcMask) {
            this.srcMask = srcMask;
        }

        public Integer getSrcPort() {
            return srcPort;
        }

        public void setSrcPort(Integer srcPort) {
            this.srcPort = srcPort;
        }

        public String getDestIp() {
            return destIp;
        }

        public void setDestIp(String destIp) {
            this.destIp = destIp;
        }

        public String getDestMask() {
            return destMask;
        }

        public void setDestMask(String destMask) {
            this.destMask = destMask;
        }

        public Integer getDestPort() {
            return destPort;
        }

        public void setDestPort(Integer destPort) {
            this.destPort = destPort;
        }

        public Integer getAction() {
            return action;
        }

        public void setAction(Integer action) {
            this.action = action;
        }

        public Integer getPriority() {
            return priority;
        }

        public void setPriority(Integer priority) {
            this.priority = priority;
        }
    }
}
