package com.bocloud.nms.model.agile;

import java.util.List;

/*
 * bgpPeer
 */
public class AgileBgpPeerModel {
    private String bgpPeerUuid; // BGP对端ID
    private String addressFamilyType; // 地址类型。枚举类型，支持的取值：Ipv4、Ipv6
    private String peerIp; // 对端IP
    private String peerAs; // 对端自治系统号，数字：1-4294967295；或者m.n，m范围：1-65535，n范围：0-65535
    private String bgpPeerType; // 静态路由下一跳VRF名。静态路由跨VRF时使用，与nexthopLogicRouterId二选一，不可同时存在
    private String deviceGroupUuid; // 设备组ID，与设备组名称2选1。所选逻辑路由器绑定分布式fabric时必填
    private String deviceGroupName; // 设备组名称，与设备组ID2选1。所选逻辑路由器绑定分布式fabric时必填
    private String logicInterfaceUuid; // 逻辑路由器关联的互联接口ID
    private Integer keepaliveTime; // 活跃时间，整数形式，取值范围为0～21845，单位：秒
    private Integer holdTime; // 保持时间，取值范围为0或者3～65535，单位：秒。建议配置的保持时间大于20秒。如果保持时间小于20秒，可能会造成邻居会话的中断
    private Boolean bfd; // 联动类型是否为bfd,仅当对端类型为直连（Direct）时可开启bfd联动类型
    private Boolean suppress; // 是否引入抑制
    private Boolean allowAsLoop; // 是否允许AS回环
    private String authType; // 认证类型。枚举类型，支持的取值：Keychain：Keychain方式认证；Password：密码认证方式；None：无认证方式。该字段不支持更新
    private String keychainName; // Keychain名称，当keychain方式认证时，必填
    private String passwordType; // 取值为CipherText(密文密码字符串)，当password方式认证时，必填
    private String passwordText; // 密码字符串
    private List<AgileDeviceModel> agileDeviceModels;

    public String getBgpPeerUuid() {
        return bgpPeerUuid;
    }

    public void setBgpPeerUuid(String bgpPeerUuid) {
        this.bgpPeerUuid = bgpPeerUuid;
    }

    public String getAddressFamilyType() {
        return addressFamilyType;
    }

    public void setAddressFamilyType(String addressFamilyType) {
        this.addressFamilyType = addressFamilyType;
    }

    public String getPeerIp() {
        return peerIp;
    }

    public void setPeerIp(String peerIp) {
        this.peerIp = peerIp;
    }

    public String getPeerAs() {
        return peerAs;
    }

    public void setPeerAs(String peerAs) {
        this.peerAs = peerAs;
    }

    public String getBgpPeerType() {
        return bgpPeerType;
    }

    public void setBgpPeerType(String bgpPeerType) {
        this.bgpPeerType = bgpPeerType;
    }

    public String getDeviceGroupUuid() {
        return deviceGroupUuid;
    }

    public void setDeviceGroupUuid(String deviceGroupUuid) {
        this.deviceGroupUuid = deviceGroupUuid;
    }

    public String getDeviceGroupName() {
        return deviceGroupName;
    }

    public void setDeviceGroupName(String deviceGroupName) {
        this.deviceGroupName = deviceGroupName;
    }

    public String getLogicInterfaceUuid() {
        return logicInterfaceUuid;
    }

    public void setLogicInterfaceUuid(String logicInterfaceUuid) {
        this.logicInterfaceUuid = logicInterfaceUuid;
    }

    public Integer getKeepaliveTime() {
        return keepaliveTime;
    }

    public void setKeepaliveTime(Integer keepaliveTime) {
        this.keepaliveTime = keepaliveTime;
    }

    public Integer getHoldTime() {
        return holdTime;
    }

    public void setHoldTime(Integer holdTime) {
        this.holdTime = holdTime;
    }

    public Boolean getBfd() {
        return bfd;
    }

    public void setBfd(Boolean bfd) {
        this.bfd = bfd;
    }

    public Boolean getSuppress() {
        return suppress;
    }

    public void setSuppress(Boolean suppress) {
        this.suppress = suppress;
    }

    public Boolean getAllowAsLoop() {
        return allowAsLoop;
    }

    public void setAllowAsLoop(Boolean allowAsLoop) {
        this.allowAsLoop = allowAsLoop;
    }

    public String getAuthType() {
        return authType;
    }

    public void setAuthType(String authType) {
        this.authType = authType;
    }

    public String getKeychainName() {
        return keychainName;
    }

    public void setKeychainName(String keychainName) {
        this.keychainName = keychainName;
    }

    public String getPasswordType() {
        return passwordType;
    }

    public void setPasswordType(String passwordType) {
        this.passwordType = passwordType;
    }

    public String getPasswordText() {
        return passwordText;
    }

    public void setPasswordText(String passwordText) {
        this.passwordText = passwordText;
    }

    public List<AgileDeviceModel> getAgileDeviceModels() {
        return agileDeviceModels;
    }

    public void setAgileDeviceModels(List<AgileDeviceModel> agileDeviceModels) {
        this.agileDeviceModels = agileDeviceModels;
    }
}
