| aws | No | Replace the AWS cloud-identity block (full object). To switch xor-fields (roleName ↔ policyRefs), just send the new block — it replaces wholesale. | |
| gcp | No | Replace the GCP cloud-identity block (full object). To switch xor-fields (serviceAccount ↔ bindings), just send the new block — it replaces wholesale. | |
| gvc | Yes | GVC slug (lowercase kebab-case). Use the GVC the user named; otherwise discover with list_resources (kind="gvc") and let them choose — never guess (a wrong GVC targets the wrong environment). | |
| ngs | No | Replace the NGS cloud-identity block (full object — it replaces wholesale). | |
| org | Yes | Organization slug (lowercase kebab-case). NEVER guess — if the user has not named one, ask. On org-not-found, stop and ask; do not retry variants. | |
| name | Yes | Resource name (lowercase kebab-case, starts with a letter, 2-64 chars). Names are IMMUTABLE — renaming = delete + recreate (loses URL, DNS, policy links). | |
| tags | No | Add or update tags without replacing the full set. Submit an empty list to clear all tags. | |
| azure | No | Replace the Azure cloud-identity block (full object — it replaces wholesale). | |
| description | No | New description for the identity. | |
| removeTagKeys | No | Tag keys to remove from the resource. | |
| spicedbAccess | No | Replace the SpiceDB cluster access list (max 5). | |
| memcacheAccess | No | Replace the memcache cluster access list (max 5). | |
| networkResources | No | Replace the full networkResources array (wholesale). | |
| removeCloudIdentities | No | Cloud-identity blocks to clear from the identity (e.g., ["aws"]). Server-side $drop semantics — use this to detach an identity from a cloud account. | |
| nativeNetworkResources | No | Optional replacement for the full nativeNetworkResources array (wholesale). Each item requires name, ports, and exactly one provider block. | |