1description: >
2    Implement to manage VPD data in system.
3methods:
4    - name: WriteKeyword
5      description: >
6          A method to update the keyword value for a given VPD record.
7      parameters:
8          - name: path
9            type: object_path
10            description: >
11                Path to the D-Bus object that represents the FRU.
12          - name: record
13            type: string
14            description: >
15                Record whose keyword value needs to be modified.
16          - name: keyword
17            type: string
18            description: >
19                Keyword whose value needs to be updated.
20          - name: value
21            type: array[byte]
22            description: >
23                Value to be updated for the keyword.
24      errors:
25          - xyz.openbmc_project.Common.Error.InvalidArgument
26          - com.ibm.VPD.Error.PathNotFound
27          - com.ibm.VPD.Error.RecordNotFound
28          - com.ibm.VPD.Error.KeywordNotFound
29
30    - name: GetFRUsByUnexpandedLocationCode
31      description: >
32          A method to get list of FRU D-BUS object paths for a given
33          unexpanded location code.
34      parameters:
35          - name: locationCode
36            type: string
37            description: >
38                An un-expanded Location code.
39          - name: nodeNumber
40            type: uint16
41            description: >
42                Denotes the node in case of a multi-node configuration,
43                ignored on a single node system.
44      returns:
45          - name: inventoryList
46            type: array[object_path]
47            description: >
48                List of all the FRUs D-Bus object paths for the given location
49                code.
50      errors:
51          - xyz.openbmc_project.Common.Error.InvalidArgument
52          - com.ibm.VPD.Error.LocationNotFound
53          - com.ibm.VPD.Error.NodeNotFound
54
55    - name: GetFRUsByExpandedLocationCode
56      description: >
57          A method to get list of FRU D-BUS object paths for a given expanded
58          location code.
59      parameters:
60          - name: locationCode
61            type: string
62            description: >
63                Location code in expanded format.
64      returns:
65          - name: inventoryList
66            type: array[object_path]
67            description: >
68                List of all the FRUs D-Bus object path for the given location
69                code.
70      errors:
71          - xyz.openbmc_project.Common.Error.InvalidArgument
72          - com.ibm.VPD.Error.LocationNotFound
73          - com.ibm.VPD.Error.NodeNotFound
74
75    - name: GetExpandedLocationCode
76      description: >
77          An api to get expanded location code corresponding to a given
78          un-expanded location code.
79          Expanded location codes gives the location of the FRU in the system.
80      parameters:
81          - name: locationCode
82            type: string
83            description: >
84                Location code in un-expanded format.
85          - name: nodeNumber
86            type: uint16
87            description: >
88                Denotes the node in case of multi-node configuration.
89                Ignored in case of single node configuration.
90      returns:
91          - name: locationCode
92            type: string
93            description: >
94                Location code in expanded format.
95      errors:
96          - xyz.openbmc_project.Common.Error.InvalidArgument
97          - com.ibm.VPD.Error.LocationNotFound
98          - com.ibm.VPD.Error.NodeNotFound
99
100    - name: PerformVPDRecollection
101      description: >
102          An api to check for FRUs replaced and if required, perform
103          recollection of VPD data for them.
104      errors:
105          - xyz.openbmc_project.Common.Error.InvalidArgument
106