1description: >
2    This interface contains a Create method, which can be implemented to allow
3    creation of xyz.openbmc_project.Logging.Entry objects directly over D-Bus,
4    without needing the errors defined in the *.Error/metadata.yaml files.
5
6methods:
7    - name: Create
8      description: >
9          Create a xyz.openbmc_project.Logging.Entry object.
10      parameters:
11          - name: Message
12            type: string
13            description: >
14                The Message property of the event entry.
15          - name: Severity
16            type: enum[xyz.openbmc_project.Logging.Entry.Level]
17            description: >
18                The Severity property of the event entry.
19          - name: AdditionalData
20            type: dict[string, string]
21            description: >
22                The AdditionalData property of the event entry. e.g.:
23                  {
24                    "key1": "value1",
25                    "key2": "value2"
26                  }
27                ends up in AdditionaData like:
28                  ["KEY1=value1", "KEY2=value2"]
29      returns:
30          - name: Entry
31            type: object_path
32            description: >
33                The resulting object_path of the newly created Entry
34
35    - name: CreateWithFFDCFiles
36      description: >
37          Create an xyz.openbmc_project.Logging.Entry object and pass in an
38          array of file descriptors for files that contain FFDC (first failure
39          data capture) data which may be used by event log extensions that
40          support storing it with their event logs.  The other arguments are the
41          same as with Create().  The FFDC argument is ignored by the base
42          phosphor-logging event logs.
43
44          When the method call is complete the descriptors must be closed and
45          the files can be deleted if desired.
46      parameters:
47          - name: Message
48            type: string
49            description: >
50                The Message property of the event entry.
51          - name: Severity
52            type: enum[xyz.openbmc_project.Logging.Entry.Level]
53            description: >
54                The Severity property of the event entry.
55          - name: AdditionalData
56            type: dict[string, string]
57            description: >
58                The AdditionalData property of the event entry. e.g.:
59                  {
60                    "key1": "value1",
61                    "key2": "value2"
62                  }
63                ends up in AdditionaData like:
64                  ["KEY1=value1", "KEY2=value2"]
65          - name: FFDC
66            type: array[struct[enum[self.FFDCFormat], byte, byte, unixfd]]
67            description: >
68                File descriptors for any files containing FFDC, along with
69                metadata about the contents:
70
71                  FFDCFormat- The format type of the contained data.
72                  subType - The format subtype, used for the 'Custom' type.
73                  version - The version of the data format, used for the
74                'Custom'
75                            type.
76                  unixfd - The file descriptor to the data file.
77
78                e.g.: [
79                  {"xyz.openbmc_project.Logging.Create.FFDCFormat.JSON", 0, 0,
80                5},
81                  {"xyz.openbmc_project.Logging.Create.FFDCFormat.Custom", 1, 2,
82                6} ]
83
84enumerations:
85    - name: FFDCFormat
86      description: >
87          format types
88      values:
89          - name: JSON
90            description: >
91                Valid fully formed JSON, e.g. {"foo":"bar"}
92          - name: CBOR
93            description: >
94                Valid CBOR (Concise Binary Object Representation)
95          - name: Text
96            description: >
97                ASCII text
98          - name: Custom
99            description: >
100                Something other than the above formats
101
102service_names:
103    - default: xyz.openbmc_project.Logging
104
105paths:
106    - instance: /xyz/openbmc_project/logging
107