Cloudflare · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Cloudflare User API

47 actions 47 updates phrasing extends openapi/cloudflare-user-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Cloudflare's API. It is a proposal applied on top of the contract, not a document Cloudflare publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 47 · first 16 shown; the file carries all of them

$.info
$.paths['/user'].get
$.paths['/user'].patch
$.paths['/user/audit_logs'].get
$.paths['/user/billing/history'].get
$.paths['/user/billing/profile'].get
$.paths['/user/firewall/access_rules/rules'].get
$.paths['/user/firewall/access_rules/rules'].post
$.paths['/user/firewall/access_rules/rules/{identifier}'].delete
$.paths['/user/firewall/access_rules/rules/{identifier}'].patch
$.paths['/user/invites'].get
$.paths['/user/invites/{invite_id}'].get
$.paths['/user/invites/{invite_id}'].patch
$.paths['/user/load_balancers/monitors'].get
$.paths['/user/load_balancers/monitors'].post
$.paths['/user/load_balancers/monitors/{monitor_id}'].get

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 Cloudflare User API
  version: 1.0.0
extends: openapi/cloudflare-user-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: 46
- target: $.paths['/user'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my user profile details
      effect: read
      questions:
      - What personal details does my Cloudflare user profile hold?
      - Can I see the name and contact details on my own user account?
      instructions:
      - text: Show my user profile details.
      - text: Fetch the details of the user I'm signed in as.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit my user profile
      effect: write
      questions:
      - How do I change the name on my user profile?
      - Can I update the telephone number and zipcode stored on my user account?
      instructions:
      - text: Change my profile name to {first_name} {last_name}.
        slots:
          first_name: requestBody.first_name
          last_name: requestBody.last_name
      - text: Update my profile telephone number to {telephone}.
        slots:
          telephone: requestBody.telephone
      - text: Set my profile country to {country} and zipcode to {zipcode}.
        slots:
          country: requestBody.country
          zipcode: requestBody.zipcode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/audit_logs'].get
  update:
    x-apievangelist-phrasing:
      intent: List audit logs for my user account
      effect: read
      questions:
      - Who changed settings on my account, and when?
      - Can I filter my user audit logs by the email of the person who made the change?
      - Is there a way to see audit log entries for one zone within a date range?
      instructions:
      - text: Show my user audit logs since {since}.
        slots:
          since: query.since
      - text: List audit log entries made by {actor_email} on zone {zone_name}.
        slots:
          actor_email: query.actor.email
          zone_name: query.zone.name
      - text: Find audit log changes that came from IP {actor_ip}.
        slots:
          actor_ip: query.actor.ip
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/billing/history'].get
  update:
    x-apievangelist-phrasing:
      intent: View my billing history
      effect: read
      questions:
      - Where can I see my past charges and billing history?
      - Can I filter my billing history by the type of transaction?
      instructions:
      - text: Show my billing history.
      - text: List billing history entries of type {type}.
        slots:
          type: query.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/billing/profile'].get
  update:
    x-apievangelist-phrasing:
      intent: View my billing profile
      effect: read
      questions:
      - What billing profile and payment details are on file for my user?
      - Can I check which billing address my user account uses?
      instructions:
      - text: Show my billing profile.
      - text: Get the billing profile attached to my user account.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/firewall/access_rules/rules'].get
  update:
    x-apievangelist-phrasing:
      intent: List my user-level IP Access rules
      effect: read
      questions:
      - Which IP addresses have I blocked or allowed across all my zones?
      - Can I sort my user-level IP Access rules by mode or configuration?
      instructions:
      - text: List my user-level IP Access rules.
      - text: Show page {page} of my IP Access rules, {per_page} per page.
        slots:
          page: query.page
          per_page: query.per_page
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/firewall/access_rules/rules'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an IP Access rule for all my zones
      effect: write
      questions:
      - How do I block an IP address across every zone I own?
      - Can I challenge a whole country or ASN on all my zones with one rule?
      instructions:
      - text: Create a user-level IP Access rule to {mode} the target {configuration}.
        slots:
          mode: requestBody.mode
          configuration: requestBody.configuration
      - text: Add an IP Access rule that applies {mode} to {configuration} on all my zones, with the note {notes}.
        slots:
          mode: requestBody.mode
          configuration: requestBody.configuration
          notes: requestBody.notes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/firewall/access_rules/rules/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user-level IP Access rule
      effect: destructive
      questions:
      - How do I remove an IP block that applies to all my zones?
      - What happens to my zones when I delete a user-level IP Access rule?
      instructions:
      - text: Delete IP Access rule {identifier} from my user account.
        slots:
          identifier: path.identifier
      - text: Remove the user-level IP Access rule {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/firewall/access_rules/rules/{identifier}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change an IP Access rule's action or notes
      effect: write
      questions:
      - Can I switch an existing IP Access rule from block to challenge?
      - Which parts of a user-level IP Access rule can I edit after creating it?
      instructions:
      - text: Change the action of IP Access rule {identifier} to {mode}.
        slots:
          identifier: path.identifier
          mode: requestBody.mode
      - text: Update the notes on IP Access rule {identifier} to {notes}.
        slots:
          identifier: path.identifier
          notes: requestBody.notes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/invites'].get
  update:
    x-apievangelist-phrasing:
      intent: List my pending invitations
      effect: read
      questions:
      - Have I been invited to join any accounts?
      - Where can I see all the invitations sent to my user?
      instructions:
      - text: List all invitations sent to me.
      - text: Show my account invitations.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/invites/{invite_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get details of one invitation
      effect: read
      questions:
      - Who sent a particular invitation and which account is it for?
      - Can I check the status of a single invite before I accept it?
      instructions:
      - text: Show the details of invitation {invite_id}.
        slots:
          invite_id: path.invite_id
      - text: Look up invite {invite_id} and tell me who it's from.
        slots:
          invite_id: path.invite_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/invites/{invite_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Accept or reject an invitation
      effect: write
      questions:
      - How do I accept an invitation to join someone's account?
      - Can I decline an invite I don't want?
      instructions:
      - text: Accept invitation {invite_id}.
        slots:
          invite_id: path.invite_id
      - text: Respond to invite {invite_id} with {status}.
        slots:
          invite_id: path.invite_id
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors'].get
  update:
    x-apievangelist-phrasing:
      intent: List my load balancer health monitors
      effect: read
      questions:
      - What health check monitors have I set up for my load balancers?
      - Which monitors exist on my user account?
      instructions:
      - text: List all my load balancer monitors.
      - text: Show every health monitor configured for my user.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a load balancer health monitor
      effect: write
      questions:
      - How do I set up a health check that probes my origins over HTTPS?
      - Can a new monitor look for a specific string in the response body?
      - What protocols can a new health monitor use?
      instructions:
      - text: Create a {type} monitor that checks path {path} every {interval} seconds.
        slots:
          type: requestBody.type
          path: requestBody.path
          interval: requestBody.interval
      - text: Set up a new health monitor expecting status {expected_codes} and body text {expected_body}.
        slots:
          expected_codes: requestBody.expected_codes
          expected_body: requestBody.expected_body
      - text: Add a TCP health monitor on port {port} with a {timeout} second timeout.
        slots:
          port: requestBody.port
          timeout: requestBody.timeout
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one load balancer monitor
      effect: read
      questions:
      - What settings does a particular health monitor use?
      - Can I see the interval and expected codes of one monitor?
      instructions:
      - text: Show the configuration of monitor {monitor_id}.
        slots:
          monitor_id: path.monitor_id
      - text: Get details for health monitor {monitor_id}.
        slots:
          monitor_id: path.monitor_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a monitor's configuration
      effect: write
      questions:
      - How do I fully replace the settings of an existing health monitor?
      - Can I rewrite a monitor's whole configuration in one request?
      instructions:
      - text: Replace monitor {monitor_id} with a {type} check on path {path}.
        slots:
          monitor_id: path.monitor_id
          type: requestBody.type
          path: requestBody.path
      - text: Overwrite the full config of monitor {monitor_id}, using method {method} and {retries} retries.
        slots:
          monitor_id: path.monitor_id
          method: requestBody.method
          retries: requestBody.retries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a load balancer monitor
      effect: destructive
      questions:
      - How do I remove a health monitor I no longer need?
      - Can I delete a monitor that pools might still reference?
      instructions:
      - text: Delete monitor {monitor_id}.
        slots:
          monitor_id: path.monitor_id
      - text: Remove health monitor {monitor_id} from my account.
        slots:
          monitor_id: path.monitor_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected settings on a monitor
      effect: write
      questions:
      - Can I change just the interval of a health monitor without resending everything?
      - Is it possible to tweak only a monitor's timeout?
      instructions:
      - text: Patch monitor {monitor_id} to run every {interval} seconds.
        slots:
          monitor_id: path.monitor_id
          interval: requestBody.interval
      - text: Change only the description of monitor {monitor_id} to {description}.
        slots:
          monitor_id: path.monitor_id
          description: requestBody.description
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}/preview'].post
  update:
    x-apievangelist-phrasing:
      intent: Preview pools against a monitor's settings
      effect: read
      questions:
      - Can I test how my pools would fare with changed monitor settings before saving them?
      - How do I dry-run a monitor change against the pools that use it?
      instructions:
      - text: Preview the pools using monitor {monitor_id} with path {path} and expected codes {expected_codes}.
        slots:
          monitor_id: path.monitor_id
          path: requestBody.path
          expected_codes: requestBody.expected_codes
      - text: Start a monitor preview for {monitor_id} with a {timeout} second timeout.
        slots:
          monitor_id: path.monitor_id
          timeout: requestBody.timeout
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/monitors/{monitor_id}/references'].get
  update:
    x-apievangelist-phrasing:
      intent: List what references a monitor
      effect: read
      questions:
      - Which pools are using a given health monitor?
      - What would be affected if I deleted this monitor?
      instructions:
      - text: List the resources that reference monitor {monitor_id}.
        slots:
          monitor_id: path.monitor_id
      - text: Show which pools depend on monitor {monitor_id}.
        slots:
          monitor_id: path.monitor_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools'].get
  update:
    x-apievangelist-phrasing:
      intent: List my load balancer pools
      effect: read
      questions:
      - What origin pools have I configured?
      - Can I list only the pools that use a particular monitor?
      instructions:
      - text: List all my load balancer pools.
      - text: Show the pools that use monitor {monitor}.
        slots:
          monitor: query.monitor
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a load balancer origin pool
      effect: write
      questions:
      - How do I group my origin servers into a new pool?
      - Can I require a minimum number of healthy origins when setting up a pool?
      instructions:
      - text: Create a pool named {name} with origins {origins}.
        slots:
          name: requestBody.name
          origins: requestBody.origins
      - text: Create pool {name} with origins {origins}, checked by monitor {monitor}.
        slots:
          name: requestBody.name
          origins: requestBody.origins
          monitor: requestBody.monitor
      - text: Set up a new pool {name} for {origins} that needs at least {minimum_origins} healthy origins.
        slots:
          name: requestBody.name
          origins: requestBody.origins
          minimum_origins: requestBody.minimum_origins
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update the notification email on many pools
      effect: write
      questions:
      - Can I change the health notification email on all my pools at once?
      - Is there a bulk way to clear the notification address across every pool?
      instructions:
      - text: Set the notification email on all my pools to {notification_email}.
        slots:
          notification_email: requestBody.notification_email
      - text: Bulk-update every pool to send health alerts to {notification_email}.
        slots:
          notification_email: requestBody.notification_email
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one load balancer pool
      effect: read
      questions:
      - Which origins and monitor does a specific pool use?
      - Can I see the full configuration of one pool?
      instructions:
      - text: Show the configuration of pool {pool_id}.
        slots:
          pool_id: path.pool_id
      - text: Get details for load balancer pool {pool_id}.
        slots:
          pool_id: path.pool_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a pool's configuration
      effect: write
      questions:
      - How do I replace the whole origin list and settings of an existing pool?
      - Can I rewrite a pool's full configuration in one call?
      instructions:
      - text: Replace pool {pool_id} with name {name} and origins {origins}.
        slots:
          pool_id: path.pool_id
          name: requestBody.name
          origins: requestBody.origins
      - text: Overwrite pool {pool_id} as {name} with origins {origins} and load shedding {load_shedding}.
        slots:
          pool_id: path.pool_id
          name: requestBody.name
          origins: requestBody.origins
          load_shedding: requestBody.load_shedding
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a load balancer pool
      effect: destructive
      questions:
      - How do I get rid of an origin pool I no longer use?
      - Can I delete a pool permanently?
      instructions:
      - text: Delete pool {pool_id}.
        slots:
          pool_id: path.pool_id
      - text: Remove load balancer pool {pool_id} from my account.
        slots:
          pool_id: path.pool_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected settings on one pool
      effect: write
      questions:
      - Can I disable a single pool without resending its origins?
      - Is it possible to change just the monitor attached to one pool?
      instructions:
      - text: Patch pool {pool_id} to set enabled to {enabled}.
        slots:
          pool_id: path.pool_id
          enabled: requestBody.enabled
      - text: Switch pool {pool_id} to use monitor {monitor}, leaving everything else as is.
        slots:
          pool_id: path.pool_id
          monitor: requestBody.monitor
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}/health'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a pool's current health
      effect: read
      questions:
      - Is my origin pool healthy right now?
      - What's the latest health status of a specific pool?
      instructions:
      - text: Show the latest health status of pool {pool_id}.
        slots:
          pool_id: path.pool_id
      - text: Check whether pool {pool_id} is healthy.
        slots:
          pool_id: path.pool_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}/preview'].post
  update:
    x-apievangelist-phrasing:
      intent: Preview a pool's health with test monitor settings
      effect: read
      questions:
      - Can I see how one pool's origins would respond to a different health check before applying it?
      - How do I trial monitor settings against a single pool?
      instructions:
      - text: Preview health of pool {pool_id} using a {type} check on path {path}.
        slots:
          pool_id: path.pool_id
          type: requestBody.type
          path: requestBody.path
      - text: Run a health preview on pool {pool_id} with port {port}.
        slots:
          pool_id: path.pool_id
          port: requestBody.port
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/pools/{pool_id}/references'].get
  update:
    x-apievangelist-phrasing:
      intent: List what references a pool
      effect: read
      questions:
      - Which load balancers route traffic to a given pool?
      - What depends on this pool before I remove it?
      instructions:
      - text: List the resources that reference pool {pool_id}.
        slots:
          pool_id: path.pool_id
      - text: Show which load balancers use pool {pool_id}.
        slots:
          pool_id: path.pool_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancers/preview/{preview_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the result of a health preview
      effect: read
      questions:
      - Where do I find the outcome of a monitor or pool preview I started?
      - Did my previewed health check pass?
      instructions:
      - text: Get the results of preview {preview_id}.
        slots:
          preview_id: path.preview_id
      - text: Show whether origins passed in health preview {preview_id}.
        slots:
          preview_id: path.preview_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/load_balancing_analytics/events'].get
  update:
    x-apievangelist-phrasing:
      intent: List origin health change events
      effect: read
      questions:
      - When did my origins go up or down recently?
      - Can I filter health check events to just one pool or origin?
      - Which origins became unhealthy within a time window?
      instructions:
      - text: List origin health changes since {since}.
        slots:
          since: query.since
      - text: Show health events for pool {pool_name} until {until}.
        slots:
          pool_name: query.pool_name
          until: query.until
      - text: Find health events where origin {origin_name} was unhealthy.
        slots:
          origin_name: query.origin_name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/organizations'].get
  update:
    x-apievangelist-phrasing:
      intent: List organizations I belong to
      effect: read
      questions:
      - Which organizations is my user a member of?
      - Can I search my organizations by name or status?
      instructions:
      - text: List the organizations I'm associated with.
      - text: Find my organizations named {name}.
        slots:
          name: query.name
      - text: Show my organizations with status {status}.
        slots:
          status: query.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/organizations/{organization_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one organization I belong to
      effect: read
      questions:
      - What are the details of a specific organization I'm in?
      - Can I look up one organization's info by its ID?
      instructions:
      - text: Show details for organization {organization_id}.
        slots:
          organization_id: path.organization_id
      - text: Get organization {organization_id}.
        slots:
          organization_id: path.organization_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/organizations/{organization_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Leave an organization
      effect: destructive
      questions:
      - How do I remove myself from an organization?
      - Can I drop my association with an organization I no longer work with?
      instructions:
      - text: Leave organization {organization_id}.
        slots:
          organization_id: path.organization_id
      - text: Remove my membership in organization {organization_id}.
        slots:
          organization_id: path.organization_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/subscriptions'].get
  update:
    x-apievangelist-phrasing:
      intent: List my subscriptions
      effect: read
      questions:
      - What plans and add-ons am I currently subscribed to?
      - When is my next subscription billing due?
      instructions:
      - text: List all my user subscriptions.
      - text: Show my active subscriptions and their prices.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/subscriptions/{identifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a user subscription
      effect: write
      questions:
      - How do I switch one of my subscriptions to a different rate plan?
      - Can I change how often a subscription renews?
      instructions:
      - text: Change subscription {identifier} to rate plan {rate_plan}.
        slots:
          identifier: path.identifier
          rate_plan: requestBody.rate_plan
      - text: Set subscription {identifier} to renew {frequency}.
        slots:
          identifier: path.identifier
          frequency: requestBody.frequency
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/subscriptions/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a user subscription
      effect: destructive
      questions:
      - How do I cancel one of my subscriptions?
      - Can I delete a subscription I'm no longer using?
      instructions:
      - text: Delete subscription {identifier}.
        slots:
          identifier: path.identifier
      - text: Cancel my subscription {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens'].get
  update:
    x-apievangelist-phrasing:
      intent: List my API tokens
      effect: read
      questions:
      - Which API tokens have I created?
      - Can I page through my access tokens in a set order?
      instructions:
      - text: List all the API tokens I've created.
      - text: Show page {page} of my API tokens.
        slots:
          page: query.page
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an API token
      effect: write
      questions:
      - How do I make a scoped API token with specific permissions?
      - Can I create a token that expires on a set date?
      instructions:
      - text: Create an API token named {name} with policies {policies}.
        slots:
          name: requestBody.name
          policies: requestBody.policies
      - text: Create token {name} with policies {policies} that expires on {expires_on}.
        slots:
          name: requestBody.name
          policies: requestBody.policies
          expires_on: requestBody.expires_on
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/{token_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one API token's details
      effect: read
      questions:
      - What permissions and expiry does a particular API token have?
      - Can I check when a specific token was issued?
      instructions:
      - text: Show details of API token {token_id}.
        slots:
          token_id: path.token_id
      - text: Get the policies attached to token {token_id}.
        slots:
          token_id: path.token_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/{token_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an API token's settings
      effect: write
      questions:
      - How do I change the permissions on an existing API token?
      - Can I disable a token by changing its status?
      instructions:
      - text: Update token {token_id} with name {name}, policies {policies} and status {status}.
        slots:
          token_id: path.token_id
          name: requestBody.name
          policies: requestBody.policies
          status: requestBody.status
      - text: Set token {token_id} ({id}) named {name} to status {status} keeping policies {policies}.
        slots:
          token_id: path.token_id
          id: requestBody.id
          name: requestBody.name
          status: requestBody.status
          policies: requestBody.policies
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/{token_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an API token
      effect: destructive
      questions:
      - How do I permanently destroy an API token?
      - Can I delete a token I think has leaked?
      instructions:
      - text: Delete API token {token_id}.
        slots:
          token_id: path.token_id
      - text: Destroy token {token_id} so it can't be used again.
        slots:
          token_id: path.token_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/{token_id}/value'].put
  update:
    x-apievangelist-phrasing:
      intent: Roll an API token's secret
      effect: destructive
      questions:
      - How do I regenerate the secret value of an existing token?
      - Can I rotate a token's secret without changing its permissions?
      instructions:
      - text: Roll the secret for token {token_id}.
        slots:
          token_id: path.token_id
      - text: Rotate the value of API token {token_id}.
        slots:
          token_id: path.token_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/permission_groups'].get
  update:
    x-apievangelist-phrasing:
      intent: List available token permission groups
      effect: read
      questions:
      - What permission groups can I assign to an API token?
      - Which permissions are available when building a token policy?
      instructions:
      - text: List all available permission groups.
      - text: Show the permission groups I can use in token policies.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/user/tokens/verify'].get
  update:
    x-apievangelist-phrasing:
      intent: Verify that my API token works
      effect: read
      questions:
      - Is the API token I'm calling with valid and active?
      - Can I quickly test whether my current token works?
      instructions:
      - text: Verify the token I'm using.
      - text: Check that my current API token is active.
      method: generated
      generated: '2026-09-26'