# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for authentik Tenants API version: 1.0.0 extends: openapi/authentik-tenants-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: 14 - target: $.paths['/tenants/domains/'].get update: x-apievangelist-phrasing: intent: List tenant domains effect: read questions: - Which domains are mapped to tenants in my authentik install? - Can I search tenant domains by name? instructions: - text: List all tenant domains. - text: Search tenant domains for {search}. slots: search: query.search method: generated generated: '2026-09-26' - target: $.paths['/tenants/domains/'].post update: x-apievangelist-phrasing: intent: Add a domain to a tenant effect: write questions: - How do I point a new domain at one of my tenants? - Can I mark a newly added domain as the tenant's primary one? instructions: - text: Add domain {domain} to tenant {tenant}. slots: domain: requestBody.domain tenant: requestBody.tenant - text: Add {domain} as the primary domain for tenant {tenant}, primary = {is_primary}. slots: domain: requestBody.domain tenant: requestBody.tenant is_primary: requestBody.is_primary method: generated generated: '2026-09-26' - target: $.paths['/tenants/domains/{id}/'].get update: x-apievangelist-phrasing: intent: Get a tenant domain effect: read questions: - Which tenant does a given domain record belong to? - Is a particular tenant domain set as primary? instructions: - text: Get tenant domain {id}. slots: id: path.id - text: Show the details of domain record {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/tenants/domains/{id}/'].put update: x-apievangelist-phrasing: intent: Replace a tenant domain effect: write questions: - Can I fully rewrite an existing tenant domain record? - How do I move a domain record to another tenant by replacing it? instructions: - text: Replace domain record {id} with domain {domain} on tenant {tenant}. slots: id: path.id domain: requestBody.domain tenant: requestBody.tenant - text: Overwrite domain {id} so it is {domain} for tenant {tenant}. slots: id: path.id domain: requestBody.domain tenant: requestBody.tenant method: generated generated: '2026-09-26' - target: $.paths['/tenants/domains/{id}/'].delete update: x-apievangelist-phrasing: intent: Remove a tenant domain effect: destructive questions: - Can I detach a domain from its tenant? - What removes a tenant domain record permanently? instructions: - text: Delete tenant domain {id}. slots: id: path.id - text: Remove domain record {id} from its tenant. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/tenants/domains/{id}/'].patch update: x-apievangelist-phrasing: intent: Edit fields on a tenant domain effect: write questions: - Can I just flip which tenant domain is primary without resending everything? - Is it possible to rename only the hostname of a tenant domain? instructions: - text: Set is-primary to {is_primary} on tenant domain {id}. slots: is_primary: requestBody.is_primary id: path.id - text: Change only the hostname of domain record {id} to {domain}. slots: id: path.id domain: requestBody.domain method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/'].get update: x-apievangelist-phrasing: intent: List tenants effect: read questions: - What tenants exist on my multi-tenant authentik deployment? - Can I search tenants by name? instructions: - text: List all tenants. - text: Find tenants matching {search}. slots: search: query.search method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/'].post update: x-apievangelist-phrasing: intent: Create a tenant effect: write questions: - How do I spin up a new tenant with its own database schema? - What schema name and display name does a new tenant need? instructions: - text: Create tenant {name} with schema {schema_name}. slots: name: requestBody.name schema_name: requestBody.schema_name - text: Provision a new tenant called {name} using schema name {schema_name}. slots: name: requestBody.name schema_name: requestBody.schema_name method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/'].get update: x-apievangelist-phrasing: intent: Get a tenant effect: read questions: - Is a specific tenant ready to use yet? - Which schema does a given tenant run on? instructions: - text: Get tenant {tenant_uuid}. slots: tenant_uuid: path.tenant_uuid - text: Show whether tenant {tenant_uuid} is ready. slots: tenant_uuid: path.tenant_uuid method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/'].put update: x-apievangelist-phrasing: intent: Replace a tenant effect: write questions: - Can I overwrite a tenant's full definition, schema name included? - How do I resend every field of an existing tenant? instructions: - text: Replace tenant {tenant_uuid} with name {name} and schema {schema_name}. slots: tenant_uuid: path.tenant_uuid name: requestBody.name schema_name: requestBody.schema_name - text: Overwrite all fields of tenant {tenant_uuid}, naming it {name} on schema {schema_name}. slots: tenant_uuid: path.tenant_uuid name: requestBody.name schema_name: requestBody.schema_name method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/'].delete update: x-apievangelist-phrasing: intent: Delete a tenant effect: destructive questions: - Can I permanently remove a tenant from the deployment? - What deletes a tenant I no longer need? instructions: - text: Delete tenant {tenant_uuid}. slots: tenant_uuid: path.tenant_uuid - text: Remove tenant {tenant_uuid} permanently. slots: tenant_uuid: path.tenant_uuid method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/'].patch update: x-apievangelist-phrasing: intent: Rename or edit a tenant effect: write questions: - Can I rename a tenant without changing its schema? - Is there a way to mark just the ready flag on a tenant? instructions: - text: Rename tenant {tenant_uuid} to {name}. slots: tenant_uuid: path.tenant_uuid name: requestBody.name - text: Set ready to {ready} on tenant {tenant_uuid}. slots: ready: requestBody.ready tenant_uuid: path.tenant_uuid method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/create_admin_group/'].post update: x-apievangelist-phrasing: intent: Create a tenant admin group with a user effect: write questions: - How do I give someone admin rights inside a new tenant? - Can I bootstrap a tenant's admin group and add a user to it in one step? instructions: - text: Create the admin group in tenant {tenant_uuid} and add user {user}. slots: tenant_uuid: path.tenant_uuid user: requestBody.user - text: Make {user} an administrator of tenant {tenant_uuid}. slots: user: requestBody.user tenant_uuid: path.tenant_uuid method: generated generated: '2026-09-26' - target: $.paths['/tenants/tenants/{tenant_uuid}/create_recovery_key/'].post update: x-apievangelist-phrasing: intent: Create a recovery key for a tenant user effect: write questions: - Can I generate a recovery key so a user can get back into a tenant? - How long can a tenant recovery key stay valid? instructions: - text: Create a recovery key for {user} in tenant {tenant_uuid} valid for {duration_days} days. slots: user: requestBody.user tenant_uuid: path.tenant_uuid duration_days: requestBody.duration_days - text: Issue a {duration_days}-day tenant recovery key for user {user} on tenant {tenant_uuid}. slots: duration_days: requestBody.duration_days user: requestBody.user tenant_uuid: path.tenant_uuid method: generated generated: '2026-09-26'