package
2.17.7
Repository: https://github.com/openchami/smd.git
Documentation: pkg.go.dev

# README

HMS Go Redfish Library

This library is intended for L1 discovery, i.e. almost entirely Redfish-based with no L2 dependencies. One L2-like concept is xnames but we do not use L2 services to discover these and they rely on config files provided by the user. While these are intended to be location based, it is simply a stand-in for the hostname provided at boot time.

This library should be sufficient to both support a basic bootmanager daemon, a la our L1 functionality demo, but is also intended to provide the starting point for L2 discovery and support of State Manager.

TODO: Determine the level of separation that is required here.

Overview:

A config file, which may or may not be populated by SSDP discovery provides the raw Redfish endpoints and user/pass credentials.

From there, we build a structure for each endpoint and contact the RF endpoint, building a set of inter-related structures for each of the crucial component types: Managers, ComputerSystems, Chassis, and Ethernet interfaces (ComputerSystem subcomponents TBD). We also create structures for each of the various services.

Because Redfish is a hypermedia representation of the system, i.e. it is not a hierarchical tree, the RFEndpoint structure serves as the "hub" of the discovered data. Each structure has a backpointer to the RFEndpoint, and the RFEndpoint stores a map of pointers for each component type, keyed by the Redfish odata.ids, so that structs of different types can reference each other.

At this point the only option is to collect all this information in a single go. This may be fine for an initial discovery, but in the future we may want to re-query certain dynamic information, or even rediscover system components that may have changed.

For a single BMC, the major system components should remain fixed, but a nested system that may have swapable components may require careful consideration. When traversing links between component types, we shouldn't in theory, have changes occur that cause us to "fall off the edge".

In any case, certain structures are always to be considered dynamic, in the sense they are not fixed in number and can change unexpectedly.

  • Event subscriptions
  • Accounts/Roles
  • Tasks

For these, only the containing structures (e.g. the EventService) will be captured "permanently" during discovery, the individual member objects will need to be queried via a separate proces.

Outstanding issues and TODO:

  • Connections to RF endpoints do no consider certificates at all, or try to verify or otherwise manage them.

  • Connections to RF endpoints do not use sessions. At this point, this isn't required.

  • Discovery is parallel for all RF endpoints, but all interactions with individual endpoints are serialized. The discovery process still takes under a minute, which isn't terrible, but faster would be better. It's not clear how much faster multiple connections to BMCs would be, though.

  • Number of simultaneous connections is capped so as to not exceed maximum open file counts, but doesn't have any smarts at the moment and uses a conservative number.

  • Logging is very primitive with a fixed option to use stderr

  • Verbose and debug output blasts a ton of information that should be tuned to be more useful.

  • Would like to be able to refresh data in a smart way and not just start discovery over.

  • I added the "close" parameter to the client options to avoid getting a bunch of junk on stderr and a "read unexpected data from client" error on the next get. This reduces the throughput so Dave might have a better way of doing this.

  • When the Redfish endpoint does not supply a key, the corresponding key value in the struct will be "", for number values, however, it will be zero, which is a bigger problem. Use json.Number or use pointer arguments instead. Even for strings, we can then tell whether the RF endpoint gave us a blank value (supports value, but doesn't have one) or just omitted the key entirely (probably doesn't support that property. Is this worth all the nil checks? Or does Go avoid a lot of the problems with nil strings?

  • How to handle OEM fields. I've just been skipping them, since obviously they will vary from component to component. We may be able to decode them as interface{}, which can then be turned into a string map. Or maybe just json.RawMessage is more flexible.

  • BIOS "Attributes" seem to have a similar issue. They are an array of "Name":"Value" pairs, but I don't think we can just pre-define them all. They are not in the Redfish BIOS schema as specific parameters And the values can be numbers, strings, bools, etc.

Futher features TBD:

  • Support activities: Event subscriptions, account and role creation, network configuration, etc.?

# Functions

Turn on dumping of http output with path info, formatted for http mock responses.
Decode Event and return newly allocated pointer, or else nil/error Error contains loggable details.
Parse the MessageId field of an eventRecord within an event.
This dumps a particular endpoint in such a way that it can be used as a mock remote endpoint in unit tests.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Get the HTTP Client timeout in seconds used during Redfish interogation.
Return the ip address string, in normalized form for ipv6, or the empty string if it is not a valid ipv4 or ipv6 address.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Given a valid MAC in 12-byte hex format (with/without ":"), return a MAC address that is the original value plus offset, which can be negative.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
Check the processor's ProcessorArchitecture and InstructionSet fields to determine the architecture.
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
No description provided by the author
Build FRUID using standard fields: <Type>.<Manufacturer>.<PartNumber>.<SerialNumber> else return an error.
This should only return 1 if the RF manufacturer string (mfrCheckStr) is mfr (see above), 0 for not and -1 if mfrCheckStr is blank or non-alpha-numeric.
If json.Unmarshal failed with a single-field error or something worse.
Normalize and compare two MAC strings and report -1 if mac1 is lower, 1 if mac1 is higher, and 0 if they match.
Create new struct to discover the AccountService for this RedfishEP.
Initializes EpAssembly struct with minimal information needed to pass along to its children.
Initializes EpSystem struct with minimal information needed to discover it, i.e.
Initializes EpDrive struct with minimal information needed to discover it, i.e.
Initializes EpEthInterface struct with minimal information needed to discover it, i.e.
Create new struct to discover the EventService for this RedfishEP.
Initializes EpHpeDevice struct with minimal information needed to pass along to its children.
Initializes EpSystem struct with minimal information needed to discover it, i.e.
Initializes EpMemory struct with minimal information needed to discover it, i.e.
Initializes EpNetworkAdapter struct with minimal information needed to discover it, i.e.
Initializes EpNodeAccelRiser struct with minimal information needed to discover it, i.e.
Initializes EpSystem struct with minimal information needed to discover it, i.e.
Initializes EpSystem struct with minimal information needed to discover it, i.e.
Initializes EpPower struct with minimal information needed to pass along to its children.
Initializes EpPowerSupply struct with minimal information needed to discover it, i.e.
Initializes EpProcesor struct with minimal information needed to discover it, i.e.
Create new struct to discover the SessionService for this RedfishEP.
Initializes EpStorage struct with minimal information needed to pass along to its children.
Initializes EpStorageCollection struct with minimal information needed to discover it, i.e.
Initializes EpSystem struct with minimal information needed to discover it, i.e.
Create new struct to discover the TaskService for this RedfishEP.
Create new struct to discover the UpdateService for this RedfishEP.
Create RedfishEP struct from a validated RedfishEndpointDescription.
Create RedfishEPDescription from unvalidated input, e.g.
Create RedfishEPDescriptions struct from raw input from decoded RawEndpoints struct, e.g.
Create RedfishEPs structs from a set of validated RedfishEndpointDescriptions.
Normalize the MAC string to be lower case, ":"-separated 6-hex-byte format.
Normalize the MAC string to be lower case, ":"-separated 6-hex-byte format.
Normalize the MAC string to be lower case, ":"-separated 6-hex-byte format.
Returns default-configuration HTTP Client.
No description provided by the author
Set the HTTP Client timeout in seconds used during Redfish interogation.
No description provided by the author
No description provided by the author
Split off the portion of the address string following the last '%'.
Split a string into two parts at the LAST instance of token.
For a version string, e.g.

# Constants

These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Parsing manufacturer string.
Parsing manufacturer string.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Defaults for RedfishEndpoint properties.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Parsing manufacturer string.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
Parsing manufacturer string.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Defaults for RedfishEndpoint properties.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
No description provided by the author
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
No description provided by the author
Allowable values for "PowerState" fields.
Allowable values for "PowerState" fields.
Allowable values for "PowerState" fields.
Allowable values for "PowerState" fields.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
ARM.
Intel Itanium.
MIPS.
OEM-defined.
Power.
x86 or x86-64.
ARM 32-bit.
ARM 64-bit.
Intel IA-64.
MIPS 32-bit.
MIPS 64-bit.
OEM-defined.
PowerISA-64 or PowerISA-32.
x86.
x86-64.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
Defaults for RedfishEndpoint properties.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Outlet types.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
PDU Types.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Not found/error.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
Redfish object subtypes, i.e.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Error codes for problems obtaining data from remote RF endpoints.
These are types of structures in rfendpoints that are built upon the underlying Redfish type of the same name.
Defaults for RedfishEndpoint properties.
Error codes for problems obtaining data from remote RF endpoints.
Error codes for problems obtaining data from remote RF endpoints.

# Variables

Drescription matching strings for Cray EX hardware.
Model matching strings for Cray EX hardware.
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

Redfish account service.
FactoryReset - OEM (Cray) only so far.
Action "Name" - OEM (Cray) only so far.
PowerControl - Outlet.
Action type Reset - May be found under Chassis, System or Manager Actions.
Action type ResetBreaker - Outlet.
Action type ResetStatistics - Outlet Is there AllowableValues here? No idea what {type}@ prefix should be then.
UpdateService - Simple update action payload.
EventService - Submit Test Event action payload.
Redfish Alarms DMTF: "An Alarm is an entity that has a latch type behavior.
Actions for Alarm - OEM only for now.
Links for Alarm.
JSON decoded struct returned from Redfish for a particular set of ids.
JSON decoded struct returned from the BMC of type "Chassis" Example: /redfish/v1/Chassis/System.Embedded.1.
Redfish Actions for Chassis components.
Redfish Chassis Actions - OEM sub-struct.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Redfish Chassis - Links section.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
No description provided by the author
No description provided by the author
Redfish Circuit This represents a Circuitwhich will have power components linked to it.
Redfish Circuit Actions sub-struct.
Circuits do not have individual FRUs, PDUs do, but their properties are potentially important.
Links for Circuit.
Circuits do not have individual FRUs, PDUs do, but their properties are potentially important.
CircuitSummary sub-struct of PowerDistribution These are all-readonly.
Type specific info for Redfish Chassis components.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Type specific info for Redfish ComputerSystem components.
Redfish pass-through from Redfish Processor Example: /redfish/v1/Systems/System.Embedded.1 This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Redfish ComputerSystem sub-struct - Actions.
Redfsh ComputerSystem sub-struct - Boot options/settings/parameters.
Redfish Links struct - All those defined for ComputerSystem objects.
Redfish MemorySummary struct - Sub-struct of ComputerSystem.
Redfish ProcessorSummary struct - Sub-struct of ComputerSystem.
Within Location - ContactInfo.
No description provided by the author
No description provided by the author
Currents - Used in Outlet and Circuit.
No description provided by the author
Redfish pass-through from Redfish "Drive" This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
EnergyReadings - Used in Outlet and Circuit.
This is the AccountService for the corresponding RedfishEP.
This is the top-level Assembly object for a particular Chassis.
These are the discovered attributes for a particular entry in the /Chassis/ URL for a given RF endpoint.
Set of EpChassis, representing a Redfish "chassis" under some RF endpoint.
This is one of possibly several drives for a particular EpSystem(Redfish "ComputerSystem" or just "System").
Set of EpDrive, each representing a Redfish "Drive" listed under a Redfish ComputerSystem aka System.
This is one of possibly several ethernet interfaces for a a particular EpSystem(Redfish "ComputerSystem" or just "System"), or for a particular manager, i.e.
Set of EpEthInterface, each representing a Redfish "EthernetInterface" listed under some Redfish "System" or "Manager".
This is the EventService for the corresponding RedfishEP.
This is the top-level Oem HpeDevice object for a particular Chassis.
Set of EpHpeDevices, each representing a Redfish HPE OEM device (possibly a GPU) listed under a Redfish Chassis.
These are the discovered attributes for a particular entry in the /Manager/ URL for a given RF endpoint.
Set of EpManager, representing a Redfish "Manager" under some RF endpoint.
This is one of possibly several memory modules, e.g.
Set of EpMemory, each representing a Redfish "Memory" object, e.g.
This is one of possibly several NetworkAdapters for a particular EpChassis (Redfish "Chassis").
Set of EpNetworkAdapters, each representing a NetworkAdapter (HSN NIC, etc) listed under a Redfish Chassis.
This is one of possibly several NodeAccelRiser cards for a particular EpChassis (Redfish "Chassis").
Set of EpNodeAccelRiser, each representing a GPUSubsystem baseboard "NodeAccelRiser" listed under a Redfish Chassis.
This represents an outlet under a PDU parent.
Set of EpOutlet, representing a individual outlets under a Redfish "PowerDistribution" object, e.g.
This represents a PDU.
Set of EpPDU, representing a Redfish "PowerDistribution" object, e.g.
This is the top-level Power object for a particular Chassis.
Set of EpPowerSupply, each representing a Redfish "PowerSupply" listed under a Redfish Chassis.
This is one of possibly several PowerSupplies for a particular EpChassis (Redfish "Chassis").
This is one of possibly several processors for a a particular EpSystem(Redfish "ComputerSystem" or just "System").
Set of EpProcessor, each representing a Redfish "Processor" listed under a Redfish ComputerSystem aka System.
This is the SessionService for the corresponding RedfishEP.
This is the top-level Storage object for a particular ComputerSystem.
This is one of possibly several Storage Collections for a particular ComputerSystem's Storage object.
Set of EpStorageCollection objects, each representing a Redfish "StorageCollection" listed under a Redfish ComputerSystem's Storage object.
These are the discovered attributes for a particular entry in the Systems URL for a given RF endpoint.
Set of EpSystem, representing a Redfish "ComputerSystem" listed in some RF endpoint's "Systems" collection.
This is the TaskService for the corresponding RedfishEP.
This is the UpdateService for the corresponding RedfishEP.
JSON decoded struct returned from Redfish of type "EthernetInterface" Example: /redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Integrated.1-3-1.
No description provided by the author
Redfish event.
Redfish object representing a current event subscription being carried out by a Redfish manager/endpoint.
An individual event record.
Redfish event service.
EventService - Actions defined by Redfish for this type.
No description provided by the author
JSON decoded struct returned from Redfish for a particular set of ids.
Redfish when following the HPE AccPowerService URI.
Redfish pass-through from Redfish HPE OEM Device This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU.
No description provided by the author
Redfish when following the HPE PowerLimit URI.
UpdateService - HTTP push URI apply time payload.
UpdateService - HTTP push URI options payload.
Identifier Resource type.
No description provided by the author
An IPv4 address, e.g.
An IPv6 address, e.g.
A static IPv4 address, e.g.
Location Resource type.
JSON decoded struct returned from an entry in the BMC "Managers" collection Example: /redfish/v1/Managers/iDRAC.Embedded.1.
An account on a Redfish endpoint.
No description provided by the author
Redfish Manager sub-struct - Actions.
Redfish Manager Actions - OEM sub-struct.
No description provided by the author
No description provided by the author
No description provided by the author
Redfish pass-through from rf.Memory This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
No description provided by the author
A Redfish "Message", given in tasks and message registries.
Redfish NetworkAdapter sub-struct - ResetToDefault.
Redfish NetworkAdapter sub-struct - Actions.
Redfish NetworkAdapter sub-struct - Controller.
Redfish NetworkAdapter sub-struct - ControllerCapabilities.
Redfish NetworkAdapter sub-struct - ControllerLinks.
Redfish NetworkAdapter sub-struct - DataCenterBridging.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU.
Redfish NetworkAdapter sub-struct - NPIV.
Redfish NetworkAdapter sub-struct - SRIOV.
Redfish NetworkAdapter sub-struct - VirtualFunction.
Redfish NetworkAdapter sub-struct - VirtualizationOffload.
Redfish pass-through from Redfish "NetworkAdapter" This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Redfish pass-through from Redfish "Assembly" This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
No description provided by the author
No description provided by the author
No description provided by the author
Redfish PDU Outlet This represents an individual outlet on a PDU Example: /redfish/v1/PowerEquipment/RackPDUs/1/Outlets/A1.
Redfish Outlet Actions sub-struct.
Outlets do not have individual FRUs, PDUs do, but their properties are potentially important.
Links for outlet.
Outlets do not have individual FRUs, PDUs do, but their properties are potentially important.
Within Location - PartLocation.
No description provided by the author
Within Location - PostalAddress.
The Power type definition below is based on current L1 Power support, and does not havemany of the fields defined in the DMTF Redfish Power 1.6.0 schema, specifically PowerControl.However, HSM does capture PowerControl info for ComputerSystems (Nodes), see ComponentSystemInfo definition.
No description provided by the author
No description provided by the author
Redfish PowerDistribution From DMTF: "This resource shall be used to represent a Power Distribution component or unit for a Redfish implementation." Example: /redfish/v1/PowerEquipment/RackPDUs/1.
Redfish PowerDistribution Actions sub-struct.
Redfish fields from the PowerDistribution schema that go into HWInventoryByFRU.
Redfish fields from the PowerDistributionFRUInfo schema that go into HWInventoryByLocation.
Redfish PowerEquipment From DMTF: "This resource shall be used to represent the set of Power Equipment for a Redfish implementation." Example: /redfish/v1/PowerEquipment.
Actions for PowerEquipment - OEM only for now.
PowerEquipment sub-struct - PowerEquipmentLinks.
Redfish when following the Power URI in a chassis.
PowerReadings - Used in Outlet and Circuit Note: For all of these, we may only have one of the particular fields in a given resource.
Redfish pass-through from Redfish "PowerSupply" This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU.
Redfish pass-through from Redfish "Processor" This is the set of Redfish fields for this object that HMS understands and/or finds useful.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then link with it's current location i.e.
No description provided by the author
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
RAParameter for the array of Reset actions.
This is a scan-friendly version of RedfishEndpoint that can be used to create or update an entry (or at least the writable fields set by the user).
JSON-friendly array of RawRedfishEP entries.
This is the endpoint structure generated from a base RedfishEPDescription.
No description provided by the author
No description provided by the author
Set of RedfishEP, struct representing a root-level RF endpoint in system.
RedfishError - Contains an error payload from a Redfish service.
RedfishErrorContents - Contains properties used to describe an error from a Redfish Service.
ResetActionInfo contains a list of parameters for a Redfish ResetAction.
Resource link, often found in collection array or "Links" section.
No description provided by the author
A type of account on a Redfish endpoint.
Sensor From the DMTF: "This resource shall be used to represent resources that represent the sensor data." Example: /redfish/v1/PowerEquipment/RackPDUs/1/Sensors/FrequencyA1.
Redfish Sensor Actions sub-struct.
SensorExcerpt - Substruct of Outlet and other power-related objects This is the more general non-power version of SensorPowerExcerpt.
SensorPowerExcerpt - Substruct of Outlet and other power-related objects From DMTF: "This resource shall be used to represent resources that represent the sensor data.".
Struct to be embedded in Redfish service objects.
No description provided by the author
Redfish ServiceRoot - Links section.
A session that has been created via the session service.
Redfish session service.
Status struct, used in many places.
JSON decoded struct returned from Redfish for a particular set of ids.
Durable Redfish properties to be stored in hardware inventory as a specific FRU, which is then (typically) associated with a location i.e.
Location-specific Redfish properties to be stored in hardware inventory These are only relevant to the currently installed location of the FRU TODO: How to version these (as HMS structures).
A Redfish task, via the Redfish TaskService.
Redfish task service.
Sub-struct of Sensor - Threshold.
Sub-struct of Sensor - Thresholds.
Redfish update service.
UpdateService - Actions defined by Redfish for this type.
A VLAN definition, e.g.
Voltages - Used in Outlet and Circuit.

# Type aliases

Collection of Sensors, i.e.
JSON decoded collection struct returned from Redfish "Chassis" Example: /redfish/v1/Chassis.
Collection of Circuits, i.e.
JSON decoded collection struct returned from Redfish "Controls" Example: /redfish/v1/Chassis/<chassis_id>/Controls.
JSON decoded collection struct of Redfish type "EthernetInterfaceCollection" Examples: /redfish/v1/Systems/<system_id>/EthernetInterfaces /redfish/v1/Managers/<manager_id>/EthernetInterfaces.
JSON decoded event subscription struct linked from Redfish "EventService" Example: /redfish/v1/EventService/Subscriptions.
Redfish "Health", "HealthRollUp" enum.
No description provided by the author
JSON decoded Account collection struct linked from Redfish "AccountService" Example: /redfish/v1/AccountService/Accounts.
JSON decoded collection struct returned from Redfish "Manager" Example: /redfish/v1/Managers.
JSON decoded collection struct returned from Redfish "Memory" Example: /redfish/v1/Systems/<system_id>/Memory.
JSON decoded collection struct returned from Redfish "NetworkAdapter" Example: /redfish/v1/Chassis/<chassis_id>/NetworkAdapters.
Collection of Outlets, i.e.
Collection of PowerDistribution references (e.g.
JSON decoded collection struct returned from Redfish "Processors" Example: /redfish/v1/Systems/<system_id>/Processors.
For sort interface, wraps []ResourceID.
JSON decoded Role collection struct linked from Redfish "AccountService" Example: /redfish/v1/AccountService/Roles.
Collection of Sensors, i.e.
JSON decoded collection struct of Redfish type "SerialInterfaceCollection" Example: /redfish/v1/Managers/<manager_id>/SerialInterfaces.
JSON decoded collection struct returned from Redfish "SessionService" There is also a pointer in the system root under "Links" Example: /redfish/v1/SessionService/Sessions.
JSON decoded collection struct returned from Redfish "SimpleStorage" Example: /redfish/v1/Systems/<system_id>/SimpleStorage.
Redfish "State" Enum.
JSON decoded collection struct returned from Redfish "Storage" Example: /redfish/v1/Systems/<system_id>/Storage.
JSON decoded collection struct returned from Redfish "Systems" Example: /redfish/v1/Systems.
JSON decoded task subscription struct linked from Redfish "TaskService" Example: /redfish/v1/TaskService/Subscriptions.