---
swagger: "2.0"
info:
description: "[Introduction to qTest API Specification](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/qtest_api_specification.htm)\
\ \n[How to use interactive API Doc](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/how_to_use_interactive_api_documentation.htm)\n\
\ The bearer token can be found at `[qtestUrl/p/{projectId}/portal/project#tab=resource]`\
\ under the API & SDK tab."
version: "v3.0"
title: "qTest Manager API Version 3.0"
host: "apitryout.qtestnet.com"
basePath: "/"
tags:
- name: "attachment"
description: "Attachment API"
- name: "auth-systems"
description: "Authentication Systems API"
- name: "automation-job"
description: "Automation Job API"
- name: "build"
description: "Build API"
- name: "common"
description: "Common API"
- name: "defect"
description: "Defect API"
- name: "field"
description: "Field API"
- name: "groups"
description: "User Group API"
- name: "integration-settings"
description: "Integration Settings"
- name: "login"
description: "Login API"
- name: "module"
description: "Module API"
- name: "object-link"
description: "Object Link API"
- name: "project"
description: "Project API"
- name: "release"
description: "Release API"
- name: "requirement"
description: "Requirement API"
- name: "search"
description: "Search API"
- name: "site-templates"
description: "Site Templates API"
- name: "test-case"
description: "Test Case API"
- name: "test-cycle"
description: "Test Cycle API"
- name: "test-log"
description: "Test Log API"
- name: "test-run"
description: "Test Run API"
- name: "test-suite"
description: "Test Suite API"
- name: "tosca"
description: "Tosca Integration API"
- name: "user"
description: "User API"
- name: "user-profile"
description: "User Profile API"
- name: "webhook"
description: "Webhook"
schemes:
- "https"
paths:
/api/v3.1/projects/{projectId}/test-runs/{testRunId}/auto-test-logs:
post:
tags:
- "test-log"
summary: "Submits multiple test results"
description: "To submit Automation Test Logs of multiple Test Runs\n\nqTest\
\ Manager version: 8.0.2+"
operationId: "submitAutomationTestLogs"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "test_suite: ID of the Test Suite where the submitted\
\ Test Runs will be located\n\nparent_module: In case there has\
\ been no Test Case associated with the submitted Test Run, a new automation\
\ Test Case will be created. The new Test Cases are located under a module\
\ named Automation. If you specify an ID for parent_module, the\
\ Automation module will be located under the specified module.\
\ Otherwise, the Automation module is located directly under root\n\
\nexecution_date (required): Execution date in YYYY-mm-dd\
\ format\n\ntest_logs (required): The array of TestLog objects.\
\ The below are TestLog attributes\n\nstatus (required): The automation\
\ result values that were mapped with Test Run Result in qTest automation\
\ settings\n\nexe_start_date (required): Execution start time\n\
\nexe_end_date (required): Execution end time\n\nname (required):\
\ Test Run name\n\nautomation_content (required): An XML formatted\
\ string that contains the class test/ group test/ package test\n\nattachments:\
\ An array of the Attachment objects\n\nnote: Test Log note\n\n\
test_step_logs: An of TestStepLog objects. You can specify Test\
\ Steps' order in the request. It must be continous series of numbers, starting\
\ from zero, or it will throw an error. The order will be used when the\
\ Test Case is created or updated in qTest. If the order is omitted, Test\
\ Steps will be alphabetically sorted when creating or updating Test Case\n\
\ntestcase_properties: An of Testcase properties objects. You can\
\ specify Test case properties' order in the request. \n\ntosca_guid:\
\ GUID of Tosca test case. Use for creating Tosca Test Case\n\ntosca_node_path:\
\ Node Path of Tosca test case. Use for creating Tosca Test Case\n\ntosca_guid\
\ and tosca_node_path are optional but must be specified in pair"
required: true
schema:
$ref: "#/definitions/AutomationRequest"
- name: "type"
in: "query"
description: "Always input automation for this parameter"
required: true
type: "string"
enum:
- "automation"
- name: "testRunId"
in: "path"
description: "This should always be 0 (zero) or else it will\
\ throw an exception"
required: true
type: "integer"
format: "int64"
- name: "escapeXml"
in: "query"
description: "escapeXml=true - default value. > and < in Automation\
\ Content field are encoded\n\nescapeXml=false - the Automation\
\ Content field is not encoded"
required: false
type: "boolean"
default: false
- name: "userId"
in: "query"
required: false
type: "string"
responses:
201:
description: "Test results are submitted successfully to qTest Manager\n\
\nid: ID of the submission job. You will need this Id to check\
\ the job status using GET /api/v3/projects/queue-processing/{jobId}\n\
\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
\ FAILED, PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponse"
400:
description: "It failed to submit test results to qTest Manager. Failure\
\ reasons may be: i) invalid project ID; ii) testRunId is not\
\ 0 (zero) iii) the value of parameter type is not Automation"
413:
description: ""
security:
- Authorization: []
/api/v3/admin-profiles/current:
get:
tags:
- "user-profile"
summary: "Gets current User's Admin Profile"
description: "To retrieve your Admin Profile\n\nqTest Manager version:\
\ 4+"
operationId: "getCurrent"
parameters: []
responses:
200:
description: "Return authorities list of current admin"
schema:
$ref: "#/definitions/AdminProfile"
security:
- Authorization: []
/api/v3/auth-systems:
get:
tags:
- "auth-systems"
summary: "Get multiple Authentication Systems"
description: "To get multiple Authentication Systems"
operationId: "getAll"
parameters: []
responses:
200:
description: "Return list of Authentication Systems"
schema:
$ref: "#/definitions/AuthSystemResponse"
security:
- Authorization: []
/api/v3/auth-systems/ldap/{ldapAuthConfigId}/import:
post:
tags:
- "auth-systems"
summary: "Associate Manager users with LDAP users"
description: "Associate Manager users with LDAP users authentication LDAP config"
operationId: "importLDapUsers"
parameters:
- name: "ldapAuthConfigId"
in: "path"
description: "Id of the Authentication config"
required: true
type: "integer"
format: "int64"
- name: "mergeUser"
in: "query"
description: "Option to merge LDAP account to qTest account if qTest email\
\ already exists in qTest (support true/false value, default = false)"
required: false
type: "boolean"
- in: "body"
name: "body"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/LdapUserResource"
responses:
200:
description: "Return list of success users and errors if had."
schema:
$ref: "#/definitions/ResponseWrapper"
security:
- Authorization: []
/api/v3/auth-systems/ldap/{ldapAuthConfigId}/users:
get:
tags:
- "auth-systems"
summary: "Get all LDAP users of an authentication LDAP config"
description: "Get all LDAP users of an authentication LDAP config with pagination\
\ supported. Users are mapped with qTest users won't be returned.\n\nIf pageSize\
\ and page is omitted, all users will be returned without\
\ any default paging data."
operationId: "getAllLdapUsers"
parameters:
- name: "ldapAuthConfigId"
in: "path"
description: "Id of the Authentication config"
required: true
type: "integer"
format: "int64"
- name: "pageSize"
in: "query"
description: "Number of of item count per page. If this pageSize\
\ and page is omitted, all users will be returned without\
\ any default paging data."
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "Page number that you want to get the result. If this pageSize\
\ and page is omitted, all users will be returned without\
\ any default paging data."
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "Return list of LDAP users"
schema:
$ref: "#/definitions/LDAPUsersResponse"
security:
- Authorization: []
/api/v3/automation/automation-agents:
post:
tags:
- "automation-job"
summary: "Search automation agents"
description: "To search automation agents in projects that user is assigned\
\ to \n\nfields: specify which property of Automation Agent you want\
\ to include in the response. If you omit it or specify an asterisk (*), all\
\ of following fields are included: id, name, project_id, host_id, framework,\
\ active, configuration\n\n\nquery: specify a structured query (criteria,\
\ operator and value) with one or multiple clauses to search for Automation\
\ Agents. Following are supporting criteria\n\n| Criteria | Operators | Value\
\ |\n|-----|-----|-------|\n| name, framework | <>, ~, is empty, =, !~,\
\ is not empty | string |\n |host_name | <>, ~, =, !~ | string | \n\
| id, project_id, host_id | <>, >, <, <=, >=, =| id \n | active | = | active,\
\ inactive\n\n"
operationId: "searchAutomationAgents"
produces:
- "application/json"
parameters:
- in: "body"
name: "body"
required: true
schema:
$ref: "#/definitions/AutomationArtifactSearchParams"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: ""
schema:
$ref: "#/definitions/AutomationAgentSearchResult"
security:
- Authorization: []
/api/v3/automation/jobs/schedule/create:
post:
tags:
- "automation-job"
summary: "Create a Schedule"
description: "To create a new Schedule which will be executed immediately\n\n\
NOTE: Try It Out function will not work for this API\n\n\
qTest Manager version: 6+\""
operationId: "createSchedule"
parameters:
- in: "body"
name: "body"
required: true
schema:
$ref: "#/definitions/AutomationScheduleCreationAPI"
responses:
201:
description: "Schedule is created"
schema:
type: "integer"
format: "int64"
security:
- Authorization: []
/api/v3/fields/{objectType}:
get:
tags:
- "field"
summary: "Gets all site field of an object type"
description: "To get all fields (at site level) for Release, Build, Requirement,\
\ Test Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "getAllSiteFields"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "Successfully get a list of Site Fields"
headers:
X-Item-Total:
type: "integer"
format: "int32"
description: "Total number of values available"
Link:
type: "string"
format: "uri"
description: "Contain one or more hypermedia link relations"
schema:
$ref: "#/definitions/FieldResourceSwagger"
400:
description: "Invalid data sent to get all Site Fields"
403:
description: "User does not have permission to get Site Fields"
security:
- Authorization: []
post:
tags:
- "field"
summary: "Creates a Custom Site Field of an Object Type"
description: "To create a new Site Field for Release, Build, Requirement, Test\
\ Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "createCustomSiteField"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- in: "body"
name: "body"
description: "The Site field's properties and values\n\nlabel (required):\
\ specify display name of the field\n\ndata_type (required):\
\ specify the field type. Its valid values include\n\n- 1 - Text box\n\n\
- 2 - Text area\n\n- 3 - Combo box\n\n- 4 - Date picker\n\n- 5 - User list\n\
\n- 6 - Rich text editor\n\n- 7 - Number\n\n- 8 - Check box\n\n- 9 - Date\
\ time picker\n\n- 12 - URL\n\n- 17 - Multiple selection combobox\n\nIn\
\ case you are creating a multiple picklist typed field (data_type's value\
\ is 8 or 17), you will need to specify multiple=true\n\nIn case\
\ you are creating a picklist typed field, you can specify the field's values\
\ in the allowed_values array\n\nOrder is not applicable when creating\
\ new field\n\nFor Test Steps, \n- You can not create more than 2 custom\
\ fields \n\n- You can not set field as required \n\n- Number of characters\
\ in label should be less than or equal to 16 \n\n- You can only select\
\ Rich text editor / Combo Box / User List as data_type "
required: true
schema:
$ref: "#/definitions/FieldInputResource"
responses:
201:
description: ""
schema:
$ref: "#/definitions/FieldResource"
400:
description: "Invalid data sent to create a Site Field"
403:
description: "User does not have permission to create a Site Field"
security:
- Authorization: []
/api/v3/fields/{objectType}/{fieldId}:
get:
tags:
- "field"
summary: "Gets a Custom Site Field of an Object Type"
description: "To get a custom field (at site level) for Release, Build, Requirement,\
\ Test Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "getCustomSiteField"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully get a Site Field"
schema:
$ref: "#/definitions/FieldResourceSwagger"
400:
description: "Invalid data sent to get a Site Field"
403:
description: "User does not have permission to get Site Field"
404:
description: "Field does not exist"
security:
- Authorization: []
put:
tags:
- "field"
summary: "Updates a Custom Site Field of an Object Type"
description: "To update a custom field (at site level) for Release, Build, Requirement,\
\ Test Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "updateCustomSiteField"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Site Field's updated properties & values\n\nNotes:\n\n-\
\ Not allow to update data_type\n\n- To delete a value\
\ of a Combo box/Checkbox or Multiple selection combo box, exclude that\
\ value out of \"allowed_values\"\n\n- To add more allowed_values for Site\
\ Field, refer [here](#/field/createSiteFieldAllowedValues)\n\n- To update\
\ list allowed_values of Site Field, refer [here](#/field/updateSiteFieldAllowedValues)\n\
\n- Can not set field as required for test steps\n\n- Number of characters\
\ in label should be less than or equal to 16 for test steps"
required: true
schema:
$ref: "#/definitions/FieldInputResource"
responses:
200:
description: "Successfully updated a Site Field"
schema:
$ref: "#/definitions/FieldResource"
400:
description: "Invalid data sent to update a Site Field"
403:
description: "User does not have permission to update Site Field"
404:
description: "Field does not exist"
security:
- Authorization: []
delete:
tags:
- "field"
summary: "Deletes a Custom Site Field of an Object Type"
description: "To delete a custom field (at site level) for Release, Build, Requirement,\
\ Test Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "deleteCustomSiteField"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully updated a Site Field"
schema:
type: "object"
400:
description: "Invalid data sent to update a Site Field"
403:
description: "User does not have permission to update Site Field"
404:
description: "Field does not exist"
security:
- Authorization: []
/api/v3/fields/{objectType}/{fieldId}/allowed-values:
get:
tags:
- "field"
summary: "Gets all allowed values of a Site Field"
description: "To get all allowed values of a Site Field with Combo box/Multi\
\ selection combo box/Check box/User list data type"
operationId: "getSiteFieldAllowedValues"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "Successfully get allowed values"
headers:
X-Item-Total:
type: "integer"
format: "int32"
description: "Total number of values available"
Link:
type: "string"
format: "uri"
description: "Contain one or more hypermedia link relations"
schema:
type: "array"
items:
$ref: "#/definitions/AllowedValueResource"
400:
description: "Invalid field"
403:
description: "User does not have permission to get Site Field"
404:
description: "Field does not exist"
security:
- Authorization: []
post:
tags:
- "field"
summary: "Creates allowed values of a Site Field"
description: "Creates maximum 100 allowed values of a Site Field with Combo\
\ box/Multi selection combo box/Check box data type"
operationId: "createSiteFieldAllowedValues"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/AllowedValueResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/AllowedValueResponseResource"
201:
description: "Successfully create allowed values"
400:
description: "Invalid field or value"
403:
description: "User does not have permission to create Site Field allowed\
\ value"
404:
description: "Field does not exist"
security:
- Authorization: []
/api/v3/fields/{objectType}/{fieldId}/allowed-values/{value}:
put:
tags:
- "field"
summary: "Updates an allowed value of a Site Field"
description: "Update allowed values of a Site Field with Combo box/Multi selection\
\ combo box/Check box data type"
operationId: "updateSiteFieldAllowedValues"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "value"
in: "path"
description: "ID (property \"value\") of allowed value"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
required: true
schema:
$ref: "#/definitions/AllowedValueInputResource"
responses:
200:
description: "Successfully update allowed values"
schema:
$ref: "#/definitions/CustomeResourceSupport"
400:
description: "Invalid field or value"
403:
description: "User does not have permission to update Site Field allowed\
\ value"
404:
description: "Field or allowed value does not exist"
security:
- Authorization: []
delete:
tags:
- "field"
summary: "Deletes an allowed value of a Site Field"
description: "To delete an allowed value of a Site Field with Combo box/Multi\
\ selection combo box/Check box data type"
operationId: "deleteSiteFieldValue"
parameters:
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "value"
in: "path"
description: "ID (property \"value\") of allowed value"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully delete an allowed value"
schema:
type: "object"
400:
description: "Invalid field or value"
403:
description: "User does not have permission to delete Site Field's value"
404:
description: "Field or value does not exist"
security:
- Authorization: []
/api/v3/groups:
get:
tags:
- "groups"
summary: "Get multiple UserGroups"
description: "To get multiple UserGroups"
operationId: "getAllUserGroups"
parameters: []
responses:
200:
description: "Return list of UserGroups"
schema:
type: "array"
items:
$ref: "#/definitions/UserGroupResource"
security:
- Authorization: []
post:
tags:
- "groups"
summary: "Create custom UserGroup"
description: "To create new custom UserGroup"
operationId: "createCustomUserGroup"
parameters:
- in: "body"
name: "body"
description: "name (required): Name of UserGroup\n\ndescription:\
\ Description of UserGroup\n\nis_default: Set this UserGroup as\
\ default group for new user\n\nuser_ids: List of userId will be\
\ assign to this group after created\n\nauthority_names: List of\
\ authorities for this UserGroup. Values can be: [ ROLE_ADMINCONFIGURATION,\
\ ROLE_ADMININFORMATION, ROLE_INSIGHTSEDITOR, ROLE_INSIGHTSEDITOR, ROLE_LAUNCHACCESS,\
\ ROLE_PROFILEADMIN, ROLE_PROFILEVIEWER, ROLE_PROJECTARCHIVER, ROLE_PROJECTCREATOR,\
\ ROLE_PROJECTUPDATER, ROLE_PROJECTVIEWER, ROLE_PULSEACCESS, ROLE_SITELEVELFIELD,\
\ ROLE_USERADMIN, ROLE_USERGROUPMANAGER, ROLE_ANALYTICSVIEWER ]"
required: true
schema:
$ref: "#/definitions/UserGroupResource"
responses:
200:
description: "Return newly created UserGroup"
schema:
$ref: "#/definitions/UserGroupResource"
security:
- Authorization: []
/api/v3/projects:
get:
tags:
- "project"
summary: "Gets multiple Projects"
description: "To retrieve all Projects which the requested qTest Manager account\
\ can access to\n\nqTest Manager version: 4+"
operationId: "getProjects"
parameters:
- name: "expand"
in: "query"
description: "expand=userprofile - to include your profile and permissions\
\ in each project"
required: false
type: "string"
enum:
- "userprofile"
- name: "assigned"
in: "query"
description: "assigned=true - default value. Only the projects which\
\ the requested user has access to\n\nassigned=false - Users with\
\ admin profile can use this value to retrieve all projects, regardless\
\ of having access"
required: false
type: "boolean"
- name: "page"
in: "query"
description: "By default, all projects are returned; but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: ""
headers:
X-Item-Total:
type: "integer"
format: "int32"
description: "Total number of projects available"
Link:
type: "string"
format: "uri"
description: "Contain one or more hypermedia link relations"
schema:
type: "array"
items:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
post:
tags:
- "project"
summary: "Creates a Project"
description: "To create a new Project\n\nqTest Manager version:\
\ 4+"
operationId: "createProject"
parameters:
- in: "body"
name: "body"
description: "Project created properties \n\nname: name of project\
\ \ndescription: description of project \nstatus_id: status\
\ of project \nstart_date: start date of project, eg: 2019-06-17T05:09:13.178Z\
\ \nend_date: end date of project, eg: 2019-06-27T05:09:13.178Z\
\ \nadmins: list assigned admin of project \ntemplate_id (optional):\
\ valid site template id of project. After creating a project, the valid\
\ site template filed will be applied for it \nuuid (optional):\
\ uuid of project. User can provide any string value for uuid, then they\
\ can used it for searching projects."
required: true
schema:
$ref: "#/definitions/ProjectResource"
responses:
201:
description: "successful operation"
schema:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
/api/v3/projects/queue-processing/{id}:
get:
tags:
- "test-log"
summary: "Gets a Batch Test Log Submission job's state"
description: "To check the state of a Batch Test Log Submission job. \n\nWhen\
\ you submit test results to qTest Manager using:\n\nPOST /api/v3.1/projects/{projectId}/test-runs/{testRunId}/auto-test-logs?type=automation\n\
\nor POST /api/v3/projects/{projectId}/auto-test-logs?type=automation,\
\ their response include a job ID.\n\nYou will need to use this API and the\
\ returned ID to check if the submission job has completed.\n\nJob states\
\ include IN_WAITING, IN_PROCESSING, FAILED, PENDING\
\ and SUCCESS"
operationId: "track"
parameters:
- name: "id"
in: "path"
description: "The ID of the submission job. \n\nIt is included in the response\
\ of these 2 APIs:\n\nPOST /api/v3.1/projects/{projectId}/test-runs/{testRunId}/auto-test-logs?type=automation\
\ \n\nor POST /api/v3/projects/{projectId}/auto-test-logs?type=automation"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/QueueProcessingResponse"
security:
- Authorization: []
/api/v3/projects/search:
post:
tags:
- "project"
summary: "Search for projects"
description: ""
operationId: "searchProjects"
parameters:
- in: "body"
name: "body"
description: "Project search condition properties \n\nuuid: list\
\ of uuid for searching"
required: true
schema:
$ref: "#/definitions/ProjectQueryParams"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/ProjectResource"
403:
description: "Forbidden"
security:
- Authorization: []
/api/v3/projects/{projectId}:
get:
tags:
- "project"
summary: "Gets a Project"
description: "To retrieve a specific Project"
operationId: "getProject"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "expand=userprofile - include the your profile and permissions\
\ within the project in the response"
required: false
type: "string"
enum:
- "userprofile"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
put:
tags:
- "project"
summary: "Updates a Project"
description: ""
operationId: "updateProject"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Project updated properties \n\nname (optional): name\
\ of project \ndescription (optional): description of project \n\
start_date (optional): Start date of project, eg: 2019-06-17T05:09:13.178Z\
\ \nend_date (optional): End date of project, eg: 2019-06-27T05:09:13.178Z\
\ \nadmin_ids (optional): list assigned admin ids of project \n\
uuid (optional): uuid of project. User can provide any string value\
\ for uuid, then they can used it for searching projects. \ntemplate_id\
\ (optional): site template id of project. When changing site template\
\ id, the project will be removed from old site template id and the new\
\ site template will be applied to it."
required: true
schema:
$ref: "#/definitions/ProjectUpdateResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/attachments:
get:
tags:
- "attachment"
summary: "Searches for Attachments"
description: "To query for attachments of Releases, Builds,\
\ Requirements, Test Cases, Test Logs, Test\
\ Steps or Defects"
operationId: "search"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "type"
in: "query"
description: "Its valid values include releases, builds,\
\ requirements, test-cases, test-steps, test-logs\
\ or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-steps"
- "test-logs"
- "defects"
- name: "ids"
in: "query"
description: "List of object IDs (of the same type as specified in the parameter\
\ above), separated by commas"
required: false
type: "array"
items:
type: "integer"
format: "int64"
collectionFormat: "multi"
- name: "author"
in: "query"
description: "ID of the user who created the attachment"
required: false
type: "integer"
format: "int64"
- name: "createdDate"
in: "query"
description: "Its format is: {operator} {createdDate in timestamp\
\ or UTC}\n\nThe operator can be one of the following\
\ values:\n\nlt: less than the given date\n\ngt: greater than\
\ given date\n\neq: equal to the given date\n\nle: less than\
\ or equal to the given date\n\nge: greater then or equal to the\
\ given date"
required: false
type: "string"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "By default, the first page is returned but you can specify any\
\ page number to retrieve attachments"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "Return attachment list of Release, Build, Requirement, Test\
\ Case, Test Log, Test Step and Defect."
schema:
$ref: "#/definitions/PagedResourceAttachmentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/auto-test-logs:
post:
tags:
- "test-log"
summary: "Submits multiple test results and specifies Test Design and Test Execution\
\ tree structures"
description: "This is the extended version of this API POST /api/v3.1/projects/{projectId}/test-runs/{testRunId}/auto-test-logs.\
\ It allows submitting multiple test logs in one API request, and creating\
\ Test Cases and Test Runs in hierarchical structure which is specified in\
\ the request body\n\nImportant: This API does not update\
\ names and locations of existing Test Cases and Test Runs\n\nKnown\
\ Issue: This API currently does not update Test Case Version when\
\ Test Case Properties are updated, and Tricentis is working on a fix that\
\ will be shipped in an upcoming release"
operationId: "submitAutomationTestLogsWithTreeStructure"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "test_cycle (required): PID or ID of the parent Test\
\ Cycle in qTest Manager where submitted Test Runs will be located\n\ntest_logs\
\ (required): The array of TestLog objects. The below are TestLog attributes\n\
\nTestLog attributes:\n\n- test_case_version_id:\
\ ID of the associated Test Case's version. In case the Test Run has not\
\ existed, this field should not be included or it will cause an error\n\
\n- status (required): The automation result values that were mapped\
\ with Test Run Result in qTest automation settings\n\n- exe_start_date\
\ (required): Execution start time\n\n- exe_end_date (required):\
\ Execution end time\n\n- module_names (required): an array of\
\ folder names which will be used when creating hierarchical structure in\
\ Test Design and Test Execution trees. In Test Design tree, the first folder\
\ will be created as a Module directly under the tree root. Other folders\
\ will be created as sub-Modules under their preceding folders in the array.\
\ In Test Execution tree, the first folder will be created as a Test Cycle\
\ directly under the parent Test Cycle which is specified in the API request.\
\ Other folders will be created as sub Test Cycles under their preceding\
\ folders in the array. If there is a folder in the tree with matching name\
\ and location, the API will not create a duplicate one\n\n- name (required):\
\ It will be used when creating Test Cases and Test Runs as their\
\ names. It will not be used for updating Test Case and Test Run names\n\
\n- automation_content (required): Specify a unique string to each\
\ Test Case. It acts as Test Case fingerprint. Before adding a Test Log,\
\ qTest Manager will look up Automation Content of existing Test Cases.\
\ If it can find an existing Test Case, the Test Log will be associated\
\ with that Test Case. Otherwise, a new Test Case will be created with the\
\ submitted Test Log. It is also be used when creating Test Runs. If qTest\
\ Manager finds an existing Test Run with matching Automation Content and\
\ location in Test Execution tree, it will not create a duplicate one. If\
\ there is an existing Test Run with matching Automation Content but it\
\ is located in different Test Cycles, qTest Manager will create a new Test\
\ Run in the specified folder\n\n- attachments: an array of the\
\ Attachment objects\n\n- test_step_logs: an array of TestStepLog\
\ objects. You can specify Test Steps' order in the request. It must be\
\ continuous series of numbers, starting from zero, or it will throw an\
\ error. The order will be used when the Test Case is created or updated\
\ in qTest. If the order is omitted, Test Steps will be alphabetically sorted\
\ when creating or updating Test Case\n\n- tosca_guid: GUID of\
\ Tosca test case. Use for creating Tosca Test Case\n\n- tosca_node_path:\
\ Node Path of Tosca test case. Use for creating Tosca Test Case\n\n- tosca_guid\
\ and tosca_node_path are optional but must be specified in pair\n\
\nTest Step Log attributes\n\n- description (required):\
\ Description of the Test Step\n\n- expected_result (required):\
\ Expected result of the Test Step\n\n- actual_result (required):\
\ Actual result of the Test Step\n\n- status (required): The automation\
\ result values that were mapped with Test Run Result in qTest automation\
\ settings\n\n- order: Specify the order of Test Steps. It must\
\ be continuous series of numbers, starting from zero, or it will throw\
\ an error. The order will be used when the Test Case is created or updated\
\ in qTest. If the order is omitted, Test Steps will be alphabetically sorted\
\ when creating or updating Test Case\n\n- exe_date: Execution\
\ date\n\n- customFieldInfo: Test Step Custom Field Columns. It\
\ is used to add data to test step custom fields if they exist. You have\
\ to specify id (Id of Custom Field), value (value for\
\ Custom Field of the test step), type (Field Type of Custom Field),\
\ and name (Name of Custom Field)"
required: true
schema:
$ref: "#/definitions/AutomationRequest"
- name: "type"
in: "query"
description: "always use type=automation for this parameter"
required: true
type: "string"
enum:
- "automation"
- name: "escapeXml"
in: "query"
description: "escapeXml=true - default value. > and < in Automation\
\ Content field are encoded\n\nescapeXml=false - the Automation\
\ Content field is not encoded"
required: false
type: "boolean"
- name: "userId"
in: "query"
required: false
type: "string"
responses:
201:
description: "Automation Test Logs submitted,\n\nid: ID of the\
\ submission job. You will need this Id to check the job status using\
\ GET /api/v3/projects/queue-processing/{jobId}\n\nstate:\
\ Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED,\
\ PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponse"
400:
description: "Bad request - Unexpected error occurred"
413:
description: ""
security:
- Authorization: []
/api/v3/projects/{projectId}/builds:
get:
tags:
- "build"
summary: "Gets multiple Builds"
description: "To retrieve all Builds under a Release\n\nqTest Manager\
\ version: 6+"
operationId: "getBuilds"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "releaseId"
in: "query"
description: "ID of the parent Release"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Returns a list of builds"
schema:
type: "array"
items:
$ref: "#/definitions/BuildResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
post:
tags:
- "build"
summary: "Creates a Build"
description: "To create a Build under a parent Release\n\nqTest Manager\
\ version: 4+"
operationId: "create"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "name (required): Build name\n\nrelease (required):\
\ The parent Release under which the Build will be located\n\nproperties:\
\ An array of field-value pairs"
required: true
schema:
$ref: "#/definitions/BuildResource"
responses:
201:
description: "Build created successfully"
schema:
$ref: "#/definitions/BuildResource"
400:
description: "Bad Request - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/builds/{buildId}:
get:
tags:
- "build"
summary: "Gets a Build"
description: "To retrieve a BuildqTest Manager version: 6+"
operationId: "get"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "buildId"
in: "path"
description: "ID of the Build"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Returns a build with the specified id"
schema:
$ref: "#/definitions/BuildResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
put:
tags:
- "build"
summary: "Updates a Build"
description: "To update a Build\n\nqTest Manager version: 6+"
operationId: "update"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "buildId"
in: "path"
description: "ID of the Build"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Build's updated properties"
required: true
schema:
$ref: "#/definitions/BuildResource"
responses:
200:
description: "Build updated successfully"
schema:
$ref: "#/definitions/BuildResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
delete:
tags:
- "build"
summary: "Deletes a Build"
description: "To delete a Build\n\nqTest Manager version: 6+"
operationId: "delete"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "buildId"
in: "path"
description: "ID of the Build to delete"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Build deleted successfully"
schema:
type: "object"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/comments:
post:
tags:
- "search"
summary: "Queries Comments"
description: "To search for comments\n\nqTest Manager version:\
\ 7.6+"
operationId: "searchCommentWithQuery"
produces:
- "application/json"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "object_type (required): valid values include requirements,\
\ test-cases, test-runs and defects\n\nobject: ID of the object\
\ from which you want to retrieve comments\n\nauthors: ID of the\
\ user who made the comments\n\nstart: This value needs to be in\
\ ISO Date format\n\nend: This value needs to be in ISO Date format"
required: true
schema:
$ref: "#/definitions/CommentQueryParams"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/QueryCommentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/defects:
post:
tags:
- "defect"
summary: "Submit a Defect"
description: "To submit an internal Defect"
operationId: "submitDefect"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "properties: a JSONArray of field-value pairs\n\nattachments:\
\ a JSONArray of Attachment objects"
required: true
schema:
$ref: "#/definitions/DefectResource"
responses:
201:
description: "Successfully submitted a defect."
schema:
$ref: "#/definitions/DefectResource"
400:
description: "Field value constraint is invalid."
403:
description: "User does not have permission to submit a defect."
500:
description: "Internal Server Error."
security:
- Authorization: []
/api/v3/projects/{projectId}/defects/last-change:
get:
tags:
- "defect"
summary: "Gets recently updated Defects"
description: "To retrieve Defects which have been recently updated after a specified\
\ time"
operationId: "getLastChanged"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "startTime"
in: "query"
description: "The specified time since when the Defects have been updated.\
\ It needs to be URL encoded: yyyy-MM-dd'T'HH:mm:ss.SSSZ or yyyy-MM-dd'T'HH:mm:ssZZ"
required: true
type: "string"
- name: "endTime"
in: "query"
description: "Do not support at this time. Use the current time only."
required: false
type: "string"
- name: "size"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100. You can specify your custom number in this parameter.\
\ The maximum page size is 999."
required: false
type: "integer"
default: 100
format: "int32"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/DefectResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/defects/{defectId}:
get:
tags:
- "defect"
summary: "Gets a Defect"
description: "To retrieve a Defect\n\nqTest Manager version:\
\ 6+"
operationId: "getDefect"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "defectId"
in: "path"
description: "ID of the defect."
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/DefectResource"
security:
- Authorization: []
put:
tags:
- "defect"
summary: "Updates a Defect"
description: "To update a Defect\n\nqTest Manager version:\
\ 6+"
operationId: "updateDefect"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "defectId"
in: "path"
description: "ID of the Defect which needs to be updated."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Defect's updated properties"
required: true
schema:
$ref: "#/definitions/DefectResource"
responses:
200:
description: "Successfully updated a defect."
schema:
$ref: "#/definitions/DefectResource"
400:
description: "Field value is invalid."
403:
description: "User does not have permission to update defect."
404:
description: "Defect with @defectId does not exist."
500:
description: "Internal Server Error."
security:
- Authorization: []
/api/v3/projects/{projectId}/defects/{idOrKey}/comments:
get:
tags:
- "defect"
summary: "Gets all Comments of a Defect"
description: "To retrieve all Comments of a Defect\n\nqTest Manager\
\ version: 7.5+"
operationId: "getComments"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Defect whose comments you want to retrieve"
required: true
type: "string"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/PagedResourceCommentResource"
security:
- Authorization: []
post:
tags:
- "defect"
summary: "Adds a Comment to a Defect"
description: "To add a Comment to a Defect\n\nqTest Manager version:\
\ 7.5+"
operationId: "addComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Defect"
required: true
type: "string"
- in: "body"
name: "body"
description: "The Comment's content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/defects/{idOrKey}/comments/{commentId}:
get:
tags:
- "defect"
summary: "Gets a Comment of a Defect"
description: "To retrieve a specific Comment of a Defect\n\nqTest Manager\
\ version: 7.5+"
operationId: "getDefectCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Defect whose comment you want to retrieve"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
put:
tags:
- "defect"
summary: "Updates a Comment of a Defect"
description: "To update a specific Comment of a Defect\n\nqTest Manager\
\ version: 7.5+"
operationId: "updateComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the defect whose comment you want to update"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Given resource to update a comment."
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
delete:
tags:
- "defect"
summary: "Deletes a Comment of a Defect"
description: "To delete a specific Comment of a Defect\n\nqTest Manager\
\ version: 7.5+"
operationId: "deleteComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Defect whose Comment you want to delete"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/histories:
post:
tags:
- "search"
summary: "Queries objects' histories"
description: "To query histories of Requirements, Test Cases, Test Runs and\
\ internal Defects\n\nqTest Manager version: 7.6+"
operationId: "queryHistories"
produces:
- "application/json"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "object_type (required): valid values include requirements,\
\ test-cases, test-runs, or defects\n\nfields:\
\ specify which object fields you want to include in the response. If you\
\ omit it or specify an asterisk (*), all fields are included\n\nobject_query:\
\ specify a structured query to search for qTest objects. Refer to\
\ attribute query in the Request Body of Queries Objects\
\ API\n\nquery: specify a structured query to retrieve histories\
\ of objects specified in attribute object_query above. You can\
\ use operators and and or to combine multiple criteria.\
\ Only these 2 criteria are supported:\n\n i) created: it can\
\ be used for querying by updated date of the object. Its values need to\
\ be in ISO Date format. Applicable operator include: =, <>, <= and >=\n\
\n ii) author: it can be used for querying by ID of the users\
\ who made the update. Applicable operators include: = and <>"
required: true
schema:
$ref: "#/definitions/HistoryQueryParams"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "Return list of Requirements, Test Cases, Test Runs and internal\
\ Defects history"
schema:
$ref: "#/definitions/ArtifactHistoryResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/linked-artifacts:
get:
tags:
- "object-link"
summary: "Gets associated objects of given objects"
description: "To retrieve associated objects of given objects\n\nqTest\
\ Manager version: 7.5+"
operationId: "find"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "type"
in: "query"
description: "Valid values include releases, builds, requirements,test-cases,\
\ test-runs, test-logs, test-steps or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-runs"
- "test-logs"
- "test-steps"
- "defects"
- name: "ids"
in: "query"
description: "IDs of objects whose links you want to retrieve"
required: false
type: "array"
items:
type: "integer"
format: "int64"
collectionFormat: "multi"
- name: "pids"
in: "query"
description: "In case of type=defects, you can specify a list of\
\ external defect id in this parameters.\n\nIt cannot be used for other\
\ types"
required: false
type: "array"
items:
type: "string"
collectionFormat: "multi"
- name: "TRofSharedprojects"
in: "query"
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/LinkedArtifactContainer"
security:
- Authorization: []
/api/v3/projects/{projectId}/modules:
get:
tags:
- "module"
summary: "Gets multiple Modules"
description: "To search for Modules under root or sub-Modules under a parent\
\ Module\n\nqTest Manager version: 6+"
operationId: "getSubModulesOf"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the parent Module. Leave it blank to retrieve Modules\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "search"
in: "query"
description: "The free-text to search for Modules by names. You can utilize\
\ this parameter to search for Modules. Leave it blank to retrieve all Modules\
\ under root or the parent Module"
required: false
type: "string"
- name: "expand"
in: "query"
required: false
type: "string"
enum:
- "descendants"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/ModuleResource"
security:
- Authorization: []
post:
tags:
- "module"
summary: "Creates a Module"
description: "To create a Module under root or a sub-Module under a parent Module\n\
\nqTest Manager version: 4+"
operationId: "createModule"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "The parent Module which will contain the newly created one.\
\ If it is not specified, the newly created module is located under root\n\
\nUse this parameter if your qTest Manager version is 6+. For older versions,\
\ use parent_id in the request body"
required: false
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "name (required): the Module name\n\nshared:\
\ Specify shared=true to share this Module to other projects. Only\
\ use it if Test Case Sharing feature is enabled in your project\n\ntosca_guid:\
\ Tosca folder GUID. Use for creating Module and link with Tosca folder.\
\ This property must be provided along with tosca_node_path, or\
\ it will fail to create module.\n\ntosca_node_path: Tosca folder\
\ node path. Use for creating Module and link with Tosca folder. This property\
\ must be provided along with tosca_guid, or it will fail to create\
\ module."
required: true
schema:
$ref: "#/definitions/ModuleResource"
responses:
201:
description: "Module is created"
schema:
$ref: "#/definitions/ModuleResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/modules/{moduleId}:
get:
tags:
- "module"
summary: "Gets a Module"
description: "To retrieve a Module\n\nqTest Manager version: 6+"
operationId: "getModule"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "moduleId"
in: "path"
description: "ID of the Module"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "Specify expand=descendants to include the Module's\
\ sub and grand-sub Modules in the response"
required: false
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ModuleResource"
security:
- Authorization: []
put:
tags:
- "module"
summary: "Updates a Module"
description: "To update a Module or move it to another parent Module"
operationId: "updateModule"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "moduleId"
in: "path"
description: "ID of the Module"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Module's update properties"
required: true
schema:
$ref: "#/definitions/ModuleResource"
- name: "parentId"
in: "query"
description: "ID of the parent Module which the Module will be moved to\n\n\
Important: If you use this parameter, the request body\
\ will be ignored. That means the Module is being moved but it will not\
\ be updated with the properties specified in the request body"
required: false
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ModuleResource"
security:
- Authorization: []
delete:
tags:
- "module"
summary: "Deletes a Module"
description: "To delete a Module\n\nqTest Manager version:\
\ 6+"
operationId: "deleteModule"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "moduleId"
in: "path"
description: "ID of Module to delete"
required: true
type: "integer"
format: "int64"
- name: "force"
in: "query"
description: "force=true - delete the Module and its children\n\n\
force=false - default value. Only delete the Module if it contains no sub\
\ Modules or Test Cases"
required: false
type: "boolean"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Message"
security:
- Authorization: []
/api/v3/projects/{projectId}/releases:
get:
tags:
- "release"
summary: "Gets multiple Releases"
description: "To retrieve Releases in a project\n\nqTest Manager version:\
\ 4+"
operationId: "getAllReleases"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "includeClosed"
in: "query"
description: "includeClosed=false - default value. Closed\
\ Releases are excluded from the response\n\nincludeClosed=true\
\ - Closed Release are included in the response"
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
security:
- Authorization: []
post:
tags:
- "release"
summary: "Creates a Release"
description: "To create a Release\n\nqTest Manager version:\
\ 4+"
operationId: "createRelease"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Release's properties"
required: true
schema:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
responses:
201:
description: "Release is created"
schema:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/releases/{releaseId}:
get:
tags:
- "release"
summary: "Gets a Release"
description: "To retrieve a Release\n\nqTest Manager version:\
\ 4+"
operationId: "getReleaseById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "releaseId"
in: "path"
description: "ID of the Release"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
security:
- Authorization: []
put:
tags:
- "release"
summary: "Updates a Release"
description: "To update a Release\n\nqTest Manager version:\
\ 6+"
operationId: "updateReleaseById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "releaseId"
in: "path"
description: "ID of the Release which needs to be updated"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Release's updated properties"
required: true
schema:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
security:
- Authorization: []
delete:
tags:
- "release"
summary: "Delete a release"
description: "To delete a Release"
operationId: "deleteReleaseById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "releaseId"
in: "path"
description: "ID of the Release which needs to be deleted\n\nqTest\
\ Manager version: 6+"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements:
get:
tags:
- "requirement"
summary: "Gets multiple Requirements"
description: "To retrieve all Requirements or Requirements under a specific\
\ Module"
operationId: "getRequirements"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "Specify the parent Module's ID to retrieve all of its Requirements\
\ which are located directly under the parent Module"
required: false
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve requirements."
required: false
type: "integer"
default: 1
format: "int64"
- name: "size"
in: "query"
description: "The result is paginated. By the default, the number of requirements\
\ in each page is 20.\n\nYou can specify your custom number in this parameter."
required: false
type: "integer"
default: 20
format: "int32"
- name: "includeExternalProperties"
in: "query"
description: "By default, Requirement external properties are not included\
\ in the response. Specify includeExternalProperties=true to include them."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/RequirementResource"
security:
- Authorization: []
post:
tags:
- "requirement"
summary: "Creates a Requirement"
description: "To create a new Requirement\n\nqTest Manager version:\
\ 4+"
operationId: "createRequirement"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "
name *: Requirement name
properties:\
\ An array of field-value pairs
"
required: true
schema:
$ref: "#/definitions/RequirementResource"
- name: "parentId"
in: "query"
description: "ID of the parent Module under which the Requirement will be\
\ located"
required: false
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/RequirementResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/trace-matrix-report:
get:
tags:
- "requirement"
summary: "Gets Requirement Traceability Matrix Report"
description: "To retrieve a report of Requirements with their covering Test\
\ Cases"
operationId: "getPublicTraceabilityMatrixReport"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve requirements."
required: false
type: "integer"
default: 1
format: "int64"
- name: "size"
in: "query"
description: "The result is paginated. By default, the number of requirements\
\ in each page is 20.\n\nYou can specify your custom number in this parameter\
\ and the maximum number is 999."
required: false
type: "integer"
default: 20
format: "int32"
- name: "fieldIds"
in: "query"
description: "ID(s) of requirement fields (system or custom fields) which\
\ you would like to retrieve.\n\nThey are separated by commas."
required: false
type: "string"
- name: "lastModifiedFrom"
in: "query"
required: false
type: "string"
pattern: "\\d{4}-\\d{2}-\\d{2}"
- name: "lastModifiedTo"
in: "query"
required: false
type: "string"
pattern: "\\d{4}-\\d{2}-\\d{2}"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TraceabilityRequirement"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/{idOrKey}/comments:
get:
tags:
- "requirement"
summary: "Gets all Comments of a Requirement"
description: "To retrieve all comments of a Requirement\n\nqTest Manager\
\ version: 7.6+"
operationId: "getAllRequirementComments"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Requirement whose comments you want to retrieve"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/PagedResourceCommentResource"
security:
- Authorization: []
post:
tags:
- "requirement"
summary: "Adds a Comment to a Requirement"
description: "To add a comment to a Requirement\n\nqTest Manager version:\
\ 7.5+"
operationId: "addRequirementComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Requirement."
required: true
type: "string"
- in: "body"
name: "body"
description: "The comment's properties and its content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/{idOrKey}/comments/{commentId}:
get:
tags:
- "requirement"
summary: "Gets a Comment of a Requirement"
description: "To retrieve a comment of a Requirement\n\nqTest Manager\
\ version: 7.5+"
operationId: "getRequirementCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Requirement whose comment you want to delete"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "The comment's ID"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
put:
tags:
- "requirement"
summary: "Updates a Comment of a Requirement"
description: "To modify a comment of a Requirement\n\nqTest Manager\
\ version: 7.5+"
operationId: "updateRequirementCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Requirement whose comment you want to update"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "The comment's ID"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The comment's updated content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
delete:
tags:
- "requirement"
summary: "Deletes a Comment of a Requirement"
description: "To delete a comment of a Requirement\n\nqTest Manager\
\ version: 7.5+"
operationId: "deleteRequirementCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Requirement whose comment you want to delete"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "The comment's ID"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/{requirementId}:
get:
tags:
- "requirement"
summary: "Gets a Requirement"
description: "To retrieve a Requirement\n\nqTest Manager version:\
\ 6+"
operationId: "getRequirement"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "requirementId"
in: "path"
description: "ID of the Requirement which you want to retrieve."
required: true
type: "integer"
format: "int64"
- name: "includeExternalProperties"
in: "query"
description: "By default, Requirement external properties are not included\
\ in the response. Specify includeExternalProperties=true to include them."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/RequirementResource"
security:
- Authorization: []
put:
tags:
- "requirement"
summary: "Updates a Requirement"
description: "To update properties of an Requirement or to move it to other\
\ parent Module"
operationId: "updateRequirement"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "requirementId"
in: "path"
description: "ID of the Requirement which needs to be updated."
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the parent Module to which the Requirement will be moved\
\ to"
required: false
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "name: * Requirement name.\n\nproperties:\
\ An array of field-value pairs"
required: true
schema:
$ref: "#/definitions/RequirementResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/RequirementResource"
security:
- Authorization: []
delete:
tags:
- "requirement"
summary: "Deletes a Requirement"
description: "To delete a Requirement\n\nqTest Manager version:\
\ 6+"
operationId: "deleteRequirementById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "requirementId"
in: "path"
description: "ID of the Requirement which needs to be deleted."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/{requirementId}/defects:
get:
tags:
- "requirement"
summary: "To get defects by requirementId"
description: ""
operationId: "getDefectsByRequirmentId"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "requirementId"
in: "path"
description: "requirementId"
required: true
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/LinkedDefectArtifactResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/requirements/{requirementId}/test-runs:
get:
tags:
- "requirement"
summary: "To get all test runs associated to requirement"
description: ""
operationId: "getTestRunsByRequirmentId"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "requirementId"
in: "path"
description: "requirementId"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
required: false
type: "string"
- name: "includeLatestLog"
in: "query"
required: false
type: "boolean"
default: false
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestRunNoCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/search:
post:
tags:
- "search"
summary: "Queries objects"
description: "This API mimics the Data Query function of qTest Manager web app.\
\ It provides the capability to query Requirements, Test Cases, Test Runs\
\ and internal Defects"
operationId: "searchArtifact"
produces:
- "application/json"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "object_type (required): Its value can be releases,\
\ requirements, test-cases, test-runs, test-suites,\
\ test-cycles, test-logs, builds, or defects.\n\
\nfields: specify which object fields you want to include in the\
\ response. If you omit it or specify an asterisk (*), all fields are included.\n\
\nquery: specify a structured query to search for qTest Manager\
\ objects. Basically, you can use the Query Summary text as in qTest web\
\ app for this attribute.\n\nIMPORTANT: When using Query\
\ Summary to specify the query, you will need to modify the Query Summary\
\ in some special cases as below:\n\n- If there are spaces in the criteria\
\ name, put it between ' ' (single quotation marks).\n\n- There need to\
\ be spaces between a criteria, an operator, and a value.\n\n- You can use\
\ field name or field ID in the query.\n\n- For the fields with datetime\
\ as the data type, convert the values to ISO Date Time format.\n\n- Operator\
\ \"IN\" for fields with datetime as the data type will search for the values\
\ within this range: inputted date time <= value <= (inputted date\
\ time + 23h59m59s).\n\n- Affected Release/Build: You can use either\
\ Affected Release or Affected Build as criteria in a query. This criterion\
\ can be used only for defects.\n\n- Target Release/Build:\
\ You can use either Target Release or Target Build as criteria in a query.\
\ This criterion can be used for requirements, test-runs,\
\ defects, test-logs, and test-cycles. Release\
\ Id should be passed as Negative value.\n\n- Fixed Release/Build:\
\ You can use either Fixed Release or Fixed Build as criteria in a query.\
\ This criterion can be used only for defects.\n\n- Subscribers:\
\ Use user ID instead of username in the query for this criteria.\n\n- You\
\ need to use id or pid for the following fields when using them in a query:\
\ Affected Release, Affected Build, Target Release, Target Build, Fixed\
\ Release, and Fixed Build.\n\n- Use ~ for operator contains,\
\ and !~ for operator not contains. Eg: instead of Name\
\ contains \"login\", use Name ~ \"login\"\n\n- Use operator\
\ is not empty in the following way: is 'not empty'.\
\ Eg: \"Name is 'not empty'\"\n\n- For builds and test-cycles, you can use\
\ the following additional criterion: Created Date and Last\
\ Modified Date in a query. Eg: 'Created Date' > '2021-05-07T03:15:37.652Z'\n\
\n- For test-logs, you can use the following additional criterion: Execution\
\ Start Date and Execution End Date in a query. Eg: 'Execution\
\ Start Date' > '2021-05-07T03:15:37.652Z'"
required: true
schema:
$ref: "#/definitions/ArtifactSearchParams"
- name: "appendTestSteps"
in: "query"
description: "By default, For Test Case(s) test steps are not included in\
\ the response. Specify appendTestSteps=true to include them."
required: false
type: "boolean"
- name: "includeExternalProperties"
in: "query"
description: "By default, For Requirement(s) external properties are not included\
\ in the response. Specify includeExternalProperties=true to include them."
required: false
type: "boolean"
default: false
- name: "includeTestLogProperties"
in: "query"
description: "By default, For Test Log(s) properties and Test step logs are\
\ not included in the response. Specify expandTestLogProperties=true to\
\ include them."
required: false
type: "boolean"
default: false
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "Return list of Requirements, Test Cases, Test Runs and internal\
\ Defects"
schema:
$ref: "#/definitions/PagedResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections:
get:
tags:
- "integration-settings"
summary: "Get all Jira connections of a project"
description: "Get all Jira connections of a project\n\nqTest Manager\
\ version: 9.7+"
operationId: "getConnections"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationConnectionVM"
security:
- Authorization: []
post:
tags:
- "integration-settings"
summary: "Add a new Jira connection"
description: "Add a new Jira connection\n\nqTest Manager version:\
\ 9.7+"
operationId: "addNewConnection"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "external_system (required): Input Jira\n\n\
connection_name (required): Name of connection\n\nserver_url\
\ (required): your Jira server URL\n\nweb_url: Your Jira web\
\ URL (for Jira server only)\n\nauthentication_type (required):\
\ Input Token if you are using password or API token, or OAuth\
\ if you are using Jira OAuth for authentication\n\nusername: If\
\ authentication_type=Token, then input your Jira username. If\
\ authentication_type=OAuth, then input apikey\n\npassword:\
\ Input your Jira password or API token (only required if authentication_type=Token)\n\
\njiraToken, jiraSecret and jiraVerifier these are required\
\ if authentication_type=Oauth. You will need to use our API to Get\
\ OAuth Authorize URL described below to retrieve values for these\
\ fields."
required: true
schema:
$ref: "#/definitions/IntegrationConnection"
responses:
200:
description: "successful operation\n\nAfter created, the connection is Inactive\
\ (status=false)"
schema:
$ref: "#/definitions/NewIntegrationConnectionInfo"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/oauthAuthorizeURL:
get:
tags:
- "integration-settings"
summary: "OAuth Authorize URL"
description: "OAuth Authorize URL (for Jira Server or DC only).\n\nqTest\
\ Manager version: 9.7+"
operationId: "getAuthorizeURL"
parameters:
- name: "projectId"
in: "path"
description: "this must be 0 (zero)"
required: true
type: "integer"
format: "int64"
- name: "serverUrl"
in: "query"
description: "your Jira's Server URL"
required: true
type: "string"
responses:
200:
description: "successful operation\n\nFrom the response, open the authorizeUrl\
\ in a web browser then grant the access and get the Verifier. You will\
\ need the Verifier and jiraToken and jiraSecret\
\ when adding a new Jira connection with OAuth"
schema:
$ref: "#/definitions/TokenSecretVerifierHolder"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}:
put:
tags:
- "integration-settings"
summary: "Activate or deactivate a Jira connection"
description: "Activate or deactivate a Jira connection\n\nqTest Manager\
\ version: 9.7+"
operationId: "updateIntegrationConnectionStatus"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "active"
in: "query"
description: "Input true to activate a connection, or false\
\ to deactivate it"
required: true
type: "string"
responses:
default:
description: "successful operation"
security:
- Authorization: []
delete:
tags:
- "integration-settings"
summary: "Delete a Jira connection"
description: "Delete a Jira connection\n\nqTest Manager version:\
\ 9.7+"
operationId: "deleteConnection"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/defect:
put:
tags:
- "integration-settings"
summary: "Enable or disable populating Jira Unlinked Defects of a Jira connection"
description: "Enable or disable populating Jira Unlinked Defects of a Jira connection\n\
\nqTest Manager version: 9.7+"
operationId: "configurePopulatingJiraUnlinkedDefects"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "storeUnlinkedDefects"
in: "query"
description: "Input true to populate unlinked Jira Defects, or false\
\ to disable this feature"
required: false
type: "string"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/defect/mappings:
get:
tags:
- "integration-settings"
summary: "Get Jira defect mappings of a Jira connection"
description: "Get Jira defect mappings of a Jira connection\n\nqTest\
\ Manager version: 9.7+"
operationId: "getDefectMappings"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project. Use this to retrieve mappings with this\
\ Jira project only"
required: false
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of a Jira issue type. Use this to retrieve mappings with\
\ this Jira issue type"
required: false
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationAutoFillMappingVM"
security:
- Authorization: []
post:
tags:
- "integration-settings"
summary: "Add a defect mapping to a Jira connection"
description: "Add a defect mapping to a Jira connection\n\nqTest Manager\
\ version: 9.7+"
operationId: "addNewDefectMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project. Use this to retrieve mappings with this\
\ Jira project only"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of a Jira issue type. Use this to retrieve mappings with\
\ this Jira issue type only"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationAutoFillMappingVM"
security:
- Authorization: []
put:
tags:
- "integration-settings"
summary: "Update a defect mapping of Jira connection"
description: "Update a defect mapping of Jira connection\n\nqTest Manager\
\ version: 9.7+"
operationId: "updateDefectMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of the Jira issue type\n\n externalProjectId and externalIssueTypeId\
\ are used to identify a defect mapping and cannot be modified"
required: true
type: "string"
- in: "body"
name: "body"
description: "sendAttachmentToJira: send test log and test step log\
\ attachments to linked Jira Defects. Valid values include: True, False\n\
\nconfigures: Auto filling configuration for Defect submission\
\ to Jira. This is an array of JSON objects each of which consists of a\
\ Jira field Id (externalFieldId) and qTest fields (qTestFieldIds)\
\ to be auto filled to the Jira field
You can only config auto fill\
\ for Jira text typed fields
You can auto fill multiple qTest fields\
\ to one Jira fields. Use comma without a following space\
\ to separate the fields
These following qTest fields can be configured\
\ to be auto filled to Jira fields (use these field names exactly as mentioned\
\ below instead of their IDs in qTestFieldIds): Assigned To, Description,\
\ Environment, Execution Type, Planned End, Planned Start, Submitter, Target\
\ Release/Build, Test Case Version, Test Data Source, Name, Precondition,\
\ Test Case Description, Session URL, Session Description, Session Environment,\
\ Test Run URL
"
required: true
schema:
$ref: "#/definitions/IntegrationAutoFillMappingVM"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationAutoFillMappingVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/refreshFieldSettings:
post:
tags:
- "integration-settings"
summary: "Trigger retrieving latest field settings from a JIRA connection"
description: "Trigger retrieving the latest Defects/Requirements field settings\
\ from Jira\n\nqTest Manager version: 9.7+"
operationId: "refreshFieldSettings"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "artifact"
in: "query"
description: "Single value. Valid values include: Defects, Requirements"
required: true
type: "string"
- name: "mappingId"
in: "query"
description: "ID of the mapping. Only required if artifact=Requirements"
required: false
type: "integer"
format: "int64"
responses:
200:
description: "The latest JIRA field settings (The sample below represents\
\ the case when artifact=REQUIREMENT)"
schema:
type: "array"
items:
$ref: "#/definitions/IntegrationFieldMapVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release:
put:
tags:
- "integration-settings"
summary: "Enable or disable Release Integration feature of a Jira connection"
description: "Enable or disable Release Integration feature\n\nqTest\
\ Manager version: 9.7+"
operationId: "toggleReleaseIntegration"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "active"
in: "query"
description: "Input true to enable Release integration, or false\
\ to disable it"
required: false
type: "string"
- name: "autoFilterTestRun"
in: "query"
description: "select or deselect the checkbox Auto-filter Test Runs on\
\ Jira iframe to match Fix Version/Sprint of Jira issue. Valid values\
\ include: True, False"
required: false
type: "string"
- name: "mergeDuplicatedFixVersions"
in: "query"
description: "select or deselect the checkbox Merge all Jira Fix versions\
\ with existing qTest Releases that have the same name into a single Release\
\ and link to all Jira projects. Valid values include: True, False"
required: false
type: "string"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release/mappings:
get:
tags:
- "integration-settings"
summary: "Get Jira release mappings of a Jira connection"
description: "Get Jira release mappings of a Jira connection\n\nqTest\
\ Manager version: 9.7+"
operationId: "getReleaseMappings"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project. Use this to retrieve mappings with this\
\ Jira project only"
required: false
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "Valid values include: fixVersions, Sprint (case-sensitive)"
required: false
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/IntegrationReleaseMappingResponse"
security:
- Authorization: []
post:
tags:
- "integration-settings"
summary: "Add a new Jira release mapping to a Jira connection"
description: "Add a new Jira release mapping to a Jira connection. \n\nqTest\
\ Manager version: 9.7+"
operationId: "addNewReleaseMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project. You will need to make API calls to Jira\
\ to get its project IDs"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "valid values include: fixVersions, Sprint (case-sensitive)"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationReleaseMappingResponse"
security:
- Authorization: []
put:
tags:
- "integration-settings"
summary: "Update a Release Mapping of a Jira connection"
description: "To configure a Release Mapping of a Jira connection. \n\nqTest\
\ Manager version: 9.7+"
operationId: "configureReleaseMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "valid values include: fixVersions, Sprint (case-sensitive)\n\
\n externalProjectId and externalIssueTypeId are used to identify a release\
\ mapping and cannot be modified"
required: true
type: "string"
- in: "body"
name: "body"
description: "data_retrieval_options: If externalIssueTypeId=fixVersions,\
\ valid values include: released, unreleased. If externalIssueTypeId=fixVersions,\
\ valid values include: active, future, completed\n\nauto_update_release_scope:\
\ Select to automatically update scope of imported Releases in qTest. Valid\
\ values include: True, False"
required: true
schema:
$ref: "#/definitions/IntegrationReleaseConfigurationVM"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/IntegrationReleaseMappingResponse"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/requirement:
put:
tags:
- "integration-settings"
summary: "Enable or disable a Requirement Integration feature of a Jira connection"
description: "Enable or disable a Requirement Integration feature of a Jira\
\ connection\n\nqTest Manager version: 9.7+"
operationId: "toggleRequirementIntegration"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "active"
in: "query"
description: "Input true to enable the feature, or false\
\ to disable it"
required: false
type: "boolean"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/requirement/mappings:
get:
tags:
- "integration-settings"
summary: "Get requirement mappings of a Jira connection"
description: "Get requirement mappings of a Jira connection\n\nqTest\
\ Manager version: 9.7+"
operationId: "retrieveAllRequirementMappingsOfConnection"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of the Jira project. You will need to make API calls to Jira\
\ to get its project IDs"
required: false
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of the Jira issue type. You will need to make API calls to\
\ Jira to get its issue type IDs"
required: false
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/RequirementMapping"
security:
- Authorization: []
post:
tags:
- "integration-settings"
summary: "Add a requirement mapping to a Jira connection"
description: "Add a requirement mapping to a Jira connection\n\nqTest\
\ Manager version: 9.7+"
operationId: "addNewRequirementMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project. You will need to make API calls to Jira\
\ to retrieve its project IDs"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of a Jira issue type. You will need to make API calls to\
\ Jira to retrieve its issue type IDs"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/RequirementMapping"
security:
- Authorization: []
put:
tags:
- "integration-settings"
summary: "Update a requirement mapping of a Jira connection"
description: "To configure a requirement mapping of a Jira connection\n\nqTest\
\ Manager version: 9.7+"
operationId: "configureRequirementMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of a Jira issue type\n\n externalProjectId and externalIssueTypeId\
\ are used to identify a release mapping and cannot be modified"
required: true
type: "string"
- in: "body"
name: "body"
description: "external_filter: ID of a Jira filter whose Jira issues\
\ will be imported to qTest as Requirements.\n\nexternal_field_1_id\
\ and external_field_2_id:Jira keys of 2 Jira\
\ fields that are used to organize imported Requirements\n\nactive_external_fields:\
\ Jira keys of Jira fields that will show up in qTest requirement\
\ page (Jira read-only properties panel). You can specify a list of Jira\
\ fields, separated by comma without a following space"
required: true
schema:
$ref: "#/definitions/RequirementMapping"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/RequirementMapping"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/retrieve:
get:
tags:
- "integration-settings"
summary: "Trigger data retrieval from an integrated Jira system"
description: "Trigger data retrieval from an integrated Jira system\n\nqTest\
\ Manager version: 9.7+"
operationId: "triggerRetrievingDataForConnection"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "artifact"
in: "query"
description: "Valid values include: Defects, Requirements, Releases"
required: true
type: "string"
responses:
200:
description: "successful operation. Its response includes a job ID so you\
\ can check when the data retrieval is done by using this API endpoint:\
\ GET /api/v3/projects/queue-processing/{jobId}"
schema:
$ref: "#/definitions/QueueProcessingResponseFetchDataVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/{artifact}/mappings:
delete:
tags:
- "integration-settings"
summary: "Remove a Mapping of a Jira connection"
description: "Remove a Mapping of a Jira connection\n\nqTest Manager\
\ version: 9.7+"
operationId: "removeMapping"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "connectionId"
in: "path"
description: "ID of the Jira connection"
required: true
type: "integer"
format: "int64"
- name: "artifact"
in: "path"
description: "Valid values can be: Defect, Requirement, Release"
required: true
type: "string"
- name: "externalProjectId"
in: "query"
description: "ID of a Jira project"
required: true
type: "string"
- name: "externalIssueTypeId"
in: "query"
description: "ID of a Jira issue type. \n\n externalProjectId and externalIssueTypeId\
\ are used to identify a mapping"
required: true
type: "string"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/jira-integration/defect/retrieve:
post:
tags:
- "integration-settings"
summary: "Trigger defect retrieval from an integrated Jira system"
description: ""
operationId: "triggerRetrievingDefectDataForConnection"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "PID of Jira defects"
required: true
schema:
type: "array"
items:
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/QueueProcessingResponse"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/custom-fields/active:
post:
tags:
- "common"
summary: "Update active or inactive custom fields of an Object Type"
description: "To update active or inactive custom fields of an Object Type"
operationId: "updateCustomFieldStatus"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- in: "body"
name: "body"
description: "Given resource to update custom fields."
required: true
schema:
type: "array"
items:
$ref: "#/definitions/FieldResource"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/FieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/fields:
get:
tags:
- "field"
summary: "Gets all Fields of an Object Type"
description: "To retrieve Fields of an Object Type\n\nqTest Manager\
\ version: 4+"
operationId: "getFields"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "includeInactive"
in: "query"
description: "By default inactive Fields are excluded from the response. Specify\
\ includeInactive=true to include inactive fields"
required: false
type: "boolean"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/FieldResource"
security:
- Authorization: []
post:
tags:
- "field"
summary: "Creates a Custom Field of an Object Type"
description: "To create a new custom Field for Release, Build, Requirement,\
\ Test Case, Test Suite, Test Run, or Defect"
operationId: "createCustomField"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The field's properties and values\n\ndata_type (required):\
\ specify the field type. Its valid values include\n\n- 1 - Text box\n\n\
- 2 - Text area\n\n- 3 - Combo box\n\n- 4 - Date picker\n\n- 5 - User list\n\
\n- 6 - Rich text editor\n\n- 7 - Number\n\n- 8 - Check box\n\n- 9 - Date\
\ time picker\n\n- 12 - URL\n\n- 17 - Multiple selection combobox\n\nIn\
\ case you are creating a multiple picklist typed field (data_type's value\
\ is 8 or 17), you will need to specify multiple=true\n\nIn case\
\ you are creating a picklist typed field, you can specify the field's values\
\ in the allowed_values array"
required: true
schema:
$ref: "#/definitions/FieldResource"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
responses:
201:
description: "Field is created"
schema:
$ref: "#/definitions/FieldResource"
400:
description: "Invalid data sent to create Field"
500:
description: "Internal Server Error while create Field"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/fields/{fieldId}:
get:
tags:
- "field"
summary: "Gets a Custom Field of an Object Type"
description: "To get a custom field (at project level) for Release, Build, Requirement,\
\ Test Case, Test Step, Test Suite, Test Run, or Defect"
operationId: "getCustomField"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully get a Field"
schema:
$ref: "#/definitions/FieldResourceSwagger"
400:
description: "Invalid data sent to get a Field"
403:
description: "User does not have permission to get Field"
404:
description: "Project or Field does not exist"
security:
- Authorization: []
put:
tags:
- "field"
summary: "Updates a Custom Field of an Object Type"
description: "To update a custom field (at project level) for Release, Build,\
\ Requirement, Test Case, Test Suite, Test Run, or Defect"
operationId: "updateCustomField"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Field's updated properties & values\n\nNotes:\n\n- Not allow\
\ to update data_type\n\n- To delete a value of a Combo\
\ box/Checkbox or Multiple selection combo box, exclude that value out of\
\ \"allowed_values\"\n\n- To add more allowed_values for Project Field,\
\ refer [here](#/field/createProjectFieldAllowedValues) \n\n- To update\
\ list allowed_values of Project Field, refer [here](#/field/updateProjectFieldAllowedValues)"
required: true
schema:
$ref: "#/definitions/FieldInputResource"
responses:
200:
description: "Successfully updated a Field"
schema:
$ref: "#/definitions/FieldResource"
400:
description: "Invalid data sent to update a Field"
403:
description: "User does not have permission to update Field"
404:
description: "Project or Field does not exist"
security:
- Authorization: []
delete:
tags:
- "field"
summary: "Deletes a Custom Field of an Object Type"
description: "To delete a custom field (at project level) for Release, Build,\
\ Requirement, Test Case, Test Suite, Test Run, or Defect"
operationId: "deleteCustomField"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- name: "fieldId"
in: "path"
description: "ID of the custom field"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully deleted a Field"
schema:
type: "object"
400:
description: "Invalid data sent to update a Field"
403:
description: "User does not have permission to update Field"
404:
description: "Project or Field does not exist"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/fields/{fieldId}/allowed-values:
get:
tags:
- "field"
summary: "Gets all allowed values of a Project Field"
description: "To get all allowed values of a Project Field with Combo box/Multi\
\ selection combo box/Check box/User list data type"
operationId: "getProjectFieldAllowedValues"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "Successfully get allowed values"
headers:
X-Item-Total:
type: "integer"
format: "int32"
description: "Total number of values available"
Link:
type: "string"
format: "uri"
description: "Contain one or more hypermedia link relations"
schema:
type: "array"
items:
$ref: "#/definitions/AllowedValueResource"
400:
description: "Invalid field"
403:
description: "User does not have permission to get Project Field"
404:
description: "Field does not exist"
security:
- Authorization: []
post:
tags:
- "field"
summary: "Creates allowed values of a Project Field"
description: "Creates maximum 100 allowed values of a Project Field with Combo\
\ box/Multi selection combo box/Check box data type"
operationId: "createProjectFieldAllowedValues"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/AllowedValueResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/AllowedValueResponseResource"
201:
description: "Successfully create allowed values"
400:
description: "Invalid field"
403:
description: "User does not have permission to create Project Field allowed\
\ value"
404:
description: "Field does not exist"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/fields/{fieldId}/allowed-values/{value}:
put:
tags:
- "field"
summary: "Updates an allowed value of a Project Field"
description: "Update allowed values of a Project Field with Combo box/Multi\
\ selection combo box/Check box data type"
operationId: "updateProjectFieldAllowedValues"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "value"
in: "path"
description: "ID (property \"value\") of allowed value"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
required: true
schema:
$ref: "#/definitions/AllowedValueInputResource"
responses:
200:
description: "Successfully update allowed values"
schema:
type: "object"
400:
description: "Invalid field or value"
403:
description: "User does not have permission to update Project Field allowed\
\ value"
404:
description: "Field or allowed value does not exist"
security:
- Authorization: []
delete:
tags:
- "field"
summary: "Deletes an allowed value of a Project Field"
description: "To delete an allowed value of a Field (at project level) with\
\ Combo box/Multi selection combo box/Check box data type"
operationId: "deleteProjectFieldValue"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- name: "fieldId"
in: "path"
description: "ID of the field"
required: true
type: "integer"
format: "int64"
- name: "value"
in: "path"
description: "ID (property \"value\") of allowed value"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successfully delete an allowed value"
schema:
type: "object"
400:
description: "Invalid field or value"
403:
description: "User does not have permission to delete Field's value"
404:
description: "Field or value does not exist"
security:
- Authorization: []
/api/v3/projects/{projectId}/settings/{objectType}/system-fields/{fieldId}:
post:
tags:
- "common"
summary: "Edit System Field of an Object Type by the field"
description: "To edit System Field of an Object Type by the field"
operationId: "editSystemField"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "fieldId"
in: "path"
description: "ID of the field."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Given resource to edit a system field."
required: true
schema:
$ref: "#/definitions/FieldResource"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-steps, defects, test-suites and test-runs"
required: true
type: "string"
enum:
- "requirements"
- "test-cases"
- "defects"
- "test-runs"
- "test-suites"
- "releases"
- "builds"
- "test-steps"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/FieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases:
get:
tags:
- "test-case"
summary: "Gets multiple Test Cases"
description: "To retrieve all Test Cases or Test Cases which are located directly\
\ under a Module"
operationId: "getTestCases"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "Module ID"
required: false
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned. However, you can specify\
\ any page number to retrieve test cases."
required: false
type: "integer"
default: 1
format: "int64"
- name: "size"
in: "query"
description: "The result is paginated. By the default, the number of requirements\
\ in each page is 20.\n\nYou can specify your custom number in this parameter."
required: false
type: "integer"
default: 20
format: "int32"
- name: "expandProps"
in: "query"
description: "By default, Test Case properties are included in the response.\
\ specify expandProps=false to exclude them"
required: false
type: "boolean"
default: true
- name: "expandSteps"
in: "query"
description: "By default, Test Steps are excluded from the response body.\
\ Input expandSteps=true to include Test Steps"
required: false
type: "boolean"
default: false
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
- name: "utc"
in: "query"
required: false
type: "boolean"
default: false
- name: "modifiedAfter"
in: "query"
required: false
type: "string"
default: "all"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
post:
tags:
- "test-case"
summary: "Creates a Test Case"
description: "To create a Test Case\n\nqTest Manager version:\
\ 4+"
operationId: "createTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Test Case properties, Test Steps along with custom field information(if\
\ any), Attachments and other information to create a Test Case.\n\nIf parent_id\
\ is omitted, the Test Case will be created under \"Created via API\" Module.\n\
\ntosca_guid: GUID of Tosca test case. Use for creating Tosca Test\
\ Case.\n\ntosca_node_path: Node Path of Tosca test case. Use for\
\ creating Tosca Test Case.\n\ntosca_guid and tosca_node_path\
\ are optional but must be specified in pair\n\nSupport create test case\
\ with Parameters by inputting parameters identifier in teststep's description\
\ with sample like below. Parameters will be automatically added to current\
\ project.\n\n {\n \
\ \"description\": \"Description [~param1] with [~param2].\"\n \
\ ...\n {"
required: true
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
- name: "agentId"
in: "query"
required: false
type: "string"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
- name: "aiGenerated"
in: "query"
description: "Indicates that the contents of the Test Step were created using\
\ an Artificial Intelligence service."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/update/testcases:
put:
tags:
- "test-case"
summary: "Updates multiple test cases"
description: "To update multiple Test Cases\n\nqTest Manager version:\
\ 6+"
operationId: "updateMultipleTestCases"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Test Case properties for all the test cases, Test Steps along\
\ with custom field information(if any) to update the Test Case.\n\nSupport\
\ update test case with Parameters by inputting parameters identifier in\
\ teststep's description with sample like below. Parameters will\
\ be automatically added to current project.\n\n \
\ {\n \"description\": \"Description\
\ [~param1] with [~param2].\"\n \
\ ...\n {"
required: true
schema:
type: "object"
additionalProperties:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{idOrKey}/comments:
get:
tags:
- "test-case"
summary: "Gets all Comments of a Test Case"
description: "To retrieve all comments of a Test Case\n\nqTest Manager\
\ version: 7.5+"
operationId: "getTestCaseComments"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Case whose comments you want to retrieve"
required: true
type: "string"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/PagedResourceCommentResource"
security:
- Authorization: []
post:
tags:
- "test-case"
summary: "Adds a Comment to a Test Case"
description: "To add a Comment to a Test Case\n\nqTest Manager version:\
\ 7.5+"
operationId: "addTestCaseComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Case"
required: true
type: "string"
- in: "body"
name: "body"
description: "The comment's properties and its content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{idOrKey}/comments/{commentId}:
get:
tags:
- "test-case"
summary: "Gets a Comment of a Test Case"
description: "To retrieve a comment of a Test Case\n\nqTest Manager\
\ version: 7.5+"
operationId: "getTestCaseCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Case"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
put:
tags:
- "test-case"
summary: "Updates a Comment of a Test Case"
description: "To modify a comment of a Test Case\n\nqTest Manager version:\
\ 7.5+"
operationId: "updateTestCaseComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Case"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The comment's updated content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
delete:
tags:
- "test-case"
summary: "Deletes a Comment of a Test Case"
description: "To delete a comment of a Test Case\n\nqTest Manager version:\
\ 7.5+"
operationId: "deleteTestCaseComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Case"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment."
required: true
type: "integer"
format: "int64"
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}:
get:
tags:
- "test-case"
summary: "Gets a Test Case"
description: "To retrieve a Test Case\n\nqTest Manager version:\
\ 6+"
operationId: "getTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "PID or ID of the Test Case"
required: true
type: "string"
- name: "versionId"
in: "query"
description: "ID of the Test Case version"
required: false
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "By default, Test Steps are excluded from the response. Specify\
\ expand=teststep to include Test Steps"
required: false
type: "string"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
put:
tags:
- "test-case"
summary: "Updates a Test Case"
description: "To update a Test Case\n\nqTest Manager version:\
\ 6+"
operationId: "updateTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case which needs to be updated."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Test Case properties, Test Steps along with custom field information(if\
\ any) to update the Test Case.\n\nSupport update test case with Parameters\
\ by inputting parameters identifier in teststep's description\
\ with sample like below. Parameters will be automatically added to current\
\ project.\n\n {\n \
\ \"description\": \"Description [~param1] with [~param2].\"\n \
\ ...\n {"
required: true
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
delete:
tags:
- "test-case"
summary: "Deletes a Test Case"
description: "To delete Test Case\n\nqTest Manager version:\
\ 6+"
operationId: "deleteTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case which needs to be deleted."
required: true
type: "integer"
format: "int64"
responses:
200:
description: ""
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/approve:
put:
tags:
- "test-case"
summary: "Approves a Test Case"
description: "To approve a Test Case\n\nqTest Manager version:\
\ 7.4+"
operationId: "approveTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/test-steps:
get:
tags:
- "test-case"
summary: "Gets Test Steps of a Test Case"
description: "To retrieve all Test Steps of a Test Case's latest version\n\n\
qTest Manager version: 6+"
operationId: "getTestSteps"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
post:
tags:
- "test-case"
summary: "Creates a Test Step"
description: "To add a Test Step to a Test Case's latest version\n\nqTest\
\ Manager version: 6+"
operationId: "addTestStep"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Given resource will add or create a test step and its CustomField\
\ columns details.\n\nSupport create test step with Parameters by inputting\
\ parameters identifier in teststep's description with sample like\
\ below. Parameters will be automatically added to current project.\n\n\
{\n \
\ \"description\": \"Description [~param1] with [~param2].\"\n \
\ ...\n {"
required: true
schema:
$ref: "#/definitions/TestStepResource"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/test-steps/{stepId}:
get:
tags:
- "test-case"
summary: "Gets a Test Step"
description: "To retrieve a Test Step of a Test Case's latest version\n\nqTest\
\ Manager version: 6+"
operationId: "getTestStep"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "stepId"
in: "path"
description: "ID of the test step. \n\nThe ObjectId of customFieldInfo is\
\ used as a StepId here."
required: true
type: "integer"
format: "int64"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
put:
tags:
- "test-case"
summary: "Update a Test Step"
description: "To update a Test Step of a Test Case's latest version\n\nqTest\
\ Manager version: 6+"
operationId: "updateTestStep"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "stepId"
in: "path"
description: "ID of the Test Step"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Updated content of the Test Step for test case ID or PID \n\n\
This Shows the updated CustomFields id, as well as you will get the updated\
\ stepId which will be ObjectId.\n\nSupport update test step with Parameters\
\ by inputting parameters identifier in teststep's description\
\ with sample like below. Parameters will be automatically added to current\
\ project.\n\n {\n \
\ \"description\": \"Description [~param1] with [~param2].\"\n \
\ ...\n {"
required: true
schema:
$ref: "#/definitions/TestStepResource"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
delete:
tags:
- "test-case"
summary: "Deletes a Test Step"
description: "To delete a test step of a Test Case\n\nqTest Manager\
\ version: 6+"
operationId: "deleteTestStep"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "stepId"
in: "path"
description: "ID of the Test Step"
required: true
type: "integer"
format: "int64"
- name: "updateVersion"
in: "query"
description: "If specified updateVersion=true, then the test case version\
\ will be updated when the test step is deleted."
required: false
type: "boolean"
default: true
responses:
default:
description: "successful operation"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/vera/approve:
put:
tags:
- "test-case"
summary: "test-case.vera.approve"
description: ""
operationId: "approveTestCaseByVera"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/versions:
get:
tags:
- "test-case"
summary: "Gets all versions of a Test Case"
description: "Get all versions of a Test Case.\n\nExample:\n\nAPI returns all\
\ approved major test case versions and the last unapproved minor version\
\ if there is one.\n\n
if version history is 1.0, 1.1, 2.0, 2.1, 2.2, 3.0,\
\ 3.1, 3.2; it will only return versions 1.0, 2.0, 3.0 and 3.2
if\
\ the version history is 1.0, 1.1, 2.0, 2.1, 2.2, 3.0; it will only return\
\ versions 1.0, 2.0, and 3.0
if the version history is 0.1, 0.2, 0.3,\
\ 0.4; it will only return version 0.4
qTest Manager version:\
\ 7.4+"
operationId: "getVersions"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the test case"
required: true
type: "integer"
format: "int64"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/versions/{versionId}:
get:
tags:
- "test-case"
summary: "Gets a version of a Test Case"
description: "To retrieve a specific version of a Test Case\n\nqTest\
\ Manager version: 4+"
operationId: "getTestCaseVersionById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "versionId"
in: "path"
description: "ID of the Test Case version"
required: true
type: "integer"
format: "int64"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cases/{testCaseId}/versions/{versionId}/test-steps:
get:
tags:
- "test-case"
summary: "Gets Test Steps of a Test Case version"
description: "To retrieve all Test Steps of a specific Test Case version"
operationId: "getTestStepsByVersion"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "versionId"
in: "path"
description: "ID of the Test Case version"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "when you Specify expand=calledteststep \n\nIt will\
\ include Test Steps of the called Test Cases in your response."
required: false
type: "string"
enum:
- "calledteststep"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cycles:
get:
tags:
- "test-cycle"
summary: "Gets multiple Test Cycles"
description: "To retrieve Test Cycles which are located directly under root\
\ or a Release/Test Cycle"
operationId: "getTestCycles"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the Release or Test Cycle which directly contains the\
\ Test Cycles you are retrieving. Input 0 (zero) to get Test Cycles directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "The artifact type of the parent folder. Valid values include\
\ release, test-cycle or root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- name: "expand"
in: "query"
description: "Specify expand=descendants to retrieve the Test Cycles'\
\ sub and grand-sub Cycles/Suites"
required: false
type: "string"
enum:
- "descendants"
- name: "tosca"
in: "query"
description: "tosca"
required: false
type: "boolean"
enum:
- "true/false"
- name: "page"
in: "query"
description: "Specify any page number to retrieve Test Cycles"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "Specify any page size to retrieve Test Cycles. If a negative\
\ value is provided and no page number is specified, all Test Cycles will\
\ be retrieved."
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestCycleResource"
security:
- Authorization: []
post:
tags:
- "test-cycle"
summary: "Create a Test Cycle"
description: "To create a Test Cycle\n\nqTest Manager version:\
\ 6+"
operationId: "createCycle"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Given resource to create a test cycle."
required: true
schema:
$ref: "#/definitions/TestCycleResource"
- name: "parentId"
in: "query"
description: "ID of the Release or Test Cycle under which the newly created\
\ Test Cycle will be located. \n\nUse 0 (zero) to create the Test Cycle\
\ under the root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "The artifact type of the parent folder. Valid values include\
\ release, test-cycle or root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
responses:
201:
description: "Test Cycle is created"
schema:
$ref: "#/definitions/TestCycleResource"
400:
description: "Bad Request if invalid input value in body"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-cycles/{testCycleId}:
get:
tags:
- "test-cycle"
summary: "Gets a Test Cycle"
description: "To retrieve a Test Cycle\n\nqTest Manager version:\
\ 6+"
operationId: "getTestCycle"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCycleId"
in: "path"
description: "ID of the Test Cycle which you want to retrieve."
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "Specify expand=descendants to include its sub and grand-sub\
\ Test Cycles and Test Suites in the response"
required: false
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCycleResource"
security:
- Authorization: []
put:
tags:
- "test-cycle"
summary: "Updates a Test Cycle"
description: "To update a Test Cycle or move it to another container\n\nqTest\
\ Manager version: 6+"
operationId: "updateCycle"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCycleId"
in: "path"
description: "ID of the Test Cycle which needs to be updated."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Test Cycle's updated properties"
required: true
schema:
$ref: "#/definitions/TestCycleResource"
- name: "parentId"
in: "query"
description: "ID of a Release or parent Test Cycle which the updated Test\
\ Cycle will be moved to. Input 0 (zero) to move the Test Cycle to under\
\ root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "The artifact type of the parent folder to which the Test Cycle\
\ will be moved to. Valid values include release, test-cycle\
\ or root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestCycleResource"
security:
- Authorization: []
delete:
tags:
- "test-cycle"
summary: "Deletes a Test Cycle"
description: "To delete a Test Cycle\n\nqTest Manager version:\
\ 6+"
operationId: "deleteCycle"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCycleId"
in: "path"
description: "ID of the Test Cycle which needs to be deleted."
required: true
type: "integer"
format: "int64"
- name: "force"
in: "query"
description: "The Test Cycle can only be deleted if it contains no children.\
\ Specify force=true to delete the Test Cycle and its children"
required: false
type: "boolean"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Message"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs:
get:
tags:
- "test-run"
summary: "Gets multiple Test Runs"
description: "To retrieve all Test Runs under root or under a container (Release,\
\ Test Cycle or Test Suite)\n\nqTest Manager version: 6+"
operationId: "getOf"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the container (Release, Test Cycle or Test Suite)\n\n\
Input 0 (zero) to retrieve Test Runs directly under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
- name: "expand"
in: "query"
description: "Specify expand=descendants to include all Test Runs\
\ which are directly or indirectly under the container"
required: false
type: "string"
- name: "includeToscaProperties"
in: "query"
description: "By default, Tosca properties of Test Run (imported from Tosca)\
\ are not included in the response. Specify includeToscaProperties=true\
\ to include them.\n\n (tosca_guid, tosca_node_path, tosca_workspace_url,\
\ tosca_testevent_guid)"
required: false
type: "boolean"
default: false
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestRunListResource"
security:
- Authorization: []
post:
tags:
- "test-run"
summary: "Creates a Test Run"
description: "To create a Test Run under root or a container (Release, Test\
\ Cycle or Test Suite)\n\nqTest Manager version: 6+You can\
\ optionally specify a parent in the request parameter to create its test\
\ runs.\n\nThe associated Test Case is specified in the request body"
operationId: "createTestRun"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Test Run's properties and its associated Test Case"
required: true
schema:
$ref: "#/definitions/TestRunWithCustomFieldResource"
- name: "parentId"
in: "query"
description: "ID of the container\n\nInput 0 (zero) to get Test Runs directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle, and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
responses:
201:
description: "successful operation"
schema:
$ref: "#/definitions/TestRunWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/dataset:
post:
tags:
- "test-run"
summary: "Create multiple Test Runs with Parameter values from dataset."
description: "To create multiple Test Runs with parameter values under root\
\ or a container (Release, Test Cycle or Test Suite). Number of test runs\
\ can be created depend on number_of_rows property and it should not more\
\ than 100."
operationId: "addTestRunWithParametersDataset"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the container\n\nInput 0 (zero) to get Test Runs directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle, and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
- in: "body"
name: "body"
description: "The Test Run's properties, its associated Test Case and specific\
\ data set \n\nname (optional): All test runs will be created with\
\ the same name if provided. If not provided, test run name = test case\
\ name + [increased number, starting from 1] \n\nproperties (optional):\
\ All test runs will be created with the same property list if provided.\
\ If not provided, default property values will be used. \n\ntest_case\
\ attributes:\n\nid (required): id of testcase \n\ntest_case_version_id\
\ (optional): Version ID of Testcase. If not specify, latest value\
\ will be used. For shared test case, only accept approved version \n\n\
dataset_id: Dataset id use for generate test runs. Dataset must\
\ be active and contains all parameters inside all test case steps. Dataset\
\ has at least 1 data row. \n\nfrom_row: Must be less or equal\
\ max rows in dataset. \n\nnumber_of_rows: number of test run can\
\ be create must be less or equal ((max rows - from_row) +1) and must be\
\ less than 100."
required: true
schema:
$ref: "#/definitions/TestRunWithParameterCreateByDatasetResource"
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You\
\ will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\
\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
\ FAILED, PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponseTestRunDataVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/manually:
post:
tags:
- "test-run"
summary: "Create multiple Test Runs with Parameter values manual"
description: "To create multiple Test Runs with parameter values under root\
\ or a container (Release, Test Cycle or Test Suite). Maximum number of test\
\ runs can be created is 100."
operationId: "addTestRunWithParameters"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the container\n\nInput 0 (zero) to get Test Runs directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle, and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
- in: "body"
name: "body"
description: "The Test Run's properties, its associated Test Case and list\
\ of Test runs \n\nname (optional): All test runs will be created\
\ with the same name if provided. If not provided, test run name = test\
\ case name + [increased number, starting from 1] \n\nproperties (optional):\
\ All test runs will be created with the same property list if provided.\
\ If not provided, default property values will be used. \n\ntest_case\
\ attributes:\n\nid (required): id of testcase \n\ntest_case_version_id\
\ (optional): Version ID of Testcase. If not specify, latest value\
\ will be used. For shared test case, only accept approved version \n\n\
test_runs (required): list of test runs will be created by this\
\ API. For each test run, it will have list of test steps (by providing\
\ test step id) and their parameter values for each step e.g.(\"description_parameter_values\"\
, and \"expected_parameter_values\"). \n\nYou no need to specify\
\ combined_type and number_of_combinations in this api."
required: true
schema:
$ref: "#/definitions/TestRunWithParameterCreateManualResource"
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You\
\ will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\
\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
\ FAILED, PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponseTestRunDataVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/randomize:
post:
tags:
- "test-run"
summary: "Create multiple Test Runs with Parameter values random from selection\
\ combine type."
description: "To create multiple Test Runs with parameter values under root\
\ or a container (Release, Test Cycle or Test Suite). Maximum number of test\
\ runs can be created depend on combine type."
operationId: "addTestRunWithParametersRandomize"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the container\n\nInput 0 (zero) to get Test Runs directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle, and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
- in: "body"
name: "body"
description: "The Test Run's properties, its associated Test Case and combine\
\ type, number of combination \n\nname (optional): All test runs\
\ will be created with the same name if provided. If not provided, test\
\ run name = test case name + [increased number, starting from 1] \n\nproperties\
\ (optional): All test runs will be created with the same property\
\ list if provided. If not provided, default property values will be used.\
\ \n\ntest_case attributes:\n\nid (required):\
\ id of testcase \n\ntest_case_version_id (optional): Version ID\
\ of Testcase. If not specify, latest value will be used. For shared test\
\ case, only accept approved version \n\ncombined_type: combine\
\ type for generate test runs with random test run value. Values can specify\
\ for this property are: 1 (for unique_value ) OR 0\
\ (for unique_data ). \n\nnumber_of_combinations: number of test\
\ run can be create must be less or equal max possible created combinations\
\ based on selected combination_type and must less than 100."
required: true
schema:
$ref: "#/definitions/TestRunWithParameterCreateRandomResource"
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You\
\ will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\
\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
\ FAILED, PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponseTestRunDataVM"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/execution-statuses:
get:
tags:
- "test-run"
summary: "Gets Test Run statuses"
description: "Gets Test Run statuses"
operationId: "getStatusValuable"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/StatusResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/subhierarchy:
get:
tags:
- "test-run"
summary: "Gets a Sub Hierarchy"
description: "To retrieve a Sub Hierarchy of a container (root, release, test-cycle)\
\ \n\nqTest Manager version: 9.3.4+"
operationId: "getSubhierachy"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "parentType"
required: false
type: "string"
- name: "parentId"
in: "query"
description: "parentId"
required: false
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/AutomationObjectTree"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments:
get:
tags:
- "test-run"
summary: "Gets all Comments of a Test Run"
description: "To retrieve all Comments of a Test Run\n\nqTest Manager\
\ version: 7.5+"
operationId: "getTestRunComments"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Run"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/PagedResourceCommentResource"
security:
- Authorization: []
post:
tags:
- "test-run"
summary: "Adds a Comment to a Test Run"
description: "To add a Comment to a Test Run\n\nqTest Manager version:\
\ 7.5+"
operationId: "addTestRunComment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "The PID or ID of the Test Run."
required: true
type: "string"
- in: "body"
name: "body"
description: "The Comment's content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments/{commentId}:
get:
tags:
- "test-run"
summary: "Gets a Comment from a Test Run"
description: "To retrieve a specific Comment from a Test Run\n\nqTest\
\ Manager version: 7.5+"
operationId: "getTestRunCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Run."
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the Comment"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
put:
tags:
- "test-run"
summary: "Updates a Comment of a Test Run"
description: "To update a Comment of a Test Run\n\nqTest Manager version:\
\ 7.5+"
operationId: "updateCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Run"
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment which you want to update."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Comment's updated content"
required: true
schema:
$ref: "#/definitions/CommentResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/CommentResource"
security:
- Authorization: []
delete:
tags:
- "test-run"
summary: "Deletes a Comment of a Test Run"
description: "To delete a Comment of a Test Run\n\nqTest Manager version:\
\ 7.5+"
operationId: "deleteCommentById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "idOrKey"
in: "path"
description: "PID or ID of the Test Run."
required: true
type: "string"
- name: "commentId"
in: "path"
description: "ID of the comment which you want to delete."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}:
get:
tags:
- "test-run"
summary: "Gets a Test Run"
description: "To retrieve a Test Run\n\nqTest Manager version:\
\ 4+"
operationId: "getTestRunById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testRunId"
in: "path"
description: "ID of the Test Run."
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "Valid values include: \n\ni)testcase - to expand the\
\ associated Test Case in the response; \n\nii) testcase.teststep\
\ - to expand the associated Test Case and its Test Steps in the response"
required: false
type: "string"
- name: "includeToscaProperties"
in: "query"
description: "By default, Tosca properties of Test Run (imported from Tosca)\
\ are not included in the response. Specify includeToscaProperties=true\
\ to include them.\n\n (tosca_guid, tosca_node_path, tosca_workspace_url,\
\ tosca_testevent_guid)"
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestRunWithCustomFieldResource"
security:
- Authorization: []
put:
tags:
- "test-run"
summary: "Updates a Test Run"
description: "To update a Test Run or move it to another container\n\nqTest\
\ Manager version: 6+"
operationId: "updateTestRunById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testRunId"
in: "path"
description: "ID of the Test Run."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Test Run's updated properties"
required: true
schema:
$ref: "#/definitions/TestRunWithCustomFieldResource"
- name: "parentId"
in: "query"
description: "ID of the container (Release, Test Cycle or Test Suite)\n\n\
Input 0 (zero) to move the test run to under root\n\nImportant:\
\ If you use the request parameters, the request body will be ignored. That\
\ means the test run is being moved but it will not be updated with the\
\ properties specify in the request body"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Type of the container. Valid values include root, release,\
\ test-cycle and test-suite"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestRunWithCustomFieldResource"
security:
- Authorization: []
delete:
tags:
- "test-run"
summary: "Deletes a Test Run"
description: "To delete a Test Run\n\nqTest Manager version:\
\ 6+"
operationId: "deleteTestRunById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Message"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}/auto-test-logs:
post:
tags:
- "test-log"
summary: "Submits an Automation Test Log"
description: "To submit test result of an Automation Test Run\n\nKnown\
\ Issue: This API currently does not update Test Case Version when\
\ Test Case Properties are updated, and Tricentis is working on a fix that\
\ will be shipped in an upcoming release\n\nqTest Manager version:\
\ 4+"
operationId: "submitAutomationLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "status (required): automation status values which are\
\ mapped in qTest Manager's Automation Settings\n\nexe_start_date (required):\
\ the execution's starting time\n\nexe_end_date (required) the\
\ execution's ending time\n\nname (required) name of the Test Run\
\ or Test Case\n\nautomation_content (required): a string that\
\ uniquely identifies an Automation Test Case\n\nattachments: a\
\ JSONArray of Attachment objects\n\nnote: execution note\n\ntest_case_version_id:\
\ ID of the associated Test Case's version\n\ntest_step_logs: a\
\ JSONArray of TestStepLog objects\n\ntestcase_properties: An of\
\ Testcase properties objects. You can specify Test case properties' order\
\ in the request. \n\ntosca_guid: GUID of Tosca test case. Use\
\ for creating Tosca Test Case\n\ntosca_node_path: Node Path of\
\ Tosca test case. Use for creating Tosca Test Case\n\ntosca_guid\
\ and tosca_node_path are optional but must be specified in pair"
required: true
schema:
$ref: "#/definitions/AutomationTestLogResource"
- name: "suitePerDay"
in: "query"
description: "suitePerDay=true - the newly created Test Run will\
\ be located under a Test Suite named under the execution date specified\
\ in parameter suiteDate, eg: Automation 2014-12-09\n\n\
suitePerDay=false - the newly created Test Run will be located\
\ under Automation Test Suite\n\nIMPORTANT: In\
\ case you update an existing Test Run, its Test Suite remains unchanged"
required: false
type: "string"
- name: "suiteDate"
in: "query"
description: "It is required if suitePerDay is true. Its format is\
\ \"yyyymmdd\". \n\nThe newly created Test Run will be located\
\ under a Test Suite named \"Automation yyyy-mm-dd\", eg: Automation 2014-12-09"
required: false
type: "string"
- name: "encodeNote"
in: "query"
description: "Specify if the Test Log's Notes are in HTML format\n\nencodeNote=true\
\ - default value. Notes are not in HTML format\n\nencodeNote=false:\
\ Notes are in HTML format"
required: false
type: "boolean"
default: true
- name: "forceUpdateVersion"
in: "query"
required: false
type: "boolean"
default: false
- name: "agentId"
in: "query"
required: false
type: "string"
- name: "userId"
in: "query"
required: false
type: "string"
- name: "testRunId"
in: "path"
description: "ID of the Test Run\n\n1/ If it is greater than 0 (zero), test\
\ result will be submitted to the specific Test Run\n\nIf it is 0 (zero),\
\ test result will be submitted to a new Test Run"
required: true
type: "integer"
format: "int64"
responses:
201:
description: "Automation Log submitted"
schema:
$ref: "#/definitions/AutomationTestLogResourceResponse"
413:
description: ""
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}/auto-test-logs/{id}:
put:
tags:
- "test-log"
summary: "Modify an Automation Test Log"
description: "To modify test result of a automation Test Run\n\nqTest\
\ Manager version: 9.1.5+"
operationId: "modifyAutomationLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "status (required): automation status values which are\
\ mapped in qTest Manager's Automation Settings\n\nexe_start_date (required):\
\ the execution's starting time\n\nexe_end_date (required): the\
\ execution's ending time\n\nnote: execution note\n\nproperties:\
\ array of fields and values of the Test Log that need to be updated\n\n\
test_step_logs: a JSONArray of TestStepLog objects\n\nNOTE:\n\
You can only modify test logs which were submitted by you. The project\
\ admin can modify any test logs within his project
Test Step order\
\ is required in the test_step_logs array. You cannot specify a different\
\ order from the original submitted test log
You cannot modify Test\
\ Step Description, Expected Result, and Custom Fields for test steps
You\
\ cannot modify the following fields: Test Case Version, Automation Content,\
\ CI Tools, Build Number and Build URL
"
required: true
schema:
$ref: "#/definitions/AutomationTestLog"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
- name: "encodeNote"
in: "query"
description: "encodeNote"
required: false
type: "boolean"
default: true
- name: "id"
in: "path"
description: "id"
required: true
type: "integer"
format: "int64"
responses:
200:
description: ""
schema:
type: "object"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}/test-logs:
get:
tags:
- "test-log"
summary: "Gets all Test Logs of a Test Run"
description: "To retrieve all Test Logs of a Test Run\n\nqTest Manager\
\ version: 7.6"
operationId: "getTestLogsList"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
responses:
200:
description: "Returns a list of test log"
schema:
$ref: "#/definitions/TestLogListResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
post:
tags:
- "test-log"
summary: "Submits a Manual Test Log"
description: "To submit test result of a manual Test Run\n\nqTest\
\ Manager version: 4+"
operationId: "submitTestLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "status (required): Status of the Test Log as defined\
\ in the project's Field Settings\n\ntest_case_version_id: ID of\
\ the associated Test Case's version. \n\nIf it is omitted, the submitted\
\ Test Log will be associated with the Test Case's latest approved version\n\
\nexe_start_date (required): time when the test is executed\n\n\
exe_end_date (required): time when the test is finished\n\nattachments:\
\ the Test Log's attachments\n\ntest_step_logs: If the associated\
\ Test Case is calling Test Steps from another Test Case, the \"called_test_case_id\"\
\ and \"parent_test_step_id\" must be included in the request body"
required: true
schema:
$ref: "#/definitions/ManualTestLogResource"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
responses:
201:
description: "Returns the submitted test log"
schema:
$ref: "#/definitions/TestLogResource"
413:
description: "The attachment is too large"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}/test-logs/last-run:
get:
tags:
- "test-log"
summary: "Gets the latest Test Log of a Test Run"
description: "To retrieve a Test Run's latest test result\n\nqTest Manager\
\ version: 4+"
operationId: "getLastRunLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "Valid values include: \n\ni)testcase - to expand the\
\ associated Test Case and its Test Steps in the response; \n\nii) teststeplog.teststep\
\ - to expand results of each Test Steps in the response"
required: false
type: "string"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Returns a test log object"
schema:
$ref: "#/definitions/TestLogResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}/test-logs/{id}:
get:
tags:
- "test-log"
summary: "Gets a Test Log of a Test Run"
description: "To retrieve a specific Test Log of a Test Run"
operationId: "getTestLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
- name: "id"
in: "path"
description: "ID of the Test Log"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Returns a test log object"
schema:
$ref: "#/definitions/TestLogResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
put:
tags:
- "test-log"
summary: "Modify a Manual Test Log"
description: "To modify test result of an manual Test Run\n\nqTest\
\ Manager version: 9.1.5+"
operationId: "modifyTestLog"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "status (required): Status of the Test Log as defined\
\ in the projectâ\x80\x99s Field Settings\n\nexe_start_date (required):\
\ the execution's starting time\n\nexe_end_date (required): the\
\ execution's ending time\n\nnote: execution note\n\nproperties:\
\ array of fields and values of the Test Log that need to be updated\n\n\
test_step_logs: a JSONArray of TestStepLog objects\n\nNOTE:\n\
You can only modify test logs which were submitted by you. The project\
\ admin can modify any test logs within his project
Test Step order\
\ is required in the test_step_logs array. You cannot specify a different\
\ order from the original submitted test log
You cannot modify Test\
\ Step Description, Expected Result, and Custom Fields for test steps
You\
\ cannot modify the following fields: Test Case Version, CI Tools, Build\
\ Number and Build URL
"
required: true
schema:
$ref: "#/definitions/TestLogResource"
- name: "testRunId"
in: "path"
description: "ID of the Test Run"
required: true
type: "integer"
format: "int64"
- name: "id"
in: "path"
description: "id"
required: true
type: "integer"
format: "int64"
responses:
200:
description: ""
schema:
$ref: "#/definitions/TestLogResource"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-suites:
get:
tags:
- "test-suite"
summary: "Gets multiple Test Suite"
description: "To retrieve Test Suites which located under a parent Release,\
\ Test Cycle or root\n\nqTest Manager version: 6+"
operationId: "getListTestSuite"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the Release or Test Cycle under which the Test Suites\
\ are located. Input 0 (zero) to get Test Suites directly under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Arifact type of the container. Valid values include release,\
\ test-cycle and root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
security:
- Authorization: []
post:
tags:
- "test-suite"
summary: "Creates a Test Suite"
description: "To create a new Test Suite\n\nqTest Manager version:\
\ 6+"
operationId: "createTestSuite"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The Test Suite's properties"
required: true
schema:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
- name: "parentId"
in: "query"
description: "ID of the Release or Test Cycle under which the newly created\
\ Test Suites are located. Input 0 (zero) to create Test Suites directly\
\ under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Arifact type of the container. Valid values include release,\
\ test-cycle and root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/test-suites/{testSuiteId}:
get:
tags:
- "test-suite"
summary: "Gets a Test Suite"
description: "To retrieve a Test Suite\n\nqTest Manager version:\
\ 6+"
operationId: "getTestSuite"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testSuiteId"
in: "path"
description: "ID of the Test Suite"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
security:
- Authorization: []
put:
tags:
- "test-suite"
summary: "Updates a Test Suite"
description: "To update an existing Test Suite or to move it to other container\n\
\nImportant: If you use the request parameters parentId\
\ and parentType, the request body will be ignore. \n\nThat means\
\ the Test Suite is being moved but it will not be updated with the properties\
\ specify in the request body"
operationId: "updateTestSuite"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testSuiteId"
in: "path"
description: "ID of the Test Suite"
required: true
type: "integer"
format: "int64"
- name: "parentId"
in: "query"
description: "ID of the Release or Test Cycle which the Test Suite will be\
\ moved to. Input 0 (zero) to move the Test Suite to under root"
required: false
type: "integer"
format: "int64"
- name: "parentType"
in: "query"
description: "Artifact type of the parent container. Valid values include\
\ release, test-cycle and root"
required: false
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- in: "body"
name: "body"
description: "The Test Suite's updated properties"
required: true
schema:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
- name: "noEmail"
in: "query"
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
security:
- Authorization: []
delete:
tags:
- "test-suite"
summary: "Deletes a Test Suite"
description: "To delete a Test Suite\n\nqTest Manager version:\
\ 6+"
operationId: "deleteTestSuiteById"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testSuiteId"
in: "path"
description: "ID of the Test Suite."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/tosca/import/test-event:
post:
tags:
- "tosca"
summary: "Import Tosca TestEvent objects"
description: "To export TestEvent objects from Tosca to qTest"
operationId: "notifyTestEventImport"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "An array of hierarchy Tosca objects\n\ntoscaUniqueId (required):\
\ Unique ID of the Tosca object\n\nname (required): Name of the\
\ Tosca object\n\ndescription: Description of the Tosca object\n\
\ntoscaObjectType (required): Type of the Tosca object: TestEvent,\
\ ExecutionList (contained inTestEvent), ExecutionEntry Folder(contained\
\ in Execution List). Object is TestEvent type is always on the root of\
\ body array and doesn't contain ExecutionEntry objects \n\ntoscaNodePath\
\ (required): Node path of the Tosca object\n\ntestCycles:\
\ The array of TestEvent or ExecutionList or ExecutionEntry Folder objects\n\
\ntestRuns: The array of ExecutionEntry objects in testCycle property\n\
\nassociatedToscaTestCase: Testcase object that associated with\
\ testRun object"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/ToscaTestCycleResource"
responses:
200:
description: "TestEvent objects are imported successfully to qTest Manager\n\
\nid: ID of the submission job. You will need this Id to check\
\ the job status using GET /api/v3/projects/queue-processing/{jobId}\n\
\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING,\
\ FAILED, PENDING, and SUCCESS"
schema:
$ref: "#/definitions/QueueProcessingResponse"
400:
description: "Bad Request if invalid input value in body"
403:
description: "Access Denied"
security:
- Authorization: []
/api/v3/projects/{projectId}/user-profiles/current:
get:
tags:
- "project"
summary: "Gets current user Permissions in a Project"
description: "To retrieve your Permissions in a Project\n\nqTest Manager\
\ version: 4+"
operationId: "getCurrentProfile"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/UserProfile"
security:
- Authorization: []
/api/v3/projects/{projectId}/users:
get:
tags:
- "project"
summary: "Gets all Users in a Project"
description: "To retrieve all members in a qTest Manager Project\n\nqTest\
\ Manager version: 8.4.2+"
operationId: "getUsers"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "inactive"
in: "query"
description: "inactive=false - default value. Inactive users are\
\ excluded from the response\n\ninactive=true - inactive users\
\ are included in the response"
required: false
type: "boolean"
default: true
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/UserResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/attachments:
get:
tags:
- "attachment"
summary: "Gets all Attachments of an Object"
description: "To retrieve all Attachments of a Release, Build, Requirement,\
\ Test Case, Test Log, Test Step, Test Step Log or Defect"
operationId: "getAttachmentsOf"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include release, build, requirements,\
\ test-cases, test-logs, test-steps, test-step-logs\
\ or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-logs"
- "test-steps"
- "test-step-logs"
- "defects"
- name: "objectId"
in: "path"
description: "ID of the object (Release, Build, Requirement, Test Case, Test\
\ Log, Test Step, Test Step Log or Defect)"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Return list of attachments from a Release, Build, Requirement,\
\ Test Case, Test Log, Test Step, Test Step Log or Defect."
schema:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/attachments/{attachmentId}:
get:
tags:
- "attachment"
summary: "Gets an Attachment of an Object"
description: "To retrieve an Attachment from a Release, Build, Requirement,\
\ Test Case, Test Log, Test Step, Test Step Log or Defect"
operationId: "getAttachment"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "attachmentId"
in: "path"
description: "ID of attachment"
required: true
type: "integer"
format: "int64"
- name: "forceDownload"
in: "query"
description: "Input true to download attachments which have not been scanned\
\ for malware/virus successfully. By default, its value is false"
required: false
type: "boolean"
default: false
- name: "objectType"
in: "path"
description: "Valid values include release, build, requirements,\
\ test-cases, test-logs, test-steps, test-step-logs\
\ or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-logs"
- "test-steps"
- "test-step-logs"
- "defects"
- name: "objectId"
in: "path"
description: "ID of the object (Release, Build, Requirement, Test Case, Test\
\ Log, Test Step Test Step Log or Defect)"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Return specific attachment from a Release, Build, Requirement,\
\ Test Case, Test Log, Test Step, Test Step Log or Defect."
schema:
$ref: "#/definitions/OutputStream"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/blob-handles:
post:
tags:
- "attachment"
summary: "Uploads an Attachment to an Object"
description: "To upload an Attachment to a Release, Build, Requirement, Test\
\ Case, Test Log, Test Step, Test Step Log or Defect"
operationId: "upload"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-logs, test-steps, test-step-logs or defects\n\nqTest Manager\
\ version: 4+"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-logs"
- "test-steps"
- "test-step-logs"
- "defects"
- name: "objectId"
in: "path"
description: "ID of the object (Release, Build, Requirement, Test Case, Test\
\ Log, Test Step, Test Step Log or Defect)"
required: true
type: "integer"
format: "int64"
- name: "File-Name"
in: "header"
required: true
type: "string"
- name: "Content-Type"
in: "header"
required: true
type: "string"
- in: "body"
name: "body"
required: true
schema:
type: "string"
format: "binary"
responses:
201:
description: "Uploaded successfully"
schema:
$ref: "#/definitions/AttachmentResource"
400:
description: "Bad Request - Unexpected error occurred"
413:
description: "Request Entity Too Large - The attachment is too large"
500:
description: "Internal Server Error - Unexpected error occurred"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/blob-handles/{blobHandleId}:
delete:
tags:
- "attachment"
summary: "Deletes an Attachment from an Object"
description: "To delete an Attachment from a Release, Build, Requirement, Test\
\ Case, Test Log, Test Step, Test Step Log or Defect\n\nqTest Manager\
\ version: 7.5+"
operationId: "deleteByBlobHandleId"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "blobHandleId"
in: "path"
description: "ID of the Attachment"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "Valid values include releases, builds, requirements, test-cases,\
\ test-logs, test-steps, test-step-logs or defects\n\nqTest Manager\
\ version: 4+"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-logs"
- "test-steps"
- "test-step-logs"
- "defects"
- name: "objectId"
in: "path"
description: "ID of the object (Release, Build, Requirement, Test Case, Test\
\ Log, Test Step, Test Step Log or Defect)"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Deleted successfully"
schema:
$ref: "#/definitions/Message"
400:
description: "Bad Request - Unexpected error occurred"
403:
description: "Access Denied"
404:
description: "Blob Handle not found"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/link:
post:
tags:
- "object-link"
summary: "Creates links between objects"
description: "To add associated objects to another object"
operationId: "linkArtifacts"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "The object type of the source object. Valid values include requirements,\
\ builds, test-steps, test-logs, releases"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-logs"
- "test-steps"
- name: "type"
in: "query"
description: "The object type of the associated objects which are being added\
\ to the source object. \n\nValid values include releases, builds, requirements,\
\ test-cases, test-runs, test-logs, test-steps or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-runs"
- "test-logs"
- "test-steps"
- "defects"
- in: "body"
name: "body"
description: "A JSONArray of associated object IDs which are being added to\
\ the source object\n\nNotes:\n\nWhen creating link between Test Case and\
\ Requirement, please make sure that:\n\n- The Test Case is not routed for\
\ VERA approval\n\n- Data migration for Test Case version when turning on\
\ Test Case Settings to track Test Case - Requirement Link per version is\
\ completed"
required: true
schema:
type: "array"
items:
type: "integer"
format: "int64"
- name: "objectId"
in: "path"
description: "ID of the source object"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successful operation\n\nNote: System will ignore those objects\
\ that cannot be linked"
schema:
type: "array"
items:
$ref: "#/definitions/LinkedArtifactContainer"
201:
description: ""
security:
- Authorization: []
delete:
tags:
- "object-link"
summary: "Removes links between objects"
description: "To remove associated objects from another object"
operationId: "unlinkArtifacts"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "The object type of the source object. Valid values include requirements,\
\ builds, test-steps, test-logs, releases"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-logs"
- "test-steps"
- name: "type"
in: "query"
description: "The object type of the associated objects which are being added\
\ to the source object. \n\nValid values include releases, builds, requirements,\
\ test-cases, test-runs, test-logs, test-steps or defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-runs"
- "test-logs"
- "test-steps"
- "defects"
- in: "body"
name: "body"
description: "A JSONArray of associated object IDs which are being removed\
\ from the source object\n\nNotes:\n\nWhen removing link between Test Case\
\ and Requirement, please make sure that:\n\n- The Test Case is not routed\
\ for VERA approval\n\n- Data migration for Test Case version when turning\
\ on Test Case Settings to track Test Case - Requirement Link per version\
\ is completed"
required: true
schema:
type: "array"
items:
type: "integer"
format: "int64"
- name: "objectId"
in: "path"
description: "ID of the source object"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Successful operation\n\nNote: System will ignore those objects\
\ that cannot be unlinked"
schema:
type: "object"
security:
- Authorization: []
/api/v3/projects/{projectId}/{objectType}/{objectId}/{linkType}:
post:
tags:
- "object-link"
summary: "Creates links between objects by pids"
description: "To add associated objects to another object by pids or Jira Defects\
\ Ids"
operationId: "linkArtifactsByPid"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "The object type of the source object. Valid values include test-steps,\
\ test-logs"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-logs"
- "test-steps"
- name: "linkType"
in: "path"
description: "The object type of the associated objects which are being added\
\ to the source object. \n\nValid value: defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-runs"
- "test-logs"
- "test-steps"
- "defects"
- in: "body"
name: "body"
description: "A JSONArray of associated object PIDs or Jira Defect which are\
\ being added to the source object"
required: true
schema:
type: "array"
items:
type: "string"
- name: "objectId"
in: "path"
required: true
type: "integer"
format: "int64"
responses:
201:
description: "Link defect successfully"
schema:
type: "array"
items:
$ref: "#/definitions/LinkedDefectContainer"
400:
description: "Test run was locked"
403:
description: "User does not have enough permission"
404:
description: "Link defect unsuccessfully"
security:
- Authorization: []
delete:
tags:
- "object-link"
summary: "Removes links between objects by pids"
description: "To removes links between objects by pids"
operationId: "unlinkArtifactsByPid"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "objectType"
in: "path"
description: "The object type of the source object. Valid values include test-steps,\
\ test-logs"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-logs"
- "test-steps"
- name: "linkType"
in: "path"
description: "The object type of the associated objects which are being added\
\ to the source object. \n\nValid value: defects"
required: true
type: "string"
enum:
- "releases"
- "builds"
- "requirements"
- "test-cases"
- "test-runs"
- "test-logs"
- "test-steps"
- "defects"
- in: "body"
name: "body"
description: "A JSONArray of associated object PIDs which are being added\
\ to the source object"
required: true
schema:
type: "array"
items:
type: "string"
- name: "objectId"
in: "path"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Unlink defect successfully, list of defects that unlinked\
\ successfully will be returned"
schema:
type: "array"
items:
type: "string"
400:
description: "Test run was locked"
403:
description: "User does not have enough permission"
404:
description: "Unlink defect unsuccessfully"
security:
- Authorization: []
/api/v3/re-evaluation:
get:
tags:
- "user"
summary: "Gets current user's information"
description: "To retrieve your information such as username, email, first name,\
\ and last name"
operationId: "reevaluateToken"
parameters:
- name: "includeInaccessibleApps"
in: "query"
required: false
type: "boolean"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/LoggedUser"
security:
- Authorization: []
/api/v3/search/user:
get:
tags:
- "user"
summary: "Queries Users by Project Name"
description: "To query for users by names of their assigned projects\n\n- Admin\
\ users with Manage Client Users permission can query users in any\
\ projects\n\n- For other users: the API only returns users within projects\
\ to which the requesting user is assigned"
operationId: "findUsersByProjectsName"
parameters:
- name: "projectName"
in: "query"
description: "Name of the project whose users you want to query for. The API\
\ will return users which have been added to projects whose names contain\
\ the text specified in this parameter\n\nIMPORTANT: Project\
\ name is case sensitive"
required: false
type: "string"
- name: "inactive"
in: "query"
description: "inactive=false - default value. Inactive users are\
\ excluded from the response\n\ninactive=true - include inactive\
\ users"
required: false
type: "boolean"
default: true
- name: "pagination"
in: "query"
description: "pagination=true - default value. The result is paginated\n\
\npagination=false - the result is not paginated"
required: false
type: "boolean"
default: true
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 999) in this parameter"
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/SearchUserResponse"
security:
- Authorization: []
/api/v3/site-templates:
get:
tags:
- "site-templates"
summary: "Get all site-templates"
description: "To retrieve all site-templates"
operationId: "getAllSiteTemplates"
parameters: []
responses:
200:
description: "Return list of all site-templates."
schema:
type: "array"
items:
$ref: "#/definitions/SiteTemplateResponse"
security:
- Authorization: []
/api/v3/site-templates/{templateId}/projects:
post:
tags:
- "site-templates"
summary: "Apply template to existing projects."
description: "To apply template to existing projects."
operationId: "addProjects"
parameters:
- name: "templateId"
in: "path"
description: "Template id which you want to apply to existing projects."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "project_ids:List of Project IDs\n\ncreate_new_site_field_values:\
\ Option to allow user to decide if they want to create new values to the\
\ site fields or keep the value private to the project when there are \"\
unique values in project fields that do not exist in site fields\" (default:\
\ true)."
required: true
schema:
$ref: "#/definitions/ApplyTemplateQueryObject"
responses:
200:
description: "Return list of projects which were applied site template."
schema:
type: "array"
items:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
delete:
tags:
- "site-templates"
summary: "Remove projects from a site template."
description: "To remove projects from a site template."
operationId: "removeProjectTemplates"
parameters:
- name: "templateId"
in: "path"
description: "Template id which you want to detach it's projects. If 0\
\ (unassigned template id) is placing here, remove all site templates associated\
\ to provided project ids list."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Array of project ids that you want to detach from site template."
required: true
schema:
type: "array"
items:
type: "integer"
format: "int64"
responses:
200:
description: "Return list of projects which were removed from site template."
schema:
type: "array"
items:
$ref: "#/definitions/ProjectResource"
security:
- Authorization: []
/api/v3/user-profiles:
get:
tags:
- "user-profile"
summary: "Gets available Profiles"
description: "To retrieve all available profiles in your qTest Manager instance.\
\ It requires that your qTest Manager profile is a site admin with View\
\ User Profiles permissions\n\nqTest Manager version:\
\ 8.4.2+"
operationId: "getUserProfiles"
parameters:
- name: "type"
in: "query"
description: "type=admin - to retrieve only admin profiles\n\ntype=use\
\ - to retrieve only normal user profiles\n\nOmit this parameter to include\
\ both"
required: false
type: "string"
enum:
- "admin"
- "user"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/UserProfileResponse"
security:
- Authorization: []
/api/v3/user-profiles/batch-assign-users:
post:
tags:
- "user-profile"
summary: "Assigns multiple Users to a Profile"
description: "To batch assign users to a profile (Admin profile, User profile)\
\ (as in qTest Manager admin panel). It requires that your qTest\
\ Manager profile is a site admin with Manage Client Users permissions\n\
\nqTest Manager version: 8.4.2+"
operationId: "batchAssignUserProfileInClient"
parameters:
- in: "body"
name: "body"
description: "An array of user IDs and admin and/or normal user profile"
required: true
schema:
$ref: "#/definitions/SiteUsersProfile"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/UserResourceExtension"
security:
- Authorization: []
/api/v3/user-profiles/current:
get:
tags:
- "user-profile"
summary: "Gets current User's Profiles in different Projects"
description: "To retrieve your User Profiles in different Projects"
operationId: "getProfilesOfCurrentUser"
parameters: []
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/UserProfile"
security:
- Authorization: []
/api/v3/user-profiles/{projectId}/batch-assign-users:
post:
tags:
- "user-profile"
summary: "Assigns multiple Users to a Profile in a Project"
description: "To change profile of assigned users (as a project's User Management\
\ page). It requires that your qTest Manager profile within the project is\
\ Project Admin\n\nqTest Manager version: 8.4.2+"
operationId: "batchAssignUserProfileInProject"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "An array of user IDs and a user profile"
required: true
schema:
$ref: "#/definitions/ProjectUsersProfile"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/UserResourceExtension"
security:
- Authorization: []
/api/v3/users:
post:
tags:
- "user"
summary: "Invites a User"
description: "To invite a user to your qTest Manager instance and activate the\
\ account. If the password is omitted, the default \"admin123\" will\
\ be used\n\nqTest Manager version: 4+"
operationId: "createUser"
parameters:
- in: "body"
name: "body"
description: "Invited user's information\n\nusername (require): email\
\ of new user\n\nemail: This field will be ignored and primary\
\ email will be set\n\npassword: password of new user. If the password\
\ is omitted, the default \"admin123\" will be used\n\nfirst_name (require):\
\ First name of new user\n\nlast_name (require): Last name of new\
\ user\n\nuser_group_ids: List usergroup ids will be assigned for\
\ new user.\n\nsend_activation_email: activation email will be\
\ ignored if this is set to false. Default value is false\n\
\nexternal_auth_config_id: auto assign this new user with External\
\ Authentication system by this providing config id here. If this value\
\ is provided, \"external_user_name\" need to have value, or it\
\ will failed to create.\n\nexternal_user_name: external username\
\ that will be assigned to newly created qTest user \n\ninclude_default_groups:Include\
\ default groups or not. Default value is false"
required: true
schema:
$ref: "#/definitions/UserResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/UserResource"
security:
- Authorization: []
/api/v3/users/projects:
post:
tags:
- "user"
summary: "Assigns multiple Users to a Project"
description: "To assign a list of Users to a Project\n\nqTest Manager\
\ version: 4+"
operationId: "assignUsersToProject"
parameters:
- in: "body"
name: "body"
description: "ID of the Project and an array of assigned Users' IDs. If the\
\ profile is not provided, Developer profile is used by default"
required: true
schema:
$ref: "#/definitions/AssignedUsersProject"
- name: "skipEmailNotifications"
in: "query"
description: "Set to true to skip email notifications about associating user\
\ with a project."
required: false
type: "boolean"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/AssignedUsersProject"
security:
- Authorization: []
put:
tags:
- "user"
summary: "Remove association between users and projects"
description: "To remove association between users and projects"
operationId: "removeAssociationUsersAndProjects"
parameters:
- in: "body"
name: "body"
description: "An array of pairs project_id and user_ids\n\n project_id:\
\ ID of the project\n\nuser_ids: List of User IDs which are being\
\ removed from the project"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/ProjectWithUserIdsObject"
- name: "skipEmailNotifications"
in: "query"
description: "Set to true to skip email notifications about removing user's\
\ association with a project."
required: false
type: "boolean"
responses:
200:
description: ""
schema:
$ref: "#/definitions/Message"
security:
- Authorization: []
/api/v3/users/search:
get:
tags:
- "user"
summary: "Queries Users by Username"
description: "To query for users by their username\n\nqTest Manager\
\ version: 8.4.2+"
operationId: "findByUserNameOrEmail"
parameters:
- name: "username"
in: "query"
description: "API will return users which have been added to projects whose\
\ names contain the text specified in this parameter.\n\nLogin names of\
\ users should be provided for this query, but they vary based on the source\
\ of the user.\n\n- qTest Login Email - for users created directly on qTest\n\
\n- LDAP or SSO username or external username - for users created from LDAP\
\ or SSO"
required: false
type: "string"
- name: "includeInactiveUsers"
in: "query"
description: "includeInactiveUsers=false - default value. Inactive\
\ users are excluded from the response\n\nincludeInactiveUsers=true\
\ - inactive users are included in the response"
required: false
type: "boolean"
- name: "pagination"
in: "query"
description: "pagination=true - default value. The result is paginated\n\
\npagination=false - the result is not paginated"
required: false
type: "boolean"
default: true
- name: "authSystemConfigIds"
in: "query"
description: "LDAP Configuration Ids"
required: false
type: "array"
items:
type: "integer"
format: "int64"
collectionFormat: "multi"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "pageSize"
in: "query"
description: "The result is paginated. By the default, the number of objects\
\ in each page is 100 if this is omitted. You can specify your custom number\
\ (up to 100) in this parameter."
required: false
type: "integer"
default: 100
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/SearchUserResourceExtensionResponse"
security:
- Authorization: []
/api/v3/users/{userId}:
get:
tags:
- "user"
summary: "Gets a User"
description: "To retrieve a User's information"
operationId: "getUserById"
parameters:
- name: "userId"
in: "path"
description: "ID of the user."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/UserResource"
security:
- Authorization: []
put:
tags:
- "user"
summary: "Update user's information"
description: "To update information of a user, like : recovery email, password,\
\ status..."
operationId: "updateUser"
parameters:
- name: "userId"
in: "path"
description: "ID of the user."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "Update user's information\n\nemail: This field will\
\ be ignored and primary email will be set\n\npassword: New password\
\ of user. Password have to map with password policy of current user's client\n\
\nfirst_name: New first name of user\n\nlast_name: New\
\ last name of user\n\nuser_group_ids: List usergroup ids will\
\ be assigned for user (old usergroup ids will be replaced).\n\nexternal_auth_config_id:\
\ New user's external authenticate id,it will auto assign this user with\
\ External Authentication system by this providing config id here. If this\
\ value is provided, \"external_user_name\" need to have value,\
\ or it will failed to update. For internal authentication system input\
\ : -1\n\nexternal_user_name: external username\
\ that will be assigned to user (if LDAP external is specified, \"first_name\"\
\ and \"last_name\" will be fetch from LDAP system).\n\nstatus:\
\ New status id of user. Status id must be 1 for Active\
\ or 3 for Inactive status."
required: true
schema:
$ref: "#/definitions/UserUpdateResource"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/UserResource"
security:
- Authorization: []
/api/v3/users/{userId}/avatar:
get:
tags:
- "user"
summary: "Gets a User's Avatar"
description: "To retrieve a User's Avatar"
operationId: "getAvatar"
parameters:
- name: "userId"
in: "path"
description: "ID of the user."
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/OutputStream"
security:
- Authorization: []
/api/v3/users/{userId}/projects:
post:
tags:
- "user"
summary: "Assigns a User to a Project"
description: "To assign a User to a Project"
operationId: "assignToProject"
parameters:
- name: "userId"
in: "path"
description: "ID of the user."
required: true
type: "integer"
format: "int64"
- in: "body"
name: "body"
description: "The project ID and the assigned user profile in the project.\
\ If the profile is not provided, profile Developer is used by default"
required: true
schema:
$ref: "#/definitions/AssignedProject"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/AssignedProject"
security:
- Authorization: []
/api/v3/webhooks:
get:
tags:
- "webhook"
summary: "Gets list of all registered webhooks"
description: "To retrieve list of all registered webhooks"
operationId: "getAllWebhooks"
parameters: []
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/WebhookVM"
security:
- Authorization: []
post:
tags:
- "webhook"
summary: "Registers a webhook"
description: "To register a webhook"
operationId: "createWebhook"
parameters:
- in: "body"
name: "body"
description: "name (required): name of the webhook\n\nURL (required):\
\ where the callback should be sent\n\nsecretkey (required): secretkey\
\ is used to ensure that POST requests sent to the URL are from qTest\n\n\
responseType (optional): content-type of the callback message.\
\ Allow values: \"text\" for text/plain, \"json\" for application/json.\
\ Default value is \"text\"\n\nevents (required): list event(s)\
\ to register. Its valid values include\n\n- testcase_created\n\n- testcase_updated\n\
\n- testcase_deleted\n\n- testcase_approved\n\n- testrun_created\n\n- testrun_updated\n\
\n- testrun_deleted\n\n- testlog_submitted\n\n- testlog_modified\n\n- project_created\n\
\n- project_updated\n\n- defect_submitted\n\n- defect_modified\n\n- requirement_created\n\
\n- requirement_updated\n\n- requirement_deleted\n\n- requirement_linked\n\
\n- requirement_unlinked\n\n- defect_linked\n\n- defect_unlinked\n\nprojectIds\
\ (optional): list valid projectid(s) to register. Its valid values\
\ include only Active Projects"
required: true
schema:
$ref: "#/definitions/WebhookRequest"
responses:
201:
description: "successful operation"
schema:
$ref: "#/definitions/WebhookVM"
400:
description: "Bad Request if missing or invalid input value in body"
security:
- Authorization: []
/api/v3/webhooks/events:
get:
tags:
- "webhook"
summary: "Get list of webhook event names"
description: "To retrieve list of all available event names for webhook registering"
operationId: "getAllEventNames"
parameters: []
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
type: "string"
security:
- Authorization: []
/api/v3/webhooks/{webhookId}:
get:
tags:
- "webhook"
summary: "Gets a webhook"
description: "To retrieve details of a registered webhook"
operationId: "getWebhookById"
parameters:
- name: "webhookId"
in: "path"
description: "ID of the webhook"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/WebhookVM"
security:
- Authorization: []
put:
tags:
- "webhook"
summary: "Updates a webhook"
description: ""
operationId: "updateWebhook"
parameters:
- name: "webhookId"
in: "path"
description: "ID of the webhook"
required: true
type: "string"
- in: "body"
name: "body"
description: "Update webhook's information\n\nname: New name of the\
\ webhook\n\nURL: New URL of the webhook\n\nsecretkey:\
\ New secret key of the webhook\n\nresponseType: New content-type\
\ of the callback message. Allow values: \"text\" for text/plain,\
\ \"json\" for application/json\n\nevents (required): New\
\ list event(s) to register. Its valid values include\n\n- testcase_created\n\
\n- testcase_updated\n\n- testcase_deleted\n\n- testcase_approved\n\n- testrun_created\n\
\n- testrun_updated\n\n- testrun_deleted\n\n- testlog_submitted\n\n- testlog_modified\n\
\n- project_created\n\n- project_updated\n\n- defect_submitted\n\n- defect_modified\n\
\n- requirement_created\n\n- requirement_updated\n\n- requirement_deleted\n\
\n- requirement_linked\n\n- requirement_unlinked\n\n- defect_linked\n\n\
- defect_unlinked\n\nprojectIds (optional): list valid projectid(s)\
\ to register. Its valid values include only Active Projects"
required: true
schema:
$ref: "#/definitions/WebhookRequest"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/WebhookVM"
security:
- Authorization: []
delete:
tags:
- "webhook"
summary: "Deletes a webhook"
description: "To delete a registered webhook"
operationId: "deleteWebhookById"
parameters:
- name: "webhookId"
in: "path"
description: "ID of the webhook"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/api/v4/projects/{projectId}/test-cases/{testCaseId}/test-steps:
get:
tags:
- "test-case"
summary: "Gets Test Steps of a Test Case"
description: "To retrieve all Test Steps of a Test Case's latest version\n\n\
qTest Manager version: 6+"
operationId: "getTestStepsOfTestCase"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "size"
in: "query"
description: "size"
required: false
type: "integer"
default: 200
format: "int32"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/TestStepResource"
security:
- Authorization: []
/api/v4/projects/{projectId}/test-cases/{testCaseId}/versions/{versionId}/test-steps:
get:
tags:
- "test-case"
summary: "Gets Test Steps of a Test Case version"
description: "To retrieve all Test Steps of a specific Test Case version"
operationId: "getTestStepsByVersionId"
parameters:
- name: "projectId"
in: "path"
description: "ID of the project"
required: true
type: "integer"
format: "int64"
- name: "testCaseId"
in: "path"
description: "ID of the Test Case"
required: true
type: "integer"
format: "int64"
- name: "versionId"
in: "path"
description: "ID of the Test Case version"
required: true
type: "integer"
format: "int64"
- name: "expand"
in: "query"
description: "when you Specify expand=calledteststep \n\nIt will\
\ include Test Steps of the called Test Cases in your response."
required: false
type: "string"
enum:
- "calledteststep"
- name: "page"
in: "query"
description: "By default the first page is returned but you can specify any\
\ page number to retrieve objects"
required: false
type: "integer"
default: 1
format: "int64"
- name: "size"
in: "query"
description: "size"
required: false
type: "integer"
default: 200
format: "int32"
- name: "showParamIdentifier"
in: "query"
description: "By default, Parameters in Test Steps are displayed in ID number\
\ mode (like \"[~123]\"). Input showParamIdentifier=true\
\ to change to Identifier text mode. Result should be like \"[~myIdentifier]\"\
."
required: false
type: "boolean"
default: false
responses:
200:
description: "successful operation"
schema:
type: "object"
security:
- Authorization: []
/oauth/status:
get:
tags:
- "login"
summary: "Gets status of access token"
description: "Gets status of access token"
operationId: "tokenStatus"
parameters:
- name: "Authorization"
in: "header"
description: "The qTest access token you want to check"
required: false
type: "string"
responses:
200:
description: "expiration timestamp and validityInMilliseconds\
\ of provided access token are returned in the response."
schema:
$ref: "#/definitions/OAuthTokenStatusVM"
401:
description: "Invalid access token"
security:
- Authorization: []
/oauth/token:
post:
tags:
- "login"
summary: "Log in"
description: "To authenticate the API client against qTest Manager and acquire\
\ authorized access token. \n\n Note: Please choose parameter content-type=application/x-www-form-urlencoded"
operationId: "postAccessToken"
consumes:
- "application/x-www-form-urlencoded"
parameters:
- name: "grant_type"
in: "formData"
description: "Use grant_type=password or grant_type=refresh_token\
\ to refresh access token"
required: false
type: "string"
default: "password"
enum:
- "password"
- "refresh_token"
- name: "username"
in: "formData"
description: "Your qTest Manager username"
required: false
type: "string"
- name: "password"
in: "formData"
description: "Your qTest Manager password"
required: false
type: "string"
- name: "refresh_token"
in: "formData"
description: "qTest refresh token to refresh access token associate with provided\
\ refresh token"
required: false
type: "string"
- name: "Authorization"
in: "header"
description: "Basic + [base64 string of \"your qTest site name and\
\ colon\"]\n\nor Basic cXRlc3QtYXBpOg== [base64 string of \"qtest-api:\"\
] to use refresh token (grant_type = refresh_token)\n\nExample: qTest Manager\
\ site is: apitryout.qtestnet.com then site name is: apitryout + ':', then\
\ Authorization is: Basic YXBpdHJ5b3V0Og=="
required: false
type: "string"
responses:
200:
description: "token_type and access_token are included\
\ in the response.\n\nUse them in Authorization key when making API calls\
\ to qTest Manager in following format: [token_type] [access_token]"
schema:
$ref: "#/definitions/OAuthResponse"
400:
description: "Invalid refresh token or grant type"
401:
description: "Missing or invalid Authorization header value"
securityDefinitions:
Authorization:
type: "apiKey"
name: "Authorization"
in: "header"
definitions:
AdminProfile:
type: "object"
properties:
user_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the user"
create_project:
type: "boolean"
example: true
description: "Has permission on create Project"
edit_project:
type: "boolean"
example: true
description: "Has permission on edit Project"
archive_project:
type: "boolean"
example: true
description: "Has permission on archive Project"
list_project:
type: "boolean"
example: true
description: "Has permission on view Project"
manage_client_user:
type: "boolean"
example: true
description: "Has permission on Invite/Edit Users"
edit_user_profile:
type: "boolean"
example: true
description: "Has permission on edit Profiles"
view_user_profile:
type: "boolean"
example: true
description: "Has permission on view Profiles"
manage_client_info:
type: "boolean"
example: true
description: "Has permission on update Company's information"
manage_system_conf:
type: "boolean"
example: true
description: "Has permission on manage System configuration"
site_level_field:
type: "boolean"
example: true
description: "Has permission on manage site level field setting"
manage_user_group:
type: "boolean"
insight_viewer:
type: "boolean"
insight_editor:
type: "boolean"
pulse_access:
type: "boolean"
launch_access:
type: "boolean"
analytics_viewer:
type: "boolean"
copilot_user:
type: "boolean"
AllowedValueInputResource:
type: "object"
properties:
default:
type: "boolean"
value:
type: "integer"
format: "int64"
label:
type: "string"
order:
type: "integer"
format: "int32"
is_default:
type: "boolean"
is_active:
type: "boolean"
color:
type: "string"
AllowedValueResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
value:
type: "integer"
format: "int64"
example: 601
description: "Value of AllowedValue"
label:
type: "string"
example: "Passed"
description: "Label of AllowedValue"
order:
type: "integer"
format: "int32"
example: 1
description: "Display order of AllowedValue"
is_default:
type: "boolean"
example: true
description: "Is default value or not"
is_active:
type: "boolean"
example: true
description: "Is active or not"
color:
type: "string"
example: "#c0c0c0"
description: "Color of AllowedValue if Field is Test Run's Status "
AllowedValueResponseResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
total:
type: "integer"
format: "int64"
items:
type: "array"
items:
$ref: "#/definitions/AllowedValueResource"
AppDetail:
type: "object"
properties:
name:
type: "string"
example: "Manager"
description: "Manager"
logo_url:
type: "string"
example: "https://apitryout.qtestnet.com/favicon.ico"
description: ""
display_order:
type: "integer"
format: "int32"
example: 1
description: "Display order of qTest application"
url:
type: "string"
example: "https://apitryout.qtestnet.com"
description: "URL to qTest application"
redirect_url:
type: "string"
app_type:
type: "string"
ApplyTemplateQueryObject:
type: "object"
properties:
project_ids:
type: "array"
uniqueItems: true
items:
type: "integer"
format: "int64"
create_new_site_field_values:
type: "boolean"
example: true
ArtifactHistoryResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size"
total:
type: "integer"
format: "int64"
example: 100
description: "Total record found"
items:
type: "array"
description: "Data of records"
items:
$ref: "#/definitions/HistoryResource"
ArtifactSearchParams:
type: "object"
required:
- "object_type"
properties:
object_type:
type: "string"
example: "test-cases"
description: "Its value can be requirements, test-cases, test-runs, test-cycles,\
\ test-logs, builds or defects"
fields:
type: "array"
description: "fields: specify which object fields you want to include in the\
\ response. If you omit it or specify an asterisk (*), all fields are included"
uniqueItems: true
items:
type: "string"
example: "*"
query:
type: "string"
example: "'name' ~ 'qTest'"
description: "Represent text as Data Query"
AssignedProject:
type: "object"
properties:
project_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Project"
profile:
$ref: "#/definitions/Profile"
AssignedUsersProject:
type: "object"
properties:
project_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Project"
profile:
$ref: "#/definitions/Profile"
user_ids:
type: "array"
description: "Array User ID"
items:
type: "integer"
format: "int64"
example: 1
AttachmentAuthor:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
email:
type: "string"
example: "example.user@qtest.com"
description: "Login username of the User"
first_name:
type: "string"
example: "First name of the User"
description: "First name of the User"
last_name:
type: "string"
example: "Last name of the User"
description: "Last name of the User"
AttachmentResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
name:
type: "string"
example: "Sample.docx"
description: "Attachment name"
content_type:
type: "string"
example: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
description: "Attachment content type"
data:
type: "string"
description: "Used for uploading and ignored during download"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Attachment"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/1/portal/attachment/testcase/attachmentId/1"
description: "Web URL to Attachment"
readOnly: true
created_date:
type: "string"
format: "date-time"
description: "The date Attachment was created"
author:
$ref: "#/definitions/AttachmentAuthor"
artifact_id:
type: "integer"
format: "int64"
example: 1
description: "Artifact ID which Attachment linked to"
readOnly: true
AuthSystemResponse:
type: "object"
properties:
ldaps:
type: "array"
items:
$ref: "#/definitions/LdapConfigDetailResponse"
sso:
$ref: "#/definitions/SSOSamlConfigDetailResponse"
tua:
$ref: "#/definitions/TUAConfigDetailResponse"
AuthorityVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
displayName:
type: "string"
AutoFillConfigurationVM:
type: "object"
properties:
externalFieldId:
type: "string"
example: "summary"
qTestFieldIds:
type: "string"
example: "Assigned To"
AutomationAgentResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
agent_server_id:
type: "integer"
format: "int64"
name:
type: "string"
project_id:
type: "integer"
format: "int64"
host_id:
type: "integer"
format: "int64"
framework:
type: "string"
framework_id:
type: "string"
agent_id:
type: "integer"
format: "int64"
active:
type: "boolean"
configuration:
type: "string"
AutomationAgentSearchResult:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
page_size:
type: "integer"
format: "int32"
total:
type: "integer"
format: "int64"
items:
type: "array"
items:
$ref: "#/definitions/AutomationAgentResource"
AutomationArtifactSearchParams:
type: "object"
properties:
fields:
type: "array"
description: "fields: specify which object fields you want to include in the\
\ response. If you omit it or specify an asterisk (*), all fields are included"
uniqueItems: true
items:
type: "string"
example: "*"
query:
type: "string"
example: "'name' ~ 'qTest'"
description: "Represent text as Data Query"
AutomationFailLinkedDefectResponse:
type: "object"
properties:
pids:
type: "array"
description: "Failed linked defects"
items:
type: "string"
example: "MTR-2"
error:
type: "string"
example: "Could not find defect(s) in qTest Manager"
description: "Error message"
AutomationLinkedDefectResponse:
type: "object"
properties:
success:
type: "array"
description: "Successfully linked defects"
items:
type: "string"
example: "MTR-1"
fail:
type: "array"
description: "Failed linked defects with reasons"
items:
$ref: "#/definitions/AutomationFailLinkedDefectResponse"
AutomationObjectTree:
type: "object"
properties:
artifactType:
type: "string"
enum:
- "INVALID"
- "ROOT"
- "TEST_CASE"
- "TEST_CYCLE"
- "TEST_SUITE"
- "TEST_CASE_RUN"
- "RELEASE"
targetReleaseId:
type: "integer"
format: "int64"
targetBuildId:
type: "integer"
format: "int64"
parent:
$ref: "#/definitions/AutomationObjectTree"
type:
type: "string"
example: "release"
id:
type: "integer"
format: "int64"
example: 1
name:
type: "string"
example: "Example release name"
order:
type: "integer"
format: "int32"
example: 1
children:
type: "array"
readOnly: true
items:
type: "string"
example: ""
AutomationRequest:
type: "object"
required:
- "test_logs"
properties:
testSuiteModel:
$ref: "#/definitions/TestSuite"
parentModuleModel:
$ref: "#/definitions/ProjectModule"
parentTestCycleModel:
$ref: "#/definitions/TestCycle"
skipCreatingAutomationModule:
type: "boolean"
shouldCheckUnlinkRequirement:
type: "boolean"
test_suite:
type: "string"
example: "TS-1"
description: "ID or PID of Test Suite"
parent_module:
type: "string"
example: "MD-1"
description: "ID or PID of Module"
test_logs:
type: "array"
description: "Array of Test Log"
items:
$ref: "#/definitions/AutomationTestLogResource"
execution_date:
type: "string"
format: "date-time"
description: "Execution Date"
test_cycle:
type: "string"
example: "TC-1"
description: "ID or PID of Test Cycle"
AutomationScheduleCreationAPI:
type: "object"
required:
- "agentId"
- "projectId"
properties:
clientId:
type: "integer"
format: "int64"
name:
type: "string"
example: "Demo Suite Auto"
description: "Name of schedule"
agentId:
type: "integer"
format: "int64"
example: 1
description: "ID of the agent which will execute your automation script"
startDate:
type: "string"
format: "date-time"
creator:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
example: 1
testRunIds:
type: "array"
description: "Arrays of Test Run ID"
items:
type: "integer"
format: "int64"
dynamic:
type: "object"
description: "Additions values"
additionalProperties:
type: "string"
AutomationStepLog:
type: "object"
required:
- "test_step_log_id"
properties:
test_step_log_id:
type: "integer"
format: "int64"
actual_result:
type: "string"
status:
type: "string"
exe_date:
type: "string"
format: "date-time"
description: "Execution date"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
AutomationTestLog:
type: "object"
required:
- "exe_end_date"
- "exe_start_date"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
test_case_version_id:
type: "integer"
format: "int64"
exe_start_date:
type: "string"
format: "date-time"
exe_end_date:
type: "string"
format: "date-time"
note:
type: "string"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
name:
type: "string"
planned_exe_time:
type: "integer"
format: "int64"
minimum: 0
maximum: 9999999
actual_exe_time:
type: "integer"
format: "int64"
build_number:
type: "string"
build_url:
type: "string"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
status:
type: "string"
test_step_logs:
type: "array"
items:
$ref: "#/definitions/AutomationStepLog"
AutomationTestLogResource:
type: "object"
required:
- "exe_end_date"
- "exe_start_date"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
test_case_version_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Test Case Version"
exe_start_date:
type: "string"
format: "date-time"
description: "Execution start date"
exe_end_date:
type: "string"
format: "date-time"
description: "Execution end date"
note:
type: "string"
example: "Note"
description: "Note"
attachments:
type: "array"
description: "Test Log attachments"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
name:
type: "string"
example: "test run name"
description: "Test Run's name"
planned_exe_time:
type: "integer"
format: "int64"
minimum: 0
maximum: 9999999
actual_exe_time:
type: "integer"
format: "int64"
build_number:
type: "string"
example: "10"
description: "Jenkins jobs build number"
build_url:
type: "string"
example: "http://localhost:8080/jenkins"
description: "Jenkins jobs build URL"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
automation_content:
type: "string"
example: "automation content"
description: "Test Case's automation content"
system_name:
type: "string"
status:
type: "string"
example: "PASSED"
description: "Test Log status"
order:
type: "integer"
format: "int64"
test_step_logs:
type: "array"
description: "Arrays of Test Step Log"
items:
$ref: "#/definitions/AutomationTestStepLog"
testcase_properties:
type: "array"
description: "Arrays of Test case Properties"
items:
$ref: "#/definitions/PropertyResource"
module_names:
type: "array"
description: "Arrays of Modules"
items:
type: "string"
agent_ids:
type: "array"
items:
type: "integer"
format: "int64"
defect_pids:
type: "array"
description: "Defect pids"
items:
type: "string"
example: "MTR-1,MTR-2"
tosca_guid:
type: "string"
description: "GUID of Tosca test case."
tosca_node_path:
type: "string"
description: "Node Path of Tosca test case."
tosca_state:
type: "string"
AutomationTestLogResourceResponse:
type: "object"
required:
- "exe_end_date"
- "exe_start_date"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
test_case_version_id:
type: "integer"
format: "int64"
exe_start_date:
type: "string"
format: "date-time"
exe_end_date:
type: "string"
format: "date-time"
note:
type: "string"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
name:
type: "string"
planned_exe_time:
type: "integer"
format: "int64"
minimum: 0
maximum: 9999999
actual_exe_time:
type: "integer"
format: "int64"
build_number:
type: "string"
build_url:
type: "string"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
automation_content:
type: "string"
linkedDefects:
$ref: "#/definitions/AutomationLinkedDefectResponse"
system_name:
type: "string"
status:
type: "string"
order:
type: "integer"
format: "int64"
test_step_logs:
type: "array"
items:
$ref: "#/definitions/AutomationTestStepLog"
testcase_properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
module_names:
type: "array"
items:
type: "string"
agent_ids:
type: "array"
items:
type: "integer"
format: "int64"
defect_pids:
type: "array"
description: "Defect pids"
items:
type: "string"
example: "MTR-1,MTR-2"
tosca_guid:
type: "string"
tosca_node_path:
type: "string"
tosca_state:
type: "string"
AutomationTestStepLog:
type: "object"
required:
- "description"
- "expected_result"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
description:
type: "string"
example: "description"
description: "Test Step Log's description"
expected_result:
type: "string"
example: "expected result"
description: "Test Step Log's expected result"
actual_result:
type: "string"
example: "actual result"
description: "Test Step Log's actual result"
customFieldInfo:
type: "array"
items:
$ref: "#/definitions/CustomFieldInfo"
order:
type: "integer"
format: "int32"
example: 1
description: "Test Step Log's order"
status:
type: "string"
example: "PASSED"
description: "Test Step Log's status"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
defect_pids:
type: "array"
description: "Defect Pids"
items:
type: "string"
example: "MTR-1,MTR-2"
exe_date:
type: "string"
format: "date-time"
description: "Execution date"
BuildPermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Build"
edit:
type: "boolean"
example: true
description: "Can edit Build"
delete:
type: "boolean"
example: false
description: "Can delete Build"
view:
type: "boolean"
example: true
description: "Can view Build"
BuildResource:
type: "object"
required:
- "properties"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Build"
name:
type: "string"
example: "Build 1"
description: "Name of the Build"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 1
description: "Order in left tree of the Build"
pid:
type: "string"
example: "BL-1"
description: "PID of the Build"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
description: "Arrays property of the Build"
items:
$ref: "#/definitions/PropertyResource"
release:
$ref: "#/definitions/ReleaseWithCustomFieldResource"
Client:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
siteName:
type: "string"
maxFailedLoginAttempt:
type: "integer"
format: "int32"
passwordShelfLife:
type: "integer"
format: "int32"
passwordHealthyPeriod:
type: "integer"
format: "int32"
minimumUniquePasswordsSequenceLength:
type: "integer"
format: "int32"
licenseBlobId:
type: "integer"
format: "int64"
sessionTimeoutEnabled:
type: "boolean"
sessionTimeoutMinute:
type: "integer"
format: "int32"
terminateIdleEnabled:
type: "boolean"
terminateIdleMinute:
type: "integer"
format: "int32"
dateFormat:
type: "string"
rememberMeTimeoutEnabled:
type: "boolean"
rememberMeTimeoutDay:
type: "integer"
format: "int32"
mailRecipients:
type: "string"
useCustomPasswordPolicy:
type: "boolean"
minimumPasswordLength:
type: "integer"
format: "int32"
passwordContainsCapitalLetters:
type: "boolean"
passwordContainsLowercaseLetters:
type: "boolean"
passwordContainsNumericChars:
type: "boolean"
passwordContainsSpecialChars:
type: "boolean"
searchStatus:
type: "string"
enum:
- "ELASTICSEARCH"
- "REINDEXING"
- "ELASTICSEARCH_MIGRATED"
searchMigrationDuration:
type: "integer"
format: "int64"
trackingRequirementTestcaseVersionLink:
type: "boolean"
trackingConfigurationTestcaseVersionLink:
type: "boolean"
enableSiteAi:
type: "boolean"
enableAITestCaseGeneration:
type: "boolean"
executableFileEnabled:
type: "boolean"
inactive:
type: "boolean"
tdstenantId:
type: "string"
forExplorer:
type: "boolean"
forOnPremise:
type: "boolean"
CommentQueryParams:
type: "object"
required:
- "object_type"
properties:
start:
type: "string"
format: "date-time"
description: "StartDate with format: yyyy-MM-dd'T'HH:mm:ss.SSSZ or yyyy-MM-dd'T'HH:mm:ssZZ\""
end:
type: "string"
format: "date-time"
description: "EndDate with format: yyyy-MM-dd'T'HH:mm:ss.SSSZ or yyyy-MM-dd'T'HH:mm:ssZZ\""
object_type:
type: "string"
example: "requirements"
description: "Only support comments for object types: [requirements, defects,\
\ test-cases, test-runs]"
fields:
type: "array"
description: "Specify which object fields you want to include in the response.\
\ If you omit it or specify an asterisk (*), all fields are included"
uniqueItems: true
items:
type: "string"
example: "*"
object:
type: "integer"
format: "int64"
description: "Id of the object from which you want to retrieve comments"
author:
type: "integer"
format: "int64"
example: 1
description: "Id of the user who made the comments"
CommentResource:
type: "object"
properties:
created:
type: "string"
format: "date-time"
description: "Created date of Comment"
updated:
type: "string"
format: "date-time"
description: "Last updated date of Comment"
userId:
type: "integer"
format: "int64"
example: 5202
description: "ID of the User who create this Comment"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 2602608
description: "ID of the Comment"
content:
type: "string"
example: "The comment's content"
description: "Comment text"
CustomFieldInfo:
type: "object"
properties:
id:
type: "integer"
format: "int64"
value:
type: "string"
objectId:
type: "integer"
format: "int64"
type:
type: "string"
name:
type: "string"
stripHTMLValue:
type: "string"
propertyEditorComponent:
type: "boolean"
CustomFieldTemplate:
type: "object"
properties:
id:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
name:
type: "string"
default:
type: "boolean"
CustomeResourceSupport:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
Defect:
type: "object"
properties:
creatorId:
type: "integer"
format: "int64"
createdDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
lastModifiedDate:
type: "string"
format: "date-time"
displayName:
type: "string"
displayDescription:
type: "string"
id:
type: "integer"
format: "int64"
pid:
type: "integer"
format: "int64"
createdUserId:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
summary:
type: "string"
description:
type: "string"
typeId:
type: "integer"
format: "int64"
type:
$ref: "#/definitions/LookUp"
assignedUserId:
type: "integer"
format: "int64"
statusId:
type: "integer"
format: "int64"
previousStatusId:
type: "integer"
format: "int64"
severityId:
type: "integer"
format: "int64"
priorityId:
type: "integer"
format: "int64"
affectedReleaseId:
type: "integer"
format: "int64"
affectedBuildId:
type: "integer"
format: "int64"
fixedReleaseId:
type: "integer"
format: "int64"
fixedBuildId:
type: "integer"
format: "int64"
targetReleaseId:
type: "integer"
format: "int64"
targetBuildId:
type: "integer"
format: "int64"
targetDate:
type: "string"
format: "date-time"
closedDate:
type: "string"
format: "date-time"
reasonId:
type: "integer"
format: "int64"
rootCauseId:
type: "integer"
format: "int64"
categoryId:
type: "integer"
format: "int64"
projectModuleId:
type: "integer"
format: "int64"
sourceDefectId:
type: "integer"
format: "int64"
environmentId:
type: "integer"
format: "int64"
comments:
type: "array"
items:
$ref: "#/definitions/DefectComment"
status:
$ref: "#/definitions/LookUp"
draft:
type: "boolean"
indexFlag:
type: "boolean"
externalIssueId:
type: "string"
connectionId:
type: "integer"
format: "int64"
externalProjectId:
type: "string"
externalIssueSummary:
type: "string"
externalIssueStatus:
type: "string"
url:
type: "string"
externalIssueType:
type: "string"
externalIssueUniqueId:
type: "string"
unlinkedDefect:
type: "boolean"
name:
type: "string"
objectType:
type: "integer"
format: "int64"
deleted:
type: "boolean"
objOrder:
type: "integer"
format: "int64"
fullId:
type: "string"
shortResultType:
type: "string"
parentArtifactId:
type: "integer"
format: "int64"
parentObjectType:
type: "integer"
format: "int64"
resultName:
type: "string"
resultType:
type: "string"
resultDescription:
type: "string"
affectedReleaseBuildId:
type: "string"
fixedReleaseBuildId:
type: "string"
targetReleaseBuildId:
type: "string"
artifactType:
type: "integer"
format: "int32"
pidWithPrefix:
type: "string"
statusName:
type: "string"
autoTestCase:
type: "boolean"
tosca:
type: "boolean"
approved:
type: "boolean"
longId:
type: "integer"
format: "int64"
automation:
type: "boolean"
customFieldValue:
type: "string"
createDateTimeString:
type: "string"
DefectComment:
type: "object"
properties:
id:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
objectId:
type: "integer"
format: "int64"
objectTypeId:
type: "integer"
format: "int64"
userId:
type: "integer"
format: "int64"
objectComment:
type: "string"
commentDate:
type: "string"
format: "date-time"
editDate:
type: "string"
format: "date-time"
defect:
$ref: "#/definitions/Defect"
longId:
type: "integer"
format: "int64"
DefectFieldMapping:
type: "object"
properties:
field:
type: "string"
example: "Priority"
description: "External tracker Defect's field"
qtest_fields:
type: "array"
description: "qTest Defect's field"
items:
type: "string"
example: "101,102"
DefectMapping:
type: "object"
properties:
type_id:
type: "integer"
format: "int64"
type:
type: "string"
type_label:
type: "string"
project_id:
type: "integer"
format: "int64"
project:
type: "string"
project_label:
type: "string"
fields:
type: "array"
items:
$ref: "#/definitions/DefectFieldMapping"
DefectPermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Defect"
edit:
type: "boolean"
example: true
description: "Can edit Defect"
delete:
type: "boolean"
view:
type: "boolean"
example: true
description: "Can view Defect"
export:
type: "boolean"
example: true
description: "Can export Defect"
DefectResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
properties:
type: "array"
description: "Properties of the Defect"
items:
$ref: "#/definitions/PropertyResource"
attachments:
type: "array"
description: "Attachments of the Defect"
items:
$ref: "#/definitions/AttachmentResource"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Defect"
pid:
type: "string"
example: "DF-1"
description: "PID of the Defect"
submitted_date:
type: "string"
format: "date-time"
description: "The date Defect was created"
last_modified_date:
type: "string"
format: "date-time"
description: "Last modified date"
submitter_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User who create the Defect"
last_modified_user_id:
type: "integer"
format: "int64"
example: 1
description: "Last ID of the User who updated the Defect"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/1/portal/project#tab=defects&object=17&id=1"
description: "Web url to the Defect"
readOnly: true
DefectTrackingSystem:
type: "object"
properties:
defect_mappings:
type: "array"
items:
$ref: "#/definitions/DefectMapping"
connection_name:
type: "string"
example: "Jira Cloud"
description: "Name of Integration Connection"
url:
type: "string"
example: "https://example.jira.com"
description: "URL to Integration Connection"
system_name:
type: "string"
example: "JIRA"
description: "System name of Integration Connection"
active:
type: "boolean"
example: true
description: "Status of Integration Connection"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of Integration Connection"
ErrorMessage:
type: "object"
properties:
message:
type: "string"
additionalInfo:
type: "object"
ExternalPropertyResource:
type: "object"
properties:
id:
type: "string"
link:
type: "string"
unique_id:
type: "string"
FieldInputResource:
type: "object"
properties:
label:
type: "string"
example: "Name"
description: "Label of the Field Setting"
required:
type: "boolean"
description: "Is required or not"
order:
type: "integer"
format: "int32"
description: "Display order"
allowed_values:
type: "array"
description: "Allowed values"
items:
$ref: "#/definitions/AllowedValueResource"
multiple:
type: "boolean"
description: "Is allowed multiple values"
data_type:
type: "integer"
format: "int64"
example: 1
description: "Data type of the Field"
minimum: 1
searchable:
type: "boolean"
description: "Allowed full text search or not"
default_value:
type: "string"
description: "Default value of the Field"
is_active:
type: "boolean"
description: "Is active or disabled"
FieldResource:
type: "object"
required:
- "label"
properties:
instanceType:
type: "string"
example: "NumberDataType"
description: "Number Data Type"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Field"
label:
type: "string"
example: "Name"
description: "Label of the Field"
required:
type: "boolean"
example: true
description: "Is required or not"
constrained:
type: "boolean"
description: "Constrained or not"
order:
type: "integer"
format: "int32"
example: 1
description: "Display order"
allowed_values:
type: "array"
description: "Allowed values"
items:
$ref: "#/definitions/AllowedValueResource"
multiple:
type: "boolean"
example: false
description: "Is allowed multiple values"
data_type:
type: "integer"
format: "int64"
example: 1
description: "Data type of the Field"
minimum: 1
searchable:
type: "boolean"
example: true
description: "Allowed full text search or not"
default_value:
type: "string"
description: "Default value of the Field"
system_field:
type: "boolean"
example: true
description: "Is system field or not"
original_name:
type: "string"
example: "Name"
description: "Original name of the Field"
is_active:
type: "boolean"
example: true
description: "Is active or disabled"
FieldResourceSwagger:
type: "object"
required:
- "label"
properties:
instanceType:
type: "string"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
attribute_type:
type: "string"
label:
type: "string"
required:
type: "boolean"
constrained:
type: "boolean"
order:
type: "integer"
format: "int32"
multiple:
type: "boolean"
data_type:
type: "integer"
format: "int64"
minimum: 1
searchable:
type: "boolean"
free_text_search:
type: "boolean"
default_value:
type: "string"
system_field:
type: "boolean"
original_name:
type: "string"
is_active:
type: "boolean"
HistoryChange:
type: "object"
properties:
field:
type: "string"
old_value:
type: "string"
new_value:
type: "string"
HistoryQueryParams:
type: "object"
required:
- "object_type"
properties:
object_type:
type: "string"
example: "test-cases"
fields:
type: "array"
uniqueItems: true
items:
type: "string"
example: "*"
query:
type: "string"
description: "Specify a structured query to retrieve history of objects specified\
\ in attribute object_query above\n\nOnly these 2 criteria are supported:\n\
\n created: it can be used for querying by updated date of the object. \n\
\nIts values need to be in ISO Date format. Applicable operator include:\
\ =, <>, <= and >= \n\nauthor:it can be used for querying by Id of the\
\ users who made the update. Applicable operators include: = and <>\n\n\
You can use operators and and or to combine an unlimited number of criteria\
\ above"
object_query:
type: "string"
description: "Specify a structured query to search for qTest objects. Refer\
\ to attribute query in the request body of Query Objects API"
HistoryResource:
type: "object"
properties:
created:
type: "string"
format: "date-time"
description:
type: "string"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
author_id:
type: "integer"
format: "int64"
linked_object:
$ref: "#/definitions/LinkedObject"
changes:
type: "array"
items:
$ref: "#/definitions/HistoryChange"
IntegrationAutoFillMappingVM:
type: "object"
properties:
externalProjectId:
type: "string"
example: "10031"
readOnly: true
externalTypeId:
type: "string"
example: "10100"
readOnly: true
sendAttachmentToJira:
type: "string"
example: "true"
configures:
type: "array"
items:
$ref: "#/definitions/AutoFillConfigurationVM"
IntegrationConnection:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
external_system:
type: "string"
example: "Jira"
connection_name:
type: "string"
example: "Jira Connection"
server_url:
type: "string"
example: "https://example.atlassian.net"
web_url:
type: "string"
example: "https://example.atlassian.net"
authentication_type:
type: "string"
example: "Token"
username:
type: "string"
example: "username"
token:
type: "string"
example: "token"
IntegrationConnectionVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
external_system:
type: "string"
example: "Jira"
connection_name:
type: "string"
example: "Jira Connection"
server_url:
type: "string"
example: "https://example.atlassian.net"
web_url:
type: "string"
example: "https://example.atlassian.net"
active:
type: "boolean"
example: false
IntegrationFieldMapVM:
type: "object"
properties:
externalFieldId:
type: "string"
example: "id"
externalFieldName:
type: "string"
example: "ID"
active:
type: "boolean"
example: true
IntegrationReleaseConfigurationVM:
type: "object"
properties:
autoUpdate:
type: "boolean"
readOnly: true
configurationValues:
$ref: "#/definitions/IntegrationReleaseConfigurationValues"
data_retrieval_options:
type: "array"
items:
type: "string"
example: "completed"
auto_update_release_scope:
type: "string"
example: "true"
IntegrationReleaseConfigurationValues:
type: "object"
properties:
unreleased:
type: "boolean"
released:
type: "boolean"
active:
type: "boolean"
future:
type: "boolean"
completed:
type: "boolean"
IntegrationReleaseMappingResponse:
type: "object"
properties:
externalProjectId:
type: "string"
example: "10031"
externalIssueTypeId:
type: "string"
example: "Sprint"
data_retrieval_options:
type: "array"
items:
type: "string"
example: "completed"
auto_update_release_scope:
type: "string"
example: "true"
readOnly: true
LDAPUsersResponse:
type: "object"
properties:
items:
type: "array"
items:
$ref: "#/definitions/LdapUserVM"
total:
type: "integer"
format: "int32"
page_size:
type: "integer"
format: "int32"
page:
type: "integer"
format: "int32"
LatestTestLogResource:
type: "object"
properties:
status:
type: "string"
id:
type: "integer"
format: "int64"
tester:
type: "string"
exe_start_date:
type: "string"
format: "date-time"
exe_end_date:
type: "string"
format: "date-time"
LdapConfigDetailResponse:
type: "object"
properties:
id:
type: "integer"
format: "int64"
is_activated:
type: "boolean"
auth_type:
type: "string"
example: "LDAP"
description: "Type of authentication system"
enum:
- "INTERNAL"
- "LDAP"
- "SSO_SAML2"
- "TUA_OPENID"
name:
type: "string"
username:
type: "string"
description: "Username of Ldap system"
url:
type: "string"
description: "The url of Ldap system"
base:
type: "string"
description: "Base of Ldap system"
base_search:
type: "string"
description: "Base search of Ldap system"
search_filter:
type: "string"
description: "Search filter of Ldap system"
mapped_username:
type: "string"
description: "The mapped username field of Ldap system"
mapped_firstname:
type: "string"
description: "The mapped firstname field of Ldap system"
mapped_lastname:
type: "string"
description: "The mapped lastname field of Ldap system"
mapped_email:
type: "string"
description: "The mapped email field of Ldap system"
is_ldap_ssl:
type: "boolean"
example: true
description: "Use SSL connect or not"
is_active_directory:
type: "boolean"
example: false
description: "Is active directory or not"
LdapUserResource:
type: "object"
properties:
ldap_username:
type: "string"
first_name:
type: "string"
last_name:
type: "string"
email:
type: "string"
LdapUserVM:
type: "object"
properties:
uid:
type: "string"
firstName:
type: "string"
lastName:
type: "string"
mail:
type: "string"
activationLink:
type: "string"
mappedUserId:
type: "integer"
format: "int64"
newMappedUserName:
type: "string"
disabled:
type: "boolean"
userDN:
type: "string"
externalUserId:
type: "string"
Link:
type: "object"
properties:
rel:
type: "string"
example: "self"
description: "Relationship of link to object"
href:
type: "string"
example: ""
description: "URL to the resource"
LinkedArtifact:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of linked artifact"
pid:
type: "string"
example: "TC-1"
description: "PID of linked artifact"
link_type:
type: "string"
example: "is_covered_by"
description: "Type of relationship between source and linked Artifact "
self:
type: "string"
example: "https://apitryout.qtestnet.com/p/1/portal/project#tab=testdesign&object=1&id=1"
description: "URL to linked artifact"
LinkedArtifactContainer:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of source artifact"
pid:
type: "string"
example: "RQ-1"
description: "PID of source artifact`"
objects:
type: "array"
description: "Arrays of linked artifact"
items:
$ref: "#/definitions/LinkedArtifact"
LinkedDefect:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "Defect id"
pid:
type: "string"
example: "MTR-1"
description: "Defect pid"
link_type:
type: "string"
example: "is_associated_with"
description: "Link type"
external_defect_id:
type: "string"
example: "MTR-1"
description: "External defect id"
connection_id:
type: "integer"
format: "int64"
example: 1
description: "Defect connection id"
external_project_id:
type: "string"
example: "MTR"
description: "External project id"
summary:
type: "string"
example: "Defect summary 1"
description: "Defect summary"
status:
type: "string"
example: "New"
description: "Defect status"
LinkedDefectArtifactResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
pid:
type: "string"
submittedDate:
type: "string"
format: "date-time"
lastModifiedDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
testCaseId:
type: "integer"
format: "int64"
testCaseVersionId:
type: "integer"
format: "int64"
title:
type: "string"
priority:
type: "string"
status:
type: "string"
submitterUserId:
type: "integer"
format: "int64"
externalDefect:
type: "object"
additionalProperties:
type: "object"
LinkedDefectContainer:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of source artifact"
objects:
type: "array"
description: "Arrays of linked defect"
items:
$ref: "#/definitions/LinkedDefect"
LinkedDefectResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of Defect"
external_defect_id:
type: "string"
example: "EXP-1"
description: "External ID of Defect"
connection_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the external Integration Connection"
external_project_id:
type: "string"
example: "EXP"
description: "ID of external Project"
summary:
type: "string"
example: "Defect summary"
description: "Summary of external Defect"
status:
type: "string"
example: "New"
description: "Status of external Defect"
pid:
type: "string"
example: "EXP-1"
description: "PID of external Defect"
web_url:
type: "string"
example: "https://example.com/EXP-1"
description: "Web url to external Defect"
readOnly: true
description:
type: "string"
example: "Defect description"
description: "Description of external Defect"
LinkedObject:
type: "object"
properties:
object_type:
type: "string"
object_id:
type: "integer"
format: "int64"
LoggedUser:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
user_name:
type: "string"
example: "example.user@qtest.com"
description: "Login email of the User"
past_usernames:
type: "string"
first_name:
type: "string"
example: "User"
description: "First name"
last_name:
type: "string"
example: "Example"
description: "Last name"
client_id:
type: "integer"
format: "int64"
example: 2
description: "ID of qTest site that User logged in"
client_name:
type: "string"
example: "Example"
description: "qTest instance client site name"
client_site:
type: "string"
example: "https://apitryout.qtestnet.com"
description: "URL of qTest instance"
timezone_offset:
type: "string"
avatar:
type: "string"
example: "https://apitryout.qtestnet.com/api/v3/users/1/avatar"
description: "URL to User's Avatar"
access_admin_page:
type: "boolean"
example: true
description: "Can access admin page or not"
client_site_name:
type: "string"
example: "exmaple"
description: "qTest instance sub domain name"
package_type:
type: "string"
example: "Elite"
description: "Package type"
applications:
type: "array"
description: "List qTest products which User can access"
items:
$ref: "#/definitions/AppDetail"
support_links:
type: "object"
description: "Arrays of Supports link"
additionalProperties:
type: "string"
LookUp:
type: "object"
properties:
id:
type: "integer"
format: "int64"
lookupValue:
type: "string"
lookupTypeId:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
systemValue:
type: "boolean"
order:
type: "integer"
format: "int32"
ManualTestLogResource:
type: "object"
required:
- "exe_end_date"
- "exe_start_date"
- "status"
properties:
submittedBy:
type: "string"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
test_case_version_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Test Case Version"
exe_start_date:
type: "string"
format: "date-time"
description: "Execution start date"
exe_end_date:
type: "string"
format: "date-time"
description: "Execution end date"
note:
type: "string"
example: "Note"
description: "Note"
attachments:
type: "array"
description: "Test Log attachments"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
name:
type: "string"
example: "test run name"
description: "Test Run's name"
planned_exe_time:
type: "integer"
format: "int64"
minimum: 0
maximum: 9999999
actual_exe_time:
type: "integer"
format: "int64"
build_number:
type: "string"
example: "10"
description: "Jenkins jobs build number"
build_url:
type: "string"
example: "http://localhost:8080/jenkins"
description: "Jenkins jobs build URL"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
status:
$ref: "#/definitions/StatusResource"
result_number:
type: "integer"
format: "int64"
test_step_logs:
type: "array"
description: "Arrays of Test Step Log, \n\nWith called test steps, the \"\
called_test_case_id\" and \"parent_test_step_id\" must be included in request\
\ body."
items:
$ref: "#/definitions/TestStepLogResource"
defects:
type: "array"
description: "Array of Defect"
items:
$ref: "#/definitions/LinkedDefectResource"
Message:
type: "object"
properties:
noLogging:
type: "boolean"
message:
type: "string"
example: "Error message"
description: "Error message text"
readOnly: true
ModulePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Module"
edit:
type: "boolean"
example: true
description: "Can edit Module"
delete:
type: "boolean"
example: true
description: "Can delete Module"
view:
type: "boolean"
example: true
description: "Can view Module"
ModuleResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 2107619
description: "ID of the Module"
name:
type: "string"
example: "MD-2 Homepage"
description: "Name of the Module"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 9
description: "Display order of the Module"
pid:
type: "string"
example: "MD-8"
description: "PID of the Module"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
parent_id:
type: "integer"
format: "int64"
example: 2107628
description: "Parent Module of the Module"
description:
type: "string"
example: "Description of Module 1"
description: "Description of the Module"
shared:
type: "boolean"
example: false
description: "Is shared or not"
projects_shared_to:
type: "array"
items:
type: "integer"
format: "int64"
children:
type: "array"
description: "Arrays of child module"
items:
$ref: "#/definitions/ModuleResource"
recursive:
type: "boolean"
tosca_guid:
type: "string"
description: "Tosca folder GUID. Use for creating Module and link with Tosca\
\ folder."
tosca_node_path:
type: "string"
description: "Tosca folder node path. Use for creating Module and link with\
\ Tosca folder."
tosca_state:
type: "string"
NewIntegrationConnectionInfo:
type: "object"
properties:
connection_id:
type: "integer"
format: "int64"
example: 1
readOnly: true
status:
type: "string"
example: "false"
readOnly: true
OAuthResponse:
type: "object"
properties:
access_token:
type: "string"
example: "19e28687-0e67-41e8-a9b4-849ca7ea1741"
description: "OAuth access token"
token_type:
type: "string"
example: "bearer"
description: "OAuth token type"
refresh_token:
type: "string"
example: "913aac60-039e-4f79-a890-fa804a8a6e9f"
description: "OAuth refresh token"
scope:
type: "string"
example: "read import administration create share baseline write delete execute\
\ export"
description: "Scope of token"
agent:
type: "string"
description: "Agent name like browser agent"
expires_in:
type: "integer"
format: "int64"
example: 300
description: "Access token expire time in second"
OAuthTokenStatusVM:
type: "object"
properties:
expiration:
type: "integer"
format: "int64"
validityInMilliseconds:
type: "integer"
format: "int64"
OutputStream:
type: "object"
PagedResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size"
total:
type: "integer"
format: "int64"
example: 100
description: "Total record found"
items:
type: "array"
description: "Data of records"
items:
$ref: "#/definitions/RepresentationModel"
PagedResourceAttachmentResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
page_size:
type: "integer"
format: "int32"
total:
type: "integer"
format: "int64"
items:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
PagedResourceCommentResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size"
total:
type: "integer"
format: "int64"
example: 100
description: "Total record found"
items:
type: "array"
description: "Data of records"
items:
$ref: "#/definitions/CommentResource"
ParameterInfo:
type: "object"
properties:
parameter:
$ref: "#/definitions/ParameterVM"
info:
$ref: "#/definitions/TestParameter"
parameterValue:
$ref: "#/definitions/ParameterValueVM"
ParameterTestStepResource:
type: "object"
properties:
step_id:
type: "integer"
format: "int64"
description_parameter_values:
type: "array"
items:
type: "string"
expected_parameter_values:
type: "array"
items:
type: "string"
ParameterVM:
type: "object"
properties:
parameterId:
type: "integer"
format: "int64"
id:
type: "string"
startIndex:
type: "integer"
format: "int32"
endIndex:
type: "integer"
format: "int32"
startWithoutPrefixIndex:
type: "integer"
format: "int32"
endWithoutSuffixIndex:
type: "integer"
format: "int32"
parameterName:
type: "string"
ParameterValueVM:
type: "object"
properties:
id:
type: "string"
value:
type: "string"
ParameterizationText:
type: "object"
properties:
parameters:
type: "array"
items:
$ref: "#/definitions/ParameterInfo"
rawText:
type: "string"
htmlText:
type: "string"
plainText:
type: "string"
valueText:
type: "string"
editedParameters:
type: "array"
items:
$ref: "#/definitions/ParameterInfo"
plainValueText:
type: "string"
Profile:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of Profile"
name:
type: "string"
example: "Project Manager"
description: "Name of Profile"
Project:
type: "object"
properties:
creatorId:
type: "integer"
format: "int64"
createdDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
lastModifiedDate:
type: "string"
format: "date-time"
id:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
name:
type: "string"
startDate:
type: "string"
format: "date-time"
endDate:
type: "string"
format: "date-time"
description:
type: "string"
projectStatusId:
type: "integer"
format: "int64"
patchIncidentStatus:
type: "integer"
format: "int32"
automation:
type: "boolean"
defectworkflow:
type: "boolean"
uuid:
type: "string"
cloneStatus:
type: "integer"
format: "int32"
sourceProjectId:
type: "integer"
format: "int64"
client:
$ref: "#/definitions/Client"
trxId:
type: "string"
format: "date-time"
customFieldTemplateId:
type: "integer"
format: "int64"
internally:
type: "boolean"
customFieldTemplate:
$ref: "#/definitions/CustomFieldTemplate"
indexingStatus:
type: "boolean"
autoPopulateClosedDate:
type: "boolean"
active:
type: "boolean"
cloneCanceled:
type: "boolean"
newStyleSample:
type: "boolean"
cloning:
type: "boolean"
cloned:
type: "boolean"
patchedIncidents:
type: "boolean"
sampleProject:
type: "boolean"
longId:
type: "integer"
format: "int64"
createDateTimeString:
type: "string"
ProjectAdminPermission:
type: "object"
properties:
admin:
type: "boolean"
example: true
description: "Is project admin or not"
ProjectModule:
type: "object"
properties:
creatorId:
type: "integer"
format: "int64"
createdDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
lastModifiedDate:
type: "string"
format: "date-time"
id:
type: "integer"
format: "int64"
pid:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
project:
$ref: "#/definitions/Project"
objOrder:
type: "integer"
format: "int64"
parentModuleId:
type: "integer"
format: "int64"
parentModule:
$ref: "#/definitions/ProjectModule"
name:
type: "string"
description:
type: "string"
moduleType:
type: "string"
format: "byte"
deleted:
type: "boolean"
shared:
type: "boolean"
damage:
type: "integer"
format: "int64"
frequency:
type: "integer"
format: "int64"
weight:
type: "integer"
format: "int64"
tdsFlowId:
type: "string"
subModules:
type: "array"
items:
$ref: "#/definitions/ProjectModule"
objectType:
type: "integer"
format: "int64"
statusId:
type: "integer"
format: "int64"
parentArtifactId:
type: "integer"
format: "int64"
parentObjectType:
type: "integer"
format: "int64"
artifactType:
type: "integer"
format: "int32"
longId:
type: "integer"
format: "int64"
pidWithPrefix:
type: "string"
createDateTimeString:
type: "string"
ProjectQueryParams:
type: "object"
properties:
uuid:
type: "array"
description: "UUID of the Project"
items:
type: "string"
ProjectResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Project"
name:
type: "string"
example: "qConnect Sample Project"
description: "Name of the Project"
description:
type: "string"
example: "Description of qConnect Sample Project"
description: "Description of the Project"
status_id:
type: "integer"
format: "int64"
example: 101
description: "Status of the Project"
start_date:
type: "string"
format: "date-time"
description: "Start date of the Project"
end_date:
type: "string"
format: "date-time"
description: "End date of the Project"
admins:
type: "array"
description: "Arrays of admin user"
items:
type: "string"
admin_ids:
type: "array"
items:
type: "integer"
format: "int64"
sample:
type: "boolean"
example: true
description: "Is sample or not"
user_profile:
$ref: "#/definitions/UserProfile"
defect_tracking_systems:
type: "array"
description: "Arrays of External Defect Tracking Connection"
items:
$ref: "#/definitions/DefectTrackingSystem"
x_explorer_access_level:
type: "integer"
format: "int32"
example: 7
description: "Can access Explorer"
date_format:
type: "string"
example: "yyyy/MM/dd"
description: "Client date time format"
automation:
type: "boolean"
example: false
description: "Automation enabled or not"
readOnly: true
template_id:
type: "integer"
format: "int64"
example: 1
description: "Template id of this project"
uuid:
type: "string"
example: "uuid"
description: "UUID of the Project"
ProjectSettingPermission:
type: "object"
properties:
manage:
type: "boolean"
example: true
description: "Can manage project setting or not"
ProjectUpdateResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
name:
type: "string"
example: "qConnect Sample Project"
description: "Name of the Project"
description:
type: "string"
example: "Description of qConnect Sample Project"
description: "Description of the Project"
start_date:
type: "string"
example: "2019-06-17T05:09:13.178Z"
description: "Start date of the Project"
end_date:
type: "string"
example: "2019-06-27T05:09:13.178Z"
description: "End date of the Project"
admin_ids:
type: "array"
description: "Array of Assigned Admin user id"
items:
type: "integer"
format: "int64"
uuid:
type: "string"
example: "uuid"
description: "UUID of the Project"
template_id:
type: "integer"
format: "int64"
example: 1
description: "Template id of this project"
ProjectUsersProfile:
type: "object"
properties:
userProfileId:
type: "integer"
format: "int64"
example: 2
description: "ID of user profile"
userIds:
type: "array"
description: "Array User ID"
items:
type: "integer"
format: "int64"
example: 1
ProjectWithUserIdsObject:
type: "object"
properties:
project_id:
type: "integer"
format: "int64"
description: "ID of the Project"
user_ids:
type: "array"
description: "Array User ID"
uniqueItems: true
items:
type: "integer"
format: "int64"
PropertyResource:
type: "object"
required:
- "field_id"
properties:
field_id:
type: "integer"
format: "int64"
example: 1
description: "ID of Field"
field_name:
type: "string"
example: "Field Name"
description: "Name of Field"
field_value:
type: "string"
example: "1"
description: "Value of Field"
field_value_name:
type: "string"
example: "1"
description: "Name Value of Field"
QueryCommentResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size"
total:
type: "integer"
format: "int64"
example: 100
description: "Total record found"
items:
type: "array"
description: "Data of records"
items:
$ref: "#/definitions/CommentResource"
QueueProcessingResponse:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
description: "ID of task after batch submit automation test logs"
state:
type: "string"
example: "IN_PROCESSING"
description: "State of task after batch submit automation test logs"
contentType:
type: "string"
example: "application/json"
description: "Content type of task after batch submit automation test logs"
content:
type: "string"
description: "Data of task after batch submit automation test logs"
type:
type: "string"
example: "AUTOMATION_TEST_LOG"
description: "Type of task after batch submit automation test logs"
QueueProcessingResponseFetchDataVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
type:
type: "string"
example: "FETCH_LINKED_DEFECTS"
state:
type: "string"
example: "IN_PROCESSING"
contentType:
type: "string"
example: "application/json"
content:
type: "string"
QueueProcessingResponseTestRunDataVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
example: 1
type:
type: "string"
example: "CREATE_TEST_RUN_WITH_PARAMETER"
state:
type: "string"
example: "IN_PROCESSING"
contentType:
type: "string"
example: "application/json"
content:
type: "string"
ReleasePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Release"
edit:
type: "boolean"
example: true
description: "Can edit Release"
delete:
type: "boolean"
example: true
description: "Can delete Release"
view:
type: "boolean"
example: true
description: "Can view Release"
ReleaseWithCustomFieldResource:
type: "object"
required:
- "properties"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 149652
name:
type: "string"
example: "Release 2"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 2
pid:
type: "string"
example: "RL-2"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/39047/portal/project#tab=testplan&object=8&id=149652"
readOnly: true
description:
type: "string"
example: "This is the second release"
note:
type: "string"
example: "Note of the Release"
start_date:
type: "string"
format: "date-time"
end_date:
type: "string"
format: "date-time"
RepresentationModel:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
RequirementMapping:
type: "object"
properties:
externalProjectId:
type: "string"
example: "10031"
readOnly: true
externalTypeId:
type: "string"
example: "10100"
readOnly: true
mapping_id:
type: "integer"
format: "int64"
example: 1
readOnly: true
external_filter:
type: "string"
example: "10048"
external_field_1_id:
type: "string"
example: "id"
external_field_2_id:
type: "string"
example: "project"
active_external_fields:
type: "string"
example: "id,status,summary,description"
RequirementPermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Requirement"
edit:
type: "boolean"
example: true
description: "Can edit Requirement"
delete:
type: "boolean"
example: true
description: "Can delete Requirement"
view:
type: "boolean"
example: true
description: "Can view Requirement"
edit_assignment:
type: "boolean"
example: true
description: "Can assign user to Requirement"
export:
type: "boolean"
example: true
description: "Can export Requirement"
import:
type: "boolean"
example: true
description: "Can import Requirement"
RequirementResource:
type: "object"
required:
- "properties"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 4171806
name:
type: "string"
example: "Video sections"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 1
pid:
type: "string"
example: "RQ-5"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/39047/portal/project#tab=requirements&object=5&id=4171806"
readOnly: true
parent_id:
type: "integer"
format: "int64"
example: 2107628
external_properties:
readOnly: true
$ref: "#/definitions/ExternalPropertyResource"
ResponseWrapper:
type: "object"
properties:
result:
type: "object"
errors:
type: "array"
items:
$ref: "#/definitions/ErrorMessage"
SSOSamlConfigDetailResponse:
type: "object"
properties:
id:
type: "integer"
format: "int64"
is_activated:
type: "boolean"
auth_type:
type: "string"
example: "SSO_SAML2"
description: "Type of authentication system"
enum:
- "INTERNAL"
- "LDAP"
- "SSO_SAML2"
- "TUA_OPENID"
name:
type: "string"
metadata_link:
type: "string"
description: "Metadata link of SSO system"
auto_create_user:
type: "boolean"
description: "Auto create user or not"
metadata_filename:
type: "string"
SchedulePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create schedule"
edit:
type: "boolean"
example: true
description: "Can edit schedule"
delete:
type: "boolean"
example: true
description: "Can delete schedule"
view:
type: "boolean"
example: true
description: "Can views= schedule"
SearchUserResource:
type: "object"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
username:
type: "string"
example: "example.user@qtest.com"
description: "Login username of the User"
email:
type: "string"
example: "example.user@qtest.com"
description: "Contact email of the User"
password:
type: "string"
first_name:
type: "string"
example: "Example"
description: "First name of the User"
last_name:
type: "string"
example: "Example"
description: "Last name of the User"
status:
type: "integer"
format: "int32"
example: 0
description: "Status of the User"
avatar:
type: "string"
example: "https://apitryout.qtestnet.com/api/v3/users/1/avatar"
description: "Avatar URL of the User"
ldap_username:
type: "string"
description: "LDAP username"
user_group_ids:
type: "array"
items:
type: "integer"
format: "int64"
external_auth_config_id:
type: "integer"
format: "int64"
external_user_name:
type: "string"
assigned_projects:
type: "array"
description: "Arrays of Project that user assigned to"
items:
type: "integer"
format: "int64"
example: 1
SearchUserResourceExtensionResponse:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page number"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size number"
total:
type: "integer"
format: "int64"
example: 100
description: "Total user found"
items:
type: "array"
description: "Arrays of User"
items:
$ref: "#/definitions/UserResourceExtension"
SearchUserResponse:
type: "object"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
example: 1
description: "Current page number"
page_size:
type: "integer"
format: "int32"
example: 25
description: "Current page size number"
total:
type: "integer"
format: "int64"
example: 100
description: "Total user found"
items:
type: "array"
description: "Arrays of User"
items:
$ref: "#/definitions/SearchUserResource"
total_project:
type: "integer"
format: "int64"
example: 10
description: "Total Project found"
SessionManagerPermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Session"
edit:
type: "boolean"
example: true
description: "Can edit Session"
delete:
type: "boolean"
example: true
description: "Can delete Session"
view:
type: "boolean"
example: true
description: "Can view Session"
ShortTestLogResource:
type: "object"
properties:
status:
type: "string"
id:
type: "integer"
format: "int64"
exe_start_date:
type: "string"
format: "date-time"
exe_end_date:
type: "string"
format: "date-time"
SiteTemplateResponse:
type: "object"
properties:
name:
type: "string"
template_id:
type: "integer"
format: "int64"
SiteUsersProfile:
type: "object"
properties:
userProfileId:
type: "integer"
format: "int64"
example: 2
description: "ID of user profile"
userIds:
type: "array"
description: "Array User ID"
items:
type: "integer"
format: "int64"
example: 1
StatusResource:
type: "object"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 601
description: "ID of Test Run's status"
name:
type: "string"
example: "Passed"
description: "Name of Test Run's status"
is_default:
type: "boolean"
example: false
description: "Is default or not"
color:
type: "string"
example: "#0cdda8"
description: "Color of Test Run's status"
active:
type: "boolean"
example: true
description: "Active or not"
TUAConfigDetailResponse:
type: "object"
properties:
url:
type: "string"
id:
type: "integer"
format: "int64"
is_activated:
type: "boolean"
auth_type:
type: "string"
enum:
- "INTERNAL"
- "LDAP"
- "SSO_SAML2"
- "TUA_OPENID"
name:
type: "string"
TestCaseNoCustomFieldResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
name:
type: "string"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
pid:
type: "string"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
web_url:
type: "string"
readOnly: true
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
parent_id:
type: "integer"
format: "int64"
test_case_version_id:
type: "integer"
format: "int64"
version:
type: "string"
description:
type: "string"
precondition:
type: "string"
approved:
type: "boolean"
creator_id:
type: "integer"
format: "int64"
agent_ids:
type: "array"
items:
type: "integer"
format: "int64"
test_steps:
type: "array"
items:
$ref: "#/definitions/TestStepNoCustomFieldResource"
TestCasePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Test Case"
edit:
type: "boolean"
example: true
description: "Can edit Test Case"
delete:
type: "boolean"
example: true
description: "Can delete Test Case"
view:
type: "boolean"
example: true
description: "Can view Test Case"
edit_assignment:
type: "boolean"
example: true
description: "Can assign Test Case"
export:
type: "boolean"
example: true
description: "Can export Test Case"
import:
type: "boolean"
example: true
description: "Can import Test Case"
approve:
type: "boolean"
example: true
description: "Can approve Test Case"
TestCaseResultDefect:
type: "object"
properties:
id:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
resultId:
type: "integer"
format: "int64"
defectId:
type: "integer"
format: "int64"
externalIssueId:
type: "string"
externalIssueUniqueId:
type: "string"
externalIssueStatus:
type: "string"
externalIssueResolution:
type: "string"
externalIssueType:
type: "string"
externalIssueSummary:
type: "string"
externalIssueUrl:
type: "string"
integrationConnectionId:
type: "integer"
format: "int64"
externalProjectId:
type: "string"
resultType:
type: "integer"
format: "int64"
defect:
$ref: "#/definitions/Defect"
testCaseId:
type: "integer"
format: "int64"
testCaseRunId:
type: "integer"
format: "int64"
testCaseVersionId:
type: "integer"
format: "int64"
deleted:
type: "boolean"
name:
type: "string"
objectType:
type: "integer"
format: "int64"
statusId:
type: "integer"
format: "int64"
objOrder:
type: "integer"
format: "int64"
parentArtifactId:
type: "integer"
format: "int64"
parentObjectType:
type: "integer"
format: "int64"
pid:
type: "integer"
format: "int64"
artifactType:
type: "integer"
format: "int32"
longId:
type: "integer"
format: "int64"
internalDefect:
type: "boolean"
pidWithPrefix:
type: "string"
TestCaseWithCustomFieldResource:
type: "object"
required:
- "properties"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Test Case"
name:
type: "string"
example: "Test Case 1"
description: "Name of the Test Case"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 1
description: "Display order of the Test Case"
pid:
type: "string"
example: "TC-1"
description: "PID of the Test Case"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
description: "Fields value of the Test Case"
items:
$ref: "#/definitions/PropertyResource"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/1/portal/project#tab=testdesign&object=1&id=1"
description: "Web URL of the Test Case"
readOnly: true
attachments:
type: "array"
description: "Arrays of Attachment of the Test Case"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
parent_id:
type: "integer"
format: "int64"
example: 2107628
description: "Module ID of the Test Case"
test_case_version_id:
type: "integer"
format: "int64"
example: 11
description: "ID of Test Case Version"
version:
type: "string"
description: "Test Case Version of the Test Case"
description:
type: "string"
example: "Description of test case 1"
description: "Description of the Test Case"
precondition:
type: "string"
example: "Precondition of test case 1"
description: "Precondition of the Test Case"
creator_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User who create the Test Case"
agent_ids:
type: "array"
items:
type: "integer"
format: "int64"
test_steps:
type: "array"
description: "Arrays of Test Step of the Test Case"
items:
$ref: "#/definitions/TestStepResource"
tosca_guid:
type: "string"
description: "GUID of Tosca test case."
tosca_node_path:
type: "string"
description: "Node Path of Tosca test case."
tosca_url:
type: "string"
tosca_test_case_unique_id:
type: "string"
tosca_state:
type: "string"
tosca_workspace_url:
type: "string"
last_modified_date_utc:
type: "string"
TestCaseWithParameterResource:
type: "object"
required:
- "id"
properties:
test_case_version_id:
type: "integer"
format: "int64"
id:
type: "integer"
format: "int64"
TestConfigurationPermission:
type: "object"
properties:
create:
type: "boolean"
edit:
type: "boolean"
delete:
type: "boolean"
view:
type: "boolean"
link_unlink:
type: "boolean"
TestConfigurationVariablesPermission:
type: "object"
properties:
create:
type: "boolean"
edit:
type: "boolean"
delete:
type: "boolean"
view:
type: "boolean"
TestCycle:
type: "object"
properties:
creatorId:
type: "integer"
format: "int64"
createdDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
lastModifiedDate:
type: "string"
format: "date-time"
id:
type: "integer"
format: "int64"
pid:
type: "integer"
format: "int64"
parentTestCycleId:
type: "integer"
format: "int64"
objOrder:
type: "integer"
format: "int64"
name:
type: "string"
clientId:
type: "integer"
format: "int64"
testCycleType:
type: "integer"
format: "int32"
releaseId:
type: "integer"
format: "int64"
buildId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
deleted:
type: "boolean"
description:
type: "string"
startDate:
type: "string"
format: "date-time"
endDate:
type: "string"
format: "date-time"
subCycles:
type: "array"
items:
$ref: "#/definitions/TestCycle"
toscaUniqueId:
type: "string"
toscaNodePath:
type: "string"
toscaObjectType:
type: "string"
toscaUrl:
type: "string"
toscaRootEventId:
type: "string"
deletedToscaObjectType:
type: "string"
objectType:
type: "integer"
format: "int64"
statusId:
type: "integer"
format: "int64"
parentArtifactId:
type: "integer"
format: "int64"
parentObjectType:
type: "integer"
format: "int64"
toscaKey:
type: "string"
artifactType:
type: "integer"
format: "int32"
longId:
type: "integer"
format: "int64"
pidWithPrefix:
type: "string"
createDateTimeString:
type: "string"
TestCyclePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Test Cycle"
edit:
type: "boolean"
example: true
description: "Can edit Test Cycle"
delete:
type: "boolean"
example: true
description: "Can edit Test Cycle"
view:
type: "boolean"
example: true
description: "Can view Test Cycle"
TestCycleResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 462378
name:
type: "string"
example: "Cycle 2.2"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 3
pid:
type: "string"
example: "CL-3"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/39047/portal/project#tab=testexecution&object=4&id=462378"
readOnly: true
description:
type: "string"
example: "The second Cycle under Release 2"
target_release_id:
type: "integer"
format: "int64"
example: 149652
target_build_id:
type: "integer"
format: "int64"
test-cycles:
type: "array"
items:
$ref: "#/definitions/TestCycleResource"
test-suites:
type: "array"
readOnly: true
items:
$ref: "#/definitions/TestSuiteWithCustomFieldResource"
TestLogListResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
page_size:
type: "integer"
format: "int32"
total:
type: "integer"
format: "int64"
items:
type: "array"
items:
$ref: "#/definitions/TestLogResource"
TestLogResource:
type: "object"
required:
- "exe_end_date"
- "exe_start_date"
- "status"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1111
test_case_version_id:
type: "integer"
format: "int64"
example: 123
exe_start_date:
type: "string"
format: "date-time"
exe_end_date:
type: "string"
format: "date-time"
note:
type: "string"
example: "Test Log note"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
name:
type: "string"
example: "Name of the Test Run"
planned_exe_time:
type: "integer"
format: "int64"
minimum: 0
maximum: 9999999
actual_exe_time:
type: "integer"
format: "int64"
build_number:
type: "string"
example: "11"
build_url:
type: "string"
example: "http://localhost:8080/jenkins"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
status:
$ref: "#/definitions/StatusResource"
result_number:
type: "integer"
format: "int64"
example: 1
test_step_logs:
type: "array"
items:
$ref: "#/definitions/TestStepLogResource"
test_run_id:
type: "integer"
format: "int64"
test_case:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
defects:
type: "array"
items:
$ref: "#/definitions/LinkedDefectResource"
TestParameter:
type: "object"
properties:
id:
type: "string"
name:
type: "string"
active:
type: "boolean"
deleted:
type: "boolean"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
TestRunListResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
page:
type: "integer"
format: "int32"
page_size:
type: "integer"
format: "int32"
total:
type: "integer"
format: "int64"
items:
type: "array"
items:
$ref: "#/definitions/TestRunWithCustomFieldResource"
TestRunNoCustomFieldResource:
type: "object"
required:
- "test_case"
properties:
parentId:
type: "integer"
format: "int64"
parentType:
type: "string"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
automation:
type: "string"
created:
type: "string"
format: "date-time"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
name:
type: "string"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
pid:
type: "string"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
executionType:
type: "string"
env:
type: "string"
status:
type: "string"
test_case:
$ref: "#/definitions/TestCaseNoCustomFieldResource"
latest_test_log:
$ref: "#/definitions/LatestTestLogResource"
test_case_version_id:
type: "integer"
format: "int64"
test_case_version:
type: "string"
creator_id:
type: "integer"
format: "int64"
TestRunPermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Test Run"
edit:
type: "boolean"
example: true
description: "Can edit Test Run"
delete:
type: "boolean"
example: true
description: "Can delete Test Run"
view:
type: "boolean"
example: true
description: "Can view Test Run"
execute:
type: "boolean"
example: true
description: "Can execute Test Run"
export:
type: "boolean"
example: true
description: "Can export Test Run"
edit_assignment:
type: "boolean"
example: true
description: "Can assign user to Test Run"
modify_test_logs_by_self:
type: "boolean"
modify_test_logs_by_others:
type: "boolean"
TestRunWithCustomFieldResource:
type: "object"
required:
- "properties"
- "test_case"
properties:
parentId:
type: "integer"
format: "int64"
example: 843974
parentType:
type: "string"
example: "test-suite"
enum:
- "root"
- "release"
- "test-cycle"
- "test-suite"
automation:
type: "string"
created:
type: "string"
format: "date-time"
testCaseId:
type: "integer"
format: "int64"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 11595056
name:
type: "string"
example: "What's New section"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 2
pid:
type: "string"
example: "TR-2"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
test_case:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
latest_test_log:
$ref: "#/definitions/ShortTestLogResource"
test_case_version_id:
type: "integer"
format: "int64"
example: 13765789
test_case_version:
type: "string"
creator_id:
type: "integer"
format: "int64"
example: 5202
assign_parameter_values:
type: "array"
items:
$ref: "#/definitions/ParameterTestStepResource"
tosca_guid:
type: "string"
tosca_node_path:
type: "string"
tosca_workspace_url:
type: "string"
tosca_testevent_guid:
type: "string"
configuration_id:
type: "string"
format: "uuid"
TestRunWithParameterCreateByDatasetResource:
type: "object"
required:
- "test_case"
properties:
name:
type: "string"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
test_case:
$ref: "#/definitions/TestCaseWithParameterResource"
dataset_id:
type: "string"
from_row:
type: "integer"
format: "int64"
number_of_rows:
type: "integer"
format: "int64"
TestRunWithParameterCreateManualResource:
type: "object"
required:
- "test_case"
- "test_runs"
properties:
name:
type: "string"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
test_case:
$ref: "#/definitions/TestCaseWithParameterResource"
test_runs:
type: "array"
items:
type: "array"
items:
$ref: "#/definitions/TestStepWithParameterResource"
TestRunWithParameterCreateRandomResource:
type: "object"
required:
- "combined_type"
- "test_case"
properties:
name:
type: "string"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
test_case:
$ref: "#/definitions/TestCaseWithParameterResource"
combined_type:
type: "integer"
format: "int32"
number_of_combinations:
type: "integer"
format: "int32"
TestStepInformationVM:
type: "object"
properties:
description:
type: "string"
descriptionInfo:
$ref: "#/definitions/ParameterizationText"
expectedResult:
type: "string"
actualResult:
type: "string"
expectedResultInfo:
$ref: "#/definitions/ParameterizationText"
customFieldInfo:
type: "array"
items:
$ref: "#/definitions/CustomFieldInfo"
TestStepLogResource:
type: "object"
properties:
customFieldInfo:
type: "array"
items:
$ref: "#/definitions/CustomFieldInfo"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
test_step_id:
type: "integer"
format: "int64"
example: 11
test_step_log_id:
type: "integer"
format: "int64"
user_id:
type: "integer"
format: "int64"
example: 5202
status:
$ref: "#/definitions/StatusResource"
description:
type: "string"
expected_result:
type: "string"
actual_result:
type: "string"
example: "Actual result is failed"
called_test_case_id:
type: "integer"
format: "int64"
called_test_case_name:
type: "string"
order:
type: "integer"
format: "int32"
example: 1
group:
type: "integer"
format: "int32"
test_step:
$ref: "#/definitions/TestStepResource"
defects:
type: "array"
items:
$ref: "#/definitions/LinkedDefectResource"
called_test_case_log:
$ref: "#/definitions/TestLogResource"
parent_test_step_id:
type: "integer"
format: "int64"
exe_date:
type: "string"
format: "date-time"
description: "Execution date"
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
TestStepNoCustomFieldResource:
type: "object"
required:
- "description"
- "expected"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
description:
type: "string"
expected:
type: "string"
order:
type: "integer"
format: "int32"
minimum: 1
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
group:
type: "integer"
format: "int32"
called_test_case_name:
type: "string"
root_called_test_case_id:
type: "integer"
format: "int64"
called_test_case:
$ref: "#/definitions/TestCaseNoCustomFieldResource"
parent_test_step_id:
type: "integer"
format: "int64"
information:
$ref: "#/definitions/TestStepInformationVM"
plain_value_text:
type: "string"
parameter_values:
type: "array"
items:
type: "string"
called_test_case_id:
type: "integer"
format: "int64"
TestStepResource:
type: "object"
required:
- "description"
- "expected"
properties:
customFieldInfo:
type: "array"
items:
$ref: "#/definitions/CustomFieldInfo"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 111
description:
type: "string"
example: "Test Step description"
expected:
type: "string"
example: "Test step expected result"
order:
type: "integer"
format: "int32"
example: 1
minimum: 1
attachments:
type: "array"
items:
$ref: "#/definitions/AttachmentResource"
maxItems: 2147483647
minItems: 0
group:
type: "integer"
format: "int32"
called_test_case_name:
type: "string"
root_called_test_case_id:
type: "integer"
format: "int64"
called_test_case:
$ref: "#/definitions/TestCaseWithCustomFieldResource"
parent_test_step_id:
type: "integer"
format: "int64"
information:
$ref: "#/definitions/TestStepInformationVM"
plain_value_text:
type: "string"
parameter_values:
type: "array"
items:
type: "string"
called_test_case_id:
type: "integer"
format: "int64"
TestStepWithParameterResource:
type: "object"
required:
- "step_id"
properties:
step_id:
type: "integer"
format: "int64"
description_parameter_values:
type: "array"
items:
type: "string"
expected_parameter_values:
type: "array"
items:
type: "string"
TestSuite:
type: "object"
properties:
creatorId:
type: "integer"
format: "int64"
createdDate:
type: "string"
format: "date-time"
lastModifiedUserId:
type: "integer"
format: "int64"
lastModifiedDate:
type: "string"
format: "date-time"
displayName:
type: "string"
displayDescription:
type: "string"
id:
type: "integer"
format: "int64"
pid:
type: "integer"
format: "int64"
clientId:
type: "integer"
format: "int64"
projectId:
type: "integer"
format: "int64"
objOrder:
type: "integer"
format: "int64"
name:
type: "string"
testDataSetId:
type: "integer"
format: "int64"
userId:
type: "integer"
format: "int64"
testBedId:
type: "integer"
format: "int64"
projectTestTypeId:
type: "integer"
format: "int64"
plannedStartDate:
type: "string"
format: "date-time"
plannedEndDate:
type: "string"
format: "date-time"
description:
type: "string"
releaseId:
type: "integer"
format: "int64"
buildId:
type: "integer"
format: "int64"
testCycleId:
type: "integer"
format: "int64"
testCycle:
$ref: "#/definitions/TestCycle"
deleted:
type: "boolean"
lastConfigOperation:
type: "string"
enum:
- "LINK"
- "UNLINK"
lastModifiedDateConfigs:
type: "string"
format: "date-time"
typeName:
type: "string"
objectType:
type: "integer"
format: "int64"
statusId:
type: "integer"
format: "int64"
fullId:
type: "string"
shortResultType:
type: "string"
parentArtifactId:
type: "integer"
format: "int64"
parentObjectType:
type: "integer"
format: "int64"
resultName:
type: "string"
resultType:
type: "string"
resultDescription:
type: "string"
artifactType:
type: "integer"
format: "int32"
pidWithPrefix:
type: "string"
autoTestCase:
type: "boolean"
tosca:
type: "boolean"
approved:
type: "boolean"
longId:
type: "integer"
format: "int64"
automation:
type: "boolean"
customFieldValue:
type: "string"
createDateTimeString:
type: "string"
TestSuitePermission:
type: "object"
properties:
create:
type: "boolean"
example: true
description: "Can create Test Suite"
edit:
type: "boolean"
example: true
description: "Can edit Test Suite"
delete:
type: "boolean"
example: true
description: "Can delete Test Suite"
view:
type: "boolean"
example: true
description: "Can view Test Suite"
TestSuiteWithCustomFieldResource:
type: "object"
required:
- "properties"
properties:
parentId:
type: "integer"
format: "int64"
example: 462378
parentType:
type: "string"
example: "test-cycle"
enum:
- "root"
- "release"
- "test-cycle"
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 843971
name:
type: "string"
example: "Functional test suite 2"
minLength: 1
maxLength: 500
order:
type: "integer"
format: "int32"
example: 0
pid:
type: "string"
example: "TS-3"
created_date:
type: "string"
format: "date-time"
last_modified_date:
type: "string"
format: "date-time"
properties:
type: "array"
items:
$ref: "#/definitions/PropertyResource"
web_url:
type: "string"
example: "https://apitryout.qtestnet.com/p/39047/portal/project#tab=testexecution&object=2&id=843971"
readOnly: true
target_release_id:
type: "integer"
format: "int64"
example: 149652
target_build_id:
type: "integer"
format: "int64"
TokenSecretVerifierHolder:
type: "object"
properties:
jiraToken:
type: "string"
jiraSecret:
type: "string"
authorizeUrl:
type: "string"
ToscaExecutionEntryResource:
type: "object"
required:
- "name"
- "toscaNodePath"
- "toscaUniqueId"
properties:
toscaUniqueId:
type: "string"
example: "cd0de9f4-acef-47a4-b91d-99791c4d8e1c"
name:
type: "string"
example: "Execution Entry"
minLength: 1
maxLength: 500
toscaNodePath:
type: "string"
example: "/Execution/ExecutionLists/ExecutionEntry Folder/Execution List/Execution\
\ Entry"
toscaUrl:
type: "string"
parentId:
type: "integer"
format: "int64"
parentType:
type: "string"
associatedToscaTestCase:
$ref: "#/definitions/ToscaTestCaseResource"
associatedToscaTestCaseId:
type: "string"
ToscaTestCaseResource:
type: "object"
required:
- "toscaNodePath"
- "toscaUniqueId"
properties:
toscaUniqueId:
type: "string"
example: "a606c5a8-d648-4b09-bc28-929d58773631"
toscaNodePath:
type: "string"
example: "/TestCases/Execution Entry"
toscaUrl:
type: "string"
parentId:
type: "integer"
format: "int64"
parentType:
type: "string"
ToscaTestCycleResource:
type: "object"
required:
- "name"
- "toscaNodePath"
- "toscaUniqueId"
properties:
toscaUniqueId:
type: "string"
example: "b0fd1f95-b925-43d3-9c47-d66ab584f9fc"
name:
type: "string"
example: "Execution List"
minLength: 1
maxLength: 500
description:
type: "string"
example: "Sample Execution List"
toscaObjectType:
type: "string"
example: "ExecutionList"
toscaNodePath:
type: "string"
example: "/Execution/ExecutionLists/ExecutionEntry Folder/Execution List"
toscaUrl:
type: "string"
parentId:
type: "integer"
format: "int64"
parentType:
type: "string"
testCycles:
type: "array"
items:
type: "string"
example: "ToscaTestCycleResource"
testRuns:
type: "array"
items:
$ref: "#/definitions/ToscaExecutionEntryResource"
TraceabilityRequirement:
type: "object"
properties:
root:
type: "boolean"
example: false
description: "Is root Requirement Module or not"
children:
type: "array"
description: "Arrays of TraceabilityRequirement"
items:
$ref: "#/definitions/TraceabilityRequirement"
requirements:
type: "array"
description: "Arrays of Requirement data"
items:
type: "object"
additionalProperties:
type: "object"
order:
type: "integer"
format: "int64"
example: 1
description: "Order"
UserGroupResource:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
example: "Name of UserGroup"
description: "Name of UserGroup"
description:
type: "string"
example: "Description of UserGroup"
description: "Description of UserGroup"
total_user:
type: "integer"
format: "int64"
description: "The total user of UserGroup"
readOnly: true
is_system:
type: "boolean"
is_default:
type: "boolean"
example: false
description: "Set this UserGroup as default group for new user"
authorities:
type: "array"
readOnly: true
items:
$ref: "#/definitions/AuthorityVM"
users:
type: "array"
readOnly: true
items:
$ref: "#/definitions/UserInfoVM"
user_ids:
type: "array"
description: "List of userId will be assign to this group after created"
items:
type: "integer"
format: "int64"
example: 1
authority_names:
type: "array"
description: "List of authorities for this UserGroup. Values can be: [ ROLE_ADMINCONFIGURATION,\
\ ROLE_ADMININFORMATION, ROLE_INSIGHTSEDITOR, ROLE_INSIGHTSEDITOR, ROLE_LAUNCHACCESS,\
\ ROLE_PROFILEADMIN, ROLE_PROFILEVIEWER, ROLE_PROJECTARCHIVER, ROLE_PROJECTCREATOR,\
\ ROLE_PROJECTUPDATER, ROLE_PROJECTVIEWER, ROLE_PULSEACCESS, ROLE_SITELEVELFIELD,\
\ ROLE_USERADMIN, ROLE_USERGROUPMANAGER, ROLE_ANALYTICSVIEWER ]"
items:
type: "string"
example: "ROLE_ADMINCONFIGURATION"
UserInfoVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
userName:
type: "string"
firstName:
type: "string"
lastName:
type: "string"
contactEmail:
type: "string"
fullName:
type: "string"
userDN:
type: "string"
UserProfile:
type: "object"
properties:
user_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
project_id:
type: "integer"
format: "int64"
example: 1
description: "ID of the Project"
release:
$ref: "#/definitions/ReleasePermission"
build:
$ref: "#/definitions/BuildPermission"
test_configuration:
$ref: "#/definitions/TestConfigurationPermission"
test_configuration_variables:
$ref: "#/definitions/TestConfigurationVariablesPermission"
module:
$ref: "#/definitions/ModulePermission"
requirement:
$ref: "#/definitions/RequirementPermission"
test_case:
$ref: "#/definitions/TestCasePermission"
test_cycle:
$ref: "#/definitions/TestCyclePermission"
test_suite:
$ref: "#/definitions/TestSuitePermission"
test_run:
$ref: "#/definitions/TestRunPermission"
defect:
$ref: "#/definitions/DefectPermission"
project_setting:
$ref: "#/definitions/ProjectSettingPermission"
session:
$ref: "#/definitions/SessionManagerPermission"
project:
$ref: "#/definitions/ProjectAdminPermission"
schedule:
$ref: "#/definitions/SchedulePermission"
UserProfileResponse:
type: "object"
properties:
user_profiles:
type: "array"
description: "Arrays of User Profile"
items:
$ref: "#/definitions/Profile"
admin_profiles:
type: "array"
description: "Arrays of Admin Profile"
items:
$ref: "#/definitions/Profile"
total_user_profiles:
type: "integer"
format: "int32"
description: "Total User Profile"
readOnly: true
total_admin_profiles:
type: "integer"
format: "int32"
description: "Total Admin Profile"
readOnly: true
UserResource:
type: "object"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
username:
type: "string"
example: "example.user@qtest.com"
description: "Login username of the User"
email:
type: "string"
example: "example.user@qtest.com"
description: "Contact email of the User"
password:
type: "string"
description: "Password of the User"
first_name:
type: "string"
example: "Example"
description: "First name of the User"
last_name:
type: "string"
example: "User"
description: "Last name of the User"
status:
type: "integer"
format: "int32"
example: 0
description: "Status of the User"
avatar:
type: "string"
example: "https://apitryout.qtestnet.com/api/v3/users/1/avatar"
ldap_username:
type: "string"
description: "LDAP username of the User"
user_group_ids:
type: "array"
items:
type: "integer"
format: "int64"
external_auth_config_id:
type: "integer"
format: "int64"
description: "External authentication system id"
external_user_name:
type: "string"
description: "External authentication username"
UserResourceExtension:
type: "object"
properties:
links:
type: "array"
description: "Link to resource"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
description: "ID of the User"
username:
type: "string"
example: "example.user@qtest.com"
description: "Login username of the User"
email:
type: "string"
example: "example.user@qtest.com"
description: "Contact email of the User"
password:
type: "string"
description: "Password of the User"
first_name:
type: "string"
example: "Example"
description: "First name of the User"
last_name:
type: "string"
example: "User"
description: "Last name of the User"
status:
type: "integer"
format: "int32"
example: 0
description: "Status of the User"
avatar:
type: "string"
example: "https://apitryout.qtestnet.com/api/v3/users/1/avatar"
description: "Avatar URL of the User"
external_username:
type: "string"
description: "External username, could be LDAP username or SSO username"
authentication_system:
type: "string"
description: "Name of Login provider, could be LDAP or SSO"
timezone_offset:
type: "string"
country_name:
type: "string"
UserUpdateResource:
type: "object"
properties:
links:
type: "array"
readOnly: true
items:
$ref: "#/definitions/Link"
id:
type: "integer"
format: "int64"
example: 1
email:
type: "string"
example: "example.user@qtest.com"
password:
type: "string"
first_name:
type: "string"
example: "Example"
last_name:
type: "string"
example: "User"
status:
type: "integer"
format: "int32"
example: 1
user_group_ids:
type: "array"
items:
type: "integer"
format: "int64"
external_auth_config_id:
type: "integer"
format: "int64"
external_user_name:
type: "string"
WebhookRequest:
type: "object"
properties:
name:
type: "string"
url:
type: "string"
events:
type: "array"
items:
type: "string"
secretKey:
type: "string"
responseType:
type: "string"
projectIds:
type: "array"
items:
type: "integer"
format: "int64"
WebhookVM:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
url:
type: "string"
events:
type: "array"
items:
type: "string"
createdDate:
type: "string"
format: "date-time"
lastModifiedDate:
type: "string"
format: "date-time"
secretKey:
type: "string"
responseType:
type: "string"
projectIds:
type: "array"
items:
type: "integer"
format: "int64"