Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness User Group API
21 actions
21 updates
phrasing
extends
openapi/harness-user-group-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.
What the actions change
x-apievangelist-phrasing
Targets 21 · first 16 shown; the file carries all of them
$.info
$.paths['/ng/api/user-groups/{identifier}/member/{userIdentifier}'].get
$.paths['/ng/api/user-groups/{identifier}/member/{userIdentifier}'].put
$.paths['/ng/api/user-groups/{identifier}/member/{userIdentifier}'].delete
$.paths['/ng/api/user-groups/copy'].put
$.paths['/ng/api/user-groups'].get
$.paths['/ng/api/user-groups'].put
$.paths['/ng/api/user-groups'].post
$.paths['/ng/api/user-groups/{identifier}'].get
$.paths['/ng/api/user-groups/{identifier}'].delete
$.paths['/ng/api/user-groups/{identifier}/scopes'].get
$.paths['/ng/api/user-groups/{identifier}/users'].post
$.paths['/ng/api/user-groups/{userGroupId}/link/ldap/{ldapId}'].put
$.paths['/ng/api/user-groups/{userGroupId}/link/oidc/{providerId}'].put
$.paths['/ng/api/user-groups/{userGroupId}/link/saml/{samlId}'].put
$.paths['/ng/api/user-groups/batch'].post
OpenAPI Overlay
# 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 Group API
version: 1.0.0
extends: openapi/harness-user-group-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-groups/{identifier}/member/{userIdentifier}'].get
update:
x-apievangelist-phrasing:
intent: Check if a user belongs to a user group
effect: read
questions:
- Is a specific user a member of this user group?
- Can I verify a person's membership in a Harness user group?
instructions:
- text: Check whether user {userIdentifier} is in user group {identifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
- text: Tell me if {userIdentifier} belongs to group {identifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}/member/{userIdentifier}'].put
update:
x-apievangelist-phrasing:
intent: Add a user to a user group
effect: write
questions:
- How do I add one person to a user group?
- Can I add a user to a group scoped to a project?
instructions:
- text: Add user {userIdentifier} to user group {identifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
- text: Put {userIdentifier} into group {identifier} in project {projectIdentifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}/member/{userIdentifier}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a user group
effect: destructive
questions:
- How do I take someone out of a user group?
- Can I remove a single member from a group without deleting it?
instructions:
- text: Remove user {userIdentifier} from user group {identifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
- text: Drop {userIdentifier} from group {identifier}.
slots:
userIdentifier: path.userIdentifier
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/copy'].put
update:
x-apievangelist-phrasing:
intent: Copy a user group
effect: write
questions:
- Can I copy an existing user group?
- What's the way to duplicate a user group's setup?
instructions:
- text: Copy user group {groupIdentifier}.
slots:
groupIdentifier: query.groupIdentifier
- text: Make a copy of group {groupIdentifier}.
slots:
groupIdentifier: query.groupIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups'].get
update:
x-apievangelist-phrasing:
intent: List user groups in a scope
effect: read
questions:
- What user groups exist in my account, org or project?
- Can I find user groups linked to a particular SSO group?
- How many user groups can I page through at a time?
instructions:
- text: List the user groups in project {projectIdentifier}.
slots:
projectIdentifier: query.projectIdentifier
- text: Search user groups by name for {searchTerm}.
slots:
searchTerm: query.searchTerm
- text: List user groups tied to SSO group {ssoGroupId}.
slots:
ssoGroupId: query.ssoGroupId
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups'].put
update:
x-apievangelist-phrasing:
intent: Update a user group by user IDs
effect: write
questions:
- How do I rename a user group or change its member user IDs?
- Can I update a user group's notification settings?
instructions:
- text: Update user group {identifier} to be named {name} with user IDs {users}.
slots:
identifier: requestBody.identifier
name: requestBody.name
users: requestBody.users
- text: Change the description of user group {identifier} named {name} to {description}.
slots:
identifier: requestBody.identifier
name: requestBody.name
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups'].post
update:
x-apievangelist-phrasing:
intent: Create a user group from user IDs
effect: write
questions:
- How do I create a new user group with members given by user ID?
- Can a new user group be marked as externally managed?
instructions:
- text: Create user group {identifier} named {name} with user IDs {users}.
slots:
identifier: requestBody.identifier
name: requestBody.name
users: requestBody.users
- text: Create an empty user group {identifier} called {name} in project {projectIdentifier}.
slots:
identifier: requestBody.identifier
name: requestBody.name
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a user group
effect: read
questions:
- What members and settings does a particular user group have?
- How can I retrieve one user group by its identifier?
instructions:
- text: Show user group {identifier}.
slots:
identifier: path.identifier
- text: Get user group {identifier} in org {orgIdentifier}.
slots:
identifier: path.identifier
orgIdentifier: query.orgIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a user group
effect: destructive
questions:
- How do I delete a user group entirely?
- Can I remove a user group from a project scope?
instructions:
- text: Delete user group {identifier}.
slots:
identifier: path.identifier
- text: Remove group {identifier} from project {projectIdentifier}.
slots:
identifier: path.identifier
projectIdentifier: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}/scopes'].get
update:
x-apievangelist-phrasing:
intent: List child scopes inheriting a user group
effect: read
questions:
- Which orgs or projects inherit this user group?
- Where is an account-level user group being used downstream?
instructions:
- text: List the child scopes that inherit user group {identifier}.
slots:
identifier: path.identifier
- text: Show which scopes inherit group {identifier}.
slots:
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{identifier}/users'].post
update:
x-apievangelist-phrasing:
intent: List the users in a user group
effect: read
questions:
- Who are the members of a given user group?
- Can I filter a group's members by email?
instructions:
- text: List the users in user group {identifier}.
slots:
identifier: path.identifier
- text: Find members of group {identifier} with emails {emails}.
slots:
identifier: path.identifier
emails: requestBody.emails
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{userGroupId}/link/ldap/{ldapId}'].put
update:
x-apievangelist-phrasing:
intent: Link an LDAP group to a user group
effect: write
questions:
- How do I sync a user group with an LDAP group?
- Can a user group be tied to an LDAP group's DN?
instructions:
- text: Link user group {userGroupId} to LDAP group {ldapGroupName} ({ldapGroupDN}) on LDAP {ldapId}.
slots:
userGroupId: path.userGroupId
ldapGroupName: requestBody.ldapGroupName
ldapGroupDN: requestBody.ldapGroupDN
ldapId: path.ldapId
- text: Sync group {userGroupId} from LDAP {ldapId} using DN {ldapGroupDN} and name {ldapGroupName}.
slots:
userGroupId: path.userGroupId
ldapId: path.ldapId
ldapGroupDN: requestBody.ldapGroupDN
ldapGroupName: requestBody.ldapGroupName
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{userGroupId}/link/oidc/{providerId}'].put
update:
x-apievangelist-phrasing:
intent: Link an OIDC group to a user group
effect: write
questions:
- Can I map a user group to a group from my OIDC provider?
- How do I link an OIDC group name to a Harness user group?
instructions:
- text: Link user group {userGroupId} to OIDC group {oidcGroupName} from provider {providerId}.
slots:
userGroupId: path.userGroupId
oidcGroupName: requestBody.oidcGroupName
providerId: path.providerId
- text: Tie group {userGroupId} to OIDC provider {providerId} group {oidcGroupName}.
slots:
userGroupId: path.userGroupId
providerId: path.providerId
oidcGroupName: requestBody.oidcGroupName
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{userGroupId}/link/saml/{samlId}'].put
update:
x-apievangelist-phrasing:
intent: Link a SAML group to a user group
effect: write
questions:
- How do I connect a user group to a SAML group?
- Can user group membership come from a SAML assertion group?
instructions:
- text: Link user group {userGroupId} to SAML group {samlGroupName} on SAML config {samlId}.
slots:
userGroupId: path.userGroupId
samlGroupName: requestBody.samlGroupName
samlId: path.samlId
- text: Map group {userGroupId} to SAML {samlId} group {samlGroupName}.
slots:
userGroupId: path.userGroupId
samlId: path.samlId
samlGroupName: requestBody.samlGroupName
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/batch'].post
update:
x-apievangelist-phrasing:
intent: Batch fetch up to 10K user groups by filter
effect: read
questions:
- Can I pull every user group that contains a given user without paging?
- What's the maximum number of user groups the batch filter returns?
instructions:
- text: Batch fetch all user groups containing users {userIdentifierFilter}.
slots:
userIdentifierFilter: requestBody.userIdentifierFilter
- text: Get the user groups with identifiers {identifierFilter} in one unpaged batch.
slots:
identifierFilter: requestBody.identifierFilter
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/filter'].post
update:
x-apievangelist-phrasing:
intent: Filter user groups with pagination
effect: read
questions:
- Which user groups include a particular user, page by page?
- Can I filter user groups by identifier and page through the results?
instructions:
- text: Filter user groups containing users {userIdentifierFilter}, page {pageIndex}.
slots:
userIdentifierFilter: requestBody.userIdentifierFilter
pageIndex: query.pageIndex
- text: Return a paged list of user groups matching {searchTerm}.
slots:
searchTerm: requestBody.searchTerm
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/user-groups/{userGroupId}/unlink'].put
update:
x-apievangelist-phrasing:
intent: Unlink a user group from its SSO group
effect: write
questions:
- How do I disconnect a user group from SSO syncing?
- When I unlink SSO, can I keep the members that were already synced?
instructions:
- text: Unlink user group {userGroupId} from SSO.
slots:
userGroupId: path.userGroupId
- text: Unlink group {userGroupId} from SSO and set retain members to {retainMembers}.
slots:
userGroupId: path.userGroupId
retainMembers: query.retainMembers
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/user-groups'].put
update:
x-apievangelist-phrasing:
intent: Update a user group by member emails (v2)
effect: write
questions:
- Can I update a user group's members using their email addresses?
- Is there a v2 user group update that takes emails instead of user IDs?
instructions:
- text: Update user group {identifier} named {name} so its members are emails {users} via the v2 endpoint.
slots:
identifier: requestBody.identifier
name: requestBody.name
users: requestBody.users
- text: Use v2 to rename user group {identifier} to {name}.
slots:
identifier: requestBody.identifier
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/user-groups'].post
update:
x-apievangelist-phrasing:
intent: Create a user group from member emails (v2)
effect: write
questions:
- Can I create a user group by listing members' email addresses?
- What's the v2 way to create a user group with emails?
instructions:
- text: Create user group {identifier} named {name} with member emails {users} using v2.
slots:
identifier: requestBody.identifier
name: requestBody.name
users: requestBody.users
- text: Use the v2 create endpoint for group {identifier} called {name}.
slots:
identifier: requestBody.identifier
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/user-groups/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a user group via the v2 endpoint
effect: read
questions:
- Is there a v2 endpoint to fetch a user group with member emails?
- Can I read a user group through the v2 user groups API?
instructions:
- text: Get user group {identifier} from the v2 endpoint.
slots:
identifier: path.identifier
- text: Fetch group {identifier} with the v2 user groups API.
slots:
identifier: path.identifier
method: generated
generated: '2026-09-26'