Synadia Communications · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Synadia Control Plane / Synadia Cloud Team API
16 actions
16 updates
phrasing
extends
openapi/synadia-communications-team-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Synadia Communications's API. It is a proposal applied on top of the contract, not a document Synadia Communications publishes.
What the actions change
x-apievangelist-phrasing
Targets 16
$.info
$.paths['/core/beta/teams/{teamId}'].get
$.paths['/core/beta/teams/{teamId}'].delete
$.paths['/core/beta/teams/{teamId}'].patch
$.paths['/core/beta/teams/{teamId}/app-users'].get
$.paths['/core/beta/teams/{teamId}/app-users/{appUserId}'].delete
$.paths['/core/beta/teams/{teamId}/app-users/{appUserId}'].patch
$.paths['/core/beta/teams/{teamId}/app-users/invitations'].post
$.paths['/core/beta/teams/{teamId}/app-users/leave'].post
$.paths['/core/beta/teams/{teamId}/import-system'].post
$.paths['/core/beta/teams/{teamId}/info/app-users'].get
$.paths['/core/beta/teams/{teamId}/service-accounts'].get
$.paths['/core/beta/teams/{teamId}/service-accounts'].post
$.paths['/core/beta/teams/{teamId}/systems'].get
$.paths['/core/beta/teams/{teamId}/systems'].post
$.paths['/core/beta/teams/{teamId}/team-limits'].get
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 Synadia Control Plane / Synadia Cloud Team API
version: 1.0.0
extends: openapi/synadia-communications-team-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: 15
- target: $.paths['/core/beta/teams/{teamId}'].get
update:
x-apievangelist-phrasing:
intent: Get a team
effect: read
questions:
- Can I look up a team's details by its ID?
- What's the name of a given team?
instructions:
- text: Show team {teamId}.
slots:
teamId: path.teamId
- text: Get the details for team {teamId}.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a team
effect: destructive
questions:
- Can I permanently delete a team?
- What's the way to remove a team I no longer use?
instructions:
- text: Delete team {teamId}.
slots:
teamId: path.teamId
- text: Remove team {teamId} permanently.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}'].patch
update:
x-apievangelist-phrasing:
intent: Rename a team
effect: write
questions:
- Can I change a team's name?
- Is renaming a team possible after it's been created?
instructions:
- text: Rename team {teamId} to {name}.
slots:
teamId: path.teamId
name: requestBody.name
- text: Change the name of team {teamId} to {name}.
slots:
teamId: path.teamId
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/app-users'].get
update:
x-apievangelist-phrasing:
intent: List a team's app users
effect: read
questions:
- Who are the members of my team?
- Can I see which app users belong to a team along with their roles?
instructions:
- text: List the app users on team {teamId}.
slots:
teamId: path.teamId
- text: Show all members of team {teamId}.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/app-users/{appUserId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a team
effect: destructive
questions:
- Can I remove someone from my team?
- What's the way to kick an app user off a team?
instructions:
- text: Remove app user {appUserId} from team {teamId}.
slots:
appUserId: path.appUserId
teamId: path.teamId
- text: Unassign {appUserId} from team {teamId}.
slots:
appUserId: path.appUserId
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/app-users/{appUserId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a user's role on a team
effect: write
questions:
- Can I promote a team member to a different role?
- Is it possible to change an existing member's team role?
instructions:
- text: Change app user {appUserId}'s role on team {teamId} to {role_id}.
slots:
appUserId: path.appUserId
teamId: path.teamId
role_id: requestBody.role_id
- text: Set team {teamId} member {appUserId} to role {role_id}.
slots:
teamId: path.teamId
appUserId: path.appUserId
role_id: requestBody.role_id
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/app-users/invitations'].post
update:
x-apievangelist-phrasing:
intent: Invite a user to a team
effect: write
questions:
- How do I invite a colleague to join my team?
- Will inviting someone who's already on the team downgrade their role?
- Can an invitation also grant access to specific systems or accounts?
instructions:
- text: Invite {name} at {identifier} to team {teamId} as {role_id}.
slots:
name: requestBody.name
identifier: requestBody.identifier
teamId: path.teamId
role_id: requestBody.role_id
- text: Invite {identifier} to team {teamId} with role {role_id} and access to {associations}.
slots:
identifier: requestBody.identifier
teamId: path.teamId
role_id: requestBody.role_id
associations: requestBody.associations
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/app-users/leave'].post
update:
x-apievangelist-phrasing:
intent: Leave a team
effect: destructive
questions:
- Can I remove myself from a team?
- What's the way to leave a team I was invited to?
instructions:
- text: Leave team {teamId}.
slots:
teamId: path.teamId
- text: Take me off team {teamId}.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/import-system'].post
update:
x-apievangelist-phrasing:
intent: Import an existing NATS system into a team
effect: write
questions:
- Can I bring an existing NATS deployment under management using its operator JWT?
- What do I need to import a system I already run myself?
instructions:
- text: Import system {name} into team {teamId} using operator JWT {operator_jwt}.
slots:
name: requestBody.name
teamId: path.teamId
operator_jwt: requestBody.operator_jwt
- text: Import an existing NATS system into team {teamId}.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/info/app-users'].get
update:
x-apievangelist-phrasing:
intent: List basic info for a team's members
effect: read
questions:
- Can any team member see basic info about the other members?
- Where do I get names of teammates without admin rights?
instructions:
- text: List member info for team {teamId}.
slots:
teamId: path.teamId
- text: Show basic info for the app users in team {teamId}.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/service-accounts'].get
update:
x-apievangelist-phrasing:
intent: List a team's service accounts
effect: read
questions:
- Which service accounts exist on my team?
- Can I see the non-human accounts used for automation on a team?
instructions:
- text: List service accounts for team {teamId}.
slots:
teamId: path.teamId
- text: Show team {teamId}'s service accounts.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/service-accounts'].post
update:
x-apievangelist-phrasing:
intent: Create a team service account
effect: write
questions:
- How do I create a service account for CI automation?
- Can I limit a new service account to certain resources and a role?
instructions:
- text: Create service account {name} on team {teamId} with role {role_id} for {resources}.
slots:
name: requestBody.name
teamId: path.teamId
role_id: requestBody.role_id
resources: requestBody.resources
- text: Add a service account named {name} to team {teamId}.
slots:
name: requestBody.name
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/systems'].get
update:
x-apievangelist-phrasing:
intent: List a team's systems
effect: read
questions:
- Which NATS systems does my team manage?
- Can I list all systems in a team?
instructions:
- text: List the systems in team {teamId}.
slots:
teamId: path.teamId
- text: Show every system team {teamId} owns.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/systems'].post
update:
x-apievangelist-phrasing:
intent: Create a new system
effect: write
questions:
- How do I register a new NATS system with a server URL?
- Can I enable JetStream when creating a system?
instructions:
- text: Create system {name} in team {teamId} connecting to {url}.
slots:
name: requestBody.name
teamId: path.teamId
url: requestBody.url
- text: Set up a new JetStream-enabled system {name} at {url} for team {teamId}.
slots:
name: requestBody.name
url: requestBody.url
teamId: path.teamId
method: generated
generated: '2026-10-01'
- target: $.paths['/core/beta/teams/{teamId}/team-limits'].get
update:
x-apievangelist-phrasing:
intent: Get a team's total and allocated limits
effect: read
questions:
- How much of my team's quota is already allocated?
- What are my team's limits?
instructions:
- text: Show the limits for team {teamId}.
slots:
teamId: path.teamId
- text: Show how much capacity team {teamId} has left.
slots:
teamId: path.teamId
method: generated
generated: '2026-10-01'