{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/Role", "title": "Role", "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier for this role within Unkey's system.\nGenerated automatically when the role is created and used to reference this role in API operations.\nAlways begins with 'role_' followed by alphanumeric characters and underscores.\n", "example": "role_1234567890abcdef" }, "name": { "type": "string", "description": "The human-readable name for this role that describes its function.\nShould be descriptive enough for administrators to understand what access this role provides.\nUse clear, semantic names that reflect the job function or responsibility level.\nNames must be unique within your workspace to avoid confusion during role assignment.\n", "example": "support.readonly" }, "description": { "type": "string", "description": "Optional detailed explanation of what this role encompasses and what access it provides.\nHelps team members understand the role's scope, intended use cases, and security implications.\nInclude information about what types of users should receive this role and what they can accomplish.\nNot visible to end users - this is for internal documentation and access control audits.\n", "example": "Provides read-only access for customer support representatives to view user accounts and support tickets", "x-go-type-skip-optional-pointer": true, "x-go-type-skip-optional-pointer-with-omitzero": true }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/Permission" }, "maxItems": 100, "description": "Complete list of permissions currently assigned to this role.\nEach permission grants specific access rights that will be inherited by any keys or users assigned this role.\nUse this list to understand the full scope of access provided by this role.\nPermissions can be added or removed from roles without affecting the role's identity or other properties.\nEmpty array indicates a role with no permissions currently assigned.\n", "x-go-type-skip-optional-pointer": true, "x-go-type-skip-optional-pointer-with-omitzero": true } }, "required": [ "id", "name" ], "additionalProperties": false }