{ "openapi": "3.0.1", "info": { "title": "Interoperability Test Bed REST API", "description": "REST API for machine-to-machine integration with the Test Bed.", "contact": { "email": "${contactEmail}" }, "version": "${version}" }, "externalDocs": { "description": "Test Bed user guide.", "url": "${userGuideAddress}" }, "servers": [ { "url": "${apiUrl}" } ], "tags": [ { "name": "Configuration", "description": "Operations relevant to configuration actions." }, { "name": "Conformance statements", "description": "Operations relevant to conformance statements." }, { "name": "Test sessions", "description": "Operations on test sessions." }, { "name": "Test suites", "description": "Operations on test suites." } ], "paths": { "/configure": { "post": { "tags": [ "Configuration" ], "summary": "Update configuration entries for domains, organisations, systems and conformance statements.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "Information on the configuration updates to carry out.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigureRequest" } } } }, "responses": { "200": { "description": "Configuration updates applied (with possible warnings).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigureResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/conformance/{system}/{actor}": { "put": { "tags": [ "Conformance statements" ], "summary": "Create a conformance statement between a system and a specification actor.", "security": [ { "OrganisationApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the system for which to create the conformance statement." }, { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the target specification actor." } ], "responses": { "200": { "description": "Conformance statement successfully created." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "delete": { "tags": [ "Conformance statements" ], "summary": "Delete a conformance statement between a system and a specification actor.", "security": [ { "OrganisationApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the conformance statement's system." }, { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the conformance statement's specification actor." } ], "responses": { "200": { "description": "Conformance statement successfully deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "get": { "tags": [ "Conformance statements" ], "summary": "Get a conformance statement report for a system and actor pair considering the latest conformance testing status.", "security": [ { "OrganisationApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the system for which to create the conformance statement." }, { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the target specification actor." } ], "responses": { "200": { "description": "Conformance statement report successfully returned.", "content": { "application/xml": { "schema": { "$ref": "#/components/schemas/ConformanceStatementReport" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/conformance/{system}/{actor}/{snapshot}": { "get": { "tags": [ "Conformance statements" ], "summary": "Get a conformance statement report for a system and actor pair considering a given conformance snapshot.", "security": [ { "OrganisationApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the system for which to create the conformance statement." }, { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the target specification actor." }, { "in": "path", "name": "snapshot", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the conformance snapshot." } ], "responses": { "200": { "description": "Conformance statement report successfully returned.", "content": { "application/xml": { "schema": { "$ref": "#/components/schemas/ConformanceStatementReport" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/tests/start": { "post": { "tags": [ "Test sessions" ], "summary": "Launch one or more test sessions.", "security": [ { "OrganisationApiKeyAuth": [] } ], "requestBody": { "description": "Information on the test session(s) to start.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionStartRequest" } } }, "required": true }, "responses": { "200": { "description": "Test session(s) successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionStartResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/tests/status": { "post": { "tags": [ "Test sessions" ], "summary": "Query the status, logs and results of one or more test sessions.", "security": [ { "OrganisationApiKeyAuth": [] } ], "requestBody": { "description": "Query parameters and information options for the test sessions to lookup.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "Test sessions' status successfully returned.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionStatusResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/tests/stop": { "post": { "tags": [ "Test sessions" ], "summary": "Stop one or more test sessions.", "security": [ { "OrganisationApiKeyAuth": [] } ], "requestBody": { "description": "The test sessions to stop.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionStopRequest" } } }, "required": true }, "responses": { "200": { "description": "Test session(s) successfully stopped.", "content": {} }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/tests/report/{sessionId}": { "get": { "tags": [ "Test sessions" ], "summary": "Retrieve a test session report in the GITB TRL XML format.", "security": [ { "OrganisationApiKeyAuth": [] } ], "parameters": [ { "description": "The identifier of the test session of which the report is requested.", "in": "path", "name": "sessionId", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Report successfully created.", "content": { "application/xml": { "schema": { "$ref": "#/components/schemas/TestCaseOverviewReport" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } }, "404": { "description": "No test session was not found matching the provided identifier." } } } }, "/testsuite/deploy": { "post": { "tags": [ "Test suites" ], "summary": "Deploy a (non-shared) test suite to a specification.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The test suite archive to deploy and the deployment's parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteDeployViaBase64Request" } }, "multipart/form-data": { "schema": { "$ref": "#/components/schemas/TestSuiteDeployViaFileRequest" }, "encoding": { "testSuite": { "contentType": "application/zip" } } } }, "required": true }, "responses": { "200": { "description": "Test suite deployed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteDeployResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/testsuite/deployShared": { "post": { "tags": [ "Test suites" ], "summary": "Deploy a shared test suite to a community's domain.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The shared test suite archive to deploy and the deployment's parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedTestSuiteDeployViaBase64Request" } }, "multipart/form-data": { "schema": { "$ref": "#/components/schemas/SharedTestSuiteDeployViaFileRequest" }, "encoding": { "testSuite": { "contentType": "application/zip" } } } }, "required": true }, "responses": { "200": { "description": "Test suite deployed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteDeployResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/testsuite/undeploy": { "post": { "tags": [ "Test suites" ], "summary": "Undeploy an existing (non-shared) test suite from a specification.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "Information on the test suite to be undeployed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteUndeployRequest" } } }, "required": true }, "responses": { "200": { "description": "Test suite successfully undeployed.", "content": {} }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/testsuite/undeployShared": { "post": { "tags": [ "Test suites" ], "summary": "Undeploy an existing shared test suite from a community's domain.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "Information on the shared test suite to be undeployed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedTestSuiteUndeployRequest" } } }, "required": true }, "responses": { "200": { "description": "Test suite successfully undeployed.", "content": {} }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/testsuite/linkShared": { "post": { "tags": [ "Test suites" ], "summary": "Link a shared test suite to one or more specifications.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "Information on the shared test suite and specification(s) to be linked.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteLinkRequest" } } }, "required": true }, "responses": { "200": { "description": "Test suite successfully linked.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteLinkResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/testsuite/unlinkShared": { "post": { "tags": [ "Test suites" ], "summary": "Unlink a shared test suite from one or more specifications.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "Information on the shared test suite and specification(s) to be linked.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSuiteUnlinkRequest" } } }, "required": true }, "responses": { "200": { "description": "Test suite successfully unlinked.", "content": {} }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } } }, "components": { "schemas": { "SessionStartRequest": { "description": "Information on the test session(s) to start.", "type": "object", "properties": { "system": { "description": "The API KEY identifying the target system. This can be skipped in case the target organisation defines a single system.", "type": "string" }, "actor": { "description": "The API KEY identifying the target actor. This can be skipped in case you prefer providing test suite and/or test case identifiers to match the target actor. In any case a single conformance statement must be matched based on the provided inputs.", "type": "string" }, "forceSequentialExecution": { "description": "Whether the test sessions should be forced to execute sequentially.", "type": "boolean", "default": false }, "testSuite": { "description": "The identifier(s) of the test suites to execute.", "type": "array", "items": { "type": "string" } }, "testCase": { "description": "The identifier(s) of the test cases to execute.", "type": "array", "items": { "type": "string" } }, "inputMapping": { "description": "Inputs to provide to test sessions. These can be applied to all test sessions, or certain test sessions identified by their relevant test case or test suite identifiers.", "type": "array", "items": { "$ref": "#/components/schemas/InputMapping" } } }, "additionalProperties": false }, "InputMapping": { "description": "Data relevant to an input provided to create one or more test sessions.", "type": "object", "properties": { "testSuite": { "description": "The identifiers of the test suite for which this input is to be provided.", "type": "array", "items": { "type": "string" } }, "testCase": { "description": "The identifiers of the test case for which this input is to be provided.", "type": "array", "items": { "type": "string" } }, "input": { "$ref": "#/components/schemas/AnyContent" } }, "required": [ "input" ], "additionalProperties": false }, "AnyContent": { "description": "The data and metadata relevant to a given test session input.", "type": "object", "properties": { "name": { "description": "The name of the input through which it is referenced in test cases.", "type": "string" }, "embeddingMethod": { "description": "The way in which the value of the input is to be interpreted (as the actual string value, as a Base64-encoded string or as a remote URI location).", "type": "string", "enum": [ "STRING", "BASE64", "URI" ], "default": "STRING" }, "value": { "description": "The value of the input provided as a string, to be interpreted based on the embeddingMethod input. This may be missing in case of a complex type (list or map).", "type": "string" }, "type": { "description": "The data type of this input.", "type": "string", "enum": [ "string", "number", "boolean", "binary", "object", "schema", "map", "list" ], "default": "string" }, "encoding": { "type": "string" }, "item": { "description": "In case this is a complex data type (list or map) this is the array of child (contained) types.", "type": "array", "items": { "$ref": "#/components/schemas/AnyContent" } } }, "additionalProperties": false }, "SessionStartResponse": { "description": "Information on the created test sessions.", "type": "object", "properties": { "createdSessions": { "description": "Information on the created test session(s).", "type": "array", "items": { "$ref": "#/components/schemas/SessionCreationInformation" } } }, "required": [ "createdSessions" ], "additionalProperties": false }, "SessionStatusRequest": { "type": "object", "description": "Query parameters and information options for the test sessions to lookup.", "additionalProperties": false, "required": [ "session" ], "properties": { "session": { "description": "The session identifier(s) to look up.", "type": "array", "items": { "type": "string" } }, "withLogs": { "description": "Whether or not the log output for each session should be returned.", "type": "boolean", "default": false }, "withReports": { "description": "Whether or not the XML test case report should be returned.", "type": "boolean", "default": false } } }, "SessionStatusResponse": { "description": "Response for the test session status operation.", "type": "object", "properties": { "sessions": { "description": "The list of status information for retrieved test sessions.", "type": "array", "items": { "$ref": "#/components/schemas/SessionStatus" } } }, "required": [ "sessions" ], "additionalProperties": false }, "SessionStopRequest": { "description": "Request to stop one or more test sessions.", "type": "object", "properties": { "session": { "description": "The identifier(s) of the test session(s) to stop.", "type": "array", "items": { "description": "Test session identifier.", "type": "string" } } }, "required": [ "session" ], "additionalProperties": false }, "SessionCreationInformation": { "description": "The metadata for a created test session.", "type": "object", "properties": { "testSuite": { "description": "The identifier of the test session's relevant test suite.", "type": "string" }, "testCase": { "description": "The identifier of the test session's relevant test case.", "type": "string" }, "session": { "description": "The identifier assigned to the test session.", "type": "string" } }, "required": [ "testSuite", "testCase", "session" ], "additionalProperties": false }, "TestSuiteDeployViaFileRequest": { "description": "Information on the test suite to deploy when the call is made as a multipart form submission.", "allOf": [ { "$ref": "#/components/schemas/BaseTestSuiteDeployRequest" }, { "type": "object", "properties": { "testSuite": { "description": "The test suite archive to deploy.", "type": "string", "format": "binary" }, "testCaseWithSpecificationUpdate": { "description": "Test case identifiers for which their definition will be updated.", "type": "array", "items": { "type": "string" } }, "testCaseWithoutSpecificationUpdate": { "description": "Test case identifiers for which their definition will be not updated.", "type": "array", "items": { "type": "string" } }, "testCaseWithTestHistoryReplacement": { "description": "Test case identifiers for which their testing history will be reset.", "type": "array", "items": { "type": "string" } }, "testCaseWithoutTestHistoryReplacement": { "description": "Test case identifiers for which their testing history will be not reset.", "type": "array", "items": { "type": "string" } } }, "required": [ "testSuite" ] } ] }, "SharedTestSuiteDeployViaFileRequest": { "description": "Information on the shared test suite to deploy when the call is made as a multipart form submission.", "allOf": [ { "$ref": "#/components/schemas/BaseSharedTestSuiteDeployRequest" }, { "type": "object", "properties": { "testSuite": { "description": "The shared test suite archive to deploy.", "type": "string", "format": "binary" }, "testCaseWithSpecificationUpdate": { "description": "Test case identifiers for which their definition will be updated.", "type": "array", "items": { "type": "string" } }, "testCaseWithoutSpecificationUpdate": { "description": "Test case identifiers for which their definition will be not updated.", "type": "array", "items": { "type": "string" } }, "testCaseWithTestHistoryReplacement": { "description": "Test case identifiers for which their testing history will be reset.", "type": "array", "items": { "type": "string" } }, "testCaseWithoutTestHistoryReplacement": { "description": "Test case identifiers for which their testing history will be not reset.", "type": "array", "items": { "type": "string" } } }, "required": [ "testSuite" ] } ] }, "TestSuiteDeployViaBase64Request": { "description": "Information on the test suite to deploy when the call is made as JSON.", "allOf": [ { "$ref": "#/components/schemas/BaseTestSuiteDeployRequest" }, { "type": "object", "properties": { "testSuite": { "description": "The test suite archive to deploy provided as a Base64-encoded string.", "type": "string", "format": "base64" }, "testCases": { "description": "Update choices for specific test cases.", "type": "array", "items": { "$ref": "#/components/schemas/TestCaseDeploymentAction" } } }, "required": [ "testSuite" ] } ] }, "SharedTestSuiteDeployViaBase64Request": { "description": "Information on the shared test suite to deploy when the call is made as JSON.", "allOf": [ { "$ref": "#/components/schemas/BaseSharedTestSuiteDeployRequest" }, { "type": "object", "properties": { "testSuite": { "description": "The shared test suite archive to deploy provided as a Base64-encoded string.", "type": "string", "format": "base64" }, "testCases": { "description": "Update choices for specific test cases.", "type": "array", "items": { "$ref": "#/components/schemas/TestCaseDeploymentAction" } } }, "required": [ "testSuite" ] } ] }, "BaseTestSuiteDeployRequest": { "description": "Common information on the test suite to deploy.", "type": "object", "properties": { "specification": { "description": "The API KEY identifying the target specification.", "type": "string" }, "ignoreWarnings": { "description": "Whether test suite validation warnings should be ignored.", "type": "boolean", "default": false }, "replaceTestHistory": { "description": "Whether the test history linked to the test suite's test cases should be reset. This is the default setting to consider if no test case specific options are defined.", "type": "boolean", "default": false }, "updateSpecification": { "description": "Whether the specification's metadata should be updated using the provided test suite's content. For test cases' metadata this setting will be considered as the default, if no test case specific options are defined.", "type": "boolean", "default": false } }, "required": [ "specification" ], "additionalProperties": false }, "BaseSharedTestSuiteDeployRequest": { "description": "Common information on the shared test suite to deploy.", "type": "object", "properties": { "ignoreWarnings": { "description": "Whether test suite validation warnings should be ignored.", "type": "boolean", "default": false }, "replaceTestHistory": { "description": "Whether the test history linked to the test suite's test cases should be reset. This is the default setting to consider if no test case specific options are defined.", "type": "boolean", "default": false }, "updateSpecification": { "description": "Whether the test suite's metadata should be updated using the provided test suite's content.", "type": "boolean", "default": false } }, "additionalProperties": false }, "TestSuiteDeployResponse": { "description": "Response for the (shared or specification-specific) test suite deploy operation.", "type": "object", "properties": { "completed": { "description": "Whether or not the deployment was completed.", "type": "boolean" }, "errors": { "description": "The list of errors resulting from the test suite's validation.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteValidationReportItem" } }, "warnings": { "description": "The list of warnings resulting from the test suite's validation.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteValidationReportItem" } }, "messages": { "description": "The list of information messages resulting from the test suite's validation.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteValidationReportItem" } }, "identifiers": { "description": "The API key identifiers linked to the test suite.", "type": "object", "required": [ "testSuite" ], "properties": { "testSuite": { "description": "The test suite identifier.", "type": "string" }, "testCases": { "description": "The identifiers of the test suite's test cases.", "type": "array", "items": { "type": "string" } }, "specifications": { "description": "The identifiers linked to the test suite's linked specification(s).", "type": "array", "items": { "type": "object", "required": [ "name", "identifier" ], "properties": { "name": { "description": "The specification's name.", "type": "string" }, "identifier": { "description": "The specification's API key.", "type": "string" }, "actors": { "description": "The information for the actors linked to the specification.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteUploadActorKeys" } } } } } } } }, "required": [ "completed" ], "additionalProperties": false }, "TestSuiteUploadActorKeys": { "description": "The API keys for the actors related to the test suite.", "type": "object", "required": [ "name", "identifier" ], "properties": { "name": { "description": "The name of the actor.", "type": "string" }, "identifier": { "description": "The API key of the actor.", "type": "string" } } }, "TestCaseDeploymentAction": { "description": "Deployment choices for a given test case.", "type": "object", "properties": { "identifier": { "description": "The test case identifier.", "type": "string" }, "updateSpecification": { "description": "Whether the metadata for this test case should be updated.", "type": "boolean", "default": false }, "replaceTestHistory": { "description": "Whether the testing history for this test case should be reset.", "type": "boolean", "default": false } } }, "TestSuiteValidationReportItem": { "description": "A test suite validation report finding.", "type": "object", "properties": { "description": { "description": "The finding's description.", "type": "string" }, "location": { "description": "The path of the resource within the test suite that resulted in this finding.", "type": "string" } }, "required": [ "description" ], "additionalProperties": false }, "TestSuiteUndeployRequest": { "description": "Request to undeploy a given test suite.", "type": "object", "properties": { "specification": { "description": "The API key value to uniquely identify the specification from which the test suite will be undeployed from.", "type": "string" }, "testSuite": { "description": "The identifier of the test suite that will be undeployed.", "type": "string" } }, "required": [ "specification", "testSuite" ], "additionalProperties": false }, "SharedTestSuiteUndeployRequest": { "description": "Request to undeploy a given shared test suite.", "type": "object", "properties": { "testSuite": { "description": "The identifier of the test suite that will be undeployed.", "type": "string" } }, "required": [ "testSuite" ], "additionalProperties": false }, "TestSuiteLinkRequest": { "description": "Request to link a shared test suite with one or more specifications.", "type": "object", "properties": { "testSuite": { "description": "The identifier of the shared test suite.", "type": "string" }, "specifications": { "description": "The list of specifications to link the test suite to.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteLinkRequestSpecification" } } }, "required": [ "testSuite", "specifications" ], "additionalProperties": false }, "TestSuiteLinkRequestSpecification": { "description": "Information on how to link a shared test suite to a given specification.", "type": "object", "properties": { "specification": { "description": "The API key identifying the specification to link the test suite to.", "type": "string" }, "update": { "description": "Whether or not to update the specification's actor metadata based on the test suite.", "type": "boolean" } }, "required": [ "specification" ], "additionalProperties": false }, "TestSuiteLinkResponse": { "description": "Response for the linking of a shared test suite with one or more specifications.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteLinkResponseSpecification" } }, "TestSuiteLinkResponseSpecification": { "description": "The result from linking a shared test suite to a given specification.", "type": "object", "properties": { "specification": { "description": "The API key identifying the specification.", "type": "string" }, "linked": { "description": "Whether or not the test suite was linked to the specification.", "type": "boolean" }, "message": { "description": "A message detailing why the specification was not linked (if linking didn't take place).", "type": "string" }, "actors": { "description": "The information for the actors linked to the specification.", "type": "array", "items": { "$ref": "#/components/schemas/TestSuiteUploadActorKeys" } } }, "required": [ "specification", "linked" ], "additionalProperties": false }, "TestSuiteUnlinkRequest": { "description": "Request to unlink a shared test suite from a givan specification.", "type": "object", "properties": { "testSuite": { "description": "The identifier of the shared test suite.", "type": "string" }, "specifications": { "description": "The list of specifications to unlink from the test suite (identified via their API keys).", "type": "array", "items": { "type": "string" } } }, "required": [ "testSuite", "specifications" ], "additionalProperties": false }, "ErrorInformation": { "description": "Information on an encountered error.", "type": "object", "properties": { "error_code": { "description": "The code used to identify the type of error encountered.", "type": "string" }, "error_description": { "description": "The description of the error.", "type": "string" }, "error_id": { "description": "An optional error identifier to refer to the specific error in logs.", "type": "string" } }, "required": [ "error_code", "error_description" ], "additionalProperties": false }, "SessionStatus": { "description": "Status information for a test session.", "type": "object", "properties": { "session": { "description": "The session's unique identifier.", "type": "string" }, "result": { "description": "The session's result.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "UNDEFINED" ] }, "startTime": { "description": "The session start time.", "type": "string", "format": "yyyy-MM-ddTHH:mm:ssZ" }, "endTime": { "description": "The session end time (if the session is completed).", "type": "string", "format": "yyyy-MM-ddTHH:mm:ssZ" }, "message": { "description": "The resulting output message of the session.", "type": "string" }, "logs": { "description": "The list of log entries produced by the session.", "type": "array", "items": { "type": "string" } }, "report": { "description": "The test session's XML report.", "type": "string" } }, "required": [ "session", "result", "startTime" ], "additionalProperties": false }, "ConformanceStatementReport": { "description": "XML conformance statement report.", "type": "object", "required": [ "metadata", "statement" ], "properties": { "metadata": { "description": "The report's metadata.", "type": "object", "required": [ "reportTime" ], "properties": { "reportTime": { "description": "The date of the report.", "type": "string" } } }, "statement": { "description": "The content of the report.", "type": "object", "required": [ "definition", "summary", "testOverview" ], "properties": { "definition": { "description": "The context defining what the report concerns.", "type": "object", "required": [ "party", "domain", "specification", "actor" ], "properties": { "party": { "description": "The party linked to the conformance statement.", "type": "object", "properties": { "organisation": { "$ref": "#/components/schemas/PartyDefinition" }, "system": { "$ref": "#/components/schemas/PartyDefinition" } } }, "domain": { "$ref": "#/components/schemas/ConformanceItemInformation" }, "specificationGroup": { "$ref": "#/components/schemas/ConformanceItemInformation" }, "specification": { "$ref": "#/components/schemas/ConformanceItemInformation" }, "actor": { "$ref": "#/components/schemas/ConformanceItemInformation" } } }, "summary": { "description": "The test result summary for the report.", "type": "object", "required": [ "status", "succeeded", "failed", "incomplete" ], "properties": { "status": { "description": "The overall result status.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "UNDEFINED" ] }, "succeeded": { "description": "The number of succeeded tests or statements.", "type": "number" }, "failed": { "description": "The number of failed tests or statements.", "type": "number" }, "incomplete": { "description": "The number of incomplete tests or statements.", "type": "number" } } }, "lastUpdate": { "description": "The last time the conformance statement's status was updated.", "type": "string" }, "testOverview": { "description": "The overview of test results.", "type": "object", "properties": { "testSuite": { "description": "Result for a specific test suite.", "type": "array", "items": { "type": "object", "properties": { "metadata": { "$ref": "#/components/schemas/TestDefinitionMetadata" }, "result": { "description": "The test suite's overall result status.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "UNDEFINED" ] }, "testCases": { "description": "The list of test cases included in the test suite.", "type": "object", "properties": { "testCase": { "description": "A test case.", "type": "array", "items": { "$ref": "#/components/schemas/TestCaseOverview" } } } } } } } } }, "testDetails": { "description": "The list of latest relevant test case results.", "type": "object", "properties": { "testCase": { "description": "A test case result.", "type": "array", "items": { "$ref": "#/components/schemas/TestCaseOverviewReport" } } } } } } } }, "TestCaseOverview": { "description": "Overview information for a specific test case.", "type": "object", "required": [ "result" ], "properties": { "metadata": { "$ref": "#/components/schemas/TestDefinitionMetadata" }, "result": { "description": "The test suite's overall result status.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "UNDEFINED" ] }, "lastUpdate": { "description": "The last time the test case was executed.", "type": "string" }, "optional": { "description": "Whether the test case is flagged as optional.", "type": "boolean", "default": false, "xml": { "attribute": true } }, "disabled": { "description": "Whether the test case is flagged as disabled.", "type": "boolean", "default": false, "xml": { "attribute": true } }, "ref": { "description": "Reference to a specific test session report.", "type": "string", "xml": { "attribute": true } } } }, "ConformanceItemInformation": { "description": "Information on an element in the conformance hierarchy.", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The name of the element.", "type": "string" }, "description": { "description": "The description of the element.", "type": "string" } } }, "PartyDefinition": { "description": "Information on the party linked to a report.", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The name of the party.", "type": "string" }, "properties": { "$ref": "#/components/schemas/PartyProperties" } } }, "PartyProperties": { "description": "The list of custom party properties", "type": "object", "properties": { "property": { "description": "A custom party property.", "type": "array", "items": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The name of the property", "type": "string", "xml": { "attribute": true } } } } } } }, "TestDefinitionMetadata": { "description": "Metadata about the relevant test case/suite.", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The test case/suite's name.", "type": "string" }, "version": { "description": "The test case/suite's version.", "type": "string" }, "description": { "description": "The test case/suite's description.", "type": "string" }, "tags": { "description": "The test case/suite's tags.", "type": "array", "items": { "type": "object", "minLength": 0, "properties": { "tag": { "description": "A test case/suite tag.", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The name of the tag.", "type": "string", "xml": { "attribute": true } }, "foreground": { "description": "The foreground colour of the tag.", "type": "string", "xml": { "attribute": true } }, "background": { "description": "The background colour of the tag.", "type": "string", "xml": { "attribute": true } } } } } } }, "specification": { "description": "The normative specification reference for the test case.", "type": "object", "properties": { "reference": { "description": "The specification's reference code.", "type": "string" }, "description": { "description": "A description of the specification reference.", "type": "string" }, "link": { "description": "A link to online documentation for the specification.", "type": "string" } } } } }, "TestCaseOverviewReport": { "description": "XML test case report for a given test session.", "type": "object", "required": [ "id", "startTime", "result" ], "properties": { "id": { "description": "The relevant test case's identifier.", "type": "string", "xml": { "attribute": true } }, "metadata": { "$ref": "#/components/schemas/TestDefinitionMetadata" }, "startTime": { "description": "The test session's start time.", "type": "string", "format": "yyyy-MM-ddTHH:mm:ss.SSSZ" }, "endTime": { "description": "The test session's end time.", "type": "string", "format": "yyyy-MM-ddTHH:mm:ss.SSSZ" }, "result": { "description": "The test session's overall result.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "UNDEFINED" ] }, "message": { "description": "The resulting output message of the session.", "type": "string" }, "steps": { "description": "The test step reports.", "type": "array", "items": { "type": "object", "minLength": 0, "properties": { "step": { "description": "The report for a specific step.", "type": "object", "required": [ "id", "report" ], "properties": { "id": { "description": "The test step's identifier'.", "type": "string", "xml": { "attribute": true } }, "report": { "description": "The test step's report.", "type": "object", "properties": { "id": { "description": "The test step's identifier'.", "type": "string", "xml": { "attribute": true } }, "date": { "description": "The test step's completion date.", "type": "string", "format": "yyyy-MM-ddTHH:mm:ss.SSSZ" }, "result": { "description": "The test step's result.", "type": "string", "enum": [ "SUCCESS", "FAILURE", "WARNING", "UNDEFINED" ] }, "reports": { "description": "The test step's report items.", "type": "object", "properties": { "error": { "description": "A step error.", "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ReportItem" } ] } }, "warning": { "description": "A step warning.", "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ReportItem" } ] } }, "info": { "description": "A step information message.", "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ReportItem" } ] } } } } } } } } } } } } }, "ReportItem": { "description": "Details of a specific test step report item.", "type": "object", "properties": { "assertionID": { "description": "The identifier of an assertion linked to the relevant rule.", "type": "string" }, "description": { "description": "The message produced by the relevant rule.", "type": "string" }, "location": { "description": "The location in the processed content relevant to this finding.", "type": "string" }, "test": { "description": "The test that was executed.", "type": "string" }, "type": { "description": "The type of test carried out.", "type": "string" }, "value": { "description": "The detected value that lead to the finding being reported.", "type": "string" } }, "required": [ "description" ] }, "ConfigureRequest": { "description": "Information on the configuration updates to carry out.", "type": "object", "properties": { "domainProperties": { "description": "Updates to domain properties.", "type": "array", "items": { "$ref": "#/components/schemas/DomainPropertyConfigurationEntry" } }, "organisationProperties": { "description": "Updates to organisation properties.", "type": "array", "items": { "$ref": "#/components/schemas/OrganisationConfigurationEntry" } }, "systemProperties": { "description": "Updates to system properties.", "type": "array", "items": { "$ref": "#/components/schemas/SystemConfigurationEntry" } }, "statementProperties": { "description": "Updates to conformance statement properties.", "type": "array", "items": { "$ref": "#/components/schemas/ConformanceStatementConfigurationEntry" } } } }, "DomainPropertyConfigurationEntry": { "description": "Configuration update to apply to a given domain property.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the configuration property.", "type": "string" }, "value": { "description": "The value to apply for the configuration property (if missing this signals a delete of the existing value).", "type": "string" }, "domain": { "description": "The API key to identify the domain under which this property is defined (in case of multiple domains defining the same property).", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "OrganisationConfigurationEntry": { "description": "Configuration updates to apply to a given organisation.", "type": "object", "properties": { "organisation": { "description": "The API key used to identify the organisation.", "type": "string" }, "properties": { "description": "The updates to carry out on organisation properties.", "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationEntry" }, "minItems": 1 } }, "required": [ "organisation", "properties" ], "additionalProperties": false }, "SystemConfigurationEntry": { "description": "Configuration updates to apply to a given system.", "type": "object", "properties": { "system": { "description": "The API key used to identify the system.", "type": "string" }, "properties": { "description": "The updates to carry out on system properties.", "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationEntry" }, "minItems": 1 } }, "required": [ "system", "properties" ], "additionalProperties": false }, "ConformanceStatementConfigurationEntry": { "description": "Configuration updates to apply for a given conformance statement.", "type": "object", "properties": { "system": { "description": "The API key used to identify the relevant system.", "type": "string" }, "actor": { "description": "The API key used to identify the relevant actor.", "type": "string" }, "properties": { "description": "The updates to carry out on the statement's properties.", "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationEntry" }, "minItems": 1 } }, "required": [ "system", "actor", "properties" ], "additionalProperties": false }, "ConfigurationEntry": { "description": "The value for configuration item identified by its unique key.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the configuration property.", "type": "string" }, "value": { "description": "The value to apply for the configuration property (if missing this signals a delete of the existing value).", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "ConfigureResponse": { "description": "The results of a configuration update.", "type": "object", "properties": { "messages": { "description": "The list of warning messages for updates that could not be carried out.", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } }, "securitySchemes": { "OrganisationApiKeyAuth": { "description": "The API key to identify a specific organisation.", "type": "apiKey", "in": "header", "name": "ITB_API_KEY" }, "CommunityApiKeyAuth": { "description": "The API key to identify a specific community.", "type": "apiKey", "in": "header", "name": "ITB_API_KEY" } } } }