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: 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[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[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