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;

/// BGP Ethernet Virtual Private Network (BGP EVPN) related properties for an Ethernet fabric.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct BGPEvpn {
    /// Address Resolution Protocol (ARP) proxy status.
    #[serde(rename = "ARPProxyEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub arp_proxy_enabled: Option<bool>,
    /// Address Resolution Protocol (ARP) suppression status.
    #[serde(rename = "ARPSupressionEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub arp_supression_enabled: Option<bool>,
    /// The anycast gateway IPv4 address.
    #[serde(rename = "AnycastGatewayIPAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub anycast_gateway_ip_address: Option<String>,
    /// The anycast gateway MAC address.
    #[serde(rename = "AnycastGatewayMACAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub anycast_gateway_mac_address: Option<String>,
    #[serde(rename = "ESINumberRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub esi_number_range: Option<models::address_pool::v1_2_1::ESINumberRange>,
    #[serde(rename = "EVINumberRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub evi_number_range: Option<models::address_pool::v1_2_1::EVINumberRange>,
    /// The gateway IPv4 address.
    #[serde(rename = "GatewayIPAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub gateway_ip_address: Option<String>,
    #[serde(rename = "GatewayIPAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub gateway_ip_address_range: Option<models::address_pool::v1_2_1::GatewayIPAddressRange>,
    /// Network Discovery Protocol (NDP) proxy status.
    #[serde(rename = "NDPProxyEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ndp_proxy_enabled: Option<bool>,
    /// Network Discovery Protocol (NDP) suppression status.
    #[serde(rename = "NDPSupressionEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ndp_supression_enabled: Option<bool>,
    /// The Route Distinguisher (RD) Administrator subfield.
    #[serde(rename = "RouteDistinguisherAdministratorSubfield")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub route_distinguisher_administrator_subfield: Option<String>,
    #[serde(rename = "RouteDistinguisherRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub route_distinguisher_range: Option<models::address_pool::v1_2_1::RouteDistinguisherRange>,
    /// The Route Target (RT) Administrator Subfield.
    #[serde(rename = "RouteTargetAdministratorSubfield")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub route_target_administrator_subfield: Option<String>,
    #[serde(rename = "RouteTargetRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub route_target_range: Option<models::address_pool::v1_2_1::RouteTargetRange>,
    /// Underlay multicast status.
    #[serde(rename = "UnderlayMulticastEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub underlay_multicast_enabled: Option<bool>,
    /// Suppression of unknown unicast packets.
    #[serde(rename = "UnknownUnicastSuppressionEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub unknown_unicast_suppression_enabled: Option<bool>,
    #[serde(rename = "VLANIdentifierAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub vlan_identifier_address_range: Option<models::address_pool::v1_2_1::VLANIdentifierAddressRange>,
}

impl crate::Metadata<'static> for BGPEvpn {
    const JSON_SCHEMA: &'static str = "AddressPool.v1_2_1.json";
}