Post by Venkatesh Periyasamy on Nov 24, 2017 13:17:32 GMT
Do we need to mention version of swordfish specification somewhere(i.e 1.0.3) ? If not , Is it OK to add in ServiceRoot itself with "SwordfishVersion" ? I have not seen any resource which talks about the swordfish version.
Options: 1) Add SwordfishVersion to ServiceRoot 2) Add Term SwordfishVersion and annotate ServiceRoot and ServiceContainer with that value. 3) Add Term CompliesTo with a collection of SpecificationName and SpecificationVersion properties <Term Name="CompliesTo" Type="Collection(Core.CompliesToType)" Nullable="false"> <Annotation Term="Core.Description" String="List of specifications that this element complies to." /> </Term> <ComplexType Name="CompliesToType"> <Property Name="Specification" Type="Edm.String"> <Annotation Term="Core.Description" String="The name of the specification that this element complies to." /> </Property> <Property Name="Version" Type="Edm.String"> <Annotation Term="Core.Description" String="The version of the specification that this element complies to." /> </Property> </ComplexType>
#1 and #2 are problematic, since these do not cover vendor extensions. I recommend #3. It covers any specification and any element. We can specify that Swordfish implementations should (shall) use this term to annotate the ServiceRoot.
Answering your second question first, It is not OK to add anything into ServiceRoot as the Schema defines that no properties not in the schema can be added (unless you do it in OEM). Asking your first question again - do we even need to mention the sowrdfish version somewhere? The only reason RedfishVersion is in the root is because that's the version of the protocol spec. Schema's change and are in Odata.type. And so far, I don't know that we've found the need to even use RedfishVersion. Can someone explain why the version swordfish spec should be in the model?