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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'