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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'