{"openapi":"3.1.0","info":{"title":"satellite-telemetry","description":"","license":{"name":"DPhi Space All Rights Reserved.","identifier":"DPhi Space All Rights Reserved."},"version":"0.1.0"},"paths":{"/api/images":{"post":{"tags":["Images"],"operationId":"get_images","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImagesQueryParams"}}},"required":true},"responses":{"200":{"description":"Image(s) or zip file","content":{"application/octet-stream":{"schema":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}}}}},"404":{"description":"File not found"}}}},"/api/images/list":{"get":{"tags":["Images"],"operationId":"list_images","responses":{"200":{"description":"List of available images","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_String"}}}}}}},"/api/telemetry":{"get":{"tags":["Telemetry"],"operationId":"get_telemetry","parameters":[{"name":"start_time","in":"query","required":false,"schema":{"type":["string","null"]},"example":"2026-01-01T00:00:00Z"},{"name":"end_time","in":"query","required":false,"schema":{"type":["string","null"]},"example":"2026-01-12T23:59:59Z"},{"name":"data_type","in":"query","required":false,"schema":{"type":["string","null"]},"example":"temperature"},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64"},"example":100}],"responses":{"200":{"description":"Telemetry records retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_TelemetryRecord"}}}},"500":{"description":"Database error"}}}},"/api/telemetry/latest":{"get":{"tags":["Telemetry"],"operationId":"get_latest_telemetry","parameters":[{"name":"data_type","in":"query","description":"Filter by data type","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Latest telemetry records","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_TelemetryRecord"}}}},"500":{"description":"Database error"}}}},"/api/telemetry/stats":{"get":{"tags":["Telemetry"],"operationId":"get_telemetry_stats","responses":{"200":{"description":"Telemetry statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_TelemetryStats"}}}},"500":{"description":"Database error"}}}},"/api/telemetry/tle":{"get":{"tags":["Telemetry"],"operationId":"get_latest_tle","responses":{"200":{"description":"Latest TLE data","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/telemetry/types":{"get":{"tags":["Telemetry"],"operationId":"get_data_types","responses":{"200":{"description":"List of available data types","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_String"}}}},"500":{"description":"Database error"}}}},"/health":{"get":{"tags":["Health"],"operationId":"health_check","responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApiResponse_TelemetryStats":{"type":"object","required":["success"],"properties":{"count":{"type":["integer","null"],"minimum":0},"data":{"type":"object","required":["total_records","data_types_count"],"properties":{"data_type_breakdown":{"type":["object","null"],"additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}},"data_types_count":{"type":"integer","format":"int64"},"earliest_timestamp":{"type":["string","null"],"format":"date-time"},"latest_timestamp":{"type":["string","null"],"format":"date-time"},"total_records":{"type":"integer","format":"int64"}}},"error":{"type":["string","null"]},"success":{"type":"boolean"}}},"ApiResponse_Vec_String":{"type":"object","required":["success"],"properties":{"count":{"type":["integer","null"],"minimum":0},"data":{"type":"array","items":{"type":"string"}},"error":{"type":["string","null"]},"success":{"type":"boolean"}}},"ApiResponse_Vec_TelemetryRecord":{"type":"object","required":["success"],"properties":{"count":{"type":["integer","null"],"minimum":0},"data":{"type":"array","items":{"type":"object","required":["id","timestamp","original_timestamp","data_type","data","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"data_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"original_timestamp":{"type":"integer","format":"int64"},"timestamp":{"type":"string","format":"date-time"}}}},"error":{"type":["string","null"]},"success":{"type":"boolean"}}},"ImagesQueryParams":{"type":"object","properties":{"images":{"type":["array","null"],"items":{"type":"string"},"description":"List of desired images","example":["image1.png","image2.png"]},"limit":{"type":["integer","null"],"format":"int64","description":"Limit of images to download","example":10}}},"TelemetryRecord":{"type":"object","required":["id","timestamp","original_timestamp","data_type","data","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"data_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"original_timestamp":{"type":"integer","format":"int64"},"timestamp":{"type":"string","format":"date-time"}}},"TelemetryStats":{"type":"object","required":["total_records","data_types_count"],"properties":{"data_type_breakdown":{"type":["object","null"],"additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}},"data_types_count":{"type":"integer","format":"int64"},"earliest_timestamp":{"type":["string","null"],"format":"date-time"},"latest_timestamp":{"type":["string","null"],"format":"date-time"},"total_records":{"type":"integer","format":"int64"}}}}},"tags":[{"name":"Health","description":"Health check endpoints"},{"name":"Telemetry","description":"Satellite telemetry data endpoints"},{"name":"Images","description":"Fisheye camera image endpoints"}]}