{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
    "title": "#LogEntry.v1_0_4.LogEntry",
    "$ref": "#/definitions/LogEntry",
    "definitions": {
        "EventSeverity": {
            "type": "string",
            "enum": [
                "OK",
                "Warning",
                "Critical"
            ]
        },
        "LogEntryCode": {
            "type": "string",
            "enum": [
                "Assert",
                "Deassert",
                "Lower Non-critical - going low",
                "Lower Non-critical - going high",
                "Lower Critical - going low",
                "Lower Critical - going high",
                "Lower Non-recoverable - going low",
                "Lower Non-recoverable - going high",
                "Upper Non-critical - going low",
                "Upper Non-critical - going high",
                "Upper Critical - going low",
                "Upper Critical - going high",
                "Upper Non-recoverable - going low",
                "Upper Non-recoverable - going high",
                "Transition to Idle",
                "Transition to Active",
                "Transition to Busy",
                "State Deasserted",
                "State Asserted",
                "Predictive Failure deasserted",
                "Predictive Failure asserted",
                "Limit Not Exceeded",
                "Limit Exceeded",
                "Performance Met",
                "Performance Lags",
                "Transition to OK",
                "Transition to Non-Critical from OK",
                "Transition to Critical from less severe",
                "Transition to Non-recoverable from less severe",
                "Transition to Non-Critical from more severe",
                "Transition to Critical from Non-recoverable",
                "Transition to Non-recoverable",
                "Monitor",
                "Informational",
                "Device Removed / Device Absent",
                "Device Inserted / Device Present",
                "Device Disabled",
                "Device Enabled",
                "Transition to Running",
                "Transition to In Test",
                "Transition to Power Off",
                "Transition to On Line",
                "Transition to Off Line",
                "Transition to Off Duty",
                "Transition to Degraded",
                "Transition to Power Save",
                "Install Error",
                "Fully Redundant",
                "Redundancy Lost",
                "Redundancy Degraded",
                "Non-redundant:Sufficient Resources from Redundant",
                "Non-redundant:Sufficient Resources from Insufficient Resources",
                "Non-redundant:Insufficient Resources",
                "Redundancy Degraded from Fully Redundant",
                "Redundancy Degraded from Non-redundant",
                "D0 Power State",
                "D1 Power State",
                "D2 Power State",
                "D3 Power State"
            ]
        },
        "LogEntryType": {
            "type": "string",
            "enum": [
                "Event",
                "SEL",
                "Oem"
            ]
        },
        "SensorType": {
            "type": "string",
            "enum": [
                "Platform Security Violation Attempt",
                "Temperature",
                "Voltage",
                "Current",
                "Fan",
                "Physical Chassis Security",
                "Processor",
                "Power Supply / Converter",
                "PowerUnit",
                "CoolingDevice",
                "Other Units-based Sensor",
                "Memory",
                "Drive Slot/Bay",
                "POST Memory Resize",
                "System Firmware Progress",
                "Event Logging Disabled",
                "System Event",
                "Critical Interrupt",
                "Button/Switch",
                "Module/Board",
                "Microcontroller/Coprocessor",
                "Add-in Card",
                "Chassis",
                "ChipSet",
                "Other FRU",
                "Cable/Interconnect",
                "Terminator",
                "SystemBoot/Restart",
                "Boot Error",
                "BaseOSBoot/InstallationStatus",
                "OS Stop/Shutdown",
                "Slot/Connector",
                "System ACPI PowerState",
                "Watchdog",
                "Platform Alert",
                "Entity Presence",
                "Monitor ASIC/IC",
                "LAN",
                "Management Subsystem Health",
                "Battery",
                "Session Audit",
                "Version Change",
                "FRUState"
            ]
        },
        "LogEntry": {
            "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",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
                        {"type": "null"}
                    ],
                    "readonly": true
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Severity": {
                    "anyOf": [
                        {"$ref": "#/definitions/EventSeverity"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "This is the severity of the log entry.",
                    "longDescription": "The value of this property shall be the severity of the condition resulting in the log entry, as defined in the Status section of the Redfish specificaiton."
                },
                "Created": {
                    "type": "string",
                    "format": "date-time",
                    "readonly": true,
                    "description": "The time the log entry was created.",
                    "longDescription": "The value of this property shall be the time at which the log entry was created."
                },
                "EntryType": {
                    "$ref": "#/definitions/LogEntryType",
                    "readonly": true,
                    "description": "his is the type of log entry.",
                    "longDescription": "This property shall represent the type of LogEntry.  If the resource represents an IPMI SEL log entry, the value shall be SEL.  If the resource represents an Event log, the value shall be Event.  If the resource represents an OEM log format, the value shall be Oem."
                },
                "OemRecordFormat": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "If the entry type is Oem, this will contain more information about the record format from the Oem.",
                    "longDescription": "The value of this property shall represent the OEM specific format of the Entry.  This property shall be required if the value of EntryType is Oem."
                },
                "EntryCode": {
                    "anyOf": [
                        {"$ref": "#/definitions/LogEntryCode"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "If the EntryType is SEL, this will have the entry code for the log entry.",
                    "longDescription": "This property shall be present if the EntryType value is SEL.  These enumerations are the values from table 42-1 and 42-2 of the IPMI specification."
                },
                "SensorType": {
                    "anyOf": [
                        {"$ref": "#/definitions/SensorType"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "If the EntryType is SEL, this will have the sensor type that the log entry pertains to.",
                    "longDescription": "This property shall be present if the EntryType value is SEL."
                },
                "SensorNumber": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "description": "This property decodes from EntryType:  If it is SEL, it is the sensor number; if Event then the count of events.  Otherwise, it is Oem specific.",
                    "longDescription": "The value of this property shall be the EntityInstance from IPMI spec if EntryType is SEL, the count of events if EntryType is Event and OEM Specific if the EntryType is OEM."
                },
                "Message": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "This property decodes from EntryType:  If it is Event then it is a message string.  Otherwise, it is SEL or Oem specific.  In most cases, this will be the actual Log Entry.",
                    "longDescription": "The value of this property shall be the Message property of the event if the EntryType is Event, the Description if EntryType is SEL and OEM Specific if the EntryType is OEM."
                },
                "MessageId": {
                    "type": "string",
                    "readonly": true,
                    "description": "This property decodes from EntryType:  If it is Event then it is a message id.  Otherwise, it is SEL or Oem specific.  This value is only used for registries - for more information, see the specification.",
                    "longDescription": "The value of this property shall the MessageId property of the event if the EntryType is Event, the EventData if EntryType is SEL and OEM Specific if the EntryType is OEM.  The format of this property shall be as defined in the Redfish specification."
                },
                "MessageArgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "readonly": true,
                    "description": "The values of this property shall be any arguments for the message.",
                    "longDescription": "This contains message arguments to be substituted into the message included or in the message looked up via a registry."
                },
                "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."
                        },
                        "OriginOfCondition": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/idRef",
                            "readonly": true,
                            "description": "This is the URI of the resource that caused the log entry.",
                            "longDescription": "The value of this property shall be an href that references the resource for which the log is associated."
                        }
                    },
                    "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."
                }
            },
            "required": [
                "Id",
                "Name",
                "EntryType"
            ],
            "requiredOnCreate": [
                "EntryType"
            ],
            "description": "This resource defines the record format for a log.  It is designed to be used for SEL logs (from IPMI) as well as Event Logs and OEM-specific log formats.  The EntryType field indicates the type of log and the resource includes several additional properties dependent on the EntryType.",
            "longDescription": "This resource shall represent the log format for log services in a Redfish implementation."
        }
    },
    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
