use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct BGPEvpn {
#[serde(rename = "ARPProxyEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub arp_proxy_enabled: Option<bool>,
#[serde(rename = "ARPSupressionEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub arp_supression_enabled: Option<bool>,
#[serde(rename = "AnycastGatewayIPAddress")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub anycast_gateway_ip_address: Option<String>,
#[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>,
#[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>,
#[serde(rename = "NDPProxyEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ndp_proxy_enabled: Option<bool>,
#[serde(rename = "NDPSupressionEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ndp_supression_enabled: Option<bool>,
#[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>,
#[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>,
#[serde(rename = "UnderlayMulticastEnabled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub underlay_multicast_enabled: Option<bool>,
#[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";
}