{"openapi":"3.1.0","info":{"title":"myprogress","version":"0.1.0"},"paths":{"/healthz":{"get":{"summary":"Health","operationId":"health_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/progress":{"post":{"summary":"Create","operationId":"create_api_v1_progress_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProgress"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Created"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}":{"get":{"summary":"Read","operationId":"read_api_v1_progress__progress_id__get","parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Edit","operationId":"edit_api_v1_progress__progress_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditProgress"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_v1_progress__progress_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}/reports":{"post":{"summary":"Report","operationId":"report_api_v1_progress__progress_id__reports_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}/items":{"post":{"tags":["Checklist"],"summary":"Add Item","operationId":"add_item_api_v1_progress__progress_id__items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item-Input"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Checklist"],"summary":"Replace Items","operationId":"replace_items_api_v1_progress__progress_id__items_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceItems"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}/items/{item_id}":{"patch":{"tags":["Checklist"],"summary":"Edit Item","operationId":"edit_item_api_v1_progress__progress_id__items__item_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditItem"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Checklist"],"summary":"Delete Item","operationId":"delete_item_api_v1_progress__progress_id__items__item_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}/events":{"get":{"tags":["History"],"summary":"Events","operationId":"events_api_v1_progress__progress_id__events_get","parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}},{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/History"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/progress/{progress_id}/history.csv":{"get":{"tags":["History"],"summary":"Export","operationId":"export_api_v1_progress__progress_id__history_csv_get","parameters":[{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"responses":{"200":{"description":"Full reporting history (UTF-8 BOM)","content":{"text/csv":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CreateProgress":{"properties":{"title":{"type":"string","maxLength":160,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""},"total":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Total","description":"Use small real units, e.g. 100000 records. Null means unknown total."},"unit":{"type":"string","maxLength":32,"minLength":1,"title":"Unit","default":"units"},"precision":{"type":"integer","maximum":6.0,"minimum":0.0,"title":"Precision","default":4},"mode":{"type":"string","pattern":"^(numeric|checklist)$","title":"Mode","default":"numeric"},"items":{"items":{"$ref":"#/components/schemas/Item-Input"},"type":"array","maxItems":1000,"title":"Items"}},"additionalProperties":false,"type":"object","required":["title"],"title":"CreateProgress"},"Created":{"properties":{"progress":{"$ref":"#/components/schemas/Progress"},"url":{"type":"string","title":"Url"},"history_url":{"type":"string","title":"History Url"},"write_token":{"type":"string","title":"Write Token","description":"Returned once. Store privately; only its hash is persisted."}},"additionalProperties":false,"type":"object","required":["progress","url","history_url","write_token"],"title":"Created"},"EditItem":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":160,"minLength":1},{"type":"null"}],"title":"Title"},"status":{"anyOf":[{"$ref":"#/components/schemas/Status"},{"type":"null"}]},"completed":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Completed"},"total":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Total"},"weight":{"anyOf":[{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$"},{"type":"null"}],"title":"Weight"},"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"},"expected_version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Expected Version"}},"additionalProperties":false,"type":"object","title":"EditItem"},"EditProgress":{"properties":{"completed":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Completed"},"total":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Total"},"status":{"anyOf":[{"$ref":"#/components/schemas/Status"},{"type":"null"}]},"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"null"}]},"expected_version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Expected Version"},"title":{"anyOf":[{"type":"string","maxLength":160,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"unit":{"anyOf":[{"type":"string","maxLength":32,"minLength":1},{"type":"null"}],"title":"Unit"},"precision":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Precision"}},"additionalProperties":false,"type":"object","title":"EditProgress"},"Event":{"properties":{"sequence":{"type":"integer","title":"Sequence"},"kind":{"type":"string","title":"Kind"},"progress":{"$ref":"#/components/schemas/Progress"},"changes":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Changes"}},"additionalProperties":false,"type":"object","required":["sequence","kind","progress"],"title":"Event"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"History":{"properties":{"events":{"items":{"$ref":"#/components/schemas/Event"},"type":"array","title":"Events"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"additionalProperties":false,"type":"object","required":["events","next_cursor"],"title":"History"},"Item-Input":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","maxLength":160,"minLength":1,"title":"Title"},"status":{"$ref":"#/components/schemas/Status","default":"queued"},"completed":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"}],"title":"Completed","default":"0"},"total":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"}],"title":"Total","default":"1"},"weight":{"anyOf":[{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$"}],"title":"Weight","default":"1"},"message":{"type":"string","maxLength":2000,"title":"Message","default":""}},"additionalProperties":false,"type":"object","required":["title"],"title":"Item"},"Item-Output":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","maxLength":160,"minLength":1,"title":"Title"},"status":{"$ref":"#/components/schemas/Status","default":"queued"},"completed":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)","title":"Completed","default":"0"},"total":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)","title":"Total","default":"1"},"weight":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$","title":"Weight","default":"1"},"message":{"type":"string","maxLength":2000,"title":"Message","default":""},"percent":{"type":"string","title":"Percent","readOnly":true}},"additionalProperties":false,"type":"object","required":["title","percent"],"title":"Item"},"Metrics":{"properties":{"cpu_percent":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Cpu Percent"},"memory_percent":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Memory Percent"},"disk_percent":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Disk Percent"},"memory_used_bytes":{"anyOf":[{"type":"integer","maximum":9007199254740991.0,"minimum":0.0},{"type":"null"}],"title":"Memory Used Bytes"},"memory_total_bytes":{"anyOf":[{"type":"integer","maximum":9007199254740991.0,"minimum":0.0},{"type":"null"}],"title":"Memory Total Bytes"},"disk_used_bytes":{"anyOf":[{"type":"integer","maximum":9007199254740991.0,"minimum":0.0},{"type":"null"}],"title":"Disk Used Bytes"},"disk_total_bytes":{"anyOf":[{"type":"integer","maximum":9007199254740991.0,"minimum":0.0},{"type":"null"}],"title":"Disk Total Bytes"},"measured_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Measured At"}},"additionalProperties":false,"type":"object","title":"Metrics","description":"Reporter host values, not the progress server's resource usage. Missing means unreported."},"Progress":{"properties":{"title":{"type":"string","maxLength":160,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""},"total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Total","description":"Use small real units, e.g. 100000 records. Null means unknown total."},"unit":{"type":"string","maxLength":32,"minLength":1,"title":"Unit","default":"units"},"precision":{"type":"integer","maximum":6.0,"minimum":0.0,"title":"Precision","default":4},"mode":{"type":"string","pattern":"^(numeric|checklist)$","title":"Mode","default":"numeric"},"items":{"items":{"$ref":"#/components/schemas/Item-Output"},"type":"array","maxItems":1000,"title":"Items"},"id":{"type":"string","format":"uuid","title":"Id"},"completed":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,32}0*$)\\d{0,13}\\.\\d{0,18}0*$)","title":"Completed","default":"0"},"status":{"$ref":"#/components/schemas/Status","default":"queued"},"message":{"type":"string","title":"Message","default":""},"metrics":{"anyOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"version":{"type":"integer","title":"Version","default":1},"item_count":{"type":"integer","title":"Item Count","default":0},"items_done":{"type":"integer","title":"Items Done","default":0},"percent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Percent","readOnly":true}},"additionalProperties":false,"type":"object","required":["title","id","created_at","updated_at","percent"],"title":"Progress"},"ReplaceItems":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Item-Input"},"type":"array","maxItems":1000,"title":"Items"},"expected_version":{"type":"integer","minimum":1.0,"title":"Expected Version","description":"Required to avoid overwriting concurrent item reports."}},"additionalProperties":false,"type":"object","required":["items","expected_version"],"title":"ReplaceItems"},"Report":{"properties":{"completed":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Completed"},"total":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Total"},"status":{"anyOf":[{"$ref":"#/components/schemas/Status"},{"type":"null"}]},"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"null"}]},"expected_version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Expected Version"}},"additionalProperties":false,"type":"object","title":"Report"},"Status":{"type":"string","enum":["queued","running","paused","completed","failed","canceled"],"title":"Status"},"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"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}