redfish-codegen 0.3.1

An unopinionated translation of the Redfish specification into Rust.
Documentation
// Generated by redfish-codegen. Do not modify.

use crate::models;

/// Border Gateway Protocol (BGP) neighbor related properties.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct BGPNeighbor {
    /// Border Gateway Protocol (BGP) neighbor address.
    #[serde(rename = "Address")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub address: Option<String>,
    /// Allow own Autonomous System (AS) status.
    #[serde(rename = "AllowOwnASEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub allow_own_as_enabled: Option<bool>,
    /// The Classless Inter-Domain Routing (CIDR) value used for neighbor communication.  This is the number of ones before the first zero in the subnet mask.
    #[serde(rename = "CIDR")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub cidr: Option<i64>,
    /// Border Gateway Protocol (BGP) retry timer in seconds.
    #[serde(rename = "ConnectRetrySeconds")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub connect_retry_seconds: Option<i64>,
    /// An indication of whether BGP neighbor communication is enabled.
    #[serde(rename = "Enabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub enabled: Option<bool>,
    /// Border Gateway Protocol (BGP) hold timer in seconds.
    #[serde(rename = "HoldTimeSeconds")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub hold_time_seconds: Option<i64>,
    /// Border Gateway Protocol (BGP) Keepalive timer in seconds.
    #[serde(rename = "KeepaliveIntervalSeconds")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub keepalive_interval_seconds: Option<i64>,
    /// Local Autonomous System (AS) number.
    #[serde(rename = "LocalAS")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub local_as: Option<i64>,
    /// Border Gateway Protocol (BGP) neighbor log state change status.
    #[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>,
    /// Minimum Border Gateway Protocol (BGP) advertisement interval in seconds.
    #[serde(rename = "MinimumAdvertisementIntervalSeconds")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub minimum_advertisement_interval_seconds: Option<i64>,
    /// Border Gateway Protocol (BGP) passive mode status.
    #[serde(rename = "PassiveModeEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub passive_mode_enabled: Option<bool>,
    /// Path MTU discovery status.
    #[serde(rename = "PathMTUDiscoveryEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub path_mtu_discovery_enabled: Option<bool>,
    /// Peer Autonomous System (AS) number.
    #[serde(rename = "PeerAS")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub peer_as: Option<i64>,
    /// Replace Border Gateway Protocol (BGP) peer Autonomous System (AS) status.
    #[serde(rename = "ReplacePeerASEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub replace_peer_as_enabled: Option<bool>,
    /// TCP max segment size in Bytes.
    #[serde(rename = "TCPMaxSegmentSizeBytes")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub tcp_max_segment_size_bytes: Option<i64>,
    /// Border Gateway Protocol (BGP) treat as withdraw status.
    #[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";
}