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

Upload exercise image

POST
/api/v1/ttx/{ttx_id}/image

Upload the exercise’s image.

Media typemultipart/form-data
Body_upload_ttx_image_endpoint_api_v1_ttx__ttx_id__image_post
object
file
required
File
string

Successful Response

Media typeapplication/json
TTXRead
object
archived_at
Any of:
string format: date-time
can_delete
Can Delete
boolean
code
required
Code
string
content_language
Any of:
string
controls
Controls
boolean
created_at
required
Created At
string format: date-time
created_by_id
required
Created By Id
string format: uuid
description
required
Any of:
string
evaluates
Evaluates
boolean
facilitates
Facilitates
boolean
id
required
Id
string format: uuid
image_url
required
Any of:
string
lead_planner
Any of:
LeadPlannerRead
object
full_name
required
Full Name
string
user_id
required
User Id
string format: uuid
msel_status
Any of:
MselStatus
string
Allowed values: draft in_review ready
name
required
Name
string
needs_form_status
required
NeedsFormStatus
string
Allowed values: draft ready_for_approval approved
observes
Observes
boolean
organization_id
required
Organization Id
string format: uuid
plans
Plans
boolean
role
required
Role
string
tags
required
Tags
Array<object>
TTXTagRead
object
color
required
TagColor

Palette shared by both tag pools (Organization and TTX). The 8 original members plus TEAL/LIME/GRAPHITE are curated swatches chosen to stay clear of every color already carrying a fixed meaning elsewhere (–color-severity-*, –color-accent/-cta, -danger, -success) – see frontend/src/index.css for their exact hex. CUSTOM is the escape hatch: a tag with color=CUSTOM carries its real color in the sibling custom_hex field instead (validated by CUSTOM_HEX_PATTERN below) rather than a fixed token, at the cost of no contrast guarantee – the fixed swatches remain the safe default; CUSTOM is opt-in.

string
Allowed values: violet indigo fuchsia rose plum slate sand moss teal lime graphite custom
created_at
required
Created At
string format: date-time
custom_hex
required
Any of:
string
id
required
Id
string format: uuid
name
required
Name
string
origin
Any of:
ActorOrigin

Where a simulated actor comes from – the actor library’s levels. An exercise’s cast only holds copies; the origin says of what.

string
Allowed values: system organization exercise
origin_id
Any of:
string
<= 64 characters
origin_name
Any of:
string
<= 64 characters
tlp
required
Tlp

FIRST Traffic Light Protocol 2.0 labels.

string
Allowed values: clear green amber amber_strict red

Example

{
"can_delete": false,
"controls": false,
"evaluates": false,
"facilitates": false,
"msel_status": "draft",
"needs_form_status": "draft",
"observes": false,
"plans": false,
"tags": [
{
"color": "violet",
"origin": "system"
}
],
"tlp": "clear"
}

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"
}
]
}