| aws | No | AWS cloud-identity block. Binds the identity to an AWS cloud account so workloads can assume the role. | |
| gcp | No | GCP cloud-identity block. Binds the identity to a GCP service account / bindings on cloud resources. | |
| 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 | NGS cloud-identity block. Binds the identity to a NATS account for pub/sub permissions. | |
| 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 | Optional tags for the identity. | |
| azure | No | Azure cloud-identity block. Binds the identity to an Azure managed identity with role assignments. | |
| description | No | Identity description. | |
| spicedbAccess | No | Grant access to SpiceDB clusters (max 5). | |
| memcacheAccess | No | Grant access to memcache clusters (max 5). | |
| networkResources | No | Agent-based network resources (cloud wormhole). Max 50 (nativeNetworkResources has its own separate limit); names/FQDNs share one namespace across both arrays. | |
| nativeNetworkResources | No | Optional cloud-native network resources (AWS PrivateLink, GCP PSC). Each item requires name, ports, and exactly one provider block. Max 50 (networkResources has its own separate limit); names/FQDNs share one namespace across both arrays. | |