sag
Minnow
Posts: 18
|
Post by sag on Dec 22, 2023 20:37:48 GMT
Hi,
when reading the Firmware Update whitepaper, I got confused by the fact that it allows "@redfish.OperationApplyTime" to appear in the UpdateParameters for a HTTP Multipart PUSH update request. Is there some document or specification, from Redfish or OData, that explains how and when Term elements defined in RedfishExtensions_v1.xml can be used in requests or responses? Also, are OEMs allowed to define their own Terms?
This is probably OData 101, but I'd appreciate an explanation.
|
|
|
Post by mraineri on Dec 27, 2023 1:09:24 GMT
"Term" in CSDL is specifically used to define annotations. Annotations are typically just used to further document the schema itself, but in some cases they can be used to annotate payloads. Redfish uses a common set of payload annotations for extensibility without having to copy/paste the definition into every schema file. For example, "@message.ExtendedInfo" is a payload annotation defined in Message_v1.xml that can be used to add warning/error information into any JSON object. Essentially anything that contains the "@" character is some sort of payload annotation, either for a single property or a JSON object. This includes the operations apply time payload annotation.
There are a lot of ODataisms around this, but we tried to keep everything we use in Redfish documented in the "Payload annotations" clause of the Redfish Specification. This would be a good place to start reading so you don't have to sift through OData's specification. Most of the payload annotations we allow in Redfish are only expected in response payloads. There are only a few payload annotations clients can use (such as @redfish.OperationApplyTime). At this time, it's not possible for OEMs to define their own annotations for payloads.
|
|
sag
Minnow
Posts: 18
|
Post by sag on Dec 27, 2023 10:33:28 GMT
Thanks!
|
|