Travel Parties
Travel parties are referenced as user groups in API paths, scopes, and schemas.
Ask
List user groups
GET/v1/teams/{teamId}/user-groupsLists user groups for a team.
Required scopes: user_group:read
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
query.limit | integerMaximum number of records to return. Defaults to 50 and is capped at 200. |
query.cursor | stringCursor returned by page.nextCursor from the previous list response. |
Response 200
data | object[] |
|---|---|
data[].name | string |
data[].labelColor | string | null |
data[].id | string:uuid |
data[].orgId | string:uuid |
data[].isDeleted | boolean |
data[].version | integerCurrent user group aggregate version. |
data[].createdAt | string:date-timeISO 8601 timestamp when the user group was created. |
data[].createdBy | stringUser identifier that created the user group. |
data[].updatedAt | string:date-timeISO 8601 timestamp when the user group was last updated. |
data[].updatedBy | stringUser identifier that last updated the user group. |
data[].cursor | integerLatest event-ledger cursor projected into this user group record. |
page | object |
page.limit | integerMaximum number of records returned in this page. |
page.nextCursor | string | nullCursor to pass as the next request's cursor query parameter, or null when there are no more results. |
meta | object |
meta.cursor | number | nullHighest record cursor represented by this response. |
Create a user group
POST/v1/teams/{teamId}/user-groupsAccepts a command to create a user group.
Required scopes: user_group:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
namerequired | string |
|---|---|
labelColor | string | null |
id | string:uuidOptional caller-supplied user group ID. RoadOps generates one when omitted. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerEvent-ledger cursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
Retrieve a user group
GET/v1/teams/{teamId}/user-groups/{userGroupId}Returns one user group by ID.
Required scopes: user_group:read
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
Response 200
data | object |
|---|---|
data.name | string |
data.labelColor | string | null |
data.id | string:uuid |
data.orgId | string:uuid |
data.isDeleted | boolean |
data.version | integerCurrent user group aggregate version. |
data.createdAt | string:date-timeISO 8601 timestamp when the user group was created. |
data.createdBy | stringUser identifier that created the user group. |
data.updatedAt | string:date-timeISO 8601 timestamp when the user group was last updated. |
data.updatedBy | stringUser identifier that last updated the user group. |
data.cursor | integerLatest event-ledger cursor projected into this user group record. |
meta | object |
meta.cursor | integerHighest record cursor represented by this response. |
Update a user group
PATCH/v1/teams/{teamId}/user-groups/{userGroupId}Accepts a command to update user group fields.
Required scopes: user_group:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
expectedVersion | integerOptional aggregate version guard. |
|---|---|
name | stringUpdated user group name. |
labelColor | string | nullUpdated user group label color as a 6 digit hex string, or null to clear it. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerEvent-ledger cursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
Delete a user group
DELETE/v1/teams/{teamId}/user-groups/{userGroupId}Accepts a command to delete a user group.
Required scopes: user_group:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
reason | stringOptional deletion reason. |
|---|
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerEvent-ledger cursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
List user group members
GET/v1/teams/{teamId}/user-groups/{userGroupId}/membersLists members assigned to a travel party.
Required scopes: user_group:read
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
query.limit | integerMaximum number of records to return. Defaults to 50 and is capped at 200. |
query.cursor | stringCursor returned by page.nextCursor from the previous list response. |
Response 200
data | object[] |
|---|---|
data[].id | string:uuidStable user group membership identifier. |
data[].orgId | string:uuidTeam identifier. |
data[].groupId | string:uuidTravel party identifier. |
data[].userId | string:uuidRoadOps user identifier for the member. |
data[].memberName | stringMember display name visible to the caller. |
data[].givenName | stringMember first or given name visible to the caller. |
data[].familyName | stringMember last or family name visible to the caller. |
data[].memberEmail | string:emailMember email address visible to the caller. |
data[].memberPicture | string:uriMember profile photo URL. |
data[].createdAt | string:date-timeISO 8601 timestamp when the member was added. |
data[].createdBy | stringUser identifier that added the member. |
data[].updatedAt | string:date-timeISO 8601 timestamp when the membership was last updated. |
data[].updatedBy | stringUser identifier that last updated the membership. |
data[].version | integerCurrent user group membership version. |
data[].cursor | integerLatest cursor represented by this user group membership record. |
page | object |
page.limit | integerMaximum number of records returned in this page. |
page.nextCursor | string | nullCursor to pass as the next request's cursor query parameter, or null when there are no more results. |
meta | object |
meta.cursor | number | nullHighest record cursor represented by this response. |
Add a user group member
POST/v1/teams/{teamId}/user-groups/{userGroupId}/membersAccepts a command to add an existing team member to a travel party.
Required scopes: user_group:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Request body (application/json)
userIdrequired | string:uuidRoadOps user identifier to add to the travel party. The user must already be a member of the team. |
|---|
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerEvent-ledger cursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |
Remove a user group member
DELETE/v1/teams/{teamId}/user-groups/{userGroupId}/members/{userId}Accepts a command to remove a member from a travel party.
Required scopes: user_group:write
Parameters
path.teamIdrequired | string:uuidTeam identifier. |
|---|---|
path.userGroupIdrequired | string:uuidUser group identifier. |
path.userIdrequired | string:uuidRoadOps user identifier for the member to remove. |
header.Idempotency-Key | string:uuidOptional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request. |
Response 202
commandId | string:uuidCommand identifier accepted into the RoadOps command ledger. |
|---|---|
resourceId | string:uuidIdentifier of the resource targeted by the command. |
resourceType | stringResource type targeted by the command. |
status | "applied"Command dispatch status. |
aggregateVersion | integerAggregate version produced by the accepted command. |
cursor | integerEvent-ledger cursor for the accepted update. Refetch until returned records reach this cursor. |
links | object |
links.refetch | stringRelative URL to refetch the affected resource. |