package com.bocloud.cmp.model;

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

/**
 * 虚拟交换机类
 *
 * @author songsong
 */
public class SwitchModel {
    private String name; // 交换机名称
    private String oldName;// 旧名称
    private Long vdcId; // 数据中心ID
    private String vdcName; // 数据中心名称
    private Integer portGroupNum; // 端口组数量
    private String portGroupName;// 虚拟机端口组名称
    private Long vendorId; // 供应商ID
    private Long hostId;// 宿主机ID
    private Map<Long, List<Long>> hosts; // 宿主机和物理网卡id
    private Map<String, List<String>> values; // 宿主机和物理网卡名称
    private int vlanId;
    private Long portNum;// 端口数量
    private Integer mtu;// mtu
    private Boolean allowPromiscuous;// 是否接受混杂模式
    private Boolean macChanges;// 是否接受mac地址更改
    private Boolean forgedTransmits;// 是否接受伪传输
    private Boolean trafficEnabled;// 是否启用流量调整
    private Long averageBandWidth;// 平均带宽
    private Long peakBandWidth;// 带宽峰值
    private Long burstSize;// 突发大小
    private String policy;// 负载平衡
    private Boolean checkBeacon;// 网络故障切换检测
    private Boolean notifySwitches;// 通知交换机
    private Boolean rollingOrder;// 故障恢复
    private List<String> activeNics;// 活动适配器
    private List<String> standbyNics;// 备用适配器
    private String remark;// 描述
    private String managerName;// 管理员名称
    private String managerContact;// 管理员其他详细信息
    private String collectorIpAddress;// 收集器IP地址
    private Integer collectorPort;// 收集器端口
    private String vdsIpAddress;// 分布式交换机IP地址
    private Integer activeFlowTimeout;// 活动流导出超时
    private Integer idleFlowTimeout;// 限制流导出超时
    private Integer samplingRate;// 采样率
    private Boolean internalFlowsOnly;// 是否仅处理内部流
    private String pVlans;// 专用VLAN
    private String protocol;// 发现协议类型
    private String operation;// 发现协议操作
    private List<String> dvportNames;// 上行链路端口数名称
    private Integer dvportNum;// 上行链路端口数
    private String switcherVal;// 交换机value
    private String type;// 交换机类型
    private List<PortGroupModel> groups;
    private NetworkModel network;
    private String status;
    private Long availableIpAddressCount;
    private String cidr;
    private Boolean isDefault;
    private String switchUuid;
    private String vpcUuid;
    private String zone;
    private String creationTime;
    private String regionId;
    private Date gmtCreate;
    private Integer vni; // 逻辑交换机的vni标识。
    private Integer bd; // 逻辑交换机的BD标识。
    private String macAddress; // 逻辑交换机的MAC地址。
    private String tenantUuid; // 逻辑交换机所属租户
    private String producer; // 控制器内部用于记录调用当前接口的应用标识，不支持以"component"开头的字符串，"component"开头字符串用于控制器内部使用
    private Boolean broadcastEnable; // 使能设备上以BD为单位的广播能力
    private Boolean multicastEnable; // 使能设备上以BD为单位的组播能力
    private Boolean unicastEnable; // 使能设备上以BD为单位的单播能力
    private String broadcastCbs; // Broadcastcbs，单位为byte时，取值范围为 10000～4294967295，单位为kbyte时，取值范围为 9～4194303，单位为mbyte时，取值范围为1～4095
    private String broadcastCbsUnit; // 广播cbs单位。枚举类型，支持的取值：byte、kbyte和mbyte
    private Integer broadcastCir; // 广播cir，单位为Kbps时，取值范围为 0～4294967295，单位为Mbps时，取值范围为0～4294967，单位为Gbps时，取值范围为0～4294
    private String broadcastCirUnit; // 广播cir单位。枚举类型，支持的取值： gbps，mbps or kbps
    private String unicastCbs; // Unicastcbs，单位为byte时，取值范围为 10000～4294967295，单位为kbyte时，取值范围为 9～4194303，单位为mbyte时，取值范围为1～4095
    private String unicastCbsUnit; // Unicast cbs 单位。枚举类型，支持的取值：byte、kbyte和mbyte
    private Integer unicastCir; // 单播cir，单位为Kbps时，取值范围为 0～4294967295，单位为Mbps时，取值范围为0～4294967，单位为Gbps时，取值范围为0～4294
    private String unicastCirUnit; // 单播cir单位。枚举类型，支持的取值：gbps，mbps or kbps
    private String multicastCbs; // Multicastcbs，单位为byte时，取值范围为10000～4294967295，单位为kbyte时，取值范围为9～4194303，单位为mbyte时，取值范围为1～4095
    private String multicastCbsUnit; // Multicast cbs单位。枚举类型，支持的取值：byte、kbyte和mbyte
    private Integer multicastCir; // 多播cir，单位为Kbps时，取值范围为 0～4294967295，单位为Mbps时，取值范围为0～4294967，单位为Gbps时，取值范围为0～4294
    private String multicastCirUnit; // Multicast cir 单位。枚举类型，支持的取值：gbps，mbps or kbps
    private List<String> importRouteTargets;
    private List<String> exportRouteTargets;
    private String qosTemplateUuid;

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

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

    /**
     * @return the vdcId
     */
    public Long getVdcId() {
        return vdcId;
    }

    /**
     * @param vdcId the vdcId to set
     */
    public void setVdcId(Long vdcId) {
        this.vdcId = vdcId;
    }

    /**
     * @return the vdcName
     */
    public String getVdcName() {
        return vdcName;
    }

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

    /**
     * @return the portGroupNum
     */
    public Integer getPortGroupNum() {
        return portGroupNum;
    }

    /**
     * @param portGroupNum the portGroupNum to set
     */
    public void setPortGroupNum(Integer portGroupNum) {
        this.portGroupNum = portGroupNum;
    }

    /**
     * @return the portGroupName
     */
    public String getPortGroupName() {
        return portGroupName;
    }

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

    /**
     * @return the vendorId
     */
    public Long getVendorId() {
        return vendorId;
    }

    /**
     * @param vendorId the vendorId to set
     */
    public void setVendorId(Long vendorId) {
        this.vendorId = vendorId;
    }

    /**
     * @return the hostId
     */
    public Long getHostId() {
        return hostId;
    }

    /**
     * @param hostId the hostId to set
     */
    public void setHostId(Long hostId) {
        this.hostId = hostId;
    }

    /**
     * @return the hosts
     */
    public Map<Long, List<Long>> getHosts() {
        return hosts;
    }

    /**
     * @param hosts the hosts to set
     */
    public void setHosts(Map<Long, List<Long>> hosts) {
        this.hosts = hosts;
    }

    /**
     * @return the values
     */
    public Map<String, List<String>> getValues() {
        return values;
    }

    /**
     * @param values the values to set
     */
    public void setValues(Map<String, List<String>> values) {
        this.values = values;
    }

    /**
     * @return the vlanId
     */
    public int getVlanId() {
        return vlanId;
    }

    /**
     * @param vlanId the vlanId to set
     */
    public void setVlanId(int vlanId) {
        this.vlanId = vlanId;
    }

    /**
     * @return the portNum
     */
    public Long getPortNum() {
        return portNum;
    }

    /**
     * @param portNum the portNum to set
     */
    public void setPortNum(Long portNum) {
        this.portNum = portNum;
    }

    /**
     * @return the mtu
     */
    public Integer getMtu() {
        return mtu;
    }

    /**
     * @param mtu the mtu to set
     */
    public void setMtu(Integer mtu) {
        this.mtu = mtu;
    }

    /**
     * @return the allowPromiscuous
     */
    public Boolean getAllowPromiscuous() {
        return allowPromiscuous;
    }

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

    /**
     * @return the macChanges
     */
    public Boolean getMacChanges() {
        return macChanges;
    }

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

    /**
     * @return the forgedTransmits
     */
    public Boolean getForgedTransmits() {
        return forgedTransmits;
    }

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

    /**
     * @return the trafficEnabled
     */
    public Boolean getTrafficEnabled() {
        return trafficEnabled;
    }

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

    /**
     * @return the averageBandWidth
     */
    public Long getAverageBandWidth() {
        return averageBandWidth;
    }

    /**
     * @param averageBandWidth the averageBandWidth to set
     */
    public void setAverageBandWidth(Long averageBandWidth) {
        this.averageBandWidth = averageBandWidth;
    }

    /**
     * @return the peakBandWidth
     */
    public Long getPeakBandWidth() {
        return peakBandWidth;
    }

    /**
     * @param peakBandWidth the peakBandWidth to set
     */
    public void setPeakBandWidth(Long peakBandWidth) {
        this.peakBandWidth = peakBandWidth;
    }

    /**
     * @return the burstSize
     */
    public Long getBurstSize() {
        return burstSize;
    }

    /**
     * @param burstSize the burstSize to set
     */
    public void setBurstSize(Long burstSize) {
        this.burstSize = burstSize;
    }

    /**
     * @return the policy
     */
    public String getPolicy() {
        return policy;
    }

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

    /**
     * @return the checkBeacon
     */
    public Boolean getCheckBeacon() {
        return checkBeacon;
    }

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

    /**
     * @return the notifySwitches
     */
    public Boolean getNotifySwitches() {
        return notifySwitches;
    }

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

    /**
     * @return the rollingOrder
     */
    public Boolean getRollingOrder() {
        return rollingOrder;
    }

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

    /**
     * @return the activeNics
     */
    public List<String> getActiveNics() {
        return activeNics;
    }

    /**
     * @param activeNics the activeNics to set
     */
    public void setActiveNics(List<String> activeNics) {
        this.activeNics = activeNics;
    }

    /**
     * @return the standbyNics
     */
    public List<String> getStandbyNics() {
        return standbyNics;
    }

    /**
     * @param standbyNics the standbyNics to set
     */
    public void setStandbyNics(List<String> standbyNics) {
        this.standbyNics = standbyNics;
    }

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

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

    /**
     * @return the managerName
     */
    public String getManagerName() {
        return managerName;
    }

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

    /**
     * @return the managerContact
     */
    public String getManagerContact() {
        return managerContact;
    }

    /**
     * @param dvsContactInfo the managerContact to set
     */
    public void setManagerContact(String dvsContactInfo) {
        this.managerContact = dvsContactInfo;
    }

    /**
     * @return the collectorIpAddress
     */
    public String getCollectorIpAddress() {
        return collectorIpAddress;
    }

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

    /**
     * @return the collectorPort
     */
    public Integer getCollectorPort() {
        return collectorPort;
    }

    /**
     * @param collectorPort the collectorPort to set
     */
    public void setCollectorPort(Integer collectorPort) {
        this.collectorPort = collectorPort;
    }

    /**
     * @return the vdsIpAddress
     */
    public String getVdsIpAddress() {
        return vdsIpAddress;
    }

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

    /**
     * @return the activeFlowTimeout
     */
    public Integer getActiveFlowTimeout() {
        return activeFlowTimeout;
    }

    /**
     * @param activeFlowTimeout the activeFlowTimeout to set
     */
    public void setActiveFlowTimeout(Integer activeFlowTimeout) {
        this.activeFlowTimeout = activeFlowTimeout;
    }

    /**
     * @return the idleFlowTimeout
     */
    public Integer getIdleFlowTimeout() {
        return idleFlowTimeout;
    }

    /**
     * @param idleFlowTimeout the idleFlowTimeout to set
     */
    public void setIdleFlowTimeout(Integer idleFlowTimeout) {
        this.idleFlowTimeout = idleFlowTimeout;
    }

    /**
     * @return the samplingRate
     */
    public Integer getSamplingRate() {
        return samplingRate;
    }

    /**
     * @param samplingRate the samplingRate to set
     */
    public void setSamplingRate(Integer samplingRate) {
        this.samplingRate = samplingRate;
    }

    /**
     * @return the internalFlowsOnly
     */
    public Boolean getInternalFlowsOnly() {
        return internalFlowsOnly;
    }

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

    /**
     * @return the pVlans
     */
    public String getPVlans() {
        return pVlans;
    }

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

    /**
     * @return the protocol
     */
    public String getProtocol() {
        return protocol;
    }

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

    /**
     * @return the operation
     */
    public String getOperation() {
        return operation;
    }

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

    /**
     * @return the dvportNames
     */
    public List<String> getDvportNames() {
        return dvportNames;
    }

    /**
     * @param dvportNames the dvportNames to set
     */
    public void setDvportNames(List<String> dvportNames) {
        this.dvportNames = dvportNames;
    }

    /**
     * @return the dvportNum
     */
    public Integer getDvportNum() {
        return dvportNum;
    }

    /**
     * @param dvportNum the dvportNum to set
     */
    public void setDvportNum(Integer dvportNum) {
        this.dvportNum = dvportNum;
    }

    /**
     * @return the switcherVal
     */
    public String getSwitcherVal() {
        return switcherVal;
    }

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

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

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

    /**
     * @return the groups
     */
    public List<PortGroupModel> getGroups() {
        return groups;
    }

    /**
     * @param groups the groups to set
     */
    public void setGroups(List<PortGroupModel> groups) {
        this.groups = groups;
    }

    /**
     * @return the network
     */
    public NetworkModel getNetwork() {
        return network;
    }

    /**
     * @param network the network to set
     */
    public void setNetwork(NetworkModel network) {
        this.network = network;
    }

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

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

    /**
     * @return the oldName
     */
    public String getOldName() {
        return oldName;
    }

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

    public Long getAvailableIpAddressCount() {
        return availableIpAddressCount;
    }

    public void setAvailableIpAddressCount(Long availableIpAddressCount) {
        this.availableIpAddressCount = availableIpAddressCount;
    }

    public Boolean getIsDefault() {
        return isDefault;
    }

    public void setIsDefault(Boolean isDefault) {
        this.isDefault = isDefault;
    }

    public String getVpcUuid() {
        return vpcUuid;
    }

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

    public String getZone() {
        return zone;
    }

    public void setZone(String zone) {
        this.zone = zone;
    }

    public String getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(String creationTime) {
        this.creationTime = creationTime;
    }

    public String getCidr() {
        return cidr;
    }

    public void setCidr(String cidr) {
        this.cidr = cidr;
    }

    public String getSwitchUuid() {
        return switchUuid;
    }

    public void setSwitchUuid(String switchUuid) {
        this.switchUuid = switchUuid;
    }

    public String getRegionId() {
        return regionId;
    }

    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

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

    public String getpVlans() {
        return pVlans;
    }

    public void setpVlans(String pVlans) {
        this.pVlans = pVlans;
    }

    public Boolean getDefault() {
        return isDefault;
    }

    public void setDefault(Boolean aDefault) {
        isDefault = aDefault;
    }

    public Integer getVni() {
        return vni;
    }

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

    public Integer getBd() {
        return bd;
    }

    public void setBd(Integer bd) {
        this.bd = bd;
    }

    public String getMacAddress() {
        return macAddress;
    }

    public void setMacAddress(String macAddress) {
        this.macAddress = macAddress;
    }

    public String getTenantUuid() {
        return tenantUuid;
    }

    public void setTenantUuid(String tenantUuid) {
        this.tenantUuid = tenantUuid;
    }

    public String getProducer() {
        return producer;
    }

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

    public Boolean getBroadcastEnable() {
        return broadcastEnable;
    }

    public void setBroadcastEnable(Boolean broadcastEnable) {
        this.broadcastEnable = broadcastEnable;
    }

    public Boolean getMulticastEnable() {
        return multicastEnable;
    }

    public void setMulticastEnable(Boolean multicastEnable) {
        this.multicastEnable = multicastEnable;
    }

    public Boolean getUnicastEnable() {
        return unicastEnable;
    }

    public void setUnicastEnable(Boolean unicastEnable) {
        this.unicastEnable = unicastEnable;
    }

    public String getBroadcastCbs() {
        return broadcastCbs;
    }

    public void setBroadcastCbs(String broadcastCbs) {
        this.broadcastCbs = broadcastCbs;
    }

    public String getBroadcastCbsUnit() {
        return broadcastCbsUnit;
    }

    public void setBroadcastCbsUnit(String broadcastCbsUnit) {
        this.broadcastCbsUnit = broadcastCbsUnit;
    }

    public Integer getBroadcastCir() {
        return broadcastCir;
    }

    public void setBroadcastCir(Integer broadcastCir) {
        this.broadcastCir = broadcastCir;
    }

    public String getBroadcastCirUnit() {
        return broadcastCirUnit;
    }

    public void setBroadcastCirUnit(String broadcastCirUnit) {
        this.broadcastCirUnit = broadcastCirUnit;
    }

    public String getUnicastCbs() {
        return unicastCbs;
    }

    public void setUnicastCbs(String unicastCbs) {
        this.unicastCbs = unicastCbs;
    }

    public String getUnicastCbsUnit() {
        return unicastCbsUnit;
    }

    public void setUnicastCbsUnit(String unicastCbsUnit) {
        this.unicastCbsUnit = unicastCbsUnit;
    }

    public Integer getUnicastCir() {
        return unicastCir;
    }

    public void setUnicastCir(Integer unicastCir) {
        this.unicastCir = unicastCir;
    }

    public String getUnicastCirUnit() {
        return unicastCirUnit;
    }

    public void setUnicastCirUnit(String unicastCirUnit) {
        this.unicastCirUnit = unicastCirUnit;
    }

    public String getMulticastCbs() {
        return multicastCbs;
    }

    public void setMulticastCbs(String multicastCbs) {
        this.multicastCbs = multicastCbs;
    }

    public String getMulticastCbsUnit() {
        return multicastCbsUnit;
    }

    public void setMulticastCbsUnit(String multicastCbsUnit) {
        this.multicastCbsUnit = multicastCbsUnit;
    }

    public Integer getMulticastCir() {
        return multicastCir;
    }

    public void setMulticastCir(Integer multicastCir) {
        this.multicastCir = multicastCir;
    }

    public String getMulticastCirUnit() {
        return multicastCirUnit;
    }

    public void setMulticastCirUnit(String multicastCirUnit) {
        this.multicastCirUnit = multicastCirUnit;
    }

    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 String getQosTemplateUuid() {
        return qosTemplateUuid;
    }

    public void setQosTemplateUuid(String qosTemplateUuid) {
        this.qosTemplateUuid = qosTemplateUuid;
    }
}
