basePath: / definitions: api.HealthResponse: properties: status: example: ok type: string type: object api.ProblemDetails: properties: detail: example: The catalogue could not be read from the database. This is a server-side fault and the request was not processed; retrying in a few moments may succeed. type: string status: example: 500 type: integer title: example: Something Went Wrong Loading The Catalogue type: string type: example: about:blank type: string type: object api.Video: properties: categories: example: - documentary - news items: type: string type: array id: example: 0f8fad5b-d9cb-469f-a165-70867728950e type: string playbackUrl: example: https://d111111abcdef8.cloudfront.net/videos/abc123/index.m3u8 type: string title: example: The Evening Bulletin type: string type: object info: contact: {} description: |- JSON API for browsing the Thamanyah catalogue. Read-side counterpart to the CMS, which is what ingests videos. Not listed below: `QUERY /api/videos`, the catalogue search. It takes a JSON body `{title, categories, limit, cursor}` and answers `{videos, nextCursor}` — title is matched lexically with the last word as a prefix, categories narrow to videos filed under any one of them, limit defaults to 20 and is capped at 100, and cursor is the opaque `nextCursor` of a previous search. It is absent here because OpenAPI has no slot for the QUERY method, not because it is unsupported; see handlers.SearchVideos. title: Thamanyah Discovery API version: "1.0" paths: /api/videos/{id}: get: description: 'Returns the catalogue''s copy of a video: what a reader needs to show and play it. A video appears here only after the CMS has announced it as ready, so a video that is still transcoding — or one the CMS never made ready — is a 404.' parameters: - description: Video id, as issued by the CMS in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.Video' "404": description: Not Found schema: $ref: '#/definitions/api.ProblemDetails' "500": description: Internal Server Error schema: $ref: '#/definitions/api.ProblemDetails' summary: Get a catalogued video tags: - videos /health: get: description: Reports that the service is up and serving. Used as the ALB target group health check; it does not verify the database connection. produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.HealthResponse' summary: Health check tags: - system swagger: "2.0"