openapi: 3.2.0 info: title: Test Observer Test Plans API description: Test Observer API (see https://github.com/canonical/test_observer) license: name: GNU Affero General Public License v3 url: https://raw.githubusercontent.com/canonical/test_observer/refs/heads/main/backend/LICENSE version: 0.1.0 tags: - name: Test Plans paths: /v1/test-plans: get: tags: - Test Plans summary: Get Test Plans description: 'Returns list of distinct test plan names. Supports pagination and search filtering.' operationId: get_test_plans_v1_test_plans_get parameters: - name: q in: query required: false schema: anyOf: - type: string - type: 'null' description: Search term for test plan names title: Q description: Search term for test plan names - name: families in: query required: false schema: anyOf: - type: array items: $ref: '#/components/schemas/FamilyName' - type: 'null' description: Filter by artefact families title: Families description: Filter by artefact families - name: limit in: query required: false schema: type: integer maximum: 1000 minimum: 1 description: Maximum number of results (defaults to 50 if not specified) default: 50 title: Limit description: Maximum number of results (defaults to 50 if not specified) - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of results to skip for pagination default: 0 title: Offset description: Number of results to skip for pagination responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TestPlansResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-permissions: - view_test components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 TestPlansResponse: properties: test_plans: items: type: string type: array title: Test Plans count: type: integer title: Count limit: type: integer title: Limit offset: type: integer title: Offset type: object required: - test_plans - count - limit - offset title: TestPlansResponse description: Response model for test plans endpoint FamilyName: type: string enum: - snap - deb - charm - image - solution title: FamilyName