Skip to main content

Teams

Generated from apiome-rest/openapi.yaml (API version 1.307.0) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: teams · 7 operations

GET /v1/tenants/{tenant_slug}/teams​

List teams

Every live team of the tenant, by name, with its owner links and member count. Deleted teams are not listed.

Requires teams:view.

Operation id: list_tenant_teams_v1_tenants__tenant_slug__teams_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list teams.application/json TeamListResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/teams​

Create a team

Create a team. The slug is derived from name when omitted and cannot be changed afterwards — gateway tags (owner:<slug>) and the x-apiome-owner extension name teams by it. chat_url, oncall_url and docs_url must be absolute http(s) URLs.

Audited as team.create. Requires teams:create.

Operation id: create_tenant_team_v1_tenants__tenant_slug__teams_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create a team.

Responses

StatusDescriptionBody
201Successful response for create a team.application/json TeamRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/teams/{team_slug}​

Read a team

One live team with its members, leads first.

Requires teams:view.

Operation id: read_tenant_team_v1_tenants__tenant_slug__teams__team_slug__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
team_slugpathstringyesPath parameter identifying the team slug segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a team.application/json TeamRecord
422Validation Errorapplication/json HTTPValidationError

PATCH /v1/tenants/{tenant_slug}/teams/{team_slug}​

Update a team

Change a team's name, description or owner links. Omitted fields are left alone; null clears an optional field. The slug is not updatable.

Audited as team.update with each changed field's old and new value. Requires teams:edit.

Operation id: patch_tenant_team_v1_tenants__tenant_slug__teams__team_slug__patch

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
team_slugpathstringyesPath parameter identifying the team slug segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for update a team.

Responses

StatusDescriptionBody
200Successful response for update a team.application/json TeamRecord
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/tenants/{tenant_slug}/teams/{team_slug}​

Delete a team

Soft-delete a team: it disappears from reads and its slug becomes free. A team that still owns entities is refused with 409 team-owns-entities and the owned_count, unless reassign_to names another live team to take them over.

Audited as team.delete. Requires teams:delete.

Operation id: delete_tenant_team_v1_tenants__tenant_slug__teams__team_slug__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
team_slugpathstringyesPath parameter identifying the team slug segment.
reassign_toquerystring or nullnoSlug of the live team that takes over the deleted team's entities.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for delete a team.application/json TeamDeleteResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/teams/{team_slug}/activity​

Read a team's ownership and routed findings

What the team owns (confirmed owners only, by kind), how many entities suggest it, how many owner-finding notifications routed to it the caller has not read, and the findings routed to it in the last 30 days — one row per event, however many members it reached.

Requires teams:view.

Operation id: read_tenant_team_activity_v1_tenants__tenant_slug__teams__team_slug__activity_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
team_slugpathstringyesPath parameter identifying the team slug segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a team's ownership and routed findings.application/json TeamActivityResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/tenants/{tenant_slug}/teams/{team_slug}/members​

Replace a team's members

Set the team's complete membership; anyone not listed is removed, and an empty list empties the team. Each member is a user_id with a role of lead or member. Every user must be a member of the tenant — otherwise 422 team-member-not-in-tenant names them and nothing changes. A user who later leaves the tenant leaves every team automatically.

Audited as team.members.replace with who was added, removed or changed role. Requires teams:edit.

Operation id: put_tenant_team_members_v1_tenants__tenant_slug__teams__team_slug__members_put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
team_slugpathstringyesPath parameter identifying the team slug segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for replace a team's members.

Responses

StatusDescriptionBody
200Successful response for replace a team's members.application/json TeamRecord
422Validation Errorapplication/json HTTPValidationError

Schemas used​

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

TeamActivityResponse​

A team page's ownership and routing picture (CDG-2.4).

PropertyTypeRequiredDescription
team_idstringyesTeam ID.
ownedarray of OwnedEntitynoConfirmed ownership, by kind then name.
owned_countsmap of integernoOwned entities per kind.
suggested_countintegeryesEntities that suggest this team as owner.
open_findingsintegeryesThe caller's unread owner-finding notifications routed to this team.
eventsarray of RoutedEventnoFindings routed to the team in the last 30 days, newest first.

TeamDeleteResponse​

What a delete did.

PropertyTypeRequiredDescription
slugstringyesThe deleted team's slug (now free for reuse).
owned_countintegeryesHow many entities the team owned when it was deleted.
reassigned_tostring or nullnoThe team that took over those entities, when any moved.

TeamInput​

A team to create.

Attributes: slug: The handle; derived from name when omitted. Not editable afterwards. name: The display name. description: Free text about what the team does. contact_email: A shared mailbox. chat_url: Link to the team's chat channel. oncall_url: Link to the team's on-call schedule. docs_url: Link to the team's documentation.

PropertyTypeRequiredDescription
slugstring or nullnoURL-safe identifier.
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
contact_emailstring or nullnoContact Email.
chat_urlstring or nullnoChat URL.
oncall_urlstring or nullnoOncall URL.
docs_urlstring or nullnoDocs URL.

TeamListResponse​

Every live team of the tenant.

PropertyTypeRequiredDescription
teamsarray of TeamRecordnoThe teams, by name.
countintegeryesHow many teams were returned.

TeamMembersInput​

The complete membership of a team; it replaces whatever was there.

PropertyTypeRequiredDescription
membersarray of TeamMemberInputnoMembers.

TeamPatch​

A partial update. Omitted fields are left alone; null clears an optional field.

The slug is deliberately absent: it is the handle tags and extensions name.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
descriptionstring or nullnoFree-text description.
contact_emailstring or nullnoContact Email.
chat_urlstring or nullnoChat URL.
oncall_urlstring or nullnoOncall URL.
docs_urlstring or nullnoDocs URL.

TeamRecord​

A stored team.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
slugstringyesURL-safe identifier.
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
contact_emailstring or nullnoContact Email.
chat_urlstring or nullnoChat URL.
oncall_urlstring or nullnoOncall URL.
docs_urlstring or nullnoDocs URL.
member_countintegernoHow many members the team has.
created_bystring or nullnoCreated By.
created_atstring or nullnoCreation timestamp (ISO 8601).
updated_atstring or nullnoLast update timestamp (ISO 8601).
membersarray of TeamMember or nullnoThe members, leads first; present on single-team reads and member writes.