Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness User API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/ng/api/user/add-user-to-groups/{userId}'].put
$.paths['/ng/api/user/users'].post
$.paths['/ng/api/user/password'].put
$.paths['/ng/api/user/last-admin'].get
$.paths['/ng/api/user/disable-two-factor-auth'].put
$.paths['/ng/api/user/endImpersonation/{userId}'].post
$.paths['/ng/api/user/aggregate/{userId}'].get
$.paths['/ng/api/user/aggregate'].post
$.paths['/ng/api/user/two-factor-auth/{authMechanism}'].get
$.paths['/ng/api/user/currentUser'].get
$.paths['/ng/api/user/batch'].post
$.paths['/ng/api/user/impersonate/{userId}'].post
$.paths['/ng/api/user/{userId}'].put
$.paths['/ng/api/user/{userId}'].delete
$.paths['/ng/api/user/reset-two-factor-auth/{userId}'].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 Harness User API
  version: 1.0.0
extends: openapi/harness-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: 20
- target: $.paths['/ng/api/user/add-user-to-groups/{userId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Set which user groups a user belongs to
      effect: write
      questions:
      - How do I put an existing Harness user into a set of user groups?
      - Does adding a user to groups remove them from their other groups?
      instructions:
      - text: Put user {userId} into user groups {userGroupIdsToAdd}, replacing their other non-managed groups.
        slots:
          userId: path.userId
          userGroupIdsToAdd: requestBody.userGroupIdsToAdd
      - text: Reassign user {userId}'s group membership in project {projectIdentifier} to {userGroupIdsToAdd}.
        slots:
          userId: path.userId
          projectIdentifier: query.projectIdentifier
          userGroupIdsToAdd: requestBody.userGroupIdsToAdd
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Invite users by email to a scope
      effect: write
      questions:
      - Can I invite several people by email to a Harness project at once?
      - Is it possible to give invited users role bindings or user groups as they're added?
      instructions:
      - text: Invite {emails} to my account.
        slots:
          emails: requestBody.emails
      - text: Add {emails} to project {projectIdentifier} and place them in user groups {userGroups}.
        slots:
          emails: requestBody.emails
          projectIdentifier: query.projectIdentifier
          userGroups: requestBody.userGroups
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/password'].put
  update:
    x-apievangelist-phrasing:
      intent: Change my password
      effect: write
      questions:
      - How do I change my own login password?
      - Do I need to supply my current password to set a new one?
      instructions:
      - text: Change my password from {currentPassword} to {newPassword}.
        slots:
          currentPassword: requestBody.currentPassword
          newPassword: requestBody.newPassword
      - text: Update my login password to {newPassword}.
        slots:
          newPassword: requestBody.newPassword
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/last-admin'].get
  update:
    x-apievangelist-phrasing:
      intent: Check whether a user is the last admin
      effect: read
      questions:
      - Is this user the only admin left in the account?
      - Would removing someone leave a project with no administrator?
      instructions:
      - text: Check whether user {userId} is the last admin in my account.
        slots:
          userId: query.userId
      - text: Tell me if {userId} is the only remaining admin of project {projectIdentifier}.
        slots:
          userId: query.userId
          projectIdentifier: query.projectIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/disable-two-factor-auth'].put
  update:
    x-apievangelist-phrasing:
      intent: Turn off two-factor authentication for me
      effect: write
      questions:
      - How do I switch off two-factor authentication on my Harness login?
      - Can I disable 2FA for my own user in an account?
      instructions:
      - text: Disable two-factor authentication for my user in account {accountIdentifier}.
        slots:
          accountIdentifier: query.accountIdentifier
      - text: Turn off my 2FA.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/endImpersonation/{userId}'].post
  update:
    x-apievangelist-phrasing:
      intent: End an impersonation session
      effect: write
      questions:
      - How do I stop impersonating another user?
      - Can an admin end the impersonation session they started?
      instructions:
      - text: End my impersonation session of user {userId}.
        slots:
          userId: path.userId
      - text: Stop impersonating {userId} and return to my own identity.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/aggregate/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's details and role assignments
      effect: read
      questions:
      - What roles has a specific user been assigned in a project?
      - Where can I see one user's metadata together with their role assignments?
      instructions:
      - text: Show user {userId}'s details and role assignments.
        slots:
          userId: path.userId
      - text: Get the roles assigned to user {userId} in org {orgIdentifier}.
        slots:
          userId: path.userId
          orgIdentifier: query.orgIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/aggregate'].post
  update:
    x-apievangelist-phrasing:
      intent: List users with their role assignments
      effect: read
      questions:
      - Who has access to this project, and with which roles?
      - Can I filter the people in a scope by role or resource group?
      instructions:
      - text: List everyone with access to project {projectIdentifier} along with their role assignments.
        slots:
          projectIdentifier: query.projectIdentifier
      - text: Show users who hold role {roleIdentifiers}, including their role assignments.
        slots:
          roleIdentifiers: requestBody.roleIdentifiers
      - text: Search users with role assignments for {searchTerm}.
        slots:
          searchTerm: query.searchTerm
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/two-factor-auth/{authMechanism}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my two-factor auth setup details
      effect: read
      questions:
      - Where do I get the settings needed to set up TOTP two-factor auth for my login?
      - What does the two-factor setup look like for a given auth mechanism?
      instructions:
      - text: Get my two-factor authentication settings for mechanism {authMechanism}.
        slots:
          authMechanism: path.authMechanism
      - text: Fetch the {authMechanism} 2FA setup info for my user.
        slots:
          authMechanism: path.authMechanism
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/currentUser'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the logged-in user's profile
      effect: read
      questions:
      - Who am I logged in as in Harness?
      - What account details does the API return for the current user?
      instructions:
      - text: Show my own user profile.
      - text: Get the currently logged-in user's info for account {accountIdentifier}.
        slots:
          accountIdentifier: query.accountIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/batch'].post
  update:
    x-apievangelist-phrasing:
      intent: Look up users in a scope by email or id
      effect: read
      questions:
      - Can I look up several users at once by their email addresses?
      - Which users in an org match a given search term?
      instructions:
      - text: Look up the users with emails {emails}.
        slots:
          emails: requestBody.emails
      - text: Get the basic user records for ids {identifiers}.
        slots:
          identifiers: requestBody.identifiers
      - text: Find users in org {orgIdentifier} matching {searchTerm}.
        slots:
          orgIdentifier: query.orgIdentifier
          searchTerm: requestBody.searchTerm
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/impersonate/{userId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Start impersonating a user
      effect: write
      questions:
      - Can an admin sign in as another user to troubleshoot what they see?
      - Do I have to give a reason when impersonating someone?
      instructions:
      - text: Impersonate user {userId} because {reasonOfImpersonation}.
        slots:
          userId: path.userId
          reasonOfImpersonation: requestBody.reasonOfImpersonation
      - text: Start an impersonation session as {userId} with reason {reasonOfImpersonation}.
        slots:
          userId: path.userId
          reasonOfImpersonation: requestBody.reasonOfImpersonation
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/{userId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update another user's name or email
      effect: write
      questions:
      - Can I rename a user or change their email by their user id?
      - Which profile fields of a specific user can be edited?
      instructions:
      - text: Change user {userId}'s email to {email}.
        slots:
          userId: path.userId
          email: requestBody.email
      - text: Set user {userId}'s given name to {givenName} and family name to {familyName}.
        slots:
          userId: path.userId
          givenName: requestBody.givenName
          familyName: requestBody.familyName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a user from a scope
      effect: destructive
      questions:
      - How do I take someone off a Harness project?
      - Can I remove a collaborator from an org without deleting their account?
      instructions:
      - text: Remove user {userId} from project {projectIdentifier}.
        slots:
          userId: path.userId
          projectIdentifier: query.projectIdentifier
      - text: Revoke {userId}'s access to my account.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/reset-two-factor-auth/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Reset a user's two-factor authentication
      effect: write
      questions:
      - What can I do when a user has lost their 2FA device?
      - Can an admin reset two-factor for someone else?
      instructions:
      - text: Reset two-factor authentication for user {userId}.
        slots:
          userId: path.userId
      - text: Clear {userId}'s 2FA so they can enroll again.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/unlock-user/{userId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Unlock a locked-out user
      effect: write
      questions:
      - How do I unlock a user who got locked out?
      - Can I unlock someone within a specific org or project?
      instructions:
      - text: Unlock user {userId}.
        slots:
          userId: path.userId
      - text: Unlock {userId} in org {orgIdentifier}.
        slots:
          userId: path.userId
          orgIdentifier: query.orgIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user/enable-two-factor-auth'].put
  update:
    x-apievangelist-phrasing:
      intent: Turn on two-factor authentication
      effect: write
      questions:
      - Can I enable TOTP two-factor authentication for a user in an account?
      - What secret key does enabling 2FA expect?
      instructions:
      - text: Enable two-factor auth for {email} using mechanism {mechanism}.
        slots:
          email: requestBody.email
          mechanism: requestBody.mechanism
      - text: Turn on 2FA for user {userId} with TOTP secret {totpSecretKey}.
        slots:
          userId: requestBody.userId
          totpSecretKey: requestBody.totpSecretKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/user'].put
  update:
    x-apievangelist-phrasing:
      intent: Update my user profile record
      effect: write
      questions:
      - How do I change my own display name or preferences?
      - Can I set my default account on my user record?
      instructions:
      - text: Update my display name to {name}.
        slots:
          name: requestBody.name
      - text: Set my default account to {defaultAccountId}.
        slots:
          defaultAccountId: requestBody.defaultAccountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/code/api/v1/user/favorite'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark a code resource as a favorite
      effect: write
      questions:
      - Can I star a repository in Harness Code?
      - Which resource types can be added to my favorites?
      instructions:
      - text: Add {resource_id} to my favorites.
        slots:
          resource_id: requestBody.resource_id
      - text: Favorite {resource_type} {resource_id}.
        slots:
          resource_type: requestBody.resource_type
          resource_id: requestBody.resource_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/code/api/v1/user/favorite/{resource_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unfavorite a code resource
      effect: destructive
      questions:
      - How do I unstar a repo I favorited?
      - Can I remove something from my favorites list?
      instructions:
      - text: Remove {resource_id} from my favorites.
        slots:
          resource_id: path.resource_id
      - text: Unfavorite {resource_type} {resource_id}.
        slots:
          resource_type: query.resource_type
          resource_id: path.resource_id
      method: generated
      generated: '2026-09-26'