Authentik · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for authentik Lifecycle API

15 actions 15 updates phrasing extends openapi/authentik-lifecycle-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['/lifecycle/iterations/'].post
$.paths['/lifecycle/iterations/latest/{content_type}/{object_id}/'].get
$.paths['/lifecycle/iterations/open/'].get
$.paths['/lifecycle/reviews/'].post
$.paths['/lifecycle/rules/'].get
$.paths['/lifecycle/rules/'].post
$.paths['/lifecycle/rules/{id}/'].get
$.paths['/lifecycle/rules/{id}/'].put
$.paths['/lifecycle/rules/{id}/'].delete
$.paths['/lifecycle/rules/{id}/'].patch
$.paths['/lifecycle/user_offboarding/'].get
$.paths['/lifecycle/user_offboarding/'].post
$.paths['/lifecycle/user_offboarding/{id}/'].get
$.paths['/lifecycle/user_offboarding/{id}/'].delete

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 Lifecycle API
  version: 1.0.0
extends: openapi/authentik-lifecycle-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['/lifecycle/iterations/'].post
  update:
    x-apievangelist-phrasing:
      intent: Start an access review iteration
      effect: write
      questions:
      - How do I kick off a new access review cycle for an object type?
      - Does starting a lifecycle review iteration need an enterprise license?
      instructions:
      - text: Start a new review iteration for content type {content_type}.
        slots:
          content_type: requestBody.content_type
      - text: Open an access review round covering {content_type} objects.
        slots:
          content_type: requestBody.content_type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/iterations/latest/{content_type}/{object_id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the latest review iteration for an object
      effect: read
      questions:
      - What is the most recent access review for a specific group or application?
      - Can I see the latest review of one object only where I am a reviewer?
      instructions:
      - text: Show the latest review iteration for {content_type} object {object_id}.
        slots:
          content_type: path.content_type
          object_id: path.object_id
      - text: 'Get the newest review of {content_type} {object_id} where I am a reviewer: {user_is_reviewer}.'
        slots:
          content_type: path.content_type
          object_id: path.object_id
          user_is_reviewer: query.user_is_reviewer
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/iterations/open/'].get
  update:
    x-apievangelist-phrasing:
      intent: List open access review iterations
      effect: read
      questions:
      - Which access reviews are still open and waiting on reviewers?
      - Can I see just the open reviews assigned to me?
      instructions:
      - text: List all open review iterations.
      - text: 'Show open reviews where I am a reviewer: {user_is_reviewer}.'
        slots:
          user_is_reviewer: query.user_is_reviewer
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/reviews/'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit a review for an iteration
      effect: write
      questions:
      - How do I sign off on an access review I was assigned?
      - Can I leave a note when I complete a lifecycle review?
      instructions:
      - text: Submit my review for iteration {iteration}.
        slots:
          iteration: requestBody.iteration
      - text: Approve review iteration {iteration} with the note {note}.
        slots:
          iteration: requestBody.iteration
          note: requestBody.note
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/'].get
  update:
    x-apievangelist-phrasing:
      intent: List lifecycle review rules
      effect: read
      questions:
      - What recurring access review rules are configured?
      - Can I filter review rules by the kind of object they cover?
      instructions:
      - text: List all lifecycle rules.
      - text: Show lifecycle rules that apply to the {content_type__model} model.
        slots:
          content_type__model: query.content_type__model
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a lifecycle review rule
      effect: write
      questions:
      - How do I schedule periodic access reviews for groups or applications?
      - Can I require a minimum number of reviewers and a grace period on a review rule?
      - Is it possible to notify reviewers through specific transports instead of only the UI?
      instructions:
      - text: Create a lifecycle rule {name} for {content_type} reviewed by {reviewers}.
        slots:
          name: requestBody.name
          content_type: requestBody.content_type
          reviewers: requestBody.reviewers
      - text: Add review rule {name} on {content_type} every {interval} with grace period {grace_period}, reviewers {reviewers}.
        slots:
          name: requestBody.name
          content_type: requestBody.content_type
          interval: requestBody.interval
          grace_period: requestBody.grace_period
          reviewers: requestBody.reviewers
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/{id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a lifecycle review rule
      effect: read
      questions:
      - How often does a given access review rule run and who reviews it?
      - What grace period is set on one lifecycle rule?
      instructions:
      - text: Show lifecycle rule {id}.
        slots:
          id: path.id
      - text: Get the interval and reviewers of review rule {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/{id}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a lifecycle review rule
      effect: write
      questions:
      - How do I redefine an entire access review rule in one request?
      - Which fields must I resend when fully replacing a lifecycle rule?
      instructions:
      - text: Replace lifecycle rule {id} with name {name}, content type {content_type} and reviewers {reviewers}.
        slots:
          id: path.id
          name: requestBody.name
          content_type: requestBody.content_type
          reviewers: requestBody.reviewers
      - text: 'Overwrite rule {id}: {name} on {content_type}, reviewer groups {reviewer_groups}, reviewers {reviewers}.'
        slots:
          id: path.id
          name: requestBody.name
          content_type: requestBody.content_type
          reviewer_groups: requestBody.reviewer_groups
          reviewers: requestBody.reviewers
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/{id}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a lifecycle review rule
      effect: destructive
      questions:
      - How do I stop a recurring access review by removing its rule?
      - Can I delete a lifecycle rule I no longer need?
      instructions:
      - text: Delete lifecycle rule {id}.
        slots:
          id: path.id
      - text: Remove the access review rule {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/rules/{id}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Adjust a lifecycle review rule
      effect: write
      questions:
      - Can I change only the review interval on an existing rule?
      - How do I raise the minimum reviewer count on a rule without touching anything else?
      instructions:
      - text: Change the interval of lifecycle rule {id} to {interval}.
        slots:
          id: path.id
          interval: requestBody.interval
      - text: 'Set minimum reviewers on rule {id} to {min_reviewers}, per group: {min_reviewers_is_per_group}.'
        slots:
          id: path.id
          min_reviewers: requestBody.min_reviewers
          min_reviewers_is_per_group: requestBody.min_reviewers_is_per_group
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/user_offboarding/'].get
  update:
    x-apievangelist-phrasing:
      intent: List scheduled user offboardings
      effect: read
      questions:
      - Which users are scheduled to be offboarded?
      - Can I filter offboardings by status or by a particular user?
      instructions:
      - text: List all user offboardings.
      - text: Show offboardings with status {status}.
        slots:
          status: query.status
      - text: Find offboardings for user {user__uuid}.
        slots:
          user__uuid: query.user__uuid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/user_offboarding/'].post
  update:
    x-apievangelist-phrasing:
      intent: Schedule a user offboarding
      effect: write
      questions:
      - How do I schedule a departing employee to be offboarded on their last day?
      - Can offboarding also revoke the user's sessions and tokens?
      instructions:
      - text: Schedule offboarding of user {user} at {scheduled_at}.
        slots:
          user: requestBody.user
          scheduled_at: requestBody.scheduled_at
      - text: Offboard {user} at {scheduled_at} with action {action}, revoking sessions {revoke_sessions} and tokens {revoke_tokens}.
        slots:
          user: requestBody.user
          scheduled_at: requestBody.scheduled_at
          action: requestBody.action
          revoke_sessions: requestBody.revoke_sessions
          revoke_tokens: requestBody.revoke_tokens
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/user_offboarding/{id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user offboarding
      effect: read
      questions:
      - When is a specific offboarding scheduled to run and what will it do?
      - What is the current status of one user offboarding?
      instructions:
      - text: Show offboarding {id}.
        slots:
          id: path.id
      - text: Check the status of user offboarding {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/lifecycle/user_offboarding/{id}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a pending user offboarding
      effect: destructive
      questions:
      - How do I call off an offboarding that has not run yet?
      - Does canceling an offboarding keep it in the audit history?
      instructions:
      - text: Cancel pending offboarding {id}.
        slots:
          id: path.id
      - text: Stop the scheduled offboarding {id} before it executes.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'