Add Pid Oem Redfish Schema

This adds a xml and generated json redfish schema
for OemManager.

Change-Id: Ic2d42c4326ba02a423ffecc0bfa8c6872c3b389b
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/static/redfish/v1/JsonSchemas/OemManager/index.json b/static/redfish/v1/JsonSchemas/OemManager/index.json
new file mode 100644
index 0000000..c3b4bf4
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/OemManager/index.json
@@ -0,0 +1,413 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "definitions": {
+        "Fan": {
+            "additionalProperties": true,
+            "description": "OpenBmc oem fan properties.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FanControllers": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/FanControllers"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "FanZones": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/FanZones"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "PidControllers": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PidControllers"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "FanController": {
+            "additionalProperties": false,
+            "description": "Configuration data for Fan Controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FFGainCoefficient": {
+                    "description": "Feed forward gain coefficent for the PID.",
+                    "longDescription": "Feed forward gain coefficent for the PID.",
+                    "type": "number"
+                },
+                "FFOffCoefficient": {
+                    "description": "Feed forward offset coefficent for the PID.",
+                    "longDescription": "Feed forward offset coefficent for the PID.",
+                    "type": "number"
+                },
+                "ICoefficient": {
+                    "description": "Integral Coefficent for the PID.",
+                    "longDescription": "Integral Coefficent for the PID.",
+                    "type": "number"
+                },
+                "ILimitMax": {
+                    "description": "Integral limit maxiumum for the PID.",
+                    "longDescription": "Integral limit maxiumum for the PID.",
+                    "type": "number"
+                },
+                "ILimitMin": {
+                    "description": "Integral limit miniumum for the PID.",
+                    "longDescription": "Integral limit miniumum for the PID.",
+                    "type": "number"
+                },
+                "Inputs": {
+                    "description": "Input sensors to the PID controller.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "Input sensors to the PID controller.",
+                    "type": "array"
+                },
+                "OutLimitMax": {
+                    "description": "Output limit maxiumum for the pwm.",
+                    "longDescription": "Output limit maxiumum for the pwm.",
+                    "type": "number"
+                },
+                "OutLimitMin": {
+                    "description": "Output limit minimum for the pwm.",
+                    "longDescription": "Output limit minimum for the pwm.",
+                    "type": "number"
+                },
+                "Outputs": {
+                    "description": "Output sensors to the PID controller.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "Output sensors to the PID controller.",
+                    "type": "array"
+                },
+                "PCoefficient": {
+                    "description": "Polynomial coefficent for the PID.",
+                    "longDescription": "Polynomial coefficent for the PID.",
+                    "type": "number"
+                },
+                "SlewNeg": {
+                    "description": "Negative slew rate for the PID.",
+                    "longDescription": "Negative slew rate for the PID.",
+                    "type": "number"
+                },
+                "SlewPos": {
+                    "description": "Positive slew rate for the PID.",
+                    "longDescription": "Positive slew rate for the PID.",
+                    "type": "number"
+                },
+                "Zones": {
+                    "description": "Contains the Zones that this PID contributes to.",
+                    "items": {
+                        "$ref": "#/definitions/FanZone"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Zones@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "FanControllers": {
+            "additionalProperties": true,
+            "description": "OpenBmc FanControllers.",
+            "longDescription": "Container for OpenBmc fan controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "FanZone": {
+            "additionalProperties": false,
+            "description": "Configuration data for Fan Controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Chassis that enables this Zone.",
+                    "readonly": true
+                },
+                "FailSafePercent": {
+                    "description": "If the sensors are in fail-safe mode, this is the percentage to use.",
+                    "longDescription": "If the sensors are in fail-safe mode, this is the percentage to use.",
+                    "type": "number"
+                },
+                "MinThermalRpm": {
+                    "description": "Minimum thermal RPM that can be set in this Zone.",
+                    "longDescription": "Minimum thermal RPM that can be set in this Zone.",
+                    "type": "number"
+                }
+            },
+            "type": "object"
+        },
+        "FanZones": {
+            "additionalProperties": true,
+            "description": "OpenBmc FanZones.",
+            "longDescription": "Container for OpenBmc fan zones.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Oem": {
+            "additionalProperties": true,
+            "description": "OemManager Oem properties.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "OpenBmc": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/OpenBmc"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "OpenBmc": {
+            "additionalProperties": true,
+            "description": "Oem properties for OpenBmc.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Fan": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Fan"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "PidController": {
+            "additionalProperties": false,
+            "description": "Configuration data for Fan Controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FFGainCoefficient": {
+                    "description": "Feed forward gain coefficent for the PID.",
+                    "longDescription": "Feed forward gain coefficent for the PID.",
+                    "type": "number"
+                },
+                "FFOffCoefficient": {
+                    "description": "Feed forward offset coefficent for the PID.",
+                    "longDescription": "Feed forward offset coefficent for the PID.",
+                    "type": "number"
+                },
+                "ICoefficient": {
+                    "description": "Integral Coefficent for the PID.",
+                    "longDescription": "Integral Coefficent for the PID.",
+                    "type": "number"
+                },
+                "ILimitMax": {
+                    "description": "Integral limit maxiumum for the PID.",
+                    "longDescription": "Integral limit maxiumum for the PID.",
+                    "type": "number"
+                },
+                "ILimitMin": {
+                    "description": "Integral limit miniumum for the PID.",
+                    "longDescription": "Integral limit miniumum for the PID.",
+                    "type": "number"
+                },
+                "Inputs": {
+                    "description": "Input sensors to the PID controller.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "Input sensors to the PID controller.",
+                    "type": "array"
+                },
+                "OutLimitMax": {
+                    "description": "Output limit maxiumum for the pwm.",
+                    "longDescription": "Output limit maxiumum for the pwm.",
+                    "type": "number"
+                },
+                "OutLimitMin": {
+                    "description": "Output limit minimum for the pwm.",
+                    "longDescription": "Output limit minimum for the pwm.",
+                    "type": "number"
+                },
+                "PCoefficient": {
+                    "description": "Polynomial coefficent for the PID.",
+                    "longDescription": "Polynomial coefficent for the PID.",
+                    "type": "number"
+                },
+                "SlewNeg": {
+                    "description": "Negative slew rate for the PID.",
+                    "longDescription": "Negative slew rate for the PID.",
+                    "type": "number"
+                },
+                "SlewPos": {
+                    "description": "Positive slew rate for the PID.",
+                    "longDescription": "Positive slew rate for the PID.",
+                    "type": "number"
+                },
+                "Zones": {
+                    "description": "Contains the Zones that this PID contributes to.",
+                    "items": {
+                        "$ref": "#/definitions/FanZone"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Zones@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "PidControllers": {
+            "additionalProperties": true,
+            "description": "OpenBmc PidControllers.",
+            "longDescription": "Container for OpenBmc pid controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#OemManager"
+}