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