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 links to other resources that are related to this resource.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct Links {
    /// An array of links to the chassis that contains this system.
    #[serde(rename = "Chassis")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub chassis: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "Chassis@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub chassis_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.
    #[serde(rename = "ConsumingComputerSystems")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub consuming_computer_systems: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "ConsumingComputerSystems@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub consuming_computer_systems_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to resources or objects that that cool this computer system.  Normally, the link is for either a chassis or a specific set of fans.
    #[serde(rename = "CooledBy")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub cooled_by: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "CooledBy@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub cooled_by_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to the endpoints that connect to this system.
    #[serde(rename = "Endpoints")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub endpoints: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "Endpoints@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub endpoints_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to the managers responsible for this system.
    #[serde(rename = "ManagedBy")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub managed_by: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "ManagedBy@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub managed_by_odata_count: Option<models::odata_v4::Count>,
    #[serde(rename = "Oem")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub oem: Option<models::resource::Oem>,
    /// The network device functions to which this system performs offload computation, such as with a SmartNIC.
    #[serde(rename = "OffloadedNetworkDeviceFunctions")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub offloaded_network_device_functions: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "OffloadedNetworkDeviceFunctions@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub offloaded_network_device_functions_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to resources or objects that power this computer system.  Normally, the link is for either a chassis or a specific set of power supplies.
    #[serde(rename = "PoweredBy")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub powered_by: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "PoweredBy@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub powered_by_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to the resource blocks that are used in this computer system.
    #[serde(rename = "ResourceBlocks")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub resource_blocks: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "ResourceBlocks@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub resource_blocks_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.
    #[serde(rename = "SupplyingComputerSystems")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub supplying_computer_systems: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "SupplyingComputerSystems@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub supplying_computer_systems_odata_count: Option<models::odata_v4::Count>,
    /// An array of links to the trusted components for this system.
    #[serde(rename = "TrustedComponents")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub trusted_components: Option<Vec<models::odata_v4::IdRef>>,
    #[serde(rename = "TrustedComponents@odata.count")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub trusted_components_odata_count: Option<models::odata_v4::Count>,
}

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