ControlUp · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Controlup Users API

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

What the actions change

x-apievangelist-phrasing

Targets 7

$.info
$.paths['/users/user-info'].get
$.paths['/organizations/{orgId}/users'].get
$.paths['/organizations/{orgId}/users/{id}'].get
$.paths['/organizations/{orgId}/users/{id}'].delete
$.paths['/organizations/{orgId}/users/{id}'].patch
$.paths['/organizations/{orgId}/users/{id}/revoke-api-keys'].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 Controlup Users API
  version: 1.0.0
extends: openapi/controlup-users-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 6
- target: $.paths['/users/user-info'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the signed-in user's own identity
      effect: read
      questions:
      - Who am I signed in as, and which organization does my token belong to?
      - What permissions does my current API token carry?
      instructions:
      - text: Show my own identity, organization and permissions from my token.
      - text: Tell me which organization I'm currently in.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/organizations/{orgId}/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List users in the organization
      effect: read
      questions:
      - Who are the users in my ControlUp organization, including pending invitations?
      - Can I search users by email or last name?
      instructions:
      - text: List all users in organization {orgId}.
        slots:
          orgId: path.orgId
      - text: Find the user with email {email} in organization {orgId}.
        slots:
          email: query.email
          orgId: path.orgId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/organizations/{orgId}/users/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's details
      effect: read
      questions:
      - What are the details of a specific user account?
      - Can I look up one user by their ID?
      instructions:
      - text: Get user {id} in organization {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
      - text: Show the profile of user {id} in {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/organizations/{orgId}/users/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user
      effect: destructive
      questions:
      - How do I remove someone from my organization?
      - Can I delete a user account by ID?
      instructions:
      - text: Delete user {id} from organization {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
      - text: Remove user {id} from {orgId} entirely.
        slots:
          id: path.id
          orgId: path.orgId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/organizations/{orgId}/users/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a user's roles, login and MFA
      effect: write
      questions:
      - How do I change which roles a user has?
      - Can I change a user's MFA method or allowed login methods?
      instructions:
      - text: Set the roles of user {id} in {orgId} to {roleIds}.
        slots:
          id: path.id
          orgId: path.orgId
          roleIds: requestBody.roleIds
      - text: Change user {id} in {orgId} to MFA method {mfaType}.
        slots:
          id: path.id
          mfaType: requestBody.mfaType
          orgId: path.orgId
      - text: Set status {status} on user {id} in organization {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/organizations/{orgId}/users/{id}/revoke-api-keys'].post
  update:
    x-apievangelist-phrasing:
      intent: Revoke all of a user's API keys
      effect: destructive
      questions:
      - How do I cut off every API key a departing user created?
      - Can revoked API keys still access data?
      instructions:
      - text: Revoke all API keys created by user {id} in organization {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
      - text: Invalidate user {id}'s API keys in {orgId}.
        slots:
          id: path.id
          orgId: path.orgId
      method: generated
      generated: '2026-09-26'