Fix OemManager schema for profiles

Make schema pass validator. Found quite a few missing
fields and odata.id issues.

Tested: Passes validator

Change-Id: Ibba92018d07a2a9f2ba833c295a235fee7845a97
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/static/redfish/v1/schema/OemManager_v1.xml b/static/redfish/v1/schema/OemManager_v1.xml
index 171855f..164f272 100644
--- a/static/redfish/v1/schema/OemManager_v1.xml
+++ b/static/redfish/v1/schema/OemManager_v1.xml
@@ -21,37 +21,41 @@
 
     <edmx:DataServices>
         <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemManager">
-            <ComplexType Name="Oem" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="Oem" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OemManager Oem properties." />
                 <Annotation Term="OData.AutoExpand"/>
-                <NavigationProperty Name="OpenBmc" Type="OemManager.OpenBmc"/>
+                <Property Name="OpenBmc" Type="OemManager.OpenBmc"/>
             </ComplexType>
 
-            <EntityType Name="OpenBmc" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="OpenBmc">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="Oem properties for OpenBmc." />
                 <Annotation Term="OData.AutoExpand"/>
-                <NavigationProperty Name="Fan" Type="OemManager.Fan"/>
-            </EntityType>
+                <Property Name="Fan" Type="OemManager.Fan"/>
+            </ComplexType>
 
-            <EntityType Name="Fan" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="Fan">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OpenBmc oem fan properties." />
                 <Annotation Term="OData.AutoExpand"/>
-                <NavigationProperty Name="FanControllers" Type="OemManager.FanControllers"/>
-                <NavigationProperty Name="PidControllers" Type="OemManager.PidControllers"/>
-                <NavigationProperty Name="StepwiseControllers" Type="OemManager.StepwiseControllers"/>
-                <NavigationProperty Name="FanZones" Type="OemManager.FanZones"/>
-            </EntityType>
+                <Property Name="FanControllers" Type="OemManager.FanControllers"/>
+                <Property Name="PidControllers" Type="OemManager.PidControllers"/>
+                <Property Name="StepwiseControllers" Type="OemManager.StepwiseControllers"/>
+                <Property Name="FanZones" Type="OemManager.FanZones"/>
+                <Property Name="Profile" Type="Edm.String">
+                    <Annotation Term="OData.Description" String="Current thermal profile."/>
+                    <Annotation Term="OData.LongDescription" String="Current thermal profile."/>
+                </Property>
 
-            <EntityType Name="FanControllers" BaseType="Resource.OemObject" ContainsTarget="true">
+            </ComplexType>
+
+            <ComplexType Name="FanControllers" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OpenBmc FanControllers." />
                 <Annotation Term="OData.LongDescription" String="Container for OpenBmc fan controllers." />
                 <Annotation Term="Redfish.DynamicPropertyPatterns">
-                    <Annotation Term="OData.AutoExpand"/>
-                    <Collection ContainsTarget="true">
+                    <Collection>
                         <NavigationProperty Type="OemManager.FanController">
                             <Annotation Term="OData.AutoExpand"/>
                             <PropertyValue Property="Pattern" String="[A-Za-z0-9_.:]+" />
@@ -59,15 +63,14 @@
                         </NavigationProperty>
                     </Collection>
                 </Annotation>
-            </EntityType>
+            </ComplexType>
 
-            <EntityType Name="PidControllers" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="PidControllers" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OpenBmc PidControllers." />
                 <Annotation Term="OData.LongDescription" String="Container for OpenBmc pid controllers." />
                 <Annotation Term="Redfish.DynamicPropertyPatterns">
-                    <Annotation Term="OData.AutoExpand"/>
-                    <Collection ContainsTarget="true">
+                    <Collection>
                         <NavigationProperty>
                             <Annotation Term="OData.AutoExpand"/>
                             <PropertyValue Property="Pattern" String="[A-Za-z0-9_.:]+" />
@@ -75,15 +78,14 @@
                         </NavigationProperty>
                     </Collection>
                 </Annotation>
-            </EntityType>
+            </ComplexType>
 
-            <EntityType Name="StepwiseControllers" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="StepwiseControllers" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OpenBmc StepwiseControllers." />
                 <Annotation Term="OData.LongDescription" String="Container for OpenBmc Stepwise controllers." />
                 <Annotation Term="Redfish.DynamicPropertyPatterns">
-                    <Annotation Term="OData.AutoExpand"/>
-                    <Collection ContainsTarget="true">
+                    <Collection>
                         <NavigationProperty>
                             <Annotation Term="OData.AutoExpand"/>
                             <PropertyValue Property="Pattern" String="[A-Za-z0-9_.:]+" />
@@ -91,15 +93,14 @@
                         </NavigationProperty>
                     </Collection>
                 </Annotation>
-            </EntityType>
+            </ComplexType>
 
-            <EntityType Name="FanZones" BaseType="Resource.OemObject" ContainsTarget="true">
+            <ComplexType Name="FanZones" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
                 <Annotation Term="OData.Description" String="OpenBmc FanZones." />
                 <Annotation Term="OData.LongDescription" String="Container for OpenBmc fan zones." />
                 <Annotation Term="Redfish.DynamicPropertyPatterns">
-                    <Annotation Term="OData.AutoExpand"/>
-                    <Collection ContainsTarget="true">
+                    <Collection>
                         <NavigationProperty>
                             <Annotation Term="OData.AutoExpand"/>
                             <PropertyValue Property="Pattern" String="[A-Za-z0-9_.:]+" />
@@ -107,13 +108,7 @@
                         </NavigationProperty>
                     </Collection>
                 </Annotation>
-            </EntityType>
-
-            <!-- In reality we'd like these all to be entities, but the Pattern Expansion for
-            Navigation Properties doesn't seem to quite work right. As FanZones should always have
-            some FanController / PidController, the navigation properties in those fields sould let
-            the conformance test find them. However FanControllers / PidControllers are only linked to
-            by the pattern expansion, as that's not working they are complex types -->
+            </ComplexType>
 
             <ComplexType Name="FanController" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="false" />
@@ -150,6 +145,14 @@
                     <Annotation Term="OData.Description" String="Output limit minimum for the pwm." />
                     <Annotation Term="OData.LongDescription" String="Output limit minimum for the pwm." />
                 </Property>
+                <Property Name="NegativeHysteresis" Type="Edm.Decimal" Nullable="false">
+                    <Annotation Term="OData.Description" String="Negative hysteresis for the controller." />
+                    <Annotation Term="OData.LongDescription" String="Negative hysteresis for the controller." />
+               </Property>
+                <Property Name="PositiveHysteresis" Type="Edm.Decimal" Nullable="false">
+                    <Annotation Term="OData.Description" String="Positive hysteresis for the controller." />
+                    <Annotation Term="OData.LongDescription" String="Positive hysteresis for the controller." />
+               </Property>
                 <Property Name="Outputs" Type="Collection(Edm.String)">
                     <Annotation Term="OData.Description" String="Output sensors to the PID controller."/>
                     <Annotation Term="OData.LongDescription" String="Output sensors to the PID controller."/>
@@ -166,30 +169,30 @@
                     <Annotation Term="OData.Description" String="Positive slew rate for the PID." />
                     <Annotation Term="OData.LongDescription" String="Positive slew rate for the PID." />
                 </Property>
-                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)" ContainsTarget="true">
+                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)">
                     <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read" />
                     <Annotation Term="OData.Description" String="Contains the Zones that this PID contributes to." />
                     <Annotation Term="OData.AutoExpandReferences"/>
                 </NavigationProperty>
             </ComplexType>
 
-            <EntityType Name="FanZone" BaseType="Resource.OemObject">
+            <ComplexType Name="FanZone" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="false" />
                 <Annotation Term="OData.Description" String="Configuration data for Fan Controllers." />
                 <Property Name="FailSafePercent" Type="Edm.Decimal" Nullable="false">
                     <Annotation Term="OData.Description" String="If the sensors are in fail-safe mode, this is the percentage to use." />
                     <Annotation Term="OData.LongDescription" String="If the sensors are in fail-safe mode, this is the percentage to use." />
                 </Property>
-                <Property Name="MinThermalRpm" Type="Edm.Decimal" Nullable="false">
+                <Property Name="MinThermalOutput" Type="Edm.Decimal" Nullable="false">
                     <Annotation Term="OData.Description" String="Minimum thermal RPM that can be set in this Zone." />
                     <Annotation Term="OData.LongDescription" String="Minimum thermal RPM that can be set in this Zone." />
                 </Property>
-                <NavigationProperty Name="Chassis" Type="Chassis.Chassis" ContainsTarget="true">
+                <NavigationProperty Name="Chassis" Type="Chassis.Chassis">
                     <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
                     <Annotation Term="OData.Description" String="The Chassis that enables this Zone."/>
                     <Annotation Term="OData.AutoExpandReferences"/>
                 </NavigationProperty>
-            </EntityType>
+            </ComplexType>
 
             <ComplexType Name="PidController" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="false" />
@@ -226,10 +229,22 @@
                     <Annotation Term="OData.Description" String="Output limit minimum for the pwm." />
                     <Annotation Term="OData.LongDescription" String="Output limit minimum for the pwm." />
                 </Property>
+                <Property Name="NegativeHysteresis" Type="Edm.Decimal" Nullable="false">
+                    <Annotation Term="OData.Description" String="Negative hysteresis for the controller." />
+                    <Annotation Term="OData.LongDescription" String="Negative hysteresis for the controller." />
+               </Property>
+                <Property Name="PositiveHysteresis" Type="Edm.Decimal" Nullable="false">
+                    <Annotation Term="OData.Description" String="Positive hysteresis for the controller." />
+                    <Annotation Term="OData.LongDescription" String="Positive hysteresis for the controller." />
+               </Property>
                 <Property Name="PCoefficient" Type="Edm.Decimal" Nullable="false">
                     <Annotation Term="OData.Description" String="Polynomial coefficent for the PID." />
                     <Annotation Term="OData.LongDescription" String="Polynomial coefficent for the PID." />
                 </Property>
+               <Property Name="SetPoint" Type="Edm.Decimal" Nullable="false">
+                    <Annotation Term="OData.Description" String="Setpoint for the PID." />
+                    <Annotation Term="OData.LongDescription" String="Setpoint for the PID." />
+                </Property>
                 <Property Name="SlewNeg" Type="Edm.Decimal" Nullable="false">
                     <Annotation Term="OData.Description" String="Negative slew rate for the PID." />
                     <Annotation Term="OData.LongDescription" String="Negative slew rate for the PID." />
@@ -238,7 +253,7 @@
                     <Annotation Term="OData.Description" String="Positive slew rate for the PID." />
                     <Annotation Term="OData.LongDescription" String="Positive slew rate for the PID." />
                 </Property>
-                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)" ContainsTarget="true">
+                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)">
                     <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read" />
                     <Annotation Term="OData.Description" String="Contains the Zones that this PID contributes to." />
                     <Annotation Term="OData.AutoExpandReferences"/>
@@ -269,7 +284,7 @@
                     <Annotation Term="OData.Description" String="Direction that the stepwise controller applies."/>
                     <Annotation Term="OData.LongDescription" String="Direction that the stepwise controller applies. Options include Ceiling and Floor."/>
                 </Property>
-                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)" ContainsTarget="true">
+                <NavigationProperty Name="Zones" Type="Collection(OemManager.FanZone)">
                     <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read" />
                     <Annotation Term="OData.Description" String="Contains the Zones that this controller contributes to." />
                     <Annotation Term="OData.AutoExpandReferences"/>