Tool: get_data_product
Fetches details of a single, specified Data Product. Once you have used the get_data_product tool to fetch the metadata for a Data Product, you can use the list_data_assets tool to list the Data Assets that are part of that Data Product.
The following sample demonstrate how to use curl to invoke the get_data_product MCP tool.
| Curl Request |
|---|
curl --location 'https://dataplex.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "get_data_product", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for getting a data product.
GetDataProductRequest
| JSON representation |
|---|
{ "name": string } |
| Fields | |
|---|---|
name |
Required. The name of the data product to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/dataProducts/{data_product_id} |
Output Schema
A data product is a curated collection of data assets, packaged to address specific use cases. It's a way to manage and share data in a more organized, product-like manner.
DataProduct
| JSON representation |
|---|
{ "name": string, "uid": string, "displayName": string, "createTime": string, "updateTime": string, "etag": string, "labels": { string: string, ... }, "description": string, "icon": string, "ownerEmails": [ string ], "assetCount": integer, "accessGroups": { string: { object ( |
| Fields | |
|---|---|
name |
Identifier. Resource name of the data product. Format: |
uid |
Output only. System generated unique ID for the data product. This ID will be different if the data product is deleted and re-created with the same name. |
displayName |
Required. User-friendly display name of the data product. |
createTime |
Output only. The time at which the data product was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time at which the data product was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
etag |
Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. |
labels |
Optional. User-defined labels for the data product. Example:
An object containing a list of |
description |
Optional. Description of the data product. |
icon |
Optional. Base64 encoded image representing the data product. Max Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API only performs validation on size of the encoded data. Note: For byte fields, the content of the fields are base64-encoded (which increases the size of the data by 33-36%) when using JSON on the wire. A base64-encoded string. |
ownerEmails[] |
Required. Emails of the data product owners. |
assetCount |
Output only. Number of data assets associated with this data product. |
accessGroups |
Optional. Data product access groups by access group id as key. If data product is used only for packaging data assets, then access groups may be empty. However, if a data product is used for sharing data assets, then at least one access group must be specified. Example:
An object containing a list of |
Union field
|
|
accessApprovalConfig |
Optional. Configuration for access approval for the data product. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
AccessGroupsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
AccessGroup
| JSON representation |
|---|
{
"id": string,
"displayName": string,
"description": string,
"principal": {
object ( |
| Fields | |
|---|---|
id |
Required. Unique identifier of the access group within the data product. User defined. Eg. "analyst", "developer", etc. |
displayName |
Required. User friendly display name of the access group. Eg. "Analyst", "Developer", etc. |
description |
Optional. Description of the access group. |
principal |
Required. The principal entity associated with this access group. |
Principal
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field type. The type of the principal entity. type can be only one of the following: |
|
googleGroup |
Optional. Email of the Google Group, as per https://cloud.google.com/iam/docs/principals-overview#google-group. |
Union field
|
|
serviceAccount |
Optional. Specifies the email of the producer service account, as per https://cloud.google.com/iam/docs/principals-overview#service-account. |
AccessApprovalConfig
| JSON representation |
|---|
{ "approverEmails": [ string ] } |
| Fields | |
|---|---|
approverEmails[] |
Optional. Specifies the email addresses of users who are potential approvers and are notified when an access request is made for the data product. The maximum number of emails allowed is 10. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌