package com.bocloud.cmp.model.agile;

import java.util.List;

/**
 * 华为SDN的Fabric池，一个Fabric池通常包含leaf交换机和spine交换机，不包括防火墙等l4-l7设备
 */
public class AgileFabricPoolModel {
    private String uuid; // Fabric ID, 该字段不支持更新
    private String name; // Fabric名称
    private String remark; // Fabric描述
    private String networkType; // Fabric VXLAN类型。枚举类型，支持的取值：Distributed：分布式；Centralized：集中式
    private String physicalNetworkMode; // Fabric组网类型，当前仅支持VXLAN
    private Boolean bgpEvpnEnable; // 是否开启BGPEVPN
    private String extInterfaceType; // 出接口类型。枚举类型，支持的取值：vBdIf；vlanIf。该字段不支持更新
    private Boolean arpBroadcastSuppression; // 是否开启ARP广播抑制
    private String dciSplitGroup; // DCI分隔组ID
    private Boolean microSegmentCapability; // 是否支持微分段能力
    private Boolean multicastCapability; // 是否支持组播能力
    private List<String> segmentMasks; // 掩码的参数
    private String aclModel; // 是否支持acl6匹配模式。枚举类型，支持的取值：loose：松散；strict严格
    private String sfcCapability; // 业务链能力类型。枚举类型，支持的取值：PBR；NSH。微分段未开启才允许配业务链
    private String fabricRole; // 华为sdn默认出口Fabric的角色。枚举类型，支持的取值：master：主fabric；backup：备fabric。
    private List<AgileDeviceGroupModel> agileDeviceGroupModels;// 华为sdn设备组，要求列表中的设备属于同一设备组。

    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 getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getNetworkType() {
        return networkType;
    }

    public void setNetworkType(String networkType) {
        this.networkType = networkType;
    }

    public String getPhysicalNetworkMode() {
        return physicalNetworkMode;
    }

    public void setPhysicalNetworkMode(String physicalNetworkMode) {
        this.physicalNetworkMode = physicalNetworkMode;
    }

    public String getExtInterfaceType() {
        return extInterfaceType;
    }

    public void setExtInterfaceType(String extInterfaceType) {
        this.extInterfaceType = extInterfaceType;
    }

    public String getAclModel() {
        return aclModel;
    }

    public void setAclModel(String aclModel) {
        this.aclModel = aclModel;
    }

    public String getSfcCapability() {
        return sfcCapability;
    }

    public void setSfcCapability(String sfcCapability) {
        this.sfcCapability = sfcCapability;
    }

    public String getFabricRole() {
        return fabricRole;
    }

    public void setFabricRole(String fabricRole) {
        this.fabricRole = fabricRole;
    }

    public List<AgileDeviceGroupModel> getAgileDeviceGroupModels() {
        return agileDeviceGroupModels;
    }

    public void setAgileDeviceGroupModels(List<AgileDeviceGroupModel> agileDeviceGroupModels) {
        this.agileDeviceGroupModels = agileDeviceGroupModels;
    }

    public Boolean getBgpEvpnEnable() {
        return bgpEvpnEnable;
    }

    public void setBgpEvpnEnable(Boolean bgpEvpnEnable) {
        this.bgpEvpnEnable = bgpEvpnEnable;
    }

    public Boolean getArpBroadcastSuppression() {
        return arpBroadcastSuppression;
    }

    public void setArpBroadcastSuppression(Boolean arpBroadcastSuppression) {
        this.arpBroadcastSuppression = arpBroadcastSuppression;
    }

    public String getDciSplitGroup() {
        return dciSplitGroup;
    }

    public void setDciSplitGroup(String dciSplitGroup) {
        this.dciSplitGroup = dciSplitGroup;
    }

    public Boolean getMicroSegmentCapability() {
        return microSegmentCapability;
    }

    public void setMicroSegmentCapability(Boolean microSegmentCapability) {
        this.microSegmentCapability = microSegmentCapability;
    }

    public Boolean getMulticastCapability() {
        return multicastCapability;
    }

    public void setMulticastCapability(Boolean multicastCapability) {
        this.multicastCapability = multicastCapability;
    }

    public List<String> getSegmentMasks() {
        return segmentMasks;
    }

    public void setSegmentMasks(List<String> segmentMasks) {
        this.segmentMasks = segmentMasks;
    }
}
