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;

/// The EthernetInterface schema represents a single, logical Ethernet interface or network interface controller (NIC).
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct EthernetInterface {
    #[serde(rename = "@odata.context")]
    #[serde(skip_deserializing)]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub odata_context: Option<models::odata_v4::Context>,
    #[serde(rename = "@odata.etag")]
    #[serde(skip_deserializing)]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub odata_etag: Option<models::odata_v4::Etag>,
    #[serde(rename = "@odata.id")]
    #[serde(skip_deserializing)]
    pub odata_id: models::odata_v4::Id,
    #[serde(rename = "@odata.type")]
    #[serde(skip_deserializing)]
    #[derivative(Default(value = "models::odata_v4::Type(\"#EthernetInterface.v1_10_0.EthernetInterface\".to_string())"))]
    pub odata_type: models::odata_v4::Type,
    #[serde(rename = "Actions")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub actions: Option<models::ethernet_interface::v1_10_0::Actions>,
    /// An indication of whether the speed and duplex are automatically negotiated and configured on this interface.
    #[serde(rename = "AutoNeg")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub auto_neg: Option<bool>,
    #[serde(rename = "DHCPv4")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub dhc_pv_4: Option<models::ethernet_interface::v1_10_0::DHCPv4C>,
    #[serde(rename = "DHCPv6")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub dhc_pv_6: Option<models::ethernet_interface::v1_10_0::DHCPv6C>,
    #[serde(rename = "Description")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<models::resource::Description>,
    #[serde(rename = "EthernetInterfaceType")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ethernet_interface_type: Option<models::ethernet_interface::v1_10_0::EthernetDeviceType>,
    /// The complete, fully qualified domain name that DNS obtains for this interface.
    #[serde(rename = "FQDN")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fqdn: Option<String>,
    /// An indication of whether full-duplex mode is enabled on the Ethernet connection for this interface.
    #[serde(rename = "FullDuplex")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub full_duplex: Option<bool>,
    /// The DNS host name, without any domain information.
    #[serde(rename = "HostName")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub host_name: Option<String>,
    /// The IPv4 addresses currently in use by this interface.
    #[serde(rename = "IPv4Addresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv4_addresses: Option<Vec<models::ip_addresses::IPv4Address>>,
    /// The IPv4 static addresses assigned to this interface.  See IPv4Addresses for the addresses in use by this interface.
    #[serde(rename = "IPv4StaticAddresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv4_static_addresses: Option<Vec<models::ip_addresses::IPv4Address>>,
    /// An array that represents the RFC6724-defined address selection policy table.
    #[serde(rename = "IPv6AddressPolicyTable")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv6_address_policy_table: Option<Vec<models::ethernet_interface::v1_10_0::IPv6AddressPolicyEntry>>,
    /// The IPv6 addresses currently in use by this interface.
    #[serde(rename = "IPv6Addresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv6_addresses: Option<Vec<models::ip_addresses::IPv6Address>>,
    /// The IPv6 default gateway address in use on this interface.
    #[serde(rename = "IPv6DefaultGateway")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv6_default_gateway: Option<String>,
    /// The IPv6 static addresses assigned to this interface.  See IPv6Addresses for the addresses in use by this interface.
    #[serde(rename = "IPv6StaticAddresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv6_static_addresses: Option<Vec<models::ip_addresses::IPv6StaticAddress>>,
    /// The IPv6 static default gateways for this interface.
    #[serde(rename = "IPv6StaticDefaultGateways")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ipv6_static_default_gateways: Option<Vec<models::ip_addresses::IPv6GatewayStaticAddress>>,
    #[serde(rename = "Id")]
    #[serde(skip_deserializing)]
    pub id: models::resource::Id,
    /// An indication of whether this interface is enabled.
    #[serde(rename = "InterfaceEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub interface_enabled: Option<bool>,
    #[serde(rename = "LinkStatus")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub link_status: Option<models::ethernet_interface::v1_10_0::LinkStatus>,
    #[serde(rename = "Links")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub links: Option<models::ethernet_interface::v1_10_0::Links>,
    #[serde(rename = "MACAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub mac_address: Option<models::ethernet_interface::v1_10_0::MACAddress>,
    /// The currently configured maximum transmission unit (MTU), in bytes, on this interface.
    #[serde(rename = "MTUSize")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub mtu_size: Option<i64>,
    /// The maximum number of static IPv6 addresses that can be configured on this interface.
    #[serde(rename = "MaxIPv6StaticAddresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub max_ipv6_static_addresses: Option<i64>,
    #[serde(rename = "Name")]
    #[serde(skip_deserializing)]
    pub name: models::resource::Name,
    /// The DNS servers in use on this interface.
    #[serde(rename = "NameServers")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub name_servers: Option<Vec<String>>,
    #[serde(rename = "Oem")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub oem: Option<models::resource::Oem>,
    #[serde(rename = "PermanentMACAddress")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub permanent_mac_address: Option<models::ethernet_interface::v1_10_0::MACAddress>,
    /// The current speed, in Mbit/s, of this interface.
    #[serde(rename = "SpeedMbps")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub speed_mbps: Option<i64>,
    #[serde(rename = "StatelessAddressAutoConfig")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub stateless_address_auto_config: Option<models::ethernet_interface::v1_10_0::StatelessAddressAutoConfiguration>,
    /// The statically-defined set of DNS server IPv4 and IPv6 addresses.
    #[serde(rename = "StaticNameServers")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub static_name_servers: Option<Vec<String>>,
    #[serde(rename = "Status")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub status: Option<models::resource::Status>,
    #[serde(rename = "TeamMode")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub team_mode: Option<models::ethernet_interface::v1_10_0::TeamMode>,
    /// The UEFI device path for this interface.
    #[serde(rename = "UefiDevicePath")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub uefi_device_path: Option<String>,
    #[serde(rename = "VLAN")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub vlan: Option<models::vlan_network_interface::VLAN>,
    #[serde(rename = "VLANs")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub vlans: Option<models::odata_v4::IdRef>,
}

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