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;

/// IPv4 and Virtual LAN (VLAN) related addressing for an Ethernet fabric.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct IPv4 {
    /// 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 = "DHCP")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub dhcp: Option<models::address_pool::v1_2_1::DHCP>,
    /// The Domain Name Service (DNS) domain name for this Ethernet fabric.
    #[serde(rename = "DNSDomainName")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub dns_domain_name: Option<String>,
    /// The Domain Name Service (DNS) servers for this Ethernet fabric.
    #[serde(rename = "DNSServer")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub dns_server: Option<Vec<String>>,
    /// Indicates if host subnets should be distributed into the fabric underlay.
    #[serde(rename = "DistributeIntoUnderlayEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub distribute_into_underlay_enabled: Option<bool>,
    #[serde(rename = "EBGPAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ebgp_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    #[serde(rename = "FabricLinkAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fabric_link_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    /// The gateway IPv4 address.
    #[serde(rename = "GatewayIPAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub gateway_ip_address: Option<String>,
    #[serde(rename = "HostAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub host_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    #[serde(rename = "IBGPAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ibgp_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    #[serde(rename = "LoopbackAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub loopback_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    #[serde(rename = "ManagementAddressRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub management_address_range: Option<models::address_pool::v1_2_1::IPv4AddressRange>,
    /// The Network Time Protocol (NTP) offset configuration.
    #[serde(rename = "NTPOffsetHoursMinutes")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ntp_offset_hours_minutes: Option<i64>,
    /// The Network Time Protocol (NTP) servers for this Ethernet fabric.
    #[serde(rename = "NTPServer")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ntp_server: Option<Vec<String>>,
    /// The Network Time Protocol (NTP) timezone for this Ethernet fabric.
    #[serde(rename = "NTPTimezone")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ntp_timezone: Option<String>,
    /// The native Virtual LAN (VLAN) tag value.
    #[serde(rename = "NativeVLAN")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub native_vlan: Option<i64>,
    #[serde(rename = "SystemMACRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub system_mac_range: Option<models::address_pool::v1_2_1::SystemMACRange>,
    #[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 IPv4 {
    const JSON_SCHEMA: &'static str = "AddressPool.v1_2_1.json";
}