| { |
| "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json", |
| "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", |
| "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" |
| } |
| ] |
| }, |
| "Profile": { |
| "description": "Current thermal profile.", |
| "longDescription": "Current thermal profile.", |
| "type": [ |
| "string", |
| "null" |
| ] |
| }, |
| "StepwiseControllers": { |
| "anyOf": [ |
| { |
| "$ref": "#/definitions/StepwiseControllers" |
| }, |
| { |
| "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 coefficient for the PID.", |
| "longDescription": "Feed forward gain coefficient for the PID.", |
| "type": "number" |
| }, |
| "FFOffCoefficient": { |
| "description": "Feed forward offset coefficient for the PID.", |
| "longDescription": "Feed forward offset coefficient for the PID.", |
| "type": "number" |
| }, |
| "ICoefficient": { |
| "description": "Integral Coefficient for the PID.", |
| "longDescription": "Integral Coefficient for the PID.", |
| "type": "number" |
| }, |
| "ILimitMax": { |
| "description": "Integral limit maximum for the PID.", |
| "longDescription": "Integral limit maximum for the PID.", |
| "type": "number" |
| }, |
| "ILimitMin": { |
| "description": "Integral limit minimum for the PID.", |
| "longDescription": "Integral limit minimum 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" |
| }, |
| "NegativeHysteresis": { |
| "description": "Negative hysteresis for the controller.", |
| "longDescription": "Negative hysteresis for the controller.", |
| "type": "number" |
| }, |
| "OutLimitMax": { |
| "description": "Output limit maximum for the pwm.", |
| "longDescription": "Output limit maximum 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 coefficient for the PID.", |
| "longDescription": "Polynomial coefficient for the PID.", |
| "type": "number" |
| }, |
| "PositiveHysteresis": { |
| "description": "Positive hysteresis for the controller.", |
| "longDescription": "Positive hysteresis for the controller.", |
| "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" |
| }, |
| "MinThermalOutput": { |
| "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 coefficient for the PID.", |
| "longDescription": "Feed forward gain coefficient for the PID.", |
| "type": "number" |
| }, |
| "FFOffCoefficient": { |
| "description": "Feed forward offset coefficient for the PID.", |
| "longDescription": "Feed forward offset coefficient for the PID.", |
| "type": "number" |
| }, |
| "ICoefficient": { |
| "description": "Integral Coefficient for the PID.", |
| "longDescription": "Integral Coefficient for the PID.", |
| "type": "number" |
| }, |
| "ILimitMax": { |
| "description": "Integral limit maximum for the PID.", |
| "longDescription": "Integral limit maximum for the PID.", |
| "type": "number" |
| }, |
| "ILimitMin": { |
| "description": "Integral limit minimum for the PID.", |
| "longDescription": "Integral limit minimum 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" |
| }, |
| "NegativeHysteresis": { |
| "description": "Negative hysteresis for the controller.", |
| "longDescription": "Negative hysteresis for the controller.", |
| "type": "number" |
| }, |
| "OutLimitMax": { |
| "description": "Output limit maximum for the pwm.", |
| "longDescription": "Output limit maximum 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 coefficient for the PID.", |
| "longDescription": "Polynomial coefficient for the PID.", |
| "type": "number" |
| }, |
| "PositiveHysteresis": { |
| "description": "Positive hysteresis for the controller.", |
| "longDescription": "Positive hysteresis for the controller.", |
| "type": "number" |
| }, |
| "SetPoint": { |
| "description": "Setpoint for the PID.", |
| "longDescription": "Setpoint for the PID.", |
| "type": "number" |
| }, |
| "SetPointOffset": { |
| "description": "Threshold to take value from and apply to setpoint.", |
| "longDescription": "Threshold to take value from and apply to setpoint. Valid threshold names are supported.", |
| "type": "string" |
| }, |
| "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" |
| }, |
| "StepwiseController": { |
| "additionalProperties": false, |
| "description": "Configuration data for Stepwise 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": { |
| "Direction": { |
| "description": "Direction that the stepwise controller applies.", |
| "longDescription": "Direction that the stepwise controller applies. Options include Ceiling and Floor.", |
| "type": [ |
| "string", |
| "null" |
| ] |
| }, |
| "Inputs": { |
| "description": "Input sensors to the Stepwise controller.", |
| "items": { |
| "type": [ |
| "string", |
| "null" |
| ] |
| }, |
| "longDescription": "Input sensors to the Stepwise controller.", |
| "type": "array" |
| }, |
| "NegativeHysteresis": { |
| "description": "Negative Hysteresis for the stepwise controller.", |
| "longDescription": "Negative Hysteresis for the stepwise controller.", |
| "type": "number" |
| }, |
| "PositiveHysteresis": { |
| "description": "Positive Hysteresis for the stepwise controller.", |
| "longDescription": "Positive Hysteresis for the stepwise controller.", |
| "type": "number" |
| }, |
| "Steps": { |
| "description": "Temperature vs RPM steps for the stepwise controller.", |
| "items": { |
| "anyOf": [ |
| { |
| "$ref": "#/definitions/StepwiseSteps" |
| }, |
| { |
| "type": "null" |
| } |
| ] |
| }, |
| "longDescription": "Temperature vs RPM steps for the stepwise controller.", |
| "type": "array" |
| }, |
| "Zones": { |
| "description": "Contains the Zones that this controller 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" |
| }, |
| "StepwiseControllers": { |
| "additionalProperties": true, |
| "description": "OpenBmc StepwiseControllers.", |
| "longDescription": "Container for OpenBmc Stepwise 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" |
| }, |
| "StepwiseSteps": { |
| "additionalProperties": false, |
| "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": { |
| "Output": { |
| "description": "Fan speed setting for step.", |
| "longDescription": "Fan speed setting for step.", |
| "type": "number" |
| }, |
| "Target": { |
| "description": "Input sensor reading for step.", |
| "longDescription": "Input sensor reading for step.", |
| "type": "number" |
| } |
| }, |
| "type": "object" |
| } |
| }, |
| "title": "#OemManager" |
| } |