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
72    - name: DumpType
73      description: >
74          Possible types of BMC Dump.
75      values:
76          - name: "ApplicationCored"
77            description: >
78                Dump triggered due to application core.
79          - name: "UserRequested"
80            description: >
81                Dump triggered by the user.
82          - name: "InternalFailure"
83            description: >
84                Dump triggered due to InternalFailure type error commit.
85          - name: "Ramoops"
86            description: >
87                Dump triggered due to Ramoops type error commit.
88