/api/test/testmap: get: tags: [Tests] summary: List all test mappings (unique groupings) security: - bearerAuth: [] responses: '200': description: List of unique test mapping groupings content: application/json: schema: type: object properties: status: type: string example: success message: type: string data: type: array items: type: object properties: HostType: type: string HostID: type: string HostName: type: string ClientType: type: string ClientID: type: string ClientName: type: string post: tags: [Tests] summary: Create test mapping (header only) security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestSiteID: type: integer description: Test Site ID (required) HostType: type: string description: Host type code HostID: type: string description: Host identifier ClientType: type: string description: Client type code ClientID: type: string description: Client identifier details: type: array description: Optional detail records to create items: type: object properties: HostTestCode: type: string HostTestName: type: string ConDefID: type: integer ClientTestCode: type: string ClientTestName: type: string required: - TestSiteID responses: '201': description: Test mapping created content: application/json: schema: type: object properties: status: type: string example: success message: type: string data: type: integer description: Created TestMapID patch: tags: [Tests] summary: Update test mapping security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestMapID: type: integer description: Test Map ID (required) TestSiteID: type: integer HostType: type: string HostID: type: string ClientType: type: string ClientID: type: string required: - TestMapID responses: '200': description: Test mapping updated content: application/json: schema: type: object properties: status: type: string example: success message: type: string data: type: integer description: Updated TestMapID delete: tags: [Tests] summary: Soft delete test mapping (cascades to details) security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestMapID: type: integer description: Test Map ID to delete (required) required: - TestMapID responses: '200': description: Test mapping deleted successfully content: application/json: schema: type: object properties: status: type: string example: success message: type: string data: type: integer description: Deleted TestMapID '404': description: Test mapping not found or already deleted /api/test/testmap/{id}: get: tags: [Tests] summary: Get test mapping by ID with details security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: integer description: Test Map ID responses: '200': description: Test mapping details with nested detail records content: application/json: schema: type: object properties: status: type: string message: type: string data: $ref: '../components/schemas/tests.yaml#/TestMap' '404': description: Test mapping not found /api/test/testmap/by-testsite/{testSiteID}: get: tags: [Tests] summary: Get test mappings by test site with details security: - bearerAuth: [] parameters: - name: testSiteID in: path required: true schema: type: integer description: Test Site ID responses: '200': description: List of test mappings with details for the test site content: application/json: schema: type: object properties: status: type: string message: type: string data: type: array items: $ref: '../components/schemas/tests.yaml#/TestMap' /api/test/testmap/detail: get: tags: [Tests] summary: List test mapping details security: - bearerAuth: [] parameters: - name: TestMapID in: query schema: type: integer description: Filter by TestMapID responses: '200': description: List of test mapping details content: application/json: schema: type: object properties: status: type: string message: type: string data: type: array items: $ref: '../components/schemas/tests.yaml#/TestMapDetail' post: tags: [Tests] summary: Create test mapping detail security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestMapID: type: integer description: Test Map ID (required) HostTestCode: type: string HostTestName: type: string ConDefID: type: integer ClientTestCode: type: string ClientTestName: type: string required: - TestMapID responses: '201': description: Test mapping detail created content: application/json: schema: type: object properties: status: type: string message: type: string data: type: integer description: Created TestMapDetailID patch: tags: [Tests] summary: Update test mapping detail security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestMapDetailID: type: integer description: Test Map Detail ID (required) TestMapID: type: integer HostTestCode: type: string HostTestName: type: string ConDefID: type: integer ClientTestCode: type: string ClientTestName: type: string required: - TestMapDetailID responses: '200': description: Test mapping detail updated delete: tags: [Tests] summary: Soft delete test mapping detail security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: TestMapDetailID: type: integer description: Test Map Detail ID to delete (required) required: - TestMapDetailID responses: '200': description: Test mapping detail deleted /api/test/testmap/detail/{id}: get: tags: [Tests] summary: Get test mapping detail by ID security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: integer description: Test Map Detail ID responses: '200': description: Test mapping detail content: application/json: schema: type: object properties: status: type: string message: type: string data: $ref: '../components/schemas/tests.yaml#/TestMapDetail' /api/test/testmap/detail/by-testmap/{testMapID}: get: tags: [Tests] summary: Get test mapping details by test map ID security: - bearerAuth: [] parameters: - name: testMapID in: path required: true schema: type: integer description: Test Map ID responses: '200': description: List of test mapping details content: application/json: schema: type: object properties: status: type: string message: type: string data: type: array items: $ref: '../components/schemas/tests.yaml#/TestMapDetail' /api/test/testmap/detail/batch: post: tags: [Tests] summary: Batch create test mapping details security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: array items: type: object properties: TestMapID: type: integer HostTestCode: type: string HostTestName: type: string ConDefID: type: integer ClientTestCode: type: string ClientTestName: type: string responses: '200': description: Batch create results patch: tags: [Tests] summary: Batch update test mapping details security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: array items: type: object properties: TestMapDetailID: type: integer TestMapID: type: integer HostTestCode: type: string HostTestName: type: string ConDefID: type: integer ClientTestCode: type: string ClientTestName: type: string responses: '200': description: Batch update results delete: tags: [Tests] summary: Batch delete test mapping details security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: array items: type: integer description: TestMapDetailIDs to delete responses: '200': description: Batch delete results