From 5912550d55865bc817e3b979d287ec6696c120bd Mon Sep 17 00:00:00 2001 From: agarwal-ruchi1206 <123939920+agarwal-ruchi1206@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:53:32 +0530 Subject: [PATCH] Update Models in lib-dmtf (#1306) * Properties modified * storage.go modified * changed ComputerSystem.go --- lib-dmtf/model/Chassis.go | 151 +++++++++++++++++++------------ lib-dmtf/model/ComputerSystem.go | 44 ++++++++- lib-dmtf/model/Links.go | 1 + lib-dmtf/model/accountService.go | 4 + lib-dmtf/model/endpoint.go | 6 ++ lib-dmtf/model/events.go | 32 +++++++ lib-dmtf/model/port.go | 56 +++++++++++- lib-dmtf/model/serviceRoot.go | 68 +++++++++++++- lib-dmtf/model/storage.go | 18 +++- 9 files changed, 313 insertions(+), 67 deletions(-) diff --git a/lib-dmtf/model/Chassis.go b/lib-dmtf/model/Chassis.go index 84520895a..753f5ed16 100644 --- a/lib-dmtf/model/Chassis.go +++ b/lib-dmtf/model/Chassis.go @@ -21,65 +21,98 @@ import ( // Chassis redfish structure type Chassis struct { - Ocontext string `json:"@odata.context,omitempty"` - Oid string `json:"@odata.id"` - Otype string `json:"@odata.type"` - Oetag string `json:"@odata.etag,omitempty"` - ID string `json:"Id"` - Description string `json:"Description,omitempty"` - Name string `json:"Name"` - AssetTag interface{} `json:"AssetTag"` // omitempty is not added to make value as null if it's not present - ChassisType string `json:"ChassisType"` - DepthMm float32 `json:"DepthMm,omitempty"` - EnvironmentalClass string `json:"EnvironmentalClass,omitempty"` - HeightMm float32 `json:"HeightMm,omitempty"` - IndicatorLED string `json:"IndicatorLED,omitempty"` - Manufacturer string `json:"Manufacturer,omitempty"` - Model string `json:"Model,omitempty"` - PartNumber interface{} `json:"PartNumber"` // omitempty is not added to make value as null if it's not present - PowerState string `json:"PowerState,omitempty"` - SerialNumber string `json:"SerialNumber,omitempty"` - SKU string `json:"SKU,omitempty"` - UUID string `json:"UUID,omitempty"` - WeightKg float32 `json:"WeightKg,omitempty"` - WidthMm float32 `json:"WidthMm,omitempty"` - Links *Links `json:"Links,omitempty"` - Location *Link `json:"Location,omitempty"` - LogServices *LogServices `json:"LogServices,omitempty"` - Assembly *Assembly `json:"Assembly,omitempty"` - NetworkAdapters *NetworkAdapters `json:"NetworkAdapters,omitempty"` - PCIeSlots *PCIeSlots `json:"PCIeSlots,omitempty"` - PhysicalSecurity *PhysicalSecurity `json:"PhysicalSecurity,omitempty"` - Power *Link `json:"Power,omitempty"` - Sensors *Sensors `json:"Sensors,omitempty"` - Status *Status `json:"Status,omitempty"` - Thermal *Link `json:"Thermal,omitempty"` - Actions *OemActions `json:"Actions,omitempty"` - Certificates *Certificates `json:"Certificates,omitempty"` - Controls *Link `json:"Controls,omitempty"` - Drives *Link `json:"Drives,omitempty"` - EnvironmentMetrics *Link `json:"EnvironmentMetrics,omitempty"` - LocationIndicatorActive bool `json:"LocationIndicatorActive,omitempty"` - MaxPowerWatts float32 `json:"MaxPowerWatts,omitempty"` - Measurements []*Link `json:"Measurements,omitempty"` // Deprecated in version v1.19.0 - MediaControllers *Link `json:"MediaControllers,omitempty"` - Memory *Link `json:"Memory,omitempty"` - MemoryDomains *Link `json:"MemoryDomains,omitempty"` - MinPowerWatts float32 `json:"MinPowerWatts,omitempty"` - Oem *Oem `json:"Oem,omitempty"` - PCIeDevices *Link `json:"PCIeDevices,omitempty"` - PowerSubsystem *Link `json:"PowerSubsystem,omitempty"` - SparePartNumber string `json:"SparePartNumber,omitempty"` - ThermalSubsystem *Link `json:"ThermalSubsystem,omitempty"` - ThermalDirection string `json:"ThermalDirection,omitempty"` - ThermalManagedByParent bool `json:"ThermalManagedByParent,omitempty"` - PoweredByParent bool `json:"PoweredByParent,omitempty"` - Fans []*Link `json:"Fans,omitempty"` - PowerSupplies []*Link `json:"PowerSupplies,omitempty"` - PowerDistribution *Link `json:"PowerDistribution,omitempty"` - FabricAdapters *Link `json:"FabricAdapters,omitempty"` - ElectricalSourceManagerURIs []string `json:"ElectricalSourceManagerURIs,omitempty"` - ElectricalSourceNames []string `json:"ElectricalSourceNames,omitempty"` + Ocontext string `json:"@odata.context,omitempty"` + Oid string `json:"@odata.id"` + Otype string `json:"@odata.type"` + Oetag string `json:"@odata.etag,omitempty"` + ID string `json:"Id"` + Description string `json:"Description,omitempty"` + Name string `json:"Name"` + AssetTag interface{} `json:"AssetTag"` // omitempty is not added to make value as null if it's not present + ChassisType string `json:"ChassisType"` + DepthMm float32 `json:"DepthMm,omitempty"` + EnvironmentalClass string `json:"EnvironmentalClass,omitempty"` + HeightMm float32 `json:"HeightMm,omitempty"` + IndicatorLED string `json:"IndicatorLED,omitempty"` + Manufacturer string `json:"Manufacturer,omitempty"` + Model string `json:"Model,omitempty"` + PartNumber interface{} `json:"PartNumber"` // omitempty is not added to make value as null if it's not present + PowerState string `json:"PowerState,omitempty"` + SerialNumber string `json:"SerialNumber,omitempty"` + SKU string `json:"SKU,omitempty"` + UUID string `json:"UUID,omitempty"` + WeightKg float32 `json:"WeightKg,omitempty"` + WidthMm float32 `json:"WidthMm,omitempty"` + Links *Links `json:"Links,omitempty"` + Location *Link `json:"Location,omitempty"` + LogServices *LogServices `json:"LogServices,omitempty"` + Assembly *Assembly `json:"Assembly,omitempty"` + NetworkAdapters *NetworkAdapters `json:"NetworkAdapters,omitempty"` + PCIeSlots *PCIeSlots `json:"PCIeSlots,omitempty"` + PhysicalSecurity *PhysicalSecurity `json:"PhysicalSecurity,omitempty"` + Power *Link `json:"Power,omitempty"` + Sensors *Sensors `json:"Sensors,omitempty"` + Status *Status `json:"Status,omitempty"` + Thermal *Link `json:"Thermal,omitempty"` + Actions *OemActions `json:"Actions,omitempty"` + Certificates *Certificates `json:"Certificates,omitempty"` + Controls *Link `json:"Controls,omitempty"` + Drives *Link `json:"Drives,omitempty"` + EnvironmentMetrics *Link `json:"EnvironmentMetrics,omitempty"` + LocationIndicatorActive bool `json:"LocationIndicatorActive,omitempty"` + MaxPowerWatts float32 `json:"MaxPowerWatts,omitempty"` + Measurements []*Link `json:"Measurements,omitempty"` // Deprecated in version v1.19.0 + MediaControllers *Link `json:"MediaControllers,omitempty"` + Memory *Link `json:"Memory,omitempty"` + MemoryDomains *Link `json:"MemoryDomains,omitempty"` + MinPowerWatts float32 `json:"MinPowerWatts,omitempty"` + Oem *Oem `json:"Oem,omitempty"` + PCIeDevices *Link `json:"PCIeDevices,omitempty"` + PowerSubsystem *Link `json:"PowerSubsystem,omitempty"` + SparePartNumber string `json:"SparePartNumber,omitempty"` + ThermalSubsystem *Link `json:"ThermalSubsystem,omitempty"` + ThermalDirection string `json:"ThermalDirection,omitempty"` + ThermalManagedByParent bool `json:"ThermalManagedByParent,omitempty"` + PoweredByParent bool `json:"PoweredByParent,omitempty"` + Fans []*Link `json:"Fans,omitempty"` + PowerSupplies []*Link `json:"PowerSupplies,omitempty"` + PowerDistribution *Link `json:"PowerDistribution,omitempty"` + FabricAdapters *Link `json:"FabricAdapters,omitempty"` + ElectricalSourceManagerURIs []string `json:"ElectricalSourceManagerURIs,omitempty"` + ElectricalSourceNames []string `json:"ElectricalSourceNames,omitempty"` + HotPluggable bool `json:"HotPluggable,omitempty"` + TrustedComponents *TrustedComponentCollection `json:"TrustedComponents,omitempty"` + Version string `json:"Version,omitempty"` + Processors ProcessorCollection `json:"Processors,omitempty"` + Replaceable bool `json:"Replaceable,omitempty"` +} + +// TrustedComponentCollection redfish structure +type TrustedComponentCollection struct { + Oid string `json:"@odata.id"` + Ocontext string `json:"@odata.context,omitempty"` + Otype string `json:"@odata.type"` + Oetag string `json:"@odata.etag,omitempty"` + Description string `json:"Description,omitempty"` + Name string `json:"Name"` + Oem *Oem `json:"Oem,omitempty"` + Members []string `json:"Members"` + MembersODataCount int `json:"Members@odata.count"` + MembersODataNextLink string `json:"Members@odata.nextLink,omitempty"` +} + +// ProcessorCollection redfish structure +type ProcessorCollection struct { + Oid string `json:"@odata.id"` + Ocontext string `json:"@odata.context,omitempty"` + Otype string `json:"@odata.type"` + Oetag string `json:"@odata.etag,omitempty"` + Description string `json:"Description,omitempty"` + Name string `json:"Name"` + Oem *Oem `json:"Oem,omitempty"` + Members []string `json:"Members"` + MembersODataCount int `json:"Members@odata.count"` + MembersODataNextLink string `json:"Members@odata.nextLink,omitempty"` } // LogServices get diff --git a/lib-dmtf/model/ComputerSystem.go b/lib-dmtf/model/ComputerSystem.go index 86f78216f..b44743cb2 100644 --- a/lib-dmtf/model/ComputerSystem.go +++ b/lib-dmtf/model/ComputerSystem.go @@ -81,6 +81,8 @@ type IndicatorLED string // BootProgressTypes - The last boot progress state type BootProgressTypes string +type ConnectedTypesSupported string + const ( // BootSourceNone - Boot from the normal boot device @@ -369,6 +371,10 @@ const ( //IndicatorLEDOff - The indicator LED is off IndicatorLEDOff IndicatorLED = "Off" + + ConnectedTypesSupportedKVMIP ConnectedTypesSupported = "KVMIP" + + ConnectedTypesSupportedOEM ConnectedTypesSupported = "OEM" ) // AddResourceBlock redfish structure @@ -459,6 +465,20 @@ type ComputerSystem struct { Composition *Composition `json:"Composition,omitempty"` } +type HostGraphicalConsole struct { + ConnectedTypesSupported []string `json:"ConnectedTypesSupported,omitempty"` //enum + MaxConcurrentSessions int `json:"MaxConcurrentSessions,omitempty"` + Port int `json:"Port,omitempty"` + ServiceEnabled bool `json:"ServiceEnabled,omitempty"` +} + +type HostSerialConsole struct { + IPMI *SerialConsoleProtocol `json:"IPMI,omitempty"` + MaxConcurrentSessions int `json:"MaxConcurrentSessions,omitempty"` + SSH *SerialConsoleProtocol `json:"SSH,omitempty"` + Telnet *SerialConsoleProtocol `json:"Telnet,omitempty"` +} + // ComputerSystemActions redfish structure type ComputerSystemActions struct { AddResourceBlock *AddResourceBlock `json:"AddResourceBlock,omitempty"` @@ -1140,7 +1160,7 @@ type Processors struct { HighSpeedCoreIDs []int `json:"HighSpeedCoreIDs,omitempty"` LocationIndicatorActive bool `json:"LocationIndicatorActive,omitempty"` Measurements []*Link `json:"Measurements,omitempty"` - MemorySummary *MemorySummaryDetails `json:"MemorySummary,omitempty"` + MemorySummary *MemorySummary `json:"MemorySummary,omitempty"` MinSpeedMHz int `json:"MinSpeedMHz,omitempty"` OperatingConfigs *Link `json:"OperatingConfigs,omitempty"` OperatingSpeedMHz int `json:"OperatingSpeedMHz,omitempty"` @@ -1155,6 +1175,28 @@ type Processors struct { AdditionalFirmwareVersions *AdditionalFirmwareVersions `json:"AdditionalFirmwareVersions,omitempty"` } +// SystemInterface redfish structure +type MemoryMetrics struct { + Oid string `json:"@odata.id"` + Ocontext string `json:"@odata.context,omitempty"` + Oetag string `json:"@odata.etag,omitempty"` + Otype string `json:"@odata.type"` + Actions *OemActions `json:"Actions,omitempty"` + BandwidthPercent int `json:"BandwidthPercent,omitempty"` + BlockSizeBytes int `json:"BlockSizeBytes,omitempty"` + CXL CXL `json:"CXL,omitempty"` + CapacityUtilizationPercent int `json:"CapacityUtilizationPercent,omitempty"` + CorrectedPersistentErrorCount int `json:"CorrectedPersistentErrorCount,omitempty"` + CorrectedVolatileErrorCount int `json:"CorrectedVolatileErrorCount,omitempty"` + CurrentPeriod *CurrentPeriod `json:"CurrentPeriod,omitempty"` + Description string `json:"description,omitempty"` + DirtyShutdownCount int `json:"DirtyShutdownCount,omitempty"` + ID string `json:"ID"` + Name string `json:"Name"` + Oem Oem `json:"Oem,omitempty"` + OperatingSpeedMHz int `json:"OperatingSpeedMHz,omitempty"` +} + // SystemInterface redfish structure type SystemInterface struct { Ethernet Ethernet `json:"Ethernet,omitempty"` diff --git a/lib-dmtf/model/Links.go b/lib-dmtf/model/Links.go index 6072f1ce2..86dfe900d 100644 --- a/lib-dmtf/model/Links.go +++ b/lib-dmtf/model/Links.go @@ -43,6 +43,7 @@ type Links struct { NetworkDeviceFunctions []*Link `json:"NetworkDeviceFunctions,omitempty"` PowerOutlets []*Link `json:"PowerOutlets,omitempty"` DedicatedSpareDrives []*Link `json:"DedicatedSpareDrives,omitempty"` + NVMeoDiscoverySubsystems []*Link `json:"NVMeoDiscoverySubsystems,omitempty"` } // Link holds the odata id redfish links diff --git a/lib-dmtf/model/accountService.go b/lib-dmtf/model/accountService.go index 244beebae..ee993b0c7 100644 --- a/lib-dmtf/model/accountService.go +++ b/lib-dmtf/model/accountService.go @@ -292,9 +292,11 @@ type ExternalAccountProvider struct { PasswordSet bool `json:"PasswordSet,omitempty"` Priority int `json:"Priority,omitempty"` RemoteRoleMapping []*RoleMapping `json:"RemoteRoleMapping,omitempty"` + Retries int `json:"Retries,omitempty"` ServiceAddresses []string `json:"ServiceAddresses,omitempty"` ServiceEnabled bool `json:"ServiceEnabled,omitempty"` TACACSplusService *TACACSplusService `json:"TACACSplusService,omitempty"` + TimeoutSeconds int `json:"TimeoutSeconds,omitempty"` } // GoogleAuthenticator redfish structure @@ -359,6 +361,7 @@ type OAuth2Service struct { Issuer string `json:"Issuer,omitempty"` Mode string `json:"Mode,omitempty"` //enum OAuthServiceSigningKeys string `json:"OAuthServiceSigningKeys,omitempty"` + Oem *Oem `json:"Oem,omitempty"` } // SecurID redfish structure @@ -390,6 +393,7 @@ type RoleMapping struct { // Various settings to parse a TACACS+ service // This type shall contain settings for parsing a TACACS+ service type TACACSplusService struct { + AuthorizationService string `json:"AuthorizationService,omitempty"` PasswordExchangeProtocols string `json:"PasswordExchangeProtocols,omitempty"` //enum PrivilegeLevelArgument string `json:"PrivilegeLevelArgument,omitempty"` } diff --git a/lib-dmtf/model/endpoint.go b/lib-dmtf/model/endpoint.go index 4a9613f85..41ca65db3 100644 --- a/lib-dmtf/model/endpoint.go +++ b/lib-dmtf/model/endpoint.go @@ -86,6 +86,12 @@ type PciID struct { VendorID string `json:"VendorId,omitempty"` } +// GCID for Endpoint +type GCID struct { + CID string `json:"GCID,omitempty"` + SID string `json:"SID,omitemoty"` +} + // EndpointLinks is the struct to links under a AddressPool type EndpointLinks struct { AddressPools []Link `json:"AddressPools,omitempty"` diff --git a/lib-dmtf/model/events.go b/lib-dmtf/model/events.go index 1f867eea8..7ff3615c8 100644 --- a/lib-dmtf/model/events.go +++ b/lib-dmtf/model/events.go @@ -62,6 +62,8 @@ type SMTPAuthentication string // SMTPConnectionProtocol - This property shall contain the connection type to the outgoing SMTP server. type SMTPConnectionProtocol string +type DiagnosticDataType string + const ( // EventTypeAlert - "Alert": "A condition requires attention." EventTypeAlert EventType = "Alert" @@ -297,8 +299,33 @@ const ( // SMTPConnectionProtocolTLSSSL - SMTPConnection Protocol type TLS_SSL SMTPConnectionProtocolTLSSSL SMTPConnectionProtocol = "TLS_SSL" + + //Manager diagnostic data. + DiagnosticDataTypeManager DiagnosticDataType = "Manager" + + //Pre-OS diagnostic data. + DiagnosticDataTypePreOS DiagnosticDataType = "PreOS" + + //Operating system (OS) diagnostic data. + DiagnosticDataTypeOS DiagnosticDataType = "OS" + + //OEM diagnostic data. + DiagnosticDataTypeOEM DiagnosticDataType = "OEM" + + //UEFI Common Platform Error Record. + DiagnosticDataTypeCPER DiagnosticDataType = "CPER" + + // A Section of a UEFI Common Platform Error Record. + DiagnosticDataTypeCPERSection DiagnosticDataType = "CPERSection" ) +// Details for a CPER section or record associated with an event. +type CPER struct { + NotificationType string `json:"NotificationType,omitempty"` + Oem interface{} `json:"Oem,omitempty"` + SectionType string `json:"SectionType,omitempty"` +} + // Event schema describes the JSON payload received by an event destination, which has // subscribed to event notification, when events occur. This resource contains data // about events, including descriptions, severity, and a message identifier to a @@ -323,7 +350,12 @@ type Event struct { // Refer to Event.v1_7_0.json of the redfish spec for more details type EventRecord struct { Actions *OemActions `json:"Actions,omitempty"` + AdditionalDataSizeBytes int `json:"AdditionalDataSizeBytes,omitempty"` + AdditionalDataURI string `json:"AdditionalDataURI,omitempty"` + CPER CPER `json:"CPER,omitempty"` Context string `json:"Context,omitempty"` + DiagnosticData string `json:"DiagnosticData,omitempty"` + DiagnosticDataType string `json:"DiagnosticDataType,omitempty"` EventGroupID int `json:"EventGroupId,omitempty"` EventID string `json:"EventId,omitempty"` EventTimestamp string `json:"EventTimestamp,omitempty"` diff --git a/lib-dmtf/model/port.go b/lib-dmtf/model/port.go index e69a01073..bd5be7e56 100644 --- a/lib-dmtf/model/port.go +++ b/lib-dmtf/model/port.go @@ -14,6 +14,51 @@ package model +// The type of SFP device that is attached to this port. +type Type string + +const ( + + // The SFP conforms to the SFF Specification for SFP. + TypeSFP Type = "SFP" + + // The SFP conforms to the SFF Specification for SFP+. + TypeSFPPlus Type = "SFPPlus" + + // The SFP conforms to the SFF Specification for SFP+ and IEEE 802.3by Specification. + TypeSFP28 Type = "SFP28" + + // The SFP conforms to the CSFP MSA Specification. + TypecSFP Type = "cSFP" + + // The SFP conforms to the SFP-DD MSA Specification. + TypeSFPDD Type = "SFPDD" + + // The SFP conforms to the SFF Specification for QSFP. + TypeQSFP Type = "QSFP" + + // The SFP conforms to the SFF Specification for QSFP+. + TypeQSFPPlus Type = "QSFPPlus" + + // The SFP conforms to the SFF Specification for QSFP14. + TypeQSFP14 Type = "QSFP14" + + // The SFP conforms to the SFF Specification for QSFP28. + TypeQSFP28 Type = "QSFP28" + + // The SFP conforms to the SFF Specification for QSFP56. + TypeQSFP56 Type = "QSFP56" + + // The SFP conforms to the SFF Specification SFF-8644. + TypeMiniSASHD Type = "MiniSASHD" + + // The SFP conforms to the QSFP Double Density Specification. + TypeQSFPDD Type = "QSFPDD" + + // The SFP conforms to the OSFP Specification. + TypeOSFP Type = "OSFP" +) + // Port is the redfish Port model according to the 2020.3 release type Port struct { ODataContext string `json:"@odata.context,omitempty"` @@ -61,7 +106,7 @@ type Port struct { RemotePortId string `json:"RemotePortId,omitempty"` } -//InfiniBand redfish structure +// InfiniBand redfish structure type InfiniBand struct { AssociatedNodeGUIDs []string `json:"AssociatedNodeGUIDs,omitempty"` AssociatedPortGUIDs []string `json:"AssociatedPortGUIDs,omitempty"` @@ -77,6 +122,15 @@ type CXL struct { MaxLogicalDeviceCount string `json:"MaxLogicalDeviceCount,omitempty"` QoSTelemetryCapabilities *QoSTelemetryCapabilities `json:"QoSTelemetryCapabilities,omitempty"` TemporaryThroughputReductionEnabled bool `json:"TemporaryThroughputReductionEnabled,omitempty"` + AlertCapabilities *AlertCapabilities `json:"AlertCapabilities,omitempty"` +} + +// AlertCapabilities redfish structure +type AlertCapabilities struct { + CorrectableECCError bool `json:"CorrectableECCError,omitempty"` + SpareBlock bool `json:"SpareBlock,omitempty"` + Temperature bool `json:"Temperature,omitempty"` + UncorrectableECCError bool `json:"UncorrectableECCError,omitempty"` } // Congestion redfish structure diff --git a/lib-dmtf/model/serviceRoot.go b/lib-dmtf/model/serviceRoot.go index e1b043ca2..caffeb91a 100644 --- a/lib-dmtf/model/serviceRoot.go +++ b/lib-dmtf/model/serviceRoot.go @@ -60,6 +60,55 @@ type ServiceRoot struct { RegisteredClients *Link `json:"RegisteredClients,omitempty"` ServiceConditions *Link `json:"ServiceConditions,omitempty"` LicenseService *Link `json:"LicenseService,omitempty"` + PowerEquipment PowerEquipment `json:"PowerEquipment,omitempty"` + ThermalEquipment ThermalEquipment `json:"ThermalEquipment,omitempty"` +} + +// ThermalEquipment redfish structure +type ThermalEquipment struct { + ODataContext string `json:"@odata.context,omitempty"` + ODataID string `json:"@odata.id,omitempty"` + ODataEtag string `json:"@odata.etag,omitempty"` + ODataType string `json:"@odata.type,omitempty"` + Description string `json:"Description,omitempty"` + Actions *OemActions `json:"Actions,omitempty"` + ID string `json:"Id"` + Name string `json:"Name"` + OEM *Oem `json:"Oem,omitempty"` + Status Status `json:"Status,omitempty"` + CDUs CoolingLoopCollection `json:"CDUs,omitempty"` + CoolingLoops CoolingLoopCollection `json:"CoolingLoops,omitempty"` + HeatExchangers CoolingLoopCollection `json:"HeatExchangers,omitempty"` + ImmersionUnits CoolingLoopCollection `json:"ImmersionUnits,omitempty"` +} + +// CoolingLoopCollection redfish structure +type CoolingLoopCollection struct { + ODataContext string `json:"@odata.context,omitempty"` + ODataID string `json:"@odata.id,omitempty"` + ODataEtag string `json:"@odata.etag,omitempty"` + ODataType string `json:"@odata.type,omitempty"` + Description string `json:"Description,omitempty"` + Name string `json:"Name"` + OEM *Oem `json:"Oem,omitempty"` + Members []string `json:"Members"` + MembersODataCount int `json:"Members@odata.count"` + MembersODataNextLink string `json:"Members@odata.nextLink,omitempty"` +} + +// PowerEquipment redfish structure +type PowerEquipment struct { + ODataContext string `json:"@odata.context,omitempty"` + ODataID string `json:"@odata.id,omitempty"` + ODataEtag string `json:"@odata.etag,omitempty"` + ODataType string `json:"@odata.type,omitempty"` + Description string `json:"Description,omitempty"` + Actions *OemActions `json:"Actions,omitempty"` + ID string `json:"Id"` + Links Links `json:"Links"` + Name string `json:"Name"` + Status Status `json:"Status,omitempty"` + OEM *Oem `json:"Oem,omitempty"` } // Product redfish structure @@ -67,11 +116,20 @@ type Product struct{} // ProtocolFeaturesSupported redfish structure type ProtocolFeaturesSupported struct { - ExcerptQuery bool `json:"ExcerptQuery"` - ExpandQuery *ExpandQuery `json:"ExpandQuery:omitempty"` - FilterQuery bool `json:"FilterQuery"` - OnlyMemberQuery bool `json:"OnlyMemberQuery"` - SelectQuery bool `json:"SelectQuery"` + ExcerptQuery bool `json:"ExcerptQuery"` + ExpandQuery *ExpandQuery `json:"ExpandQuery:omitempty"` + FilterQuery bool `json:"FilterQuery"` + OnlyMemberQuery bool `json:"OnlyMemberQuery"` + SelectQuery bool `json:"SelectQuery"` + MultipleHTTPRequests bool `json:"MultipleHTTPRequests,omitempty"` + DeepOperations *DeepOperations `json:"DeepOperations,omitempty"` +} + +// DeepOperations redfish structure +type DeepOperations struct { + DeepPATCH bool `json:"DeepPATCH,omitempty"` + DeepPOST bool `json:"DeepPOST,omitempty"` + MaxLevels int `json:"MaxLevels,omitempty"` } // ExpandQuery redfish structure diff --git a/lib-dmtf/model/storage.go b/lib-dmtf/model/storage.go index e49230615..425517b79 100644 --- a/lib-dmtf/model/storage.go +++ b/lib-dmtf/model/storage.go @@ -40,6 +40,22 @@ type Storage struct { DrivesCount int `json:"Drives@odata.count,omitempty"` RedundancyCount int `json:"Redundancy@odata.count,omitempty"` StorageControllersCount int `json:"StorageControllers@odata.count,omitempty"` + AutoVolumeCreate string `json:"AutoVolumeCreate,omitempty"` + Connections ConnectionCollection `json:"Connections,omitempty"` +} + +// ConnectionCollection redfish structure +type ConnectionCollection struct { + ODataContext string `json:"@odata.context,omitempty"` + ODataID string `json:"@odata.id,omitempty"` + ODataEtag string `json:"@odata.etag,omitempty"` + ODataType string `json:"@odata.type,omitempty"` + Description string `json:"Description,omitempty"` + Name string `json:"Name"` + OEM *Oem `json:"Oem,omitempty"` + Members []string `json:"Members"` + MembersODataCount int `json:"Members@odata.count"` + MembersODataNextLink string `json:"Members@odata.nextLink,omitempty"` } // StorageControllers redfish structure @@ -355,7 +371,7 @@ type Volume struct { ReplicaInfo *ReplicaInfo `json:"ReplicaInfo,omitempty"` ReplicaTargets []*Link `json:"ReplicaTargets,omitempty"` Status *StorageStatus `json:"Status,omitempty"` - StorageGroups *Link `json:"StorageGroups,omitempty"` + StorageGroups *Link `json:"StorageGroups,omitempty"` //deprecated StripSizeBytes int `json:"StripSizeBytes,omitempty"` VolumeType string `json:"VolumeType,omitempty"` VolumeUsage string `json:"VolumeUsage,omitempty"`