Skip to content
The API may change between versions while TTX-Zone is 0.x.

Join exercise

POST
/api/v1/ttx/{ttx_id}/people/me
curl --request POST \
--url https://example.com/api/v1/ttx/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/people/me \
--header 'Content-Type: application/json' \
--header 'X-CSRF-Token: <X-CSRF-Token>' \
--cookie ttx_access_token=<ttx_access_token> \
--data '{ "controls": false, "facilitates": false, "plans": false, "role": "planner" }'

A Program Manager of the exercise’s organization takes a seat on it themselves – its planning and control team, or its Observer or Evaluator – from their organization grant of that name, under the same rules as anyone the team adds. Their oversight reads every exercise; this is how they start working on one. Guarded here, like DELETE /ttx/{ttx_id}: the caller has no seat yet. No step-up: the activity log records who took which seat.

ttx_id
required
Ttx Id
string format: uuid
Media typeapplication/json
ExerciseJoinRequest

A Program Manager taking a seat on an exercise themselves: as ExercisePersonAddRequest, for the caller.

object
controls
Controls
boolean
facilitates
Facilitates
boolean
plans
Plans
boolean
role
required
Role
string
Allowed values: planner observer evaluator

Successful Response

Media typeapplication/json
Response Join Exercise Endpoint Api V1 Ttx Ttx Id People Me Post
object
key
additional properties
any

Example generated

{}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string

Example generated

{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}