description: > Implement to manage VPD data in system. methods: - name: WriteKeyword description: > A method to update the keyword value for a given VPD record. parameters: - name: path type: object_path description: > Path to the D-Bus object that represents the FRU. - name: record type: string description: > Record whose keyword value needs to be modified. - name: keyword type: string description: > Keyword whose value needs to be updated. - name: value type: array[byte] description: > Value to be updated for the keyword. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - com.ibm.VPD.Error.PathNotFound - com.ibm.VPD.Error.RecordNotFound - com.ibm.VPD.Error.KeywordNotFound - name: GetFRUsByUnexpandedLocationCode description: > A method to get list of FRU D-BUS object paths for a given unexpanded location code. parameters: - name: locationCode type: string description: > An un-expanded Location code. - name: nodeNumber type: uint16 description: > Denotes the node in case of a multi-node configuration, ignored on a single node system. returns: - name: inventoryList type: array[object_path] description: > List of all the FRUs D-Bus object paths for the given location code. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - com.ibm.VPD.Error.LocationNotFound - com.ibm.VPD.Error.NodeNotFound - name: GetFRUsByExpandedLocationCode description: > A method to get list of FRU D-BUS object paths for a given expanded location code. parameters: - name: locationCode type: string description: > Location code in expanded format. returns: - name: inventoryList type: array[object_path] description: > List of all the FRUs D-Bus object path for the given location code. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - com.ibm.VPD.Error.LocationNotFound - com.ibm.VPD.Error.NodeNotFound - name: GetExpandedLocationCode description: > An api to get expanded location code corresponding to a given un-expanded location code. Expanded location codes gives the location of the FRU in the system. parameters: - name: locationCode type: string description: > Location code in un-expanded format. - name: nodeNumber type: uint16 description: > Denotes the node in case of multi-node configuration. Ignored in case of single node configuration. returns: - name: locationCode type: string description: > Location code in expanded format. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - com.ibm.VPD.Error.LocationNotFound - com.ibm.VPD.Error.NodeNotFound - name: PerformVPDRecollection description: > An api to check for FRUs replaced and if required, perform recollection of VPD data for them. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - name: DeleteFRUVPD description: > An api to delete VPD of a given FRU and set its Present property as false on DBus. This api is to be called before requesting VPD parser to collect VPD of any given FRU in case of concurrent maintenance. parameters: - name: inventoryPath type: object_path description: > Dbus path of the FRU whose VPD needs to be removed. errors: - xyz.openbmc_project.Common.Error.InvalidArgument - name: CollectFRUVPD description: > An api to collect VPD of a given FRU by launching the parser exe asynchronously. It can be used to collect VPD of any given FRU in case of concurrent maintenance. As a pre-requisite for this api, DeleteFRUVPD api needs to be called for that particular FRU. As this api makes async call to the parser, caller needs to register for Present property change signal for that FRU on DBus to ensure successful execution of VPD parser for that FRU. The caller is also suggested to have a timer of around two mins at their end and in case the present property is not set to true in that timeline, can mark the call as failed. parameters: - name: inventoryPath type: object_path description: > Dbus path of the FRU whose VPD needs to be collected. errors: - xyz.openbmc_project.Common.Error.InvalidArgument