Authentik · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for authentik Tenants API
15 actions
15 updates
phrasing
extends
openapi/authentik-tenants-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Authentik's API. It is a proposal applied on top of the contract, not a document Authentik publishes.
What the actions change
x-apievangelist-phrasing
Targets 15
$.info
$.paths['/tenants/domains/'].get
$.paths['/tenants/domains/'].post
$.paths['/tenants/domains/{id}/'].get
$.paths['/tenants/domains/{id}/'].put
$.paths['/tenants/domains/{id}/'].delete
$.paths['/tenants/domains/{id}/'].patch
$.paths['/tenants/tenants/'].get
$.paths['/tenants/tenants/'].post
$.paths['/tenants/tenants/{tenant_uuid}/'].get
$.paths['/tenants/tenants/{tenant_uuid}/'].put
$.paths['/tenants/tenants/{tenant_uuid}/'].delete
$.paths['/tenants/tenants/{tenant_uuid}/'].patch
$.paths['/tenants/tenants/{tenant_uuid}/create_admin_group/'].post
$.paths['/tenants/tenants/{tenant_uuid}/create_recovery_key/'].post
OpenAPI Overlay
# 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'