{ "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": "Community management", "description": "Operations on communities, organisations and systems." }, { "name": "Configuration", "description": "Operations relevant to configuration actions." }, { "name": "Conformance statements", "description": "Operations relevant to conformance statements." }, { "name": "Domain management", "description": "Operations on domains, specifications, specification groups and actors." }, { "name": "Test sessions", "description": "Operations on test sessions." }, { "name": "Test suites", "description": "Operations on test suites." } ], "paths": { "/community": { "put": { "tags": [ "Community management" ], "summary": "Create a community.", "security": [ { "MasterApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new community.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCommunityRequest" } } } }, "responses": { "200": { "description": "Community created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "post": { "tags": [ "Community management" ], "summary": "Update the community identified by the provided authorisation API key.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The updates to apply to the target community.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCommunityRequest" } } } }, "responses": { "200": { "description": "Community updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/community/{community}": { "post": { "tags": [ "Community management" ], "summary": "Update a community.", "security": [ { "MasterApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "community", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target community." } ], "requestBody": { "description": "The updates to apply to the target community.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCommunityRequest" } } } }, "responses": { "200": { "description": "Community updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "delete": { "tags": [ "Community management" ], "summary": "Delete a community.", "security": [ { "MasterApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "community", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target community." } ], "responses": { "200": { "description": "Community deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/organisation": { "put": { "tags": [ "Community management" ], "summary": "Create an organisation.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new organisation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrganisationRequest" } } } }, "responses": { "200": { "description": "Organisation created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/organisation/{organisation}": { "post": { "tags": [ "Community management" ], "summary": "Update an organisation.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "organisation", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target organisation." } ], "requestBody": { "description": "The updates to apply to the target organisation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateOrganisationRequest" } } } }, "responses": { "200": { "description": "Organisation updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "delete": { "tags": [ "Community management" ], "summary": "Delete a community.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "organisation", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target organisation." } ], "responses": { "200": { "description": "Organisation deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/system": { "put": { "tags": [ "Community management" ], "summary": "Create a system.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new system.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSystemRequest" } } } }, "responses": { "200": { "description": "System created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } } } }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/system/{system}": { "post": { "tags": [ "Community management" ], "summary": "Update a system.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target system." } ], "requestBody": { "description": "The updates to apply to the target system.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSystemRequest" } } } }, "responses": { "200": { "description": "System updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "delete": { "tags": [ "Community management" ], "summary": "Delete a community.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "system", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target system." } ], "responses": { "200": { "description": "System deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/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" } } } } } } }, "/configure/domain": { "put": { "tags": [ "Configuration" ], "summary": "Create a domain parameter.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new domain parameter.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainParameterCreationInfo" } } } }, "responses": { "200": { "description": "Domain parameter created." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "post": { "tags": [ "Configuration" ], "summary": "Update a domain parameter.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The domain parameter's identification and updates.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainParameterUpdateInfo" } } } }, "responses": { "200": { "description": "Domain parameter updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/domain/{parameter}": { "delete": { "tags": [ "Configuration" ], "summary": "Delete a domain parameter.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "parameter", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target parameter." } ], "responses": { "200": { "description": "Parameter deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/domain/{domain}/{parameter}": { "delete": { "tags": [ "Configuration" ], "summary": "Delete a domain parameter for the given domain. This operation needs to be used when authenticating with a community API key refering to a community without a specific linked domain.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "domain", "schema": { "type": "string" }, "required": true, "description": "The API key identifying the target domain." }, { "in": "path", "name": "parameter", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target parameter." } ], "responses": { "200": { "description": "Parameter deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/organisation": { "put": { "tags": [ "Configuration" ], "summary": "Create an organisation property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new property.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationPropertyInfo" } } } }, "responses": { "200": { "description": "Property created." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "post": { "tags": [ "Configuration" ], "summary": "Update an organisation property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The property's identification and updates.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationPropertyInfo" } } } }, "responses": { "200": { "description": "Property updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/organisation/{property}": { "delete": { "tags": [ "Configuration" ], "summary": "Delete an organisation property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "property", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target property." } ], "responses": { "200": { "description": "Property deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/system": { "put": { "tags": [ "Configuration" ], "summary": "Create a system property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new property.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemPropertyInfo" } } } }, "responses": { "200": { "description": "Property created." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "post": { "tags": [ "Configuration" ], "summary": "Update a system property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The property's identification and updates.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemPropertyInfo" } } } }, "responses": { "200": { "description": "Property updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/system/{property}": { "delete": { "tags": [ "Configuration" ], "summary": "Delete a system property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "property", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target property." } ], "responses": { "200": { "description": "Property deleted." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/actor/{actor}": { "put": { "tags": [ "Configuration" ], "summary": "Create a conformance statement (actor) property definition.", "parameters": [ { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target specification actor." } ], "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The data for the new property.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatementPropertyInfo" } } } }, "responses": { "200": { "description": "Property created." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } }, "post": { "tags": [ "Configuration" ], "summary": "Update a conformance statement (actor) property definition.", "parameters": [ { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target specification actor." } ], "security": [ { "CommunityApiKeyAuth": [] } ], "requestBody": { "description": "The property's identification and updates.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatementPropertyInfo" } } } }, "responses": { "200": { "description": "Property updated." }, "400": { "description": "The received request was invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorInformation" } } } } } } }, "/configure/actor/{actor}/{property}": { "delete": { "tags": [ "Configuration" ], "summary": "Delete a conformance statement (actor) property definition.", "security": [ { "CommunityApiKeyAuth": [] } ], "parameters": [ { "in": "path", "name": "actor", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target specification actor." }, { "in": "path", "name": "property", "schema": { "type": "string" }, "required": true, "description": "The key identifying the target property." } ], "responses": { "200": { "description": "Property deleted." }, "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 }, "DomainParameterCreationInfo": { "description": "The data for the new domain parameter.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the parameter.", "type": "string" }, "value": { "description": "The value to apply for the parameter.", "type": "string" }, "description": { "description": "The parameter's description.", "type": "string" }, "inTests": { "description": "Whether the parameter should be exposed to test sessions.", "type": "boolean", "default": true }, "domain": { "description": "The API key identifying the domain of the parameter. This is required if the community API key used for authentication refers to a community that is not linked to a specific domain.", "type": "string" } }, "required": [ "key", "value" ], "additionalProperties": false }, "DomainParameterUpdateInfo": { "description": "The domain parameter's identification and updates.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the parameter.", "type": "string" }, "value": { "description": "The new value to apply for the parameter. Skip this if no update should be made.", "type": "string" }, "description": { "description": "The parameter's description. Skip this if no update should be made or set with an empty string to delete the current value.", "type": "string" }, "inTests": { "description": "Whether the parameter should be exposed to test sessions. Skip this if no update should be made.", "type": "boolean" }, "domain": { "description": "The API key identifying the domain of the parameter. This is required if the community API key used for authentication refers to a community that is not linked to a specific domain.", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "AllowedPropertyValue": { "description": "An entry for a configuration property representing an allowed value and its display label..", "type": "object", "properties": { "value": { "description": "The property value.", "type": "string" }, "label": { "description": "The property's display label.", "type": "string" } }, "required": [ "value", "label" ], "additionalProperties": false }, "OrganisationPropertyInfo": { "description": "The data for the organisation property.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the property.", "type": "string" }, "name": { "description": "The property's name. If not set this will be the same as the property's key.", "type": "string" }, "description": { "description": "The property's description.", "type": "string" }, "required": { "description": "Whether the property must be set before executing test sessions.", "type": "boolean", "default": true }, "editableByUsers": { "description": "Whether the property can be set by organisation users.", "type": "boolean", "default": true }, "inTests": { "description": "Whether the property should be exposed to test sessions.", "type": "boolean", "default": false }, "inExports": { "description": "Whether the property should be included in exports.", "type": "boolean", "default": false }, "inSelfRegistration": { "description": "Whether the property should be requested during self-registration.", "type": "boolean", "default": false }, "hidden": { "description": "Whether the property should be hidden from organisation users.", "type": "boolean", "default": false }, "allowedValues": { "description": "The list of allowed values for the property.", "type": "array", "items": { "$ref": "#/components/schemas/AllowedPropertyValue" } }, "displayOrder": { "description": "The display order of the property when presented to users.", "type": "number" }, "dependsOn": { "description": "The key of another property upon which this property's applicability depends on (see also dependsOnValue).", "type": "string" }, "dependsOnValue": { "description": "If the dependsOn property is set, this is the value that the refered-to property needs to have for this property to be considered applicable.", "type": "string" }, "defaultValue": { "description": "The default value of the property when a new organisation is created.", "type": "string" }, "domain": { "description": "The API key identifying the domain of the parameter. This is required if the community API key used for authentication refers to a community that is not linked to a specific domain.", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "SystemPropertyInfo": { "description": "The data for the system property.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the property.", "type": "string" }, "name": { "description": "The property's name. If not set this will be the same as the property's key.", "type": "string" }, "description": { "description": "The property's description.", "type": "string" }, "required": { "description": "Whether the property must be set before executing test sessions.", "type": "boolean", "default": true }, "editableByUsers": { "description": "Whether the property can be set by organisation users.", "type": "boolean", "default": true }, "inTests": { "description": "Whether the property should be exposed to test sessions.", "type": "boolean", "default": false }, "inExports": { "description": "Whether the property should be included in exports.", "type": "boolean", "default": false }, "hidden": { "description": "Whether the property should be hidden from organisation users.", "type": "boolean", "default": false }, "allowedValues": { "description": "The list of allowed values for the property.", "type": "array", "items": { "$ref": "#/components/schemas/AllowedPropertyValue" } }, "displayOrder": { "description": "The display order of the property when presented to users.", "type": "number" }, "dependsOn": { "description": "The key of another property upon which this property's applicability depends on (see also dependsOnValue).", "type": "string" }, "dependsOnValue": { "description": "If the dependsOn property is set, this is the value that the refered-to property needs to have for this property to be considered applicable.", "type": "string" }, "defaultValue": { "description": "The default value of the property when a new system is created.", "type": "string" }, "domain": { "description": "The API key identifying the domain of the parameter. This is required if the community API key used for authentication refers to a community that is not linked to a specific domain.", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "StatementPropertyInfo": { "description": "The data for the statement property.", "type": "object", "properties": { "key": { "description": "The unique key used to identify the property.", "type": "string" }, "name": { "description": "The property's name. If not set this will be the same as the property's key.", "type": "string" }, "description": { "description": "The property's description.", "type": "string" }, "required": { "description": "Whether the property must be set before executing test sessions.", "type": "boolean", "default": true }, "editableByUsers": { "description": "Whether the property can be set by organisation users.", "type": "boolean", "default": true }, "inTests": { "description": "Whether the property should be exposed to test sessions.", "type": "boolean", "default": false }, "inExports": { "description": "Whether the property should be included in exports.", "type": "boolean", "default": false }, "hidden": { "description": "Whether the property should be hidden from organisation users.", "type": "boolean", "default": false }, "allowedValues": { "description": "The list of allowed values for the property.", "type": "array", "items": { "$ref": "#/components/schemas/AllowedPropertyValue" } }, "displayOrder": { "description": "The display order of the property when presented to users.", "type": "number" }, "dependsOn": { "description": "The key of another property upon which this property's applicability depends on (see also dependsOnValue).", "type": "string" }, "dependsOnValue": { "description": "If the dependsOn property is set, this is the value that the refered-to property needs to have for this property to be considered applicable.", "type": "string" }, "defaultValue": { "description": "The default value of the property when a new conformance statement is created.", "type": "string" }, "domain": { "description": "The API key identifying the domain of the parameter. This is required if the community API key used for authentication refers to a community that is not linked to a specific domain.", "type": "string" } }, "required": [ "key" ], "additionalProperties": false }, "ApiKeyResponse": { "description": "The API key that was assigned to the creation of a new element.", "type": "object", "properties": { "apiKey": { "description": "The API key value.", "type": "string" } }, "required": [ "apiKey" ], "additionalProperties": false }, "CreateCommunityRequest": { "description": "The data used to create a new community.", "type": "object", "properties": { "shortName": { "description": "The community's short name.", "type": "string" }, "fullName": { "description": "The community's full name.", "type": "string" }, "description": { "description": "The community's description.", "type": "string" }, "supportEmail": { "description": "A support email address to receive community-specific notifications at.", "type": "string" }, "interactionNotifications": { "description": "Whether to receive notifications for pending interactions by email at the support mailbox (see supportEmail).", "type": "boolean", "default": false }, "apiKey": { "description": "The API key to set for the community. If this key is already assigned, a new one will be generated.", "type": "string" }, "domain": { "description": "The API key identifying a domain that should be linked to the community.", "type": "string" } }, "required": [ "shortName", "fullName" ], "additionalProperties": false }, "UpdateCommunityRequest": { "description": "The data used to define the updates to make to a target community.", "type": "object", "properties": { "shortName": { "description": "The community's short name. Skip this if no update should be made.", "type": "string" }, "fullName": { "description": "The community's full name. Skip this if no update should be made.", "type": "string" }, "description": { "description": "The community's description. Skip this if no update should be made or set to an empty string to remove the current value.", "type": "string" }, "supportEmail": { "description": "A support email address to receive community-specific notifications at. Skip this if no update should be made or set to an empty string to remove the current value.", "type": "string" }, "interactionNotifications": { "description": "Whether to receive notifications for pending interactions by email at the support mailbox (see supportEmail). Skip this if no update should be made.", "type": "boolean" }, "domain": { "description": "The API key identifying a domain that should be linked to the community. Skip this if no update should be made or set to an empty string to unlink the community from its existing domain (without deleting the domain).", "type": "string" } }, "additionalProperties": false }, "CreateOrganisationRequest": { "description": "The data used to create a new organisation.", "type": "object", "properties": { "shortName": { "description": "The organisation's short name.", "type": "string" }, "fullName": { "description": "The organisation's full name.", "type": "string" }, "apiKey": { "description": "The API key to set for the organisation. If this key is already assigned, a new one will be generated.", "type": "string" } }, "required": [ "shortName", "fullName" ], "additionalProperties": false }, "UpdateOrganisationRequest": { "description": "The data used to define the updates to make to a target organisation.", "type": "object", "properties": { "shortName": { "description": "The organisation's short name. Skip this if no update should be made.", "type": "string" }, "fullName": { "description": "The organisation's full name. Skip this if no update should be made.", "type": "string" } }, "additionalProperties": false }, "CreateSystemRequest": { "description": "The data used to create a new system.", "type": "object", "properties": { "shortName": { "description": "The system's short name.", "type": "string" }, "fullName": { "description": "The system's full name.", "type": "string" }, "description": { "description": "The system's description.", "type": "string" }, "version": { "description": "The system's version information.", "type": "string" }, "apiKey": { "description": "The API key to set for the system. If this key is already assigned, a new one will be generated.", "type": "string" }, "organisation": { "description": "The API key identifying the organisation in which to create the system.", "type": "string" } }, "required": [ "shortName", "fullName", "organisation" ], "additionalProperties": false }, "UpdateSystemRequest": { "description": "The data used to define the updates to make to a target system.", "type": "object", "properties": { "shortName": { "description": "The system's short name. Skip this if no update should be made.", "type": "string" }, "fullName": { "description": "The system's full name. Skip this if no update should be made.", "type": "string" }, "description": { "description": "The system's description. Skip this if no update should be made or set to the empty string to remove the current value.", "type": "string" }, "version": { "description": "The system's version information. Skip this if no update should be made or set to the empty string to remove the current value.", "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" }, "MasterApiKeyAuth": { "description": "The API key to identify as the system administrator to perform administrative tasks.", "type": "apiKey", "in": "header", "name": "ITB_API_KEY" } } } }