Allow the test map list endpoint to filter by host and client, and include container labels in detail responses. Update the API contract and feature coverage to match.
592 lines
16 KiB
YAML
Executable File
592 lines
16 KiB
YAML
Executable File
/api/test/testmap:
|
|
get:
|
|
tags: [Test]
|
|
summary: List all test mappings
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: host
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by host name, type, or ID
|
|
- name: client
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by client name, type, or ID
|
|
responses:
|
|
'200':
|
|
description: List of test mappings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
example: success
|
|
message:
|
|
type: string
|
|
data:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
TestMapID:
|
|
type: integer
|
|
HostType:
|
|
type: string
|
|
HostID:
|
|
type: string
|
|
HostName:
|
|
type: string
|
|
ClientType:
|
|
type: string
|
|
ClientID:
|
|
type: string
|
|
ClientName:
|
|
type: string
|
|
|
|
post:
|
|
tags: [Test]
|
|
summary: Create test mapping (header only)
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
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 alongside the header
|
|
items:
|
|
type: object
|
|
properties:
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
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
|
|
|
|
|
|
delete:
|
|
tags: [Test]
|
|
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: [Test]
|
|
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
|
|
|
|
patch:
|
|
tags: [Test]
|
|
summary: Update test mapping
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Test Map ID
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
HostType:
|
|
type: string
|
|
HostID:
|
|
type: string
|
|
ClientType:
|
|
type: string
|
|
ClientID:
|
|
type: string
|
|
details:
|
|
description: |
|
|
Detail payload supports either a flat array/object (treated as new rows)
|
|
or an operations object with `created`, `edited`, and `deleted` arrays.
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
created:
|
|
type: array
|
|
description: New detail records to insert
|
|
items:
|
|
type: object
|
|
properties:
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
edited:
|
|
type: array
|
|
description: Existing detail records to update
|
|
items:
|
|
type: object
|
|
properties:
|
|
TestMapDetailID:
|
|
type: integer
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
deleted:
|
|
type: array
|
|
description: TestMapDetailIDs to soft delete
|
|
items:
|
|
type: integer
|
|
- type: array
|
|
description: Shortcut format for creating new details only
|
|
items:
|
|
type: object
|
|
properties:
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
- type: object
|
|
description: Shortcut format for creating a single new detail
|
|
properties:
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
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
|
|
|
|
/api/test/testmap/by-testcode/{testCode}:
|
|
get:
|
|
tags: [Test]
|
|
summary: Get test mappings by test code with details
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: testCode
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Test Code (matches HostTestCode or ClientTestCode)
|
|
responses:
|
|
'200':
|
|
description: List of test mappings with details for the test code
|
|
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: [Test]
|
|
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: [Test]
|
|
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
|
|
|
|
|
|
delete:
|
|
tags: [Test]
|
|
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: [Test]
|
|
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'
|
|
|
|
patch:
|
|
tags: [Test]
|
|
summary: Update test mapping detail
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Test Map Detail ID
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
TestMapID:
|
|
type: integer
|
|
HostTestCode:
|
|
type: string
|
|
HostTestName:
|
|
type: string
|
|
ConDefID:
|
|
type: integer
|
|
ClientTestCode:
|
|
type: string
|
|
ClientTestName:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Test mapping detail updated
|
|
|
|
/api/test/testmap/detail/by-testmap/{testMapID}:
|
|
get:
|
|
tags: [Test]
|
|
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: [Test]
|
|
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: [Test]
|
|
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: [Test]
|
|
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
|