{"openapi":"3.1.0","info":{"title":"Tilion Sandbox API","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/sandboxes":{"post":{"summary":"Create","operationId":"create_v1_sandboxes_post","parameters":[{"name":"idempotency-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List ","operationId":"list__v1_sandboxes_get","parameters":[{"name":"label","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Label"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sizes":{"get":{"summary":"Sizes","description":"Sizes a sandbox can ask for, in any combination, and the default. The first sandbox of\na size not used before with a template takes a few seconds longer (it is snapshotted at\nthat size once); after that every create of that size restores in milliseconds.","operationId":"sizes_v1_sizes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/sandboxes/{sid}":{"get":{"summary":"Get","operationId":"get_v1_sandboxes__sid__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Patch","operationId":"patch_v1_sandboxes__sid__patch","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_v1_sandboxes__sid__delete","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/pause":{"post":{"summary":"Pause","description":"durable=true returns once the paused sandbox is in object storage (where hosts keep it).","operationId":"pause_v1_sandboxes__sid__pause_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"durable","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Durable"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/checkpoint":{"post":{"summary":"Checkpoint","description":"Store a running sandbox in object storage without stopping it.","operationId":"checkpoint_v1_sandboxes__sid__checkpoint_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"durable","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Durable"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/template":{"post":{"summary":"Save Template","description":"Save the sandbox as a team template, as it is now; new sandboxes start in that state.","operationId":"save_template_v1_sandboxes__sid__template_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTemplateBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/fork":{"post":{"summary":"Fork","description":"Copies of a sandbox as it is now (memory, processes, disk); the source keeps running.","operationId":"fork_v1_sandboxes__sid__fork_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ForkBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/resume":{"post":{"summary":"Resume","operationId":"resume_v1_sandboxes__sid__resume_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/exec":{"post":{"summary":"Exec ","operationId":"exec__v1_sandboxes__sid__exec_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/processes":{"get":{"summary":"Processes","operationId":"processes_v1_sandboxes__sid__processes_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/processes/{pid}/output":{"get":{"summary":"Process Output","operationId":"process_output_v1_sandboxes__sid__processes__pid__output_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}},{"name":"since_seq","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Since Seq"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/processes/{pid}/wait":{"get":{"summary":"Process Wait","description":"Wait for a background process. With output (the default) the reply also has its stdout\nand stderr so far, kept within max_output_bytes each like exec (first and last parts).","operationId":"process_wait_v1_sandboxes__sid__processes__pid__wait_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}},{"name":"timeout_s","in":"query","required":false,"schema":{"type":"number","maximum":3600,"default":30,"title":"Timeout S"}},{"name":"output","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Output"}},{"name":"max_output_bytes","in":"query","required":false,"schema":{"type":"integer","maximum":67108864,"minimum":1024,"default":1048576,"title":"Max Output Bytes"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/processes/{pid}/stdin":{"post":{"summary":"Process Stdin","operationId":"process_stdin_v1_sandboxes__sid__processes__pid__stdin_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StdinBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/processes/{pid}/signal":{"post":{"summary":"Process Signal","operationId":"process_signal_v1_sandboxes__sid__processes__pid__signal_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files":{"get":{"summary":"Read File","operationId":"read_file_v1_sandboxes__sid__files_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Write File","operationId":"write_file_v1_sandboxes__sid__files_put","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mode"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files/list":{"get":{"summary":"List Files","operationId":"list_files_v1_sandboxes__sid__files_list_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files/stat":{"post":{"summary":"Stat File","operationId":"stat_file_v1_sandboxes__sid__files_stat_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PathBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files/mkdir":{"post":{"summary":"Mkdir","operationId":"mkdir_v1_sandboxes__sid__files_mkdir_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PathBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files/remove":{"post":{"summary":"Remove","operationId":"remove_v1_sandboxes__sid__files_remove_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PathBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/files/move":{"post":{"summary":"Move","operationId":"move_v1_sandboxes__sid__files_move_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/ports":{"post":{"summary":"Expose Port","description":"A URL for a port in the sandbox. Private ports need the API key (Authorization header,\nor ?token= in a browser); public ones are open to anyone with the URL.","operationId":"expose_port_v1_sandboxes__sid__ports_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Ports","operationId":"list_ports_v1_sandboxes__sid__ports_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/ports/{port}":{"delete":{"summary":"Unexpose Port","operationId":"unexpose_port_v1_sandboxes__sid__ports__port__delete","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/browser":{"post":{"summary":"Browser Start","operationId":"browser_start_v1_sandboxes__sid__browser_post","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/BrowserBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Browser Status","operationId":"browser_status_v1_sandboxes__sid__browser_get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Browser Stop","operationId":"browser_stop_v1_sandboxes__sid__browser_delete","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sid}/ports/{port}/{path}":{"get":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Port Http","operationId":"port_http_v1_sandboxes__sid__ports__port___path__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"port","in":"path","required":true,"schema":{"type":"integer","title":"Port"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates":{"post":{"summary":"Create Template","description":"Build a template from a container image or a Dockerfile; poll GET until ready.","operationId":"create_template_v1_templates_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateBody"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Templates","operationId":"list_templates_v1_templates_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates/{name}":{"get":{"summary":"Get Template","operationId":"get_template_v1_templates__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Template","operationId":"delete_template_v1_templates__name__delete","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"summary":"Metrics","operationId":"metrics_metrics_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/hosts":{"get":{"summary":"List Hosts","operationId":"list_hosts_v1_admin_hosts_get","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Add Host","operationId":"add_host_v1_admin_hosts_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Remove Host","operationId":"remove_host_v1_admin_hosts_delete","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/hosts/drain":{"post":{"summary":"Drain Host","operationId":"drain_host_v1_admin_hosts_drain_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/team":{"get":{"summary":"My Team","operationId":"my_team_v1_team_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys":{"post":{"summary":"Create Key","description":"A new API key for your team. The key is in this response only; store it.","operationId":"create_key_v1_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Keys","operationId":"list_keys_v1_keys_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys/{key_id}":{"delete":{"summary":"Revoke Key","operationId":"revoke_key_v1_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/events":{"get":{"summary":"Usage Events","description":"Closed metering intervals (state, start, end, vCPUs, memory) for billing export.","operationId":"usage_events_v1_usage_events_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"number","default":0,"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Until"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/signup":{"post":{"summary":"Signup","description":"Create a team and its first API key, with an invite code (TILION_INVITE_CODES, comma\nseparated; sign-up is closed when it is unset). The key is in this response only.","operationId":"signup_v1_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/teams":{"post":{"summary":"Create Team","operationId":"create_team_v1_admin_teams_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Teams","operationId":"list_teams_v1_admin_teams_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/teams/{team_id}":{"patch":{"summary":"Set Quotas","operationId":"set_quotas_v1_admin_teams__team_id__patch","parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/teams/{team_id}/keys":{"post":{"summary":"Admin Create Key","operationId":"admin_create_key_v1_admin_teams__team_id__keys_post","parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"summary":"Usage","operationId":"usage_v1_usage_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BrowserBody":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"headless":{"type":"boolean","title":"Headless","default":true}},"type":"object","title":"BrowserBody"},"CreateBody":{"properties":{"template":{"type":"string","title":"Template","default":"base"},"vcpus":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vcpus"},"memory_mib":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Memory Mib"},"disk_gib":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Disk Gib"},"egress_allow":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Egress Allow"},"network":{"type":"string","title":"Network","default":"shared"},"env":{"additionalProperties":{"type":"string"},"type":"object","title":"Env"},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"idle_pause_after_s":{"type":"integer","title":"Idle Pause After S","default":600}},"type":"object","title":"CreateBody"},"ExecBody":{"properties":{"cmd":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cmd"},"shell":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shell"},"cwd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cwd"},"env":{"additionalProperties":{"type":"string"},"type":"object","title":"Env"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"timeout_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout S"},"background":{"type":"boolean","title":"Background","default":false},"stdin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdin"},"stdin_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdin B64"},"max_output_bytes":{"anyOf":[{"type":"integer","maximum":67108864.0,"minimum":1024.0},{"type":"null"}],"title":"Max Output Bytes"}},"type":"object","title":"ExecBody"},"ForkBody":{"properties":{"count":{"type":"integer","title":"Count","default":1},"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels"}},"type":"object","title":"ForkBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HostBody":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"HostBody"},"KeyBody":{"properties":{"name":{"type":"string","title":"Name","default":"key"},"scope":{"type":"string","title":"Scope","default":"full"}},"type":"object","title":"KeyBody"},"MoveBody":{"properties":{"src":{"type":"string","title":"Src"},"dst":{"type":"string","title":"Dst"}},"type":"object","required":["src","dst"],"title":"MoveBody"},"PatchBody":{"properties":{"idle_pause_after_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Idle Pause After S"},"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels"}},"type":"object","title":"PatchBody"},"PathBody":{"properties":{"path":{"type":"string","title":"Path"},"recursive":{"type":"boolean","title":"Recursive","default":false}},"type":"object","required":["path"],"title":"PathBody"},"PortBody":{"properties":{"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port"},"public":{"type":"boolean","title":"Public","default":false}},"type":"object","required":["port"],"title":"PortBody"},"QuotaBody":{"properties":{"quotas":{"additionalProperties":{"type":"integer"},"type":"object","title":"Quotas"}},"type":"object","required":["quotas"],"title":"QuotaBody"},"SaveTemplateBody":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"SaveTemplateBody"},"SignalBody":{"properties":{"signal":{"type":"string","title":"Signal","default":"TERM"}},"type":"object","title":"SignalBody"},"SignupBody":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":200,"minLength":3,"title":"Email"},"invite_code":{"type":"string","maxLength":200,"minLength":1,"title":"Invite Code"}},"type":"object","required":["name","email","invite_code"],"title":"SignupBody"},"StdinBody":{"properties":{"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"data_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data B64"},"eof":{"type":"boolean","title":"Eof","default":false}},"type":"object","title":"StdinBody"},"TeamBody":{"properties":{"name":{"type":"string","title":"Name"},"quotas":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Quotas"}},"type":"object","required":["name"],"title":"TeamBody"},"TemplateBody":{"properties":{"name":{"type":"string","title":"Name"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"dockerfile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dockerfile"},"vcpus":{"type":"integer","title":"Vcpus","default":2},"memory_mib":{"type":"integer","title":"Memory Mib","default":2048},"disk_gib":{"type":"integer","title":"Disk Gib","default":10}},"type":"object","required":["name"],"title":"TemplateBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}