{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/V2KeysRemoveRolesRequestBody", "title": "V2KeysRemoveRolesRequestBody", "type": "object", "required": [ "keyId", "roles" ], "properties": { "keyId": { "type": "string", "minLength": 3, "maxLength": 255, "pattern": "^[a-zA-Z0-9_]+$", "description": "Specifies which key loses the roles using the database identifier returned from createKey.\nDo not confuse this with the actual API key string that users include in requests.\nRemoving roles only affects direct assignments, not permissions inherited from other sources.\nRole changes take effect immediately but may take up to 30 seconds to propagate across all regions.\n", "example": "key_2cGKbMxRyIzhCxo1Idjz8q" }, "roles": { "type": "array", "minItems": 1, "maxItems": 100, "description": "Removes direct role assignments from the key without affecting other role sources or permissions.\nOperations are idempotent - removing non-assigned roles has no effect and causes no errors.\n\nAfter removal, the key loses access to permissions that were only granted through these roles.\nInvalid role references cause the entire operation to fail atomically, ensuring consistent state.\n", "items": { "type": "string", "pattern": "^[a-zA-Z0-9_:\\-\\.\\*]+$", "minLength": 3, "maxLength": 255, "description": "Specify the role by name." } } }, "additionalProperties": false }