# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for OpenAPI spec for ClickHouse Cloud API keys API version: 1.0.0 extends: openapi/clickhouse-api-keys-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 5 - target: $.paths['/v1/organizations/{organizationId}/keys'].get update: x-apievangelist-phrasing: intent: List an organization's API keys effect: read questions: - Which API keys exist in my ClickHouse Cloud organization? - Can I see every key our org has issued so I can audit them? instructions: - text: List all API keys in organization {org}. slots: org: path.organizationId - text: Show me every key issued for org {org} so I can review who has access. slots: org: path.organizationId method: generated generated: '2026-09-26' - target: $.paths['/v1/organizations/{organizationId}/keys'].post update: x-apievangelist-phrasing: intent: Create a new API key effect: write questions: - How do I generate a new API key for automation? - Can I make a key that expires on a set date and only works from certain IPs? instructions: - text: Create an API key named {name} in organization {org}. slots: name: requestBody.name org: path.organizationId - text: Issue a new key {name} in org {org} that expires at {expireAt} and is limited to IP access list {ipAccessList}. slots: name: requestBody.name org: path.organizationId expireAt: requestBody.expireAt ipAccessList: requestBody.ipAccessList method: generated generated: '2026-09-26' - target: $.paths['/v1/organizations/{organizationId}/keys/{keyId}'].get update: x-apievangelist-phrasing: intent: Get details of one API key effect: read questions: - What roles and expiry does a specific API key have? - Is a particular key still enabled or has it been disabled? instructions: - text: Show the details of API key {keyId} in org {org}. slots: keyId: path.keyId org: path.organizationId - text: Look up the state and expiry date of key {keyId} in organization {org}. slots: keyId: path.keyId org: path.organizationId method: generated generated: '2026-09-26' - target: $.paths['/v1/organizations/{organizationId}/keys/{keyId}'].delete update: x-apievangelist-phrasing: intent: Delete an API key effect: destructive questions: - How do I permanently remove an API key we no longer use? - Can I delete the very key I'm using to make the request? instructions: - text: Delete API key {keyId} from organization {org}. slots: keyId: path.keyId org: path.organizationId - text: Permanently remove the leaked key {keyId} in org {org}. slots: keyId: path.keyId org: path.organizationId method: generated generated: '2026-09-26' - target: $.paths['/v1/organizations/{organizationId}/keys/{keyId}'].patch update: x-apievangelist-phrasing: intent: Update an existing API key effect: write questions: - How do I disable an existing API key without deleting it? - Can I change the roles or IP allow list on a key I already created? instructions: - text: Set the state of key {keyId} in org {org} to {state}. slots: keyId: path.keyId org: path.organizationId state: requestBody.state - text: Rename existing key {keyId} in organization {org} to {name} and extend its expiry to {expireAt}. slots: keyId: path.keyId org: path.organizationId name: requestBody.name expireAt: requestBody.expireAt method: generated generated: '2026-09-26'