package com.bocloud.cmp.model.agile;

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

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: HuaExternalConnect
 * @Description:外部网络连接
 * @author: zhenpingLi/李振平
 * @date: 2020/3/16 17:25
 */
public class AgileExternalConnectModel {
    private Boolean snatEnable;//是否使能SNAT,用于控制router访问外部网络是否需要做地址转换，还是直接使用私网访问。
    private Boolean ipv6Enable;//是否使能ipv6。
    private String uuid;//对象标识，该字段不支持更新。
    private String name;//对象名称。
    private String routerUuid;//逻辑路由器，该字段不支持更新
    private String routerIp;//router侧互联ip。
    private Integer mask;//掩码。
    private String vasIp;//vas侧互联ip。
    private String routerIpv6;//router侧v6互联ip
    private String vasIpv6;//vas侧v6互联ip
    private Integer maskv6;//v6掩码
    private Integer vlan;//互联vlan
    private String allcoMode;//资源分配模式。枚举类型，支持取值：automatic，自动模式。默认值为automatic。
    private String externalGatewayUuid;//外部网关，该字段不支持更新
    private String externalNetworkUuid;//外部网络域，该字段不支持更新
    private Boolean firewallEnable;//逻辑路由器连接外部网关是否经过防火墙
    private String vasUuid;//为该外部网络连接指定逻辑防火墙
    private Boolean ipv6FwEnable;//ipv6是否过墙
    private String sdnTenantUuid;//所属租户，控制器自动提取逻辑路由器所属租户填写，该字段不支持更新
    private String logicNetworkUuid;//所属逻辑网络，控制器自动提取逻辑路由器所属逻辑网络进行设置，该字段不支持更新
    private String nat64Prefixes;//nat64前缀
    private Boolean ipv4AccessExternalEnable;//ipv4是否默认下发路由
    private Boolean ipv6AccessExternalEnable;//ipv6是否默认下发路由
    private List<AgileExternalConnectFlowRuleModel> flowRules;//流规则是否过墙等。。非必要字段暂时存储为string
    private List<AgileExternalConnectCidrModel> cidrs;//外部网络连接的子网
    private String producer; //配置来源
    private Date gmtCreate; //创建时间
    private Date gmtModify; //更新时间

    public List<AgileExternalConnectCidrModel> getCidrs() {
        return cidrs;
    }

    public void setCidrs(List<AgileExternalConnectCidrModel> cidrs) {
        this.cidrs = cidrs;
    }

    public Boolean getSnatEnable() {
        return snatEnable;
    }

    public void setSnatEnable(Boolean snatEnable) {
        this.snatEnable = snatEnable;
    }

    public Boolean getIpv6Enable() {
        return ipv6Enable;
    }

    public void setIpv6Enable(Boolean ipv6Enable) {
        this.ipv6Enable = ipv6Enable;
    }

    public String getUuid() {
        return uuid;
    }

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

    public String getName() {
        return name;
    }

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

    public String getRouterUuid() {
        return routerUuid;
    }

    public void setRouterUuid(String routerUuid) {
        this.routerUuid = routerUuid;
    }

    public String getRouterIp() {
        return routerIp;
    }

    public void setRouterIp(String routerIp) {
        this.routerIp = routerIp;
    }

    public Integer getMask() {
        return mask;
    }

    public void setMask(Integer mask) {
        this.mask = mask;
    }

    public String getVasIp() {
        return vasIp;
    }

    public void setVasIp(String vasIp) {
        this.vasIp = vasIp;
    }

    public String getRouterIpv6() {
        return routerIpv6;
    }

    public void setRouterIpv6(String routerIpv6) {
        this.routerIpv6 = routerIpv6;
    }

    public String getVasIpv6() {
        return vasIpv6;
    }

    public void setVasIpv6(String vasIpv6) {
        this.vasIpv6 = vasIpv6;
    }

    public Integer getMaskv6() {
        return maskv6;
    }

    public void setMaskv6(Integer maskv6) {
        this.maskv6 = maskv6;
    }

    public Integer getVlan() {
        return vlan;
    }

    public void setVlan(Integer vlan) {
        this.vlan = vlan;
    }

    public String getAllcoMode() {
        return allcoMode;
    }

    public void setAllcoMode(String allcoMode) {
        this.allcoMode = allcoMode;
    }

    public String getExternalGatewayUuid() {
        return externalGatewayUuid;
    }

    public void setExternalGatewayUuid(String externalGatewayUuid) {
        this.externalGatewayUuid = externalGatewayUuid;
    }

    public String getExternalNetworkUuid() {
        return externalNetworkUuid;
    }

    public void setExternalNetworkUuid(String externalNetworkUuid) {
        this.externalNetworkUuid = externalNetworkUuid;
    }

    public Boolean getFirewallEnable() {
        return firewallEnable;
    }

    public void setFirewallEnable(Boolean firewallEnable) {
        this.firewallEnable = firewallEnable;
    }

    public String getVasUuid() {
        return vasUuid;
    }

    public void setVasUuid(String vasUuid) {
        this.vasUuid = vasUuid;
    }

    public Boolean getIpv6FwEnable() {
        return ipv6FwEnable;
    }

    public void setIpv6FwEnable(Boolean ipv6FwEnable) {
        this.ipv6FwEnable = ipv6FwEnable;
    }

    public String getSdnTenantUuid() {
        return sdnTenantUuid;
    }

    public void setSdnTenantUuid(String sdnTenantUuid) {
        this.sdnTenantUuid = sdnTenantUuid;
    }

    public String getLogicNetworkUuid() {
        return logicNetworkUuid;
    }

    public void setLogicNetworkUuid(String logicNetworkUuid) {
        this.logicNetworkUuid = logicNetworkUuid;
    }

    public String getNat64Prefixes() {
        return nat64Prefixes;
    }

    public void setNat64Prefixes(String nat64Prefixes) {
        this.nat64Prefixes = nat64Prefixes;
    }

    public Boolean getIpv4AccessExternalEnable() {
        return ipv4AccessExternalEnable;
    }

    public void setIpv4AccessExternalEnable(Boolean ipv4AccessExternalEnable) {
        this.ipv4AccessExternalEnable = ipv4AccessExternalEnable;
    }

    public Boolean getIpv6AccessExternalEnable() {
        return ipv6AccessExternalEnable;
    }

    public void setIpv6AccessExternalEnable(Boolean ipv6AccessExternalEnable) {
        this.ipv6AccessExternalEnable = ipv6AccessExternalEnable;
    }

    public List<AgileExternalConnectFlowRuleModel> getFlowRules() {
        return flowRules;
    }

    public void setFlowRules(List<AgileExternalConnectFlowRuleModel> flowRules) {
        this.flowRules = flowRules;
    }

    public String getProducer() {
        return producer;
    }

    public void setProducer(String producer) {
        this.producer = producer;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModify() {
        return gmtModify;
    }

    public void setGmtModify(Date gmtModify) {
        this.gmtModify = gmtModify;
    }
}
