{"openapi":"3.0.0","paths":{"/healthz":{"get":{"operationId":"AppController_healthz","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/v1/outputs":{"post":{"operationId":"OutputController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOutputDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDto"}}}}},"summary":"Create an output","tags":["outputs"]},"get":{"operationId":"OutputController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number to return.","schema":{"example":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items to return per page. Maximum 100.","schema":{"example":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputListResponseDto"}}}}},"summary":"List outputs","tags":["outputs"]}},"/api/v1/outputs/{uuid}":{"get":{"operationId":"OutputController_findOne","parameters":[{"name":"uuid","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDto"}}}},"404":{"description":"Output not found."}},"summary":"Get an output by UUID","tags":["outputs"]},"patch":{"operationId":"OutputController_update","parameters":[{"name":"uuid","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOutputDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDto"}}}},"404":{"description":"Output not found."}},"summary":"Update an output","tags":["outputs"]},"delete":{"operationId":"OutputController_remove","parameters":[{"name":"uuid","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"Output deleted."},"404":{"description":"Output not found."}},"summary":"Delete an output","tags":["outputs"]}}},"info":{"title":"MXMZ Playout Service","description":"API documentation for the MXMZ playout service.","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://playout-service.use2.mxmz.io"}],"components":{"schemas":{"CreateOutputDto":{"type":"object","properties":{"name":{"type":"string","example":"Main output","description":"Human-readable output name."}},"required":["name"]},"OutputResponseDto":{"type":"object","properties":{"uuid":{"type":"string","example":"019ad2f1-2f3b-7c2e-9a8f-3f4b7b9c0d11","description":"Output UUID."},"name":{"type":"string","example":"Main output","description":"Human-readable output name."},"channel":{"type":"string","example":"N2MwYzQxNmQtNGEzMS0xMWYxLThlOWEtMWFiYWI2ODU5YWM3Ojo6MDE5ZTAzNDMtMWFlOS03MWM1LTgwMmQtYTRmY2IzYjJhYjky","description":"Channel for player to connect to for this output."}},"required":["uuid","name","channel"]},"PaginationMetaDto":{"type":"object","properties":{"page":{"type":"number","example":1,"description":"Current page number."},"limit":{"type":"number","example":20,"description":"Number of items per page."},"totalItems":{"type":"number","example":42,"description":"Total number of items."},"totalPages":{"type":"number","example":3,"description":"Total number of pages."},"hasNextPage":{"type":"boolean","example":true,"description":"Whether another page exists after this page."},"hasPreviousPage":{"type":"boolean","example":false,"description":"Whether another page exists before this page."}},"required":["page","limit","totalItems","totalPages","hasNextPage","hasPreviousPage"]},"OutputListResponseDto":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/PaginationMetaDto"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OutputResponseDto"}}},"required":["meta","data"]},"UpdateOutputDto":{"type":"object","properties":{"name":{"type":"string","example":"Backup output","description":"Human-readable output name."}}}}}}