Tool: update_data_product_aspects
Updates aspects of a Catalog Entry representing a Data Product.
For Custom Aspects:
- Find Aspect Type: Use List Aspect Types (via gcloud) or
search_entriestool to identify the aspect type ID. Aspect display name may differ from aspect type ID. Try searching in the 'global' location if the aspect location is not known. - Get Template: Once the aspect type ID is found, run
gcloud dataplex aspect-types describe [ASPECT_TYPE_ID] --location=[ASPECT_LOCATION] --project=[ASPECT_PROJECT_ID] --format=yaml. Check the template for field names, types, and required fields. - Map Data: Use the retrieved template schema to populate the
datamap.
Request Structure:
- For a custom aspect:
{
"project_id": "[ASPECT_PROJECT_ID]",
"location": "[ASPECT_LOCATION]",
"aspect_name": "[ASPECT_NAME]",
"data": {
"field_name_1": "value_1",
"field_name_2": 123
}
}
- For a Contract:
{
"project_id": "dataplex-types",
"location": "global",
"aspect_name": "refresh-cadence",
"data": {
"cronSchedule": "* * * * *",
"frequency": "Daily",
"refreshTime": "09:00 PST",
"thresholdInMinutes": 15
}
}
- For Documentation:
{
"project_id": "dataplex-types",
"location": "global",
"aspect_name": "overview",
"data": {
"content": "YOUR_DOCUMENTATION_CONTENT"
}
}
The following sample demonstrate how to use curl to invoke the update_data_product_aspects 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": "update_data_product_aspects", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request for updating metadata (aspects) of a Data Product Entry in the simplified MCP format.
UpdateDataProductAspectsRequest
| JSON representation |
|---|
{
"projectNumber": string,
"location": string,
"dataProductId": string,
"aspects": [
{
object ( |
| Fields | |
|---|---|
projectNumber |
Required. The project number for the Data Product. |
location |
Required. The location for the Data Product. |
dataProductId |
Required. The ID of the Data Product. |
aspects[] |
Required. List of aspects to add or update. Allows updating multiple aspects, contracts, and documentation together in a single request by adding multiple items to the |
Aspect
| JSON representation |
|---|
{ "projectId": string, "location": string, "aspectName": string, "data": { string: value, ... } } |
| Fields | |
|---|---|
projectId |
Required. Project id of the aspect type. The value is "dataplex-types" for contracts and documentation aspects. |
location |
Required. Location of the aspect type. The value is "global" for contracts and documentation aspects. |
aspectName |
Required. Name of the aspect type. Value is "refresh-cadence" for contracts and "overview" for documentation aspects. |
data |
Optional. The data associated with the aspect. An object containing a list of |
DataEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
Value
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field kind. The kind of value. kind can be only one of the following: |
|
nullValue |
Represents a JSON |
numberValue |
Represents a JSON number. Must not be |
stringValue |
Represents a JSON string. |
boolValue |
Represents a JSON boolean ( |
structValue |
Represents a JSON object. |
listValue |
Represents a JSON array. |
Struct
| JSON representation |
|---|
{ "fields": { string: value, ... } } |
| Fields | |
|---|---|
fields |
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
ListValue
| JSON representation |
|---|
{ "values": [ value ] } |
| Fields | |
|---|---|
values[] |
Repeated field of dynamically typed values. |
NullValue
Represents a JSON null.
NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.
A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.
| Enums | |
|---|---|
NULL_VALUE |
Null value. |
Output Schema
Update data product aspect response in the simplified MCP format.
UpdateDataProductAspectsResponse
| JSON representation |
|---|
{ "name": string, "entrySource": { object ( |
| Fields | |
|---|---|
name |
The updated entry, representing the detailed metadata of a data product. The relative resource name of the entry, in the format |
entrySource |
Information related to the source system of the data resource that is represented by the entry. |
entryType |
The relative resource name of the entry type that was used to create this entry, in the format |
aspects |
The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following:
An object containing a list of |
EntrySource
| JSON representation |
|---|
{
"resource": string,
"system": string,
"platform": string,
"displayName": string,
"description": string,
"labels": {
string: string,
...
},
"ancestors": [
{
object ( |
| Fields | |
|---|---|
resource |
The name of the resource in the source system. Maximum length is 4,000 characters. |
system |
The name of the source system. Maximum length is 64 characters. |
platform |
The platform containing the source system. Maximum length is 64 characters. |
displayName |
A user-friendly display name. Maximum length is 500 characters. |
description |
A description of the data resource. Maximum length is 2,000 characters. |
labels |
User-defined labels. The maximum size of keys and values is 128 characters each. An object containing a list of |
ancestors[] |
Immutable. The entries representing the ancestors of the data resource in the source system. |
createTime |
The time when the resource was created in the source system. 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 |
The time when the resource was last updated in the source system. If the entry exists in the system and its 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: |
location |
Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud. |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Ancestor
| JSON representation |
|---|
{ "name": string, "type": string } |
| Fields | |
|---|---|
name |
Optional. The name of the ancestor resource. |
type |
Optional. The type of the ancestor resource. |
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. |
AspectsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
Aspect
| JSON representation |
|---|
{
"aspectType": string,
"path": string,
"createTime": string,
"updateTime": string,
"data": {
object
},
"aspectSource": {
object ( |
| Fields | |
|---|---|
aspectType |
Output only. The resource name of the type used to create this Aspect. |
path |
Output only. The path in the entry under which the aspect is attached. |
createTime |
Output only. The time when the Aspect 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 when the Aspect 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: |
data |
Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8). |
aspectSource |
Optional. Information related to the source system of the aspect. |
Struct
| JSON representation |
|---|
{ "fields": { string: value, ... } } |
| Fields | |
|---|---|
fields |
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
Value
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field kind. The kind of value. kind can be only one of the following: |
|
nullValue |
Represents a JSON |
numberValue |
Represents a JSON number. Must not be |
stringValue |
Represents a JSON string. |
boolValue |
Represents a JSON boolean ( |
structValue |
Represents a JSON object. |
listValue |
Represents a JSON array. |
ListValue
| JSON representation |
|---|
{ "values": [ value ] } |
| Fields | |
|---|---|
values[] |
Repeated field of dynamically typed values. |
AspectSource
| JSON representation |
|---|
{ "createTime": string, "updateTime": string, "dataVersion": string } |
| Fields | |
|---|---|
createTime |
The time the aspect was created in the source system. 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 |
The time the aspect was last updated in the source system. 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: |
dataVersion |
The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc). |
NullValue
Represents a JSON null.
NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.
A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.
| Enums | |
|---|---|
NULL_VALUE |
Null value. |
Tool Annotations
Destructive Hint: ✅ | Idempotent Hint: ✅ | Read Only Hint: ❌ | Open World Hint: ❌