{
    "$id": "http://redfish.dmtf.org/schemas/v1/LogService.v1_3_0.json",
    "$ref": "#/definitions/LogService",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2021 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource.",
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "#LogService.ClearLog": {
                    "$ref": "#/definitions/ClearLog"
                },
                "#LogService.CollectDiagnosticData": {
                    "$ref": "#/definitions/CollectDiagnosticData"
                },
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
                }
            },
            "type": "object"
        },
        "ClearLog": {
            "additionalProperties": false,
            "description": "The action to clear the log for this log service.",
            "longDescription": "This action shall delete all entries found in the LogEntryCollection resource for this log service.",
            "parameters": {
                "LogEntriesETag": {
                    "description": "The ETag of the log entry collection within this log service.  If the provided ETag does not match the current ETag of the log entry collection, the request is rejected.",
                    "longDescription": "This parameter shall contain the ETag of the LogEntryCollection resource for this log service.  If the client-provided ETag does not match the current ETag of the LogEntryCollection resource for this log service, the service shall return the HTTP 428 (Precondition Required) status code to reject the request.",
                    "type": "string",
                    "versionAdded": "v1_3_0"
                }
            },
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "CollectDiagnosticData": {
            "additionalProperties": false,
            "description": "The action to collect the diagnostic data for the given type.",
            "longDescription": "This action shall collect the diagnostic data for the given type.  The `Location` header in the response shall contain a URI to a resource of type LogEntry that contains the diagnostic data.",
            "parameters": {
                "DiagnosticDataType": {
                    "$ref": "#/definitions/LogDiagnosticDataTypes",
                    "description": "The type of diagnostic data to collect.",
                    "longDescription": "This parameter shall contain the type of diagnostic data to collect.",
                    "requiredParameter": true
                },
                "OEMDiagnosticDataType": {
                    "description": "The OEM-defined type of diagnostic data to collect.",
                    "longDescription": "This parameter shall contain the OEM-defined type of diagnostic data to collect.  This parameter shall be required if DiagnosticDataType is `OEM`.",
                    "type": "string"
                }
            },
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object",
            "versionAdded": "v1_2_0"
        },
        "LogDiagnosticDataTypes": {
            "enum": [
                "Manager",
                "PreOS",
                "OS",
                "OEM"
            ],
            "enumDescriptions": {
                "Manager": "Manager diagnostic data.",
                "OEM": "OEM diagnostic data.",
                "OS": "Operating system (OS) diagnostic data.",
                "PreOS": "Pre-OS diagnostic data."
            },
            "type": "string"
        },
        "LogEntryTypes": {
            "enum": [
                "Event",
                "SEL",
                "Multiple",
                "OEM"
            ],
            "enumDescriptions": {
                "Event": "The log contains Redfish-defined messages.",
                "Multiple": "The log contains multiple log entry types and, therefore, the log service cannot guarantee a single entry type.",
                "OEM": "The log contains entries in an OEM-defined format.",
                "SEL": "The log contains legacy IPMI System Event Log (SEL) entries."
            },
            "type": "string"
        },
        "LogService": {
            "additionalProperties": false,
            "description": "The LogService schema contains properties for monitoring and configuring a log service.  When the Id property contains `DeviceLog`, the log contains device-resident log entries that follow the physical device when moved from system-to-system, and not a replication or subset of a system event log.",
            "longDescription": "This resource shall represent a log service for a Redfish implementation.  When the Id property contains `DeviceLog`, the log shall contain log entries that migrate with the device.",
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource."
                },
                "AutoDSTEnabled": {
                    "description": "An indication of whether the log service is configured for automatic Daylight Saving Time (DST) adjustment.",
                    "longDescription": "This property shall indicate whether the log service is configured for automatic Daylight Saving Time (DST) adjustment.  DST adjustment shall not modify the timestamp of existing log entries.",
                    "readonly": false,
                    "type": "boolean",
                    "versionAdded": "v1_3_0"
                },
                "DateTime": {
                    "description": "The current date and time with UTC offset of the log service.",
                    "format": "date-time",
                    "longDescription": "This property shall contain the current date and time with UTC offset of the log service.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "DateTimeLocalOffset": {
                    "description": "The time offset from UTC that the DateTime property is in `+HH:MM` format.",
                    "longDescription": "This property shall contain the offset from UTC time that the DateTime property contains.  If both DateTime and DateTimeLocalOffset are provided in modification requests, services shall apply DateTimeLocalOffset after DateTime is applied.",
                    "pattern": "^([-+][0-1][0-9]:[0-5][0-9])$",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Entries": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogEntryCollection.json#/definitions/LogEntryCollection",
                    "description": "The link to the log entry collection.",
                    "longDescription": "This property shall contain a link to a resource collection of type LogEntryCollection.",
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "LogEntryType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/LogEntryTypes"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The format of the log entries.",
                    "longDescription": "This property shall contain the value for the EntryType property of all LogEntry resources contained in the LogEntryCollection resource for this log service.  If the service cannot determine or guarantee a single EntryType value for all LogEntry resources, this property shall contain the value `Multiple`.",
                    "readonly": true,
                    "versionAdded": "v1_1_0"
                },
                "MaxNumberOfRecords": {
                    "description": "The maximum number of log entries that this service can have.",
                    "longDescription": "This property shall contain the maximum number of LogEntry resources in the LogEntryCollection resource for this service.",
                    "minimum": 0,
                    "readonly": true,
                    "type": "integer"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "OverWritePolicy": {
                    "$ref": "#/definitions/OverWritePolicy",
                    "description": "The overwrite policy for this service that takes place when the log is full.",
                    "longDescription": "This property shall indicate the policy of the log service when the MaxNumberOfRecords has been reached.",
                    "readonly": true
                },
                "ServiceEnabled": {
                    "description": "An indication of whether this service is enabled.",
                    "longDescription": "This property shall indicate whether this service is enabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "SyslogFilters": {
                    "description": "A list of syslog message filters to be logged locally.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/SyslogFilter"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall describe all desired syslog messages to be logged locally.  If this property contains an empty array, all messages shall be logged.",
                    "type": "array",
                    "versionAdded": "v1_2_0"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this resource.",
            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        },
        "OverWritePolicy": {
            "enum": [
                "Unknown",
                "WrapsWhenFull",
                "NeverOverWrites"
            ],
            "enumDescriptions": {
                "NeverOverWrites": "When full, new entries to the log are discarded.",
                "Unknown": "The overwrite policy is not known or is undefined.",
                "WrapsWhenFull": "When full, new entries to the log overwrite earlier entries."
            },
            "type": "string"
        },
        "SyslogFacility": {
            "description": "The syslog facility code is an enumeration of program types.",
            "enum": [
                "Kern",
                "User",
                "Mail",
                "Daemon",
                "Auth",
                "Syslog",
                "LPR",
                "News",
                "UUCP",
                "Cron",
                "Authpriv",
                "FTP",
                "NTP",
                "Security",
                "Console",
                "SolarisCron",
                "Local0",
                "Local1",
                "Local2",
                "Local3",
                "Local4",
                "Local5",
                "Local6",
                "Local7"
            ],
            "enumDescriptions": {
                "Auth": "Security/authentication messages.",
                "Authpriv": "Security/authentication messages.",
                "Console": "Log alert.",
                "Cron": "Clock daemon.",
                "Daemon": "System daemons.",
                "FTP": "FTP daemon.",
                "Kern": "Kernel messages.",
                "LPR": "Line printer subsystem.",
                "Local0": "Locally used facility 0.",
                "Local1": "Locally used facility 1.",
                "Local2": "Locally used facility 2.",
                "Local3": "Locally used facility 3.",
                "Local4": "Locally used facility 4.",
                "Local5": "Locally used facility 5.",
                "Local6": "Locally used facility 6.",
                "Local7": "Locally used facility 7.",
                "Mail": "Mail system.",
                "NTP": "NTP subsystem.",
                "News": "Network news subsystem.",
                "Security": "Log audit.",
                "SolarisCron": "Scheduling daemon.",
                "Syslog": "Messages generated internally by syslogd.",
                "UUCP": "UUCP subsystem.",
                "User": "User-level messages."
            },
            "longDescription": "This type shall specify the syslog facility codes as program types.  Facility values are described in the RFC5424.",
            "type": "string"
        },
        "SyslogFilter": {
            "additionalProperties": false,
            "description": "A syslog filter.",
            "longDescription": "This type shall contain the filter for a syslog message.  The filter shall describe the desired syslog message to be enabled locally.",
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "LogFacilities": {
                    "description": "The types of programs that can log messages.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/SyslogFacility"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain the types of programs that can log messages.  If this property contains an empty array or is absent, all facilities shall be indicated.",
                    "readonly": false,
                    "type": "array",
                    "versionAdded": "v1_2_0"
                },
                "LowestSeverity": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SyslogSeverity"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The lowest severity level message that will be logged.",
                    "longDescription": "This property shall contain the lowest syslog severity level that will be logged.  The service shall log all messages equal to or greater than the value in this property.  The value `All` shall indicate all severities.",
                    "readonly": false,
                    "versionAdded": "v1_2_0"
                }
            },
            "type": "object"
        },
        "SyslogSeverity": {
            "description": "The syslog severity is an application-specific rating used to describe the urgency of the message.",
            "enum": [
                "Emergency",
                "Alert",
                "Critical",
                "Error",
                "Warning",
                "Notice",
                "Informational",
                "Debug",
                "All"
            ],
            "enumDescriptions": {
                "Alert": "A condition that should be corrected immediately, such as a corrupted system database.",
                "All": "A message of any severity.",
                "Critical": "Hard device errors.",
                "Debug": "Messages that contain information normally of use only when debugging a program.",
                "Emergency": "A panic condition.",
                "Error": "An Error.",
                "Informational": "Informational only.",
                "Notice": "Conditions that are not error conditions, but that may require special handling.",
                "Warning": "A Warning."
            },
            "longDescription": "This type shall specify the syslog severity levels as an application-specific rating used to describe the urgency of the message.  `Emergency` should be reserved for messages indicating the system is unusable and `Debug` should only be used when debugging a program.  Severity values are described in RFC5424.",
            "type": "string"
        }
    },
    "owningEntity": "DMTF",
    "release": "2021.2",
    "title": "#LogService.v1_3_0.LogService"
}