{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_1_0.json",
    "title": "#Manager.v1_1_0.Manager",
    "$ref": "#/definitions/Manager",
    "definitions": {
        "ForceFailover": {
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "title": {
                    "type": "string",
                    "description": "Friendly action name"
                },
                "target": {
                    "type": "string",
                    "format": "uri",
                    "description": "Link to invoke action"
                }
            },
            "description": "The ForceFailover action forces a failover of this manager to the manager used in the parameter",
            "longDescription": "This defines the name of the custom action supported when used in conjunction with a POST operation to this resource. When issued, this operation will perform a forced failover of the manager's redundancy to the manager supplied as a parameter."
        },
        "ModifyRedundancySet": {
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "title": {
                    "type": "string",
                    "description": "Friendly action name"
                },
                "target": {
                    "type": "string",
                    "format": "uri",
                    "description": "Link to invoke action"
                }
            },
            "description": "The ModifyRedundancySet operation is used to add or remove members to a redundant group of manager.",
            "longDescription": "This defines the name of the custom action for which the following properties are supported on this resource.  The ModifyRedundancySet operation shall be used to add or remove members to a redundant group of manager."
        },
        "Reset": {
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "title": {
                    "type": "string",
                    "description": "Friendly action name"
                },
                "target": {
                    "type": "string",
                    "format": "uri",
                    "description": "Link to invoke action"
                }
            },
            "description": "The reset action resets/reboots the manager.",
            "longDescription": "This defines the name of the custom action supported when used in conjunction with a POST operation to this resource. When issued, this operation will perform a reset of the manager."
        },
        "CommandConnectTypesSupported": {
            "type": "string",
            "enum": [
                "SSH",
                "Telnet",
                "IPMI",
                "Oem"
            ],
            "enumDescriptions": {
                "SSH": "The controller supports a Command Shell connection using the SSH protocol",
                "Telnet": "The controller supports a Command Shell connection using the SSH protocol",
                "IPMI": "The controller supports a Command Shell connection using the SSH protocol",
                "Oem": "The controller supports a Command Shell connection using an OEM-specific protocol"
            }
        },
        "CommandShell": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "ServiceEnabled": {
                    "type": "boolean",
                    "description": "Indicates if the service is enabled for this manager.",
                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled."
                },
                "MaxConcurrentSessions": {
                    "type": "number",
                    "minimum": 0,
                    "readonly": true,
                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation."
                },
                "ConnectTypesSupported": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CommandConnectTypesSupported"
                    },
                    "readonly": true,
                    "description": "This object is used to enumerate the Command Shell connection types allowed by the implementation.",
                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported."
                }
            },
            "description": "Used for describing services like Serial Console, Command Shell or Graphical Console"
        },
        "GraphicalConnectTypesSupported": {
            "type": "string",
            "enum": [
                "KVMIP",
                "Oem"
            ],
            "enumDescriptions": {
                "KVMIP": "The controller supports a Graphical Console connection using a KVM-IP (redirection of Keyboard, Video, Mouse over IP) protocol",
                "Oem": "The controller supports a Graphical Console connection using an OEM-specific protocol"
            }
        },
        "GraphicalConsole": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "ServiceEnabled": {
                    "type": "boolean",
                    "description": "Indicates if the service is enabled for this manager.",
                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled."
                },
                "MaxConcurrentSessions": {
                    "type": "number",
                    "minimum": 0,
                    "readonly": true,
                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation."
                },
                "ConnectTypesSupported": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/GraphicalConnectTypesSupported"
                    },
                    "readonly": true,
                    "description": "This object is used to enumerate the Graphical Console connection types allowed by the implementation.",
                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  RDP shall be included if the Remote Desktop (RDP) protocol is supported.  KVMIP shall be included if a vendor-define KVM-IP protocol is supported."
                }
            },
            "description": "Used for describing services like Serial Console, Command Shell or Graphical Console"
        },
        "ManagerService": {

        },
        "ManagerType": {
            "type": "string",
            "enum": [
                "ManagementController",
                "EnclosureManager",
                "BMC",
                "RackManager",
                "AuxiliaryController"
            ],
            "enumDescriptions": {
                "ManagementController": "A controller used primarily to monitor or manage the operation of a device or system",
                "EnclosureManager": "A controller which provides management functions for a chassis or group of devices or systems",
                "BMC": "A controller which provides management functions for a single computer system",
                "RackManager": "A controller which provides management functions for a whole or part of a rack",
                "AuxiliaryController": "A controller which provides management functions for a particular subsystem or group of devices"
            }
        },
        "SerialConnectTypesSupported": {
            "type": "string",
            "enum": [
                "SSH",
                "Telnet",
                "IPMI",
                "Oem"
            ],
            "enumDescriptions": {
                "SSH": "The controller supports a Serial Console connection using the SSH protocol",
                "Telnet": "The controller supports a Serial Console connection using the Telnet protocol",
                "IPMI": "The controller supports a Serial Console connection using the IPMI Serial-over-LAN (SOL) protocol",
                "Oem": "The controller supports a Serial Console connection using an OEM-specific protocol"
            }
        },
        "SerialConsole": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "ServiceEnabled": {
                    "type": "boolean",
                    "description": "Indicates if the service is enabled for this manager.",
                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled."
                },
                "MaxConcurrentSessions": {
                    "type": "number",
                    "minimum": 0,
                    "readonly": true,
                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation."
                },
                "ConnectTypesSupported": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SerialConnectTypesSupported"
                    },
                    "readonly": true,
                    "description": "This object is used to enumerate the Serial Console connection types allowed by the implementation.",
                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported."
                }
            },
            "description": "Used for describing services like Serial Console, Command Shell or Graphical Console"
        },
        "Manager": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id"
                },
                "Description": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
                        {"type": "null"}
                    ]
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name"
                },
                "ManagerType": {
                    "$ref": "#/definitions/ManagerType",
                    "readonly": true,
                    "description": "This property represents the type of manager that this resource represents.",
                    "longDescription": "The value of this property shall describe the function of this manager.  The value EnclosureManager shall be used if this manager controls one or more services through aggregation.  The value BMC shall be used if this manager represents a traditional server management controller. The value ManagementController shall be used if none of the other enumerations apply."
                },
                "Links": {
                    "type": "object",
                    "patternProperties": {
                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                            "type": [
                                "array",
                                "boolean",
                                "number",
                                "null",
                                "object",
                                "string"
                            ],
                            "description": "This property shall specify a valid odata or Redfish property."
                        }
                    },
                    "additionalProperties": false,
                    "properties": {
                        "Oem": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                            "description": "Oem extension object.",
                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
                        },
                        "ManagerForServers@odata.count": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                        },
                        "ManagerForServers@odata.navigationLink": {
                            "type": "string",
                            "format": "uri"
                        },
                        "ManagerForServers": {
                            "type": "array",
                            "items": {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
                            },
                            "readonly": true,
                            "description": "This property is an array of references to the systems that this manager has control over.",
                            "longDescription": "This property shall contain an array of references to ComputerSystem resources of which this Manager instance has control."
                        },
                        "ManagerForChassis@odata.count": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                        },
                        "ManagerForChassis@odata.navigationLink": {
                            "type": "string",
                            "format": "uri"
                        },
                        "ManagerForChassis": {
                            "type": "array",
                            "items": {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
                            },
                            "readonly": true,
                            "description": "This property is an array of references to the chassis that this manager has control over.",
                            "longDescription": "This property shall contain an array of references to Chassis resources of which this Manager instance has control."
                        },
                        "ManagerInChassis": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
                            "readonly": true,
                            "description": "This property is a reference to the chassis that this manager is located in.",
                            "longDescription": "This property shall contain a reference to the chassis that this manager is located in."
                        }
                    },
                    "readonly": true,
                    "description": "Contains references to other resources that are related to this resource.",
                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
                },
                "ServiceEntryPointUUID": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID",
                    "readonly": true,
                    "description": "The UUID of the Redfish Service provided by this manager",
                    "longDescription": "This property shall contain the UUID of the Redfish Service provided by this manager.  Each Manager providing an Entry Point to the same Redfish Service shall report the same UUID value (even though the name of the property may imply otherwise).  This property shall not be present if this manager does not provide a Redfish Service Entry Point."
                },
                "UUID": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "The Universal Unique Identifier (UUID) for this Manager",
                    "longDescription": "The value of this property shall contain the universal unique identifier number for the manager."
                },
                "Model": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The model information of this Manager as defined by the manufacturer",
                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this manager."
                },
                "DateTime": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "date-time",
                    "readonly": false,
                    "description": "The current DateTime (with offset) for the manager, used to set or read time.",
                    "longDescription": "The value of this property shall represent the current DateTime value for the manager, with offset from UTC, in Redfish Timestamp format."
                },
                "DateTimeLocalOffset": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "pattern": "([-+][0-1][0-9]:[0-5][0-9])",
                    "readonly": false,
                    "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .",
                    "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains."
                },
                "FirmwareVersion": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The firmware version of this Manager",
                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated manager."
                },
                "SerialConsole": {
                    "$ref": "#/definitions/SerialConsole",
                    "description": "Information about the Serial Console service provided by this manager.",
                    "longDescription": "The value of this property shall contain information about the Serial Console service of this manager."
                },
                "CommandShell": {
                    "$ref": "#/definitions/CommandShell",
                    "description": "Information about the Command Shell service provided by this manager.",
                    "longDescription": "The value of this property shall contain information about the Command Shell service of this manager."
                },
                "GraphicalConsole": {
                    "$ref": "#/definitions/GraphicalConsole",
                    "description": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager.",
                    "longDescription": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager."
                },
                "Actions": {
                    "type": "object",
                    "patternProperties": {
                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                            "type": [
                                "array",
                                "boolean",
                                "number",
                                "null",
                                "object",
                                "string"
                            ],
                            "description": "This property shall specify a valid odata or Redfish property."
                        }
                    },
                    "additionalProperties": false,
                    "properties": {
                        "Oem": {
                            "type": "object",
                            "patternProperties": {
                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                                    "type": [
                                        "array",
                                        "boolean",
                                        "number",
                                        "null",
                                        "object",
                                        "string"
                                    ],
                                    "description": "This property shall specify a valid odata or Redfish property."
                                }
                            },
                            "additionalProperties": true,
                            "properties": {}
                        },
                        "#Manager.ForceFailover": {
                            "$ref": "#/definitions/ForceFailover"
                        },
                        "#Manager.ModifyRedundancySet": {
                            "$ref": "#/definitions/ModifyRedundancySet"
                        },
                        "#Manager.Reset": {
                            "$ref": "#/definitions/Reset"
                        }
                    },
                    "readonly": true,
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
                },
                "EthernetInterfaces": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
                    "readonly": true,
                    "description": "This is a reference to a collection of NICs that this manager uses for network communication.  It is here that clients will find NIC configuration options and settings.",
                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection."
                },
                "SerialInterfaces": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/SerialInterfaceCollection.json#/definitions/SerialInterfaceCollection",
                    "readonly": true,
                    "description": "This is a reference to a collection of serial interfaces that this manager uses for serial and console communication.  It is here that clients will find serial configuration options and settings.",
                    "longDescription": "The value of this property shall be a link to a collection of type SerialInterfaceCollection which are for the use of this manager."
                },
                "NetworkProtocol": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
                    "readonly": true,
                    "description": "This is a reference to the network services and their settings that the manager controls.  It is here that clients will find network configuration options as well as network services.",
                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this manager."
                },
                "LogServices": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
                    "readonly": true,
                    "description": "This is a reference to a collection of Logs used by the manager.",
                    "longDescription": "The value of this property shall contain a reference to a collection of type LogServiceCollection which are for the use of this manager."
                },
                "VirtualMedia": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/VirtualMediaCollection.json#/definitions/VirtualMediaCollection",
                    "readonly": true,
                    "description": "This is a reference to the Virtual Media services for this particular manager.",
                    "longDescription": "The value of this property shall contain a reference to a collection of type VirtualMediaCollection which are for the use of this manager."
                },
                "Redundancy@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                },
                "Redundancy@odata.navigationLink": {
                    "type": "string",
                    "format": "uri"
                },
                "Redundancy": {
                    "type": "array",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
                    },
                    "readonly": true,
                    "description": "Redundancy information for the managers of this system"
                }
            },
            "required": [
                "Id",
                "Name"
            ],
            "description": "This is the schema definition for a Manager.  Examples of managers are BMCs, Enclosure Managers, Management Controllers and other subsystems assigned managability functions.",
            "longDescription": "This resource shall be used to represent a management subsystem for a Redfish implementation."
        }
    },
    "copyright": "Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
