package com.bocloud.cmp.model.agile.sfc;

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: HuaContractRule
 * @Description:业务链策略规则
 * @author: zhenpingLi/李振平
 * @date: 2020/3/11 13:59
 */
public class AgileSfcContractRuleModel {
    private String uuid;//规则标识，该字段不支持更新
    private String contractUuid; //业务链策略对象标识
    private String behavior;//规则的动作，DENY：拒绝，FORWARD：转发，REDIRECT：重定向。
    private Integer orderNum;//规则顺序
    //classifier对象的参数列表
    private String ipFamily;//IP地址族，配置值支持ipv4或ipv6，二选其一。
    private String sourceIp;//源IP，需要同地址族配置保持对应。
    private String destinationIp;//目的IP，需要同地址族配置保持对应。
    private Integer protocol;//整数形式，取值范围是0～255，其中gre(47)，icmp(1)，igmp(2)，ip(0)，ipinip(4)，ospf(89)，tcp(6)，udp(17)，icmpv6 （58）。
    private String sourcePortRange;//源端口，范围0:65535，格式如4或者6:8。
    private String destPortRange;//目的端口，范围0:65535，格式如4或者6:8。
    private String direction;//方向In Out Bothdirectional
    private Boolean logging;// 日志
    // tcpFlag为array数组，暂时存储为json字符串
    private String tcpFlag; //TCP标记列表 [{"TcpFlagEnum":Ack}] 取值范围：{ Established，Urg，Ack，Psh，Rst，Syn，Fin}
    private String icmpType;//ICMP标记
    private String icmp6Type;//ICMPv6标记

    public String getContractUuid() {
        return contractUuid;
    }

    public void setContractUuid(String contractUuid) {
        this.contractUuid = contractUuid;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getBehavior() {
        return behavior;
    }

    public void setBehavior(String behavior) {
        this.behavior = behavior;
    }

    public Integer getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    public String getIpFamily() {
        return ipFamily;
    }

    public void setIpFamily(String ipFamily) {
        this.ipFamily = ipFamily;
    }

    public String getSourceIp() {
        return sourceIp;
    }

    public void setSourceIp(String sourceIp) {
        this.sourceIp = sourceIp;
    }

    public String getDestinationIp() {
        return destinationIp;
    }

    public void setDestinationIp(String destinationIp) {
        this.destinationIp = destinationIp;
    }

    public Integer getProtocol() {
        return protocol;
    }

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

    public String getSourcePortRange() {
        return sourcePortRange;
    }

    public void setSourcePortRange(String sourcePortRange) {
        this.sourcePortRange = sourcePortRange;
    }

    public String getDestPortRange() {
        return destPortRange;
    }

    public void setDestPortRange(String destPortRange) {
        this.destPortRange = destPortRange;
    }

    public String getDirection() {
        return direction;
    }

    public void setDirection(String direction) {
        this.direction = direction;
    }

    public Boolean getLogging() {
        return logging;
    }

    public void setLogging(Boolean logging) {
        this.logging = logging;
    }

    public String getTcpFlag() {
        return tcpFlag;
    }

    public void setTcpFlag(String tcpFlag) {
        this.tcpFlag = tcpFlag;
    }

    public String getIcmpType() {
        return icmpType;
    }

    public void setIcmpType(String icmpType) {
        this.icmpType = icmpType;
    }

    public String getIcmp6Type() {
        return icmp6Type;
    }

    public void setIcmp6Type(String icmp6Type) {
        this.icmp6Type = icmp6Type;
    }
}
