use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PveSdnControllerBgpConfig {
#[serde(rename = "node")]
pub node: String,
#[serde(rename = "asn")]
pub asn: i32,
#[serde(rename = "peers")]
pub peers: String,
#[serde(rename = "bgp-multipath-as-path-relax", skip_serializing_if = "Option::is_none")]
pub bgp_multipath_as_path_relax: Option<models::PveBoolean>,
#[serde(rename = "ebgp", skip_serializing_if = "Option::is_none")]
pub ebgp: Option<models::PveBoolean>,
#[serde(rename = "ebgp-multihop", skip_serializing_if = "Option::is_none")]
pub ebgp_multihop: Option<i64>,
#[serde(rename = "loopback", skip_serializing_if = "Option::is_none")]
pub loopback: Option<String>,
#[serde(rename = "type")]
pub r#type: Type,
}
impl PveSdnControllerBgpConfig {
pub fn new(node: String, asn: i32, peers: String, r#type: Type) -> PveSdnControllerBgpConfig {
PveSdnControllerBgpConfig {
node,
asn,
peers,
bgp_multipath_as_path_relax: None,
ebgp: None,
ebgp_multihop: None,
loopback: None,
r#type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "bgp")]
Bgp,
}
impl Default for Type {
fn default() -> Type {
Self::Bgp
}
}