1. Types
2. vapi
3. metadata
4. privilege

## vapi metadata privilege: component data

The `component_data` structure contains the privilege information of the component along with its fingerprint.

### Representations:

- JSON
- XML

{
"fingerprint": "string",
"info": {
"packages": [
{
"key": "obj-103",
"value": {
"privileges": [
"string",
"string"
],
"services": [
{
"key": "obj-103",
"value": {
"operations": [
{
"key": "obj-103",
"value": {
"privilege_info": [
{
"privileges": [
"string",
"string"
],
"property_path": "string"
},
{
"privileges": [
"string",
"string"
],
"property_path": "string"
}
],
"privileges": [
"string",
"string"
]
}
}
]
}
}
]
}
}
]
}
}
<?xml version="1.0" ?>
<ns0:ComponentData xmlns:ns0="http://vmware.com/vapi/metadata/privilege" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fingerprint>string</fingerprint>
<info>
<packages-array>
<array-item>
<value>
<services-array>
<array-item>
<value>
<operations-array>
<array-item>
<value>
<privilege_info-array>
<array-item>
<privileges-array>
<array-item>string</array-item>
<array-item>string</array-item>
</privileges-array>
<property_path>string</property_path>
</array-item>
<array-item>
<privileges-array>
<array-item>string</array-item>
<array-item>string</array-item>
</privileges-array>
<property_path>string</property_path>
</array-item>
</privilege_info-array>
<privileges-array>
<array-item>string</array-item>
<array-item>string</array-item>
</privileges-array>
</value>
<key>obj-103</key>
</array-item>
</operations-array>
</value>
<key>obj-103</key>
</array-item>
</services-array>
<privileges-array>
<array-item>string</array-item>
<array-item>string</array-item>
</privileges-array>
</value>
<key>obj-103</key>
</array-item>
</packages-array>
</info>
</ns0:ComponentData>

#### Attributes:

Name | Type | Description
--- | --- | ---
Required
info | component_info | Privilege information of the component. This includes information about all the API in the component.
fingerprint | string | Fingerprint of the metadata of the component. Privilege information could change when there is an infrastructure update. Since the data present in vapi.metadata.privilege.component_data.info could be quite large, `fingerprint` provides a convenient way to check if the data for a particular component is updated. You should store the fingerprint associated with a component. After an update, by invoking the fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the get to retrieve the new privilege information for the component.