package com.bocloud.cmp.model.agile;

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

public class AgileLogicRouterModel {
    private String name;// 路由名称
    private String status;// 路由的状态
    private String routerUuid;// 路由uuid
    private Boolean adminStateup;// 管理员状态
    private String networkUuid;// 网关uuid
    private Boolean enableSnat;// snat 有snat true， 默认tr
    private Boolean ha;// 高可用
    private String availabilityZones;// 可用域
    private String projectUuid;
    private String tenantUuid;
    private String remark;
    private String firewallId;
    private String floatingIp;
    private String requestId;
    private Date createTime;
    private String subnetUuid;
    private String attachNetworkUuid;
    private String address;
    private String portUuid;
    //-------2020/3/26 新插入代码 start
    //	private String regionId;
    private String vpcUuid; // 华为Sdn逻辑路由器所在的VPC id
    private List<AgileFabricPoolModel> routerLocations; // 华为Sdn逻辑路由器使用的fabric
    private String routerType; // 华为Sdn逻辑路由器类型
    private Integer vni; // 华为Sdn vni id，VXLAN互通的唯一标识。
    private String vrfName; // 华为Sdn VRF名称
    private String tenantName;
    private String egressGatewayDevGrpUuid; // 华为Sdn逻辑路由器出口网关设备组Id。由所选设备或设备组id拼接而成。
    private List<String> importRouteTargets; // 华为Sdn逻辑路由器BGP EVPN的 import route-target扩展团体属性。
    private List<String> exportRouteTargets; // 华为Sdn逻辑路由器BGP EVPN的 export route-target扩展团体属性。
    private List<AgileSubnetModel> agileSubnetModels; // 华为Sdn逻辑路由器的子网
    private String producer; // 华为Sdn 控制器内部用于记录调用当前接口的应用标识，不支持以"component"开头的字符串，"component"开头字符串用于控制器内部使用。
    private List<AgileStaticRouterModel> agileStatisRouterModels; // 静态路由
    private AgileBgpModel agileBgpModel;// bgp
    private String statisRouterGroupUuid; // 静态路由组id
    private String statisRouterGroupSource;  // 静态路由组来源
    //-------2020/3/26 新插入代码 end
    private Date gmtCreate; //创建时间
    private Date gmtModify; //更新时间

    public String getVpcUuid() {
        return vpcUuid;
    }

    public void setVpcUuid(String vpcUuid) {
        this.vpcUuid = vpcUuid;
    }

    public List<AgileFabricPoolModel> getRouterLocations() {
        return routerLocations;
    }

    public void setRouterLocations(List<AgileFabricPoolModel> routerLocations) {
        this.routerLocations = routerLocations;
    }

    public String getRouterType() {
        return routerType;
    }

    public void setRouterType(String routerType) {
        this.routerType = routerType;
    }

    public Integer getVni() {
        return vni;
    }

    public void setVni(Integer vni) {
        this.vni = vni;
    }

    public String getVrfName() {
        return vrfName;
    }

    public void setVrfName(String vrfName) {
        this.vrfName = vrfName;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getEgressGatewayDevGrpUuid() {
        return egressGatewayDevGrpUuid;
    }

    public void setEgressGatewayDevGrpUuid(String egressGatewayDevGrpUuid) {
        this.egressGatewayDevGrpUuid = egressGatewayDevGrpUuid;
    }

    public List<String> getImportRouteTargets() {
        return importRouteTargets;
    }

    public void setImportRouteTargets(List<String> importRouteTargets) {
        this.importRouteTargets = importRouteTargets;
    }

    public List<String> getExportRouteTargets() {
        return exportRouteTargets;
    }

    public void setExportRouteTargets(List<String> exportRouteTargets) {
        this.exportRouteTargets = exportRouteTargets;
    }

    public List<AgileSubnetModel> getAgileSubnetModels() {
        return agileSubnetModels;
    }

    public void setAgileSubnetModels(List<AgileSubnetModel> agileSubnetModels) {
        this.agileSubnetModels = agileSubnetModels;
    }

    public String getProducer() {
        return producer;
    }

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

    public List<AgileStaticRouterModel> getAgileStatisRouterModels() {
        return agileStatisRouterModels;
    }

    public void setAgileStatisRouterModels(List<AgileStaticRouterModel> agileStatisRouterModels) {
        this.agileStatisRouterModels = agileStatisRouterModels;
    }

    public AgileBgpModel getAgileBgpModel() {
        return agileBgpModel;
    }

    public void setAgileBgpModel(AgileBgpModel agileBgpModel) {
        this.agileBgpModel = agileBgpModel;
    }

    public String getStatisRouterGroupUuid() {
        return statisRouterGroupUuid;
    }

    public void setStatisRouterGroupUuid(String statisRouterGroupUuid) {
        this.statisRouterGroupUuid = statisRouterGroupUuid;
    }

    public String getStatisRouterGroupSource() {
        return statisRouterGroupSource;
    }

    public void setStatisRouterGroupSource(String statisRouterGroupSource) {
        this.statisRouterGroupSource = statisRouterGroupSource;
    }

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

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

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

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

    /**
     * @return the routerUuid
     */
    public String getRouterUuid() {
        return routerUuid;
    }

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

    /**
     * @return the adminStateup
     */
    public Boolean getAdminStateup() {
        return adminStateup;
    }

    /**
     * @param adminStateup the adminStateup to set
     */
    public void setAdminStateup(Boolean adminStateup) {
        this.adminStateup = adminStateup;
    }

    /**
     * @return the networkUuid
     */
    public String getNetworkUuid() {
        return networkUuid;
    }

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

    /**
     * @return the enableSnat
     */
    public Boolean getEnableSnat() {
        return enableSnat;
    }

    /**
     * @param enableSnat the enableSnat to set
     */
    public void setEnableSnat(Boolean enableSnat) {
        this.enableSnat = enableSnat;
    }

    /**
     * @return the ha
     */
    public Boolean getHa() {
        return ha;
    }

    /**
     * @param ha the ha to set
     */
    public void setHa(Boolean ha) {
        this.ha = ha;
    }

    /**
     * @return the availabilityZones
     */
    public String getAvailabilityZones() {
        return availabilityZones;
    }

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

    /**
     * @return the projectUuid
     */
    public String getProjectUuid() {
        return projectUuid;
    }

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

    /**
     * @return the tenantUuid
     */
    public String getTenantUuid() {
        return tenantUuid;
    }

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

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

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

    /**
     * @return the firewallId
     */
    public String getFirewallId() {
        return firewallId;
    }

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

    /**
     * @return the floatingIp
     */
    public String getFloatingIp() {
        return floatingIp;
    }

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

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

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

    /**
     * @return the createTime
     */
    public Date getCreateTime() {
        return createTime;
    }

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

    /**
     * @return the subnetUuid
     */
    public String getSubnetUuid() {
        return subnetUuid;
    }

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

    /**
     * @return the address
     */
    public String getAddress() {
        return address;
    }

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

    /**
     * @return the attachNetworkUuid
     */
    public String getAttachNetworkUuid() {
        return attachNetworkUuid;
    }

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

    /**
     * @return the portUuid
     */
    public String getPortUuid() {
        return portUuid;
    }

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

    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;
    }

    public AgileLogicRouterModel() {
        super();
    }

    public AgileLogicRouterModel(String routerUuid, String name, String remark, Date createTime, String firewallId,
                                 String floatingIp, String requestId) {
        this.routerUuid = routerUuid;
        this.name = name;
        this.remark = remark;
        this.createTime = createTime;
        this.firewallId = firewallId;
        this.floatingIp = floatingIp;
        this.requestId = requestId;
    }
}
