1description: >
2    Implement to capture various types of dumps from the host or BMC. This
3    interface is for user to request a particular type of dump.
4
5    Any OpenBMC implementation should provide one implementation of
6    xyz.openbmc_project.Dump.Create per dump type on
7    /xyz/openbmc_project/dump/<dump type>. On multi-host or on multi-BMC systems
8    the instance number can be added to the path to differentiate, for example
9    /xyz/openbmc_project/dump/<dump type><instance-id>.
10
11methods:
12    - name: CreateDump
13      description: >
14          Method to create a manual Dump.
15      parameters:
16          - name: AdditionalData
17            type: dict[string, variant[string,uint64]]
18            description: >
19                The additional data, if any, for initiating the dump. The key in
20                this case should be an implementation specific enum defined for
21                the specific type of dump either in xyz or in a domain. The
22                values can be either a string or a 64 bit number. The
23                enum-format string is required to come from a parallel class
24                with this specific Enum name. All of the Enum strings should be
25                in the format 'domain.Dump.Create.CreateParameters.ParamName'.
26                e.g.:
27                  {
28                    "key1": "value1",
29                    "key2": "value2"
30                  }
31                ends up in AdditionaData like:
32                  ["KEY1=value1", "KEY2=value2"]
33      returns:
34          - name: Path
35            type: object_path
36            description: >
37                The object path of the object that implements
38                xyz.openbmc_project.Common.Progress to track the progress of the
39                dump
40      errors:
41          - xyz.openbmc_project.Common.File.Error.Open
42          - xyz.openbmc_project.Common.File.Error.Write
43          - xyz.openbmc_project.Dump.Create.Error.Disabled
44          - xyz.openbmc_project.Dump.Create.Error.QuotaExceeded
45          - xyz.openbmc_project.Common.Error.NotAllowed
46          - xyz.openbmc_project.Common.Error.InvalidArgument
47          - xyz.openbmc_project.Common.Error.Unavailable
48
49enumerations:
50    - name: CreateParameters
51      description: >
52          Additional parameters for creating the dump.
53      values:
54          - name: "OriginatorId"
55            description: >
56                Unique Id of the originator of the respective operation. This
57                property is defined in xyz.openbmc_project. Common.OriginatedBy
58                interface.
59          - name: "OriginatorType"
60            description: >
61                Type of the originator that initiated the respective operation.
62                This property is defined in xyz.openbmc_project.
63                Common.OriginatedBy interface.
64          - name: "DumpType"
65            description: >
66                Type of the BMC dump to be collected
67          - name: "FilePath"
68            description: >
69                The path to a file to create the dump, for example a systemd
70                core-dump.
71          - name: "ErrorType"
72            description: >
73                Specifies the type of the error that triggered the BMC dump
74                collection. This is a string identifier for the error type. The
75                type of the error dictates the kind of debug data collected
76                during the dump process.
77          - name: "EventId"
78            description: >
79                The identifier for an event that triggers the BMC dump. When a
80                BMC dump is initiated as a response to a specific system event,
81                this parameter can be supplied with the unique ID associated
82                with that event. By linking the dump to an event ID, the system
83                can collate additional, relevant diagnostic data or add this
84                into the dump to aid in providing a clearer context.
85
86    - name: DumpType
87      description: >
88          Possible types of BMC Dump.
89      values:
90          - name: "ApplicationCored"
91            description: >
92                Dump triggered due to application core.
93          - name: "UserRequested"
94            description: >
95                Dump triggered by the user.
96          - name: "ErrorLog"
97            description: >
98                This type of dump is triggered in response to a specific error
99                commit. The error type needs to be specified in the "ErrorType"
100                field. If no parameters are provided, a default dump will be
101                generated.
102          - name: "Ramoops"
103            description: >
104                Dump triggered due to Ramoops type error commit.
105