Tool: UpdateCustomConstraint
Updates an existing custom constraint. Note that this performs a full overwrite.
The following code sample shows how to use curl to call the UpdateCustomConstraint MCP tool.
| Curl Request |
|---|
curl --location 'https://orgpolicy.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "UpdateCustomConstraint", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
The request sent to the UpdateCustomConstraintRequest method.
UpdateCustomConstraintRequest
| JSON representation |
|---|
{
"customConstraint": {
object ( |
| Fields | |
|---|---|
customConstraint |
Required. |
CustomConstraint
| JSON representation |
|---|
{ "name": string, "resourceTypes": [ string ], "methodTypes": [ enum ( |
| Fields | |
|---|---|
name |
Immutable. Name of the constraint. This is unique within the organization. The name must be of the form:
Example: The max length is 71 characters and the minimum length is 1. Note that the prefix |
resourceTypes[] |
Immutable. The resource instance type on which this policy applies. Format will be of the form :
|
methodTypes[] |
All the operations being applied for this constraint. |
condition |
A Common Expression Language (CEL) condition which is used in the evaluation of the constraint. For example: The max length of the condition is 1000 characters. |
actionType |
Allow or deny type. |
displayName |
One line display name for the UI. The max length of the display_name is 200 characters. |
description |
Detailed information about this custom policy constraint. The max length of the description is 2000 characters. |
updateTime |
Output only. The last time this custom constraint was updated. This represents the last time that the 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: |
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. |
MethodType
The operation for which this constraint will be applied. To apply this constraint only when creating new resources, set method_types to CREATE only. To apply this constraint when creating or updating resources, set method_types to CREATE and UPDATE.
UPDATE only custom constraints are not supported. Use CREATE or CREATE, UPDATE.
| Enums | |
|---|---|
METHOD_TYPE_UNSPECIFIED |
This is only used for distinguishing unset values, and results in an error if used. |
CREATE |
Constraint applied when creating the resource. |
UPDATE |
Constraint applied when updating the resource. |
DELETE |
Constraint applied when deleting the resource. Not supported. |
REMOVE_GRANT |
Constraint applied when removing an IAM grant. |
GOVERN_TAGS |
Constraint applied when enforcing forced tagging. |
ActionType
Allow or deny type.
| Enums | |
|---|---|
ACTION_TYPE_UNSPECIFIED |
This is only used for distinguishing unset values, and results in an error if used. |
ALLOW |
Allowed action type. |
DENY |
Deny action type. |
Output Schema
A custom constraint defined by customers which can only be applied to the given resource types and organization.
By creating a custom constraint, customers can apply policies of this custom constraint. Creating a custom constraint itself does NOT apply any policy enforcement.
CustomConstraint
| JSON representation |
|---|
{ "name": string, "resourceTypes": [ string ], "methodTypes": [ enum ( |
| Fields | |
|---|---|
name |
Immutable. Name of the constraint. This is unique within the organization. The name must be of the form:
Example: The max length is 71 characters and the minimum length is 1. Note that the prefix |
resourceTypes[] |
Immutable. The resource instance type on which this policy applies. Format will be of the form :
|
methodTypes[] |
All the operations being applied for this constraint. |
condition |
A Common Expression Language (CEL) condition which is used in the evaluation of the constraint. For example: The max length of the condition is 1000 characters. |
actionType |
Allow or deny type. |
displayName |
One line display name for the UI. The max length of the display_name is 200 characters. |
description |
Detailed information about this custom policy constraint. The max length of the description is 2000 characters. |
updateTime |
Output only. The last time this custom constraint was updated. This represents the last time that the 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: |
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. |
MethodType
The operation for which this constraint will be applied. To apply this constraint only when creating new resources, set method_types to CREATE only. To apply this constraint when creating or updating resources, set method_types to CREATE and UPDATE.
UPDATE only custom constraints are not supported. Use CREATE or CREATE, UPDATE.
| Enums | |
|---|---|
METHOD_TYPE_UNSPECIFIED |
This is only used for distinguishing unset values, and results in an error if used. |
CREATE |
Constraint applied when creating the resource. |
UPDATE |
Constraint applied when updating the resource. |
DELETE |
Constraint applied when deleting the resource. Not supported. |
REMOVE_GRANT |
Constraint applied when removing an IAM grant. |
GOVERN_TAGS |
Constraint applied when enforcing forced tagging. |
ActionType
Allow or deny type.
| Enums | |
|---|---|
ACTION_TYPE_UNSPECIFIED |
This is only used for distinguishing unset values, and results in an error if used. |
ALLOW |
Allowed action type. |
DENY |
Deny action type. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌