use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct BGPNeighbor {
#[serde(rename = "Address")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(rename = "AllowOwnASEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_own_as_enabled: Option<bool>,
#[serde(rename = "CIDR")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cidr: Option<i64>,
#[serde(rename = "ConnectRetrySeconds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub connect_retry_seconds: Option<i64>,
#[serde(rename = "Enabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(rename = "HoldTimeSeconds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hold_time_seconds: Option<i64>,
#[serde(rename = "KeepaliveIntervalSeconds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keepalive_interval_seconds: Option<i64>,
#[serde(rename = "LocalAS")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub local_as: Option<i64>,
#[serde(rename = "LogStateChangesEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub log_state_changes_enabled: Option<bool>,
#[serde(rename = "MaxPrefix")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_prefix: Option<models::address_pool::v1_2_1::MaxPrefix>,
#[serde(rename = "MinimumAdvertisementIntervalSeconds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub minimum_advertisement_interval_seconds: Option<i64>,
#[serde(rename = "PassiveModeEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub passive_mode_enabled: Option<bool>,
#[serde(rename = "PathMTUDiscoveryEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_mtu_discovery_enabled: Option<bool>,
#[serde(rename = "PeerAS")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub peer_as: Option<i64>,
#[serde(rename = "ReplacePeerASEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replace_peer_as_enabled: Option<bool>,
#[serde(rename = "TCPMaxSegmentSizeBytes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tcp_max_segment_size_bytes: Option<i64>,
#[serde(rename = "TreatAsWithdrawEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub treat_as_withdraw_enabled: Option<bool>,
}
impl crate::Metadata<'static> for BGPNeighbor {
const JSON_SCHEMA: &'static str = "AddressPool.v1_2_1.json";
}