{"openapi":"3.1.0","info":{"title":"Mailing API","version":"0.3.0"},"paths":{"/healthz":{"get":{"summary":"Health","operationId":"health_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/status":{"get":{"summary":"Status","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/session/start":{"post":{"summary":"Start Session","operationId":"start_session_session_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/session/disconnect":{"post":{"summary":"Disconnect Session","operationId":"disconnect_session_session_disconnect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/session/qr":{"get":{"summary":"Qr","operationId":"qr_session_qr_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/session/qr/refresh":{"post":{"summary":"Generate a new pairing QR code","operationId":"refresh_qr_session_qr_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/images":{"post":{"summary":"Upload a JPEG/PNG image (raw binary, up to 5 MiB / 16 MP)","operationId":"upload_image_images_post","requestBody":{"content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/images/{image_id}":{"get":{"summary":"Get an uploaded image","operationId":"get_image_images__image_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"image_id","in":"path","required":true,"schema":{"type":"string","title":"Image Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/broadcasts":{"get":{"summary":"List Broadcasts","operationId":"list_broadcasts_broadcasts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"view","in":"query","required":false,"schema":{"enum":["all","active","attention"],"type":"string","default":"all","title":"View"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Broadcast","operationId":"broadcast_broadcasts_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Broadcast"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/broadcasts/{broadcast_id}":{"get":{"summary":"Get Broadcast","operationId":"get_broadcast_broadcasts__broadcast_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"broadcast_id","in":"path","required":true,"schema":{"type":"string","title":"Broadcast Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/broadcasts/{broadcast_id}/cancel":{"post":{"summary":"Cancel Broadcast","operationId":"cancel_broadcast_broadcasts__broadcast_id__cancel_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"broadcast_id","in":"path","required":true,"schema":{"type":"string","title":"Broadcast Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/queue/pause":{"post":{"summary":"Pause","operationId":"pause_queue_pause_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/queue/resume":{"post":{"summary":"Resume","operationId":"resume_queue_resume_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/messages/{message_id}/resolve":{"post":{"summary":"Resolve","operationId":"resolve_messages__message_id__resolve_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"integer","title":"Message Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Broadcast":{"properties":{"recipients":{"items":{"type":"string","maxLength":32},"type":"array","maxItems":1000,"minItems":1,"title":"Recipients"},"text":{"type":"string","maxLength":4096,"title":"Text","description":"Text or optional image caption","default":""},"image_id":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}],"title":"Image Id"},"greeting":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1},{"type":"null"}],"title":"Greeting","description":"Optional greeting; send the main message only after a new incoming reply"}},"additionalProperties":false,"type":"object","required":["recipients"],"title":"Broadcast"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Resolution":{"properties":{"outcome":{"type":"string","enum":["sent","failed"],"title":"Outcome"}},"additionalProperties":false,"type":"object","required":["outcome"],"title":"Resolution"},"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":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-Api-Key"}}}}