description: >
    This interface contains a Create method, which can be implemented
    to allow creation of xyz.openbmc_project.Logging.Entry objects
    directly over D-Bus, without needing the errors defined in
    the *.Error/metadata.yaml files.

methods:
    - name: Create
      description: >
          Create a xyz.openbmc_project.Logging.Entry object.
      parameters:
        - name: Message
          type: string
          description: >
            The Message property of the event entry.
        - name: Severity
          type: enum[xyz.openbmc_project.Logging.Entry.Level]
          description: >
            The Severity property of the event entry.
        - name: AdditionalData
          type: dict[string, string]
          description: >
            The AdditionalData property of the event entry.
            e.g.:
              {
                "key1": "value1",
                "key2": "value2"
              }
            ends up in AdditionaData like:
              ["KEY1=value1", "KEY2=value2"]

    - name: CreateWithFFDCFiles
      description: >
          Create an xyz.openbmc_project.Logging.Entry object and pass in an
          array of file descriptors for files that contain FFDC (first failure
          data capture) data which may be used by event log extensions that
          support storing it with their event logs.  The other arguments are
          the same as with Create().  The FFDC argument is ignored by the
          base phosphor-logging event logs.

          When the method call is complete the descriptors must be closed and
          the files can be deleted if desired.
      parameters:
        - name: Message
          type: string
          description: >
            The Message property of the event entry.
        - name: Severity
          type: enum[xyz.openbmc_project.Logging.Entry.Level]
          description: >
            The Severity property of the event entry.
        - name: AdditionalData
          type: dict[string, string]
          description: >
            The AdditionalData property of the event entry.
            e.g.:
              {
                "key1": "value1",
                "key2": "value2"
              }
            ends up in AdditionaData like:
              ["KEY1=value1", "KEY2=value2"]
        - name: FFDC
          type: array[struct[enum[self.FFDCFormat], byte, byte, unixfd]]
          description: >
            File descriptors for any files containing FFDC, along with metadata
            about the contents:

              FFDCFormat- The format type of the contained data.
              subType - The format subtype, used for the 'Custom' type.
              version - The version of the data format, used for the 'Custom'
                        type.
              unixfd - The file descriptor to the data file.

            e.g.:
            [
              {"xyz.openbmc_project.Logging.Create.FFDCFormat.JSON", 0, 0, 5},
              {"xyz.openbmc_project.Logging.Create.FFDCFormat.Custom", 1, 2, 6}
            ]


enumerations:
    - name: FFDCFormat
      description: >
        format types
      values:
        - name: JSON
          description: >
            Valid fully formed JSON, e.g. {"foo":"bar"}
        - name: CBOR
          description: >
            Valid CBOR (Concise Binary Object Representation)
        - name: Text
          description: >
            ASCII text
        - name: Custom
          description: >
            Something other than the above formats
