Enterprise Tester Help
Help
Welcome to Enterprise Testers online help system, you can currently find information for the following categories:
- Administration - Topics to help you configure Enterprise Tester projects, permissions and integration with products such as Jira.
- API - Topics guiding you through the use of Enterprise Testers REST API.
- Search - Topics guiding you through the user of Enterprise Testers integrated search functionality and query language TQL.
My Profile
My profile stores your personal details in Enterprise Tester as well as allowing you to change your password.
To update your profile:

- Select ‘My Profile’ from the drop down under the username on the top right hand side.

- You can update your email and name details.
You can update your password by:
- Entering the current password into Current Password field.
- Entering the new password into the New Password field.
- Entering the new password in the Confirm Password field.
You can also select to dock the tree navigator to the left by clicking the ‘Dock tree To Left’ checkbox.
You can also select your default setting for test execution – multi- step or single step. The default setting for all new users is multi-step execution.
Enterprise Tester supports both In Tray and Email Notifications.
Users can enable or disable either of these types of notifications, and can specify the project and types of events to be notified on.
Notes:
These configurations apply to both In Tray and Email notifications.
Your system administrator will need to configure an email server before you can enable email notifications on this screen.
Notifications
Enterprise Tester supports in tray notifications. You can configure your notification settings on the ‘My Profile’ Screen as described in the previous section.
You can access your notifications by clicking on the notification icon next to your user name in the right corner or the screen. The number shown is the number of unread notifications. This number is updated every 15 sec.
The notifications list has a number of features easy to quickly view event notifications:
- Entity Icon for easy recognition of the entity type;
- User name of the person who made the change; and
- A hyperlink the entity so you can easily view the change.

By default, the limit on the number of notifications on screen is 100. This number can be configured by your system administrator. Please refer to the section (see ConfiguringaMail_Server) for more detail.
Requirements
Capturing your requirements in Enterprise Tester allows you to take advantage of the requirement coverage reporting functionality once your test scripts have been created.
Requirements are stored under the requirements folder in the project in Enterprise Tester. Requirements can also be imported from external systems such as EA or JIRA, or even a CSV file.
Adding Requirements Packages
In order to allow you to group the requirements in a meaningful way you can add sub packages to the requirements packages.
To do this:
- Navigate to the requirements section of the project in the explorer view.
Right click on the Requirements folder or a package within it and select Add Package. Or select the Add Requirements Package icon at the top of the tree view.
Enter a name for the package and click on save.
The requirements package will be created under the selected project.
Moving Requirement Packages
You can move requirement packages if required.
To do this:
- Expand the explorer view until you can see the requirement package.
- Select the requirements package and drag it to the required location by clicking and holding your mouse down.
The requirement package and everything within it will move to the selected location.
Adding Requirements
Requirements can be added to the packages that you have created by either creating them directly in Enterprise Tester, importing existing requirements from a CSV, or by importing them from JIRA or Enterprise Architect.
To add a requirement directly in Enterprise Tester:
Right click a package and select to add a requirement or select the add requirement icon at the top of the tree view, the Requirements Screen will appear.
On the “Details” tab enter the requirements details:
- Number A number for the requirement (note: auto numbering can be set as default).
- Name A short description of the requirement.
- Type Select from the pick list.
- Priority Select from the pick list.
- Status Select from the pick list.
- Type Select from the pick list.
- Estimated Duration Add a value such as 4d, 5h, 30m.
- Assigned To Select from list or click Assign to me.
- Difficulty Level Select from the pick list.
- Description A detailed description of the requirement.
Click on ‘Save’.
Adding Attachments to Requirements
You can add attachments to requirements by clicking on the Attachments tab:
- To add an attachment, click on the ‘Attach’ button, attach the file and save.
- To add a screen shot, click on the Paste Image button, paste the image and save.
/>
Nested Requirements
Enterprise Tester allows you to nest requirements, you can do this by right clicking the Requirement in the Explorer Tab and selecting Add Requirement.
Alternatively you can drag and drop a requirement onto another requirement.
Viewing and Editing Requirements
Requirement Lists
You can view all requirements in a package by:
- Right clicking the Requirement Package in the Explorer Tab and selecting View Package
- Double click on the package in the Explorer Tab.
A list of all requirements in the package will be shown in the grid view.
The “Show Nested Items” tick box enables users to see all nested requirements in any sub-package of the selected Requirements package.
Filtering Requirements
Where a large number of requirements have been created within a single package, it is helpful to filter these records into more manageable groups.
To do this:
- Ensure your requirements are displayed in your grid view.
- Double click the Requirements package select view requirements.
- Click on the ‘Filter’ button to open the search screen.
- Select your search/ filter criteria and click on ‘Search’ to filter records and display results.
Additionally you can view requirements in the package you have selected and also any sub packages if required. Tick or un-tick the “Show Nested Items” box as required.
Viewing and Editing Requirements
There are several ways to open a requirement for editing:
- In the Explorer Tree, Double click on the Requirement, or Right Click on the Requirement and select View Requirement.
- Alternatively Double Click on the requirement in the Grid view.
Requirement Relationships
You can view and manage requirement Relationships from the Relationships tab.
Associated Requirements, Scripts, Script Runs, Automated Tests, Automated Test Runs and Incident relationships are displayed.
Adding Relationships
You can add relationships via this tab if you require.
To add a relationship, select the requirement you wish to associate and click the add button.
The Add Relationship pop up dialogue is displayed.
Select a Relationship Type:
- Association - Requirement to Requirement Relationship
- Dependency - Requirement to Requirement Relationship
- Coverage - Automated Test to Requirement Relationship
- Coverage - Test Script to Requirement Relationship
Select a Destination:
You will be able to select a Requirement, Automated Test Script or Test Script to link to depending on the Relationship Type you have chosen to create.
Select a Direction:
Requirement to Requirement relationships have the following available directions:
- None
- Source to Destination
- Destination to Source
- Source to Destination & Destination to Source
There is only one direction available for:
- Dependency - Requirement to Requirement Relationships
- Coverage - Automated Test to Requirement Relationships
- Coverage - Test Script to Requirement Relationships
This is:
Click OK and the relationship will be created and saved.
Removing Relationships
You can remove a relationship by selecting a Requirement, Automated Test Script or Test Script that is related to the Requirement you are viewing, and then by clicking the Remove button.
Note: You will not be prompted for a confirmation to remove this relationship.
Editing Relationships
You can edit a relationship direction by selecting a Requirement that is related to the Requirement you are viewing, and then clicking the Edit button.
Change the relationship direction in the pop up dialogue box and click ok to save it.
Viewing Requirements History
You can view the history of changes made to a requirement.
To do this:
- Select the History tab of the requirement when you have the requirement open for editing - the history of changes will be displayed.
You can filter the list of changes displayed by selecting from the filters available and clicking on ‘Search’, the filtered list will be displayed.
To clear the filter click on ‘Reset’.
Requirement Versions
Enterprise Tester also creates versions of requirements each time a set of changes are made.
The Versions tab lists the versions that have been created over time and provides the following information:
- Version - Sequential version numbers
- Created At - Timestamp at which the version was created
- Created By - The user that made the change
- Comment - Comments regarding the source of the version
This tab also displays detailed information for the selected version showing the difference between that version and the latest version. Details provided are:
- Property - The name of the property.
- Value (latest ver) - The current value of the property for the version.
- Value (selected ver) - The value of the property for the selected version.
Traceability Export
A requirement traceability export format is available from the requirement summary view. This export allows you to view you requirements and any related entities, giving you full traceability.
Similar to the normal export form the requirement summary screen, you can export your requirements and all related columns into a CSV format.
In addition to the basic requirement fields you can also export (optionally) all the related Test Script ( Manual and Automated), Script Run (Agile, Manual, Automated) and Incident information In addition, you have the option to include fields specific to these other entities as well e.g. JIRA Issue ID.
You can access the traceability export configuration screen by clicking the Traceability button on the navigator.

The configuration screen allows you to choose the scope of the export including the entities and detail to include.

Administration
Help on a range of Administrative tasks is available:
Additional documentation is also available in the documentation section of the Enterprise Tester website.
Authentication
Enterprise Tester supports four authentication methods:
In addition, you can configure multiple authentication methods and set the priority of the configured methods. This means that if the primary authentication method fails, the secondary method is automatically employed, then the third and fourth. For example, if you have configured the following authentication methods in the following order:
- LDAP
- Machine Source
- Enterprise Tester Database
If a user cannot be authenticated against LDAP (the primary authentication mode in our example), authentication will automatically be attempted against the next method in the priority list (Machine Source). If the secondary method fails, the third method will use used and so on until the user is successfully authenticated or all methods have been exhausted.
To access the authentication configuration screens you will require application administration permissions to Enterprise Tester. Navigate to the Admin tab on the tree view navigator. Expand the Configuration folder and double click on Authentication.

Here you can configure new authentication methods or update existing ones. You can also arrange the priority of the configured methods as well as test your configured methods.

Methods
Crowd
Crowd Authentication method provides the ability to integrate with Atlassian Crowd installations (including single sign-on).
Note: Currently Enterprise Tester does not support Synchronization with Crowd.

| Field |
Description |
Example |
| Crowd Server |
Crowd URL |
http://localhost:8095/crowd/services/SecurityServer |
| Application Name |
Name of the application in Crowd |
e.g. EnterpriseTester | .
| Password |
Password to access Crowd |
e.g. Password |
| Convert Localhost to IPV6 |
When enabled, the Crowd authentication method will automatically transform IPV4 loopback addresses and localhost host names to the equivalent IPV6 loopback address, when generating remote_address validation factor to be supplied to Crowd. It's only necessary to enable this if you find validation is failing - often this occurs when Enterprise Tester and Crowd are both running on the same server. |
|
Additional Information
Integrating Enterprise Tester with crowd is straight forward - for more information on how the Enterprise Tester Crowd implementation works, please review the blog post Integrating Enterprise Tester with Crowd.
LDAP
LDAP Authentication method provides a feature-rich authentication method suitable for use with LDAP Directories, including Active Directory.
Key Features:
- Configuration setting to allow user creation on first successful login
- Optional synchronization of Users, Groups and Group Memberships
- Manual or Automatic synchronization of Users and Groups
- Authentication only setting
- Support for SSL and StartTLS
Enterprise Tester supports LDAP authentication and user synchronization. Note that this functionality is for adding user only and ET does not currently support inactivating users or user deletion.
The LDAP Configuration has 2 components:
- General configuration to your LDAP server; and
- Synchronization set up.
General LDAP Setup
Basic Configuration
| Field | Description | Example |
| LDAP Server | Enter LDAP Serve Name or IP Address | 123.123.1.234 |
| Port | Port number associated with the LDAP Server | 389 |
| Protocol Version | Version of LDAP | Version 2 (required for some older OpenLDAP installations) or Version 3 (Active Directory and new LDAP Directory implementations) |
| Authentication Type | Authentication Protocol | Anonymous, Basic, Negotiate, NTLM, Digest, Sicily, Dpa, Msn, External or Kerberos |
| SSL | Encryption Protocol | Check if using SSL |
| StartTLS | Encryption Protocol | Check if using StartTLS |
| Base DN | Name of the root node in LDAP from which to search for users | cn=users,dc=example,dc=com |
| Additional User DN | Prepended to the Base DN to limit the scope when searching for users | |
| Additional Group DN | Prepended to the Base DN to limit the scope when searching for groups | |
| Bind DN | Bind DN is the user and the node in LDAP where the user can be found (this is the user Enterprise Tester will authenticate to the LDAP directory as - they must have sufficient rights to query the LDAP directory) | Either a value distinguished name such as "cn=user,cn=Users, dc=example,dc=com", an username@domain e.g. "joebloggs@mycompany.local" or left blank for anonymous authentication. |
| Bind Password | Password for the Bind DN user | Password, or left blank for anonymous authentication. |
| Search Attribute | The attribute in LDAP holding the login name | uid (common for OpenLDAP) or sAMAccountName (Active Directory) |
Paging
| Field | Description | Example |
| Enable Paging | When enabled, users will be returned in multiple pages rather than a single list. This is useful when you have a large number of users configured in LDAP, and where a non-paged request will fail because the query returns more than the allowable maximum - this should always be enabled for Active Directory. | True |
| User Page Size | Specify the number of users to return per page. The default value is 100. This value should ideally be configured to be the same as the maximum number of results which can be returned from a single query to ensure the least number of round trips when querying LDAP. | 1000 |
| Group Page Size | Specify the number of groups to return per page. The default value is 100. This value should ideally be configured to be the same as the maximum number of results which can be returned from a single query to ensure the least number of round trips when querying LDAP. | 500 |
User Configuration
| Field | Description | Example |
| Object Filter | Filter user for retrieving all users | (&(objectCategory=Person)(sAMAccountName=*)) |
| Search Filter Template | Filter used for searching by name or partial name. | (&(objectCategory=Person)(sAMAccountName={0})) |
| User Name Attribute | User Name Attribute | uid (common for OpenLDAP) or sAMAccountName (Active Directory) |
| First Name Attribute | First Name Attribute | givenName |
| Last Name Attribute | Last Name Attribute | sn |
| Email Attribute | mail |
| Telephone Attribute | Phone Attribute | telephoneNumber |
Group Configuration
| Field | Description | Example |
| Object Filter | Group Object Filter | (&(objectCategory=Group) |
| Search Filter Template | Group Search Filter Template | (&(objectCategory=Group)(cn={0})) |
| Name Attribute | Group Name Attribute | cn |
| Description Attribute | Group Description Attribute | description |
Group Member Configuration
| Field |
Description |
Example |
| Group Member Attribute |
Members attribute of group |
member |
| Group Members Filter |
Members Attribute Filter |
(objectClass=user) |
Once you have completed your configuration, select 'Save' at the bottom of the page.
Synchronization
The synchronization section allows you to set up the synchronization mode, the frequency of synchronization and any default groups you wish to have new users added to when being synchronized with Enterprise Tester.

| Field | Description | Example |
| Mode |
Select the type of integration you would like with LDAP |
- Authentication only – LDAP is used to authenticate users only
- Synchronization – Users, Groups and Group Memberships are automatically created in Enterprise Tester
- Create User on Successful Authentication – New users are automatically created on first login if they are successfully authenticated in LDAP
|
| Schedule | Synchronization Frequency | Manual Synchronization, Every Hour, Every 2 Hours, Every 4 hours, Every 8 Hours and Every 24 Hours. |
| Synchronize Users | Select to synchronize Users from LDAP | Check to synchronize users |
| Synchronize Groups | Select to synchronize Groups from LDAP | Check to synchronize Groups |
| Synchronize Group Members | Select to synchronize Groups from LDAP | Check to synchronize Group Members for each user |
Default Groups
In the Default Group section you can configure all the groups you would like users to automatically be assigned to when they are created through synchronization with LDAP or through successful authentication on first login, this is in addition to any group memberships that user may have been automatically added if "Synchronize Group Members" is checked.
Note: Unless you specify at least one default group (and assign that group view permissions for at least 1 project) any users created as a result of using the "Create User on Successful Authentication" option will be unable to use Enterprise Tester.
Additional References
Machine
Machine Source Authentication method provides a simple interface for accessing the local machine or Active Directory user and group information. This is useful for small AD deployments.
| Field | Description | Example |
| Type | The type of users source, possible options are: Active Directory Domain, Active Directory LDS Store, or Local Machine | Local Machine |
| Name | Optional name of the server (either as the source of "local" users, or the active directory domain controller) | corp01 |
| Container | Use this only for Active Directory Domain or Active Directory LDS Store. This is the distinguished name of a container object for users/groups, this should be left blank for Local Machine users. | cn=users,dc=mycompany,dc=com |
| User Name | Username to access the directory/machine (can normally be left blank). | Administrator |
| Password | Password to access the directory/machine (can normally be left blank). | ******** |
| Binding Type | The authentication mode:
-
Negotiate: The client is authenticated by using either Kerberos or NTLM. When the user name and password are not provided, the Account Management API binds to the object by using the security context of the calling thread, which is either the security context of the user account under which the application is running or of the client user account that the calling thread represents.
-
Simple Bind: The client is authenticated by using the Basic authentication. Caution Communications may be sent over the Internet in clear text if the SecureSocketsLayer option is not specified with simple bind.
|
Simple Bind |
| Sealing | The data is encrypted by using Kerberos.
This flag can only be used with the Negotiate context option and is not available with the simple bind option. | Unchecked |
| Secure Socket Layer | The channel is encrypted by using the Secure Sockets Layer (SSL). Active Directory requires that the Certificate Services be installed to support SSL. | Unchecked |
| Sever Bind | Specify this flag when you use the domain context (Active Directory Domain type) if the application is binding to a specific server name. | Checked |
| Signing | The integrity of the data is verified. This flag can only be used with the Negotiate context option and is not available with the simple bind option. | Unchecked |

Synchronization
You can configure automatic synchronization of users, groups and group memberships from Active Directory.
| Field | Description | Example |
| Mode | Select the type of integration you would like with JIRA | 1. Authentication only –AD is used to authenticate users only
2. Synchronization – Users, Groups and Group Memberships are automatically created in Enterprise Tester
3. Create User on Successful Authentication – New users are automatically created on first login if they are successfully authenticated in LDAP |
| Schedule | Synchronization Frequency | Manual Synchronization, Every Hour, Every 2 Hours, Every 4 hours, Every 8 Hours, Every 24 Hours |
| Synchronize Users | Select to synchronize Users from LDAP | Check to synchronize users |
| Synchronize Groups | Select to synchronize Groups from LDAP | Check to synchronize Groups |
| Synchronize Group Members | Select to synchronize Groups from LDAP | Check to synchronize Group Members |
Configuring a Mail Server
Enterprise Tester supports the ability to configure a mail server to support event notification.
To configure a mail server, from the Admin tab, expand Configuration and double click on Mail Server.
Enter the details for your mail (STMP) server.
| Setting | Description |
| Enable | Check to enable your mail server. |
| Host | Enter the host name of your mail server. |
| Port | Enter the port to use to retrieve mail from your mail server. In general the ports for SMTP servers are:
SMTP - port 25
Secure SMTP (SSMTP) - port 465
Secure SMTP (using StartTLS) - port 587 |
| Timeout | Enter the Timeout in Millisec |
| UserName | The user name used to authenticate the account |
Password | The password used to authenticate the account |
From Address | The email address that will be used as the sender in the email (Note that this does not work for Gmail as this provider does not allow impersonation) |
Email Prefix | This the prefix that will be added to email subject |
Here are some examples of how to configure the settings for Gmail, Yahoo and Hotmail/livemail/Outlook.com:
| Gmail | Yahoo | Hotmail/Live mail/Outlook.com |
| Host: smtp.gmail.com
Username: full gmail address e.g. user@gmail.com
Password: gmail password
Port: 587
SSL: yes | Host: smtp.mail.yahoo.com
Username: full yahoo address e.g. user@yahoo.com
Password: yahoo mail password
Port: 465
SSL: yes | Host: smtp.live.com
Username: full hotmail address
Password: hotmail password
Port: 587
SSL: yes |
Custom Fields
Custom Fields provide flexibility to capture additional data within the application. Specifically, custom fields can be added to requirements, test cases, test cases in your execution sets and incidents. This feature allows you to add additional fields according to your needs in order to record additional information against these entities. A wide selection of field types can be created including:
- Text box - single line free text field
- Combo box - single choice, multiple option drop down box
- Multi Select - multiple select, drop down box
- Text Area -multiple line free text field
- Check Box - either/or option
- Date - free text date field
- Radio Box Group - single selection, multiple option
- Check Box Group - multiple selection, multiple option
- Number - free text number field
- Time Span - free text time span field ( e.g. 4d,2h)
- Rich Text - multiple line, free text field with formatting
- Multi-Cascade Select* -two level and multi-level drop down boxes
*When using the Multi-Cascade Select field for multi-level cascading select (>2 levels), picklists are not configurable within Enterprise Tester. Values will be pulled from a configured defect tracker e.g. JIRA. You must have a defect tracker configured in order to use this custom field.
Creating Custom Fields
To creating custom fields complete the following steps:
- Click on the ‘Admin’ tab.
- Click to expand ‘Extensions’ from your tree view.
- Click on ‘Custom Fields’.
- The Configure Custom Fields list view will display.
- Click on ‘Add’ from the window toolbar.
- The ‘Field Configuration’ screen will open.
- On the ‘Details’ tab, enter a name for your field.
- In the Label field, enter the name of the field as you would like it to appear on screen to users.
- Click the dropdown button on the ‘Type’ field to select the type of field you would like to create.
- If the field is mandatory to complete, click the ‘Required?’ field, otherwise leave it blank.
- Include a brief description in the Description field.
- Click on the ‘Entities’ tab to select the types of entities (Incident, Requirement, Test Scripts) which will include the custom field. Note that you can use the same custom field across multiple entities.
- Click on the ‘Scope’ tab. Here you can select the organization(s) and/or project(s) that will include the custom field. Here you can also apply the custom field to all dependent projects or only to independent project. Apply the custom field to all dependent projects the custom field will be apply to all projects that are not marked as Independent n the project configuration screen. Please refer to the Managing Project help topic.

- By adding scope for an organization, all projects for that organization will use the custom field for the entity selected. You can add specific custom fields for specific projects by including them here. When you specify the scope, entities will be updated to include the new field i.e. requirements, scripts and incidents that have previously been created will be updated to include the new custom field. If the field is mandatory, the user will be prompted to add this additional detail before saving.
- Click ‘Save Changes’ at the bottom right hand corner.
Creating a Multi Cascade Select Custom Field
Creating a multi-cascade select custom field is similar to creating any other custom field within Enterprise Tester. The values used to populate the picklist values for the multi-cascade select field are pulled from the defect tracker e.g. JIRA. A defect tracker must be configured to create this custom field successfully.
Note: Enterprise Tester may need to perform a “Refresh Lookup” before new custom fields in your defect tracker are available within Enterprise Tester.
To create a multi-cascade select custom field:
- Follow the steps 1-8 described in the section above.
- Click the dropdown button on the ‘Type’ field and select “Multi Level Cascade Select”
- The “Options” section will display. Select the defect tracker that contains the Multi Level Cascade Select Field.
- Select the Multi Level Cascade Select field in the defect tracker to map to in the Field dropdown. The values stored for this field in your defect tracker will be used as the values in Enterprise Tester.
- If the field is mandatory to complete, click the ‘Required?’ field, otherwise leave it blank.
- Include a brief description in the Description field.
- Click on the ‘Entities’ tab to select the types of entities (Incident, Requirement, Test Scripts) which will include the custom field. Note that you can use the same custom field across multiple entities.
- Click on the ‘Scope’ tab. Here you can select the organization(s) and/or project(s) that will include the custom field.
- By adding scope for an organization, all projects for that organization will use the custom field for the entity selected. You can add specific custom fields for specific projects by including them here. When you specify the scope, entities will be updated to include the new field i.e. requirements, scripts and incidents that have previously been created will be updated to include the new custom field. If the field is mandatory, the user will be prompted to add this additional detail before saving.
- Click ‘Save Changes’ at the bottom right hand corner.
When you view the screen you have applied your custom field to, it will display the field with the values from JIRA.
Configuring Pick Lists
When Combo Boxes, Multi Select boxes, Radio groups or Checkbox groups are created you will need to configure the selection lists. These can be configured in the same way as other non – user defined dropdown fields. Please refer to the Configuring Pick Lists help topic.
Sorting Custom Fields
Custom Fields can be sorted by entity. This allows you to specify the order that the fields will appear on your requirement, test script or incident. From the Configure Custom Fields screen:
- Click on the ‘Sort Fields’ button on your toolbar.
- The Order Custom Fields screen will open. Click on the dropdown to select the entity type.
- You can rearrange the order of your fields by either selecting your field and using the drag and drop method or by highlighting your field and clicking on the ‘Move Up’ or ‘Move Down’ buttons.
- Click ‘Save Changes’ from the toolbar.

Granting Permissions
User permissions can be granted at the application level (user and group) or at the project level. Permissions are granted in hierarchical manner and permissions granted at the application level will takes precedence over all other permissions assigned at the project level. If restricted access to some projects is required, then permissions should be granted at the project level.
Assigning Application Wide Permissions
Application level permissions are granted at the user and group level. To assign users or groups application wide permissions, you will need to be an Enterprise Tester application administrator. Follow these steps to assign permissions:
- Navigate to the Admin page.
- Click on the arrow to expand either the 'Users' folder or the 'Group'folder.
- Double click on the user or group you want to add permissions to.
- Click on the 'Permissions' tab.
- Here you can select to assign the permissions to grant the user or group. You can either select the whole group of permissions or select individual permissions within each group of permissions.
- Once complete, click on 'Save' to apply the permissions.

Assigning Project Only Permissions
To grant permissions to a group or user for a specific project only, you must first assign the user or group to the project and then assign the permissions you wish to grant. Note that if the user has been granted greater permissions at the application level then these will take precedence.
Here are the steps to granting project permissions:
- Assign the user or group to the project. To do this, from the navigator click on the arrow beside the project. This will reveal the 'Users' and 'Groups' folder under the project. Then from the navigator, click to select the user or group to assign to the project and drag and drop the user or group to the respective User or Group folder under the project. Note for users only, when editing user accounts, you can assign the user to specific projects on the ' Assign Projects' tab.
- Double click to select the user or group. The permissions tab wil lappear under the project and assign the required permissions.

Available Permissions
There are 4 categories of permissions and 22 defined permissions provided in Enterprise Tester that can be used to control access to the various application features.
The five categories include:
• Administration
• Resources
• Project
• Reports
• Test Management
These categories can be expanded or collapsed as required by clicking on the + or- icon next to the name. Selecting any of these categories automatically selects all the permission they contain.
The available permissions are defined in the table below:
| Category | Permission | Description |
| Administration | Manage Organization | Allows users to manage organizational level details |
| Manage Dashboard | Allows users to manage organizational level dashboards |
| Manage User and Group Security | Allows users to set security |
| Manage Organization Reports | Allows users to manage organizational level reports |
| Edit Organization Pick Lists | Allows users to manage organizational level pick lists |
| Manage EA Connections | Allows users to manage EA connections |
| Manage Defect Tracker | Allows users to manage Defect Trackers |
| Manage Modules and Plug-ins | Allows users to manage Modules & Plug-Ins |
| Resources | Export | Allows users to Export Data From Enterprise Tester |
| Import | Allows users to Import Data Into Enterprise Tester |
| External Links | Allows users to manage External Project Links |
Project | Manage Project Dashboard | Allows users to manage project level dashboards |
| Manage Project Reports | Allows users to manage organizational level reports |
| Edit Project Pick Lists | Allows users to edit pick lists |
Reports | | Allows users to create and run reports |
Test Management | Manage Requirements | Allows users to manage requirements |
| Manage Execution | Allows users to organize test execution sets |
| View | Allows users to view scripts |
| Assign Testers | Allows user to assign scripts to a tester |
| Execute Tests | Allows users to execute tests |
Viewing User Permissions
An easy way to review the permissions granted to a user is to click on the Assigned Permissions tab when viewing a user. Here you can see all the permissions granted at the application level and at the project level.
To make it easier to review and manage user permissions, a summary is available through the administration tab, giving an overview of application and project level permissions at a glance.
To access the permissions summary screen, click on the “Admin” tab and then double click on the user whose permissions you wish to review. Click on the “Assigned Permissions” tab to access the permissions at a glance.

JIRA Integration
Introduction
Enterprise Tester can be configured to integrate with JIRA to allow the synchronization of incidents and requirements with Issues and/or Requirements in JIRA. Enterprise Tester report charts can also be added to your JIRA Dashboard. Integration promote the collaboration between teams by have real time information available across your project team.
For issue and requirement synchronisation, Enterprise Tester communicates with JIRA via the JIRA SOAP Service and some new features for JIRA 5 and above have been introduced through the new REST API. Some configuration is require to JIRA and Enterprise Tester to establish this connection. A user with Administrator priviledges will have access to complete this configuration.
For sharing Enterprise Tester report charts with JIRA dashboards, configuration of OAuth is required.
Configuring JIRA
JIRA by default disables remote communication. Remote communication must be enabled to allow the JIRA plug-in in Enterprise Tester to communicate with your JIRA server. To do this RPC Calls must be enabled.
Enabling RPC Calls
To enable remote soap calls follow these steps:
- In JIRA, click on the Administration drop down. Then select Plugins.
- In the Systems Plugins section, find the RPC JIRA Plugin and check that it is enabled including the "System SOAP Services" module.

- On the menu bar, click again on the Administration dropdown and select “General Configuration”.
- Under the Options section, ensure "Accept remote API calls" is set to "ON". To enable, click on the "Edit Configuration" link at the bottom of the page.
- The edit screen will open allowing you to select the "ON" radio button.

The link to the soap services wsdl would be:
For Professional or Enterprise JIRA installations: http://[Server]/JIRA/rpc/soap/JIRAsoapservice-v2?wsdl
For the Standalone JIRA versions on XP the link is: http://localhost:8080/rpc/soap/JIRAsoapservice-v2?wsdl
When this URL is entered into your browser, it should return an XML document, containing the wsdl for the soap service, if your JIRA server is incorrect configured it will display a warning page explaining that remote soap calls are currently disabled.
Once these configurations have been made in JIRA you can now start your configruation in Enterprise Tester.
Configuring Enterprise Tester
To allow integration a few minutes need to be spent configuring your server and project with JIRA. Application Administration to JIRA is required to configure the JIRA Integration.
First, access the administration section find the Defect Tracker Folder in your navigator (as displayed below).
To add a connection to a defect tracking system
- Open the ‘Admin’ tab of the tree view.

- Click on Organisations and expand your Organisation. Right click on ‘Defect Trackers’ and select ‘Add Tracker’.

- Enter the Defect Tracker Details:
| Field | Description |
| Type | Select the tracker type from the list of supported trackers. |
| Name | Enter a name for the tracker that will identify it within Enterprise Tester. |
| URL | Enter the URL path for the defect tracker. e.g. JIRA: http:///rpc/soap/jirasoapservice-v2?wsdl |
| UserName | Enter a gateway* username for the defect tracker. |
| Password | Enter the password for the gateway username. |
| Enabled? | Check this box to enable the connection to the defect tracker. |
| Ignore Invalid Remote Certificates? | Check this box to ignore invalid remote certificates. |
* We recommend that the Gateway Account has JIRA administration access. This will allow creation, and update of incidents across all projects and will hold sufficient privileges to support enhanced functionality when further integration features are implemented.

When you have completed all the details click on ‘Save’.
Enterprise Tester will automatically test the tracker and will save all details if the connection works.
Synchronizing Incidents
Creating your Project links to JIRA
Once the JIRA connection has been created (see JIRA_Integration), you can begin associating projects in the defect tracker with projects in Enterprise Tester. Project links can be created and managed from the Resources tab on your tree view navigator. Click to expand "Project Links". To view all configured links for your proejct, double click on your project.

To create a new project link select "New" from the toolbar or from the navigator you can right click on your project and select "Add New Project Link" from the menu or from the navigator you can right click on your project. Complete the details selecting the JIRA connection that you created in the steps outlined in the above section, and your JIRA project to link to. Now click on 'Save'.

Once the project link to JIRA has been created, Enterprise Tester will initiate a refresh of all the metadata. This may take a few minutes. Once the refresh look up completes the next step is to configure Enterprise Tester inbuilt fields to JIRA fields.
- Click on ‘Configure Inbuilt Fields’.
- Ensure to complete the time offset field this time needs to be the same as the time on your JIRA server. Although this maybe GMT +/- X hour you will need to enter it as GMT -/+ X hours . For instance in New Zealand the time zone is GMT +13 but the setting is GMT -13.
- An optional configuration to pull component and version values from JIRA is available. To enable the auto-mapping of component and version, check the “Auto-map component and versions” check box. When this option is selected you do not need to add values to your pick list for Version and Component fields in Enterprise Tester. Values will automatically be synchronized from JIRA .
In the mapping areas, matching field values will automatically be mapped. Complete the additional field mappings and click ‘Save’. Note that it is recommended that you align your JIRA and Enterprise Tester picklist values inadvance of this configuration.

Configuring Custom Fields
Before beginning this configuration, ensure that custom fields have been set up in Enterprise Tester including picklist values, if applicable
Click on the 'Configure Custom Fields' button from the External Link Details screen to open the Configure Custom Fields Mapping screen where you can map ET custom fields to JIRA custom fields.
Click on the 'Add' button. For the Internal field, select your Enterprise Tester Custom fields, for your external field, select your JIRA custom field. Click on 'Save'. If you have selected a custom field with multiple values, you will need to map these field values. Click to select your custom field and click on 'Configure'. Map your custom field values and click 'Save'.
The project link will automatically be enabled once the configuration is complete.

Synchronization Monitoring

Note that to view or initiate a full synchronization users require Enterprise Tester Application Administration permissions.
From the Admin Tab, you can monitor the synchronisation of the defect tracker. Expand your Organisation folder to reveal your Defect Tracker folder. Right click on the Defect Tracker folder and select 'Synchronization Monitor' from the menu. You can monitor synchronization from the Defect Tracker -> Monitor Synchronization link in the Admin Section, from here a simple page is displayed showing the last time synchronization occured - this page also supplies two buttons, allowing immediate triggering of synchronization between the defect tracker(s) and Enterprise Tester (currently by default synchronization of changes in the defect tracker => ET only occurs once per minute).
Caution should be taken when initiating a full synchronization. This will initiate the server to fetch ALL tickets/issues from the defect tracker, this can take a while if there is a large number of tickets. This process is useful when bulk changes may have occured i.e. if a backup of a defect trackers database has occured, requiring resynchronization of all tickets.
Synchronizing Requirements
Enterprise Tester supports importing requirements directly from JIRA or exporting to JIRA. If you are using JIRA for both requirements capture and defect management, Enterprise Tester is fully integrated to support the synchronization of both requirements and issues. Synchronization is manually initiated and occurs in a single direction, either from the defect tracker to Enterprise Tester or Enterprise Tester to the defect tracker.
Creating your Project Link
If you have already configured a JIRA connection for your defect management (see JIRA_Integration) you can proceed to creating your project link for requirements.
- Click on the ‘Resources’ tab in your tree navigator and click to expand ‘Project Link’.
- Right click on your project and select ‘Add New Project Link’, the Add Link screen will appear.
Enter in the Name for the link, and select from the dropdowns:
- Connection is a JIRA connection that has already be configured. ( Note: there is an additional option to synchronize with TFS)
- Type is Requirements
- Select the JIRA project to synchronize requirements with.
- Once complete, click ‘Save’.
Configure the Requirement Link
Once the project requirement link is set up, you will be displayed the screen below and will need to perform additional configuration.
From the Edit Synchronization Configuration screen, click on the ET Configuration tab. Select the ET requirements package you wish to synchronize with. Here you can also select the filter criteria when synchronizing from ET to JIRA. You can filter on Types, Statuses and Priorities. Once you have completed your configuration, click ‘Save’.

Next, click on the External System Configuration. Select the entity type(s) (requirement, stories, epics etc.) to synchronize with Enterprise Tester and click ‘Save’. For TFS you must select “Requirement” or any Work Item you wish to synchronize.
Here you can also select additional criteria including Statuses, Priorities, Components, Affected and Fixed Versions.
Note that by default all entities will be synchronized if you do not apply a filter. If the JIRA or TFS field values do not appear in the field drop down list, you may need to initiate a refresh lookups which will refresh the JIRA metadata.

Next, click on the Mapping tab.
This screen displays two tabs for outlining and configuring the steps undertaken when synchronization is initiated.
• One tab for mapping fields from Enterprise Tester to the defect tracker.
• One tab for mapping fields from the defect tracker to Enterprise Tester
| Task | Configurable | Description |
| Map Fields | Yes | Allows a set of mappings to be configured to transfer information between the source and destination system. |
| Map Attachments | No | Synchronizes the set of attachments between Enterprise Tester and External System (e.g. JIRA). This will add new attachments that have not been synchronized previously, and remove previously synchronized attachments that have since been removed. |
Create Trackback Comment | No | Adds a comment to the synchronized JIRA requirement with the following text:
Linked to Enterprise Tester requirement - Requirement: http://server/EnterpriseTester/#/requirement/edit/04e7f9e5-5784-4e94-a863-9ef600f0a935 (Name: )
If a comment already exists with the same value, then the comment is not added. |
Next, set your field mappings in the direction of Enterprise Tester to the defect tracker - you will notice on the screen below that the Field Mapping is not currently configured. Please note that Enterprise Tester will prompt the administrator when a refresh lookups is either in progress or is required. This must be completed before configuring your field values. Refresh lookups will ensure that all the custom fields from your defect tracker and associated field values are up-to-date during field mapping.
You do not need to edit the mappings from the defect tracker to Enterprise Tester as they are already complete, however you can edit them if required.
1.Click to highlight and select ‘Map Fields’ and click on ‘Configure’ from the toolbar. Please note that Enterprise Tester may need to Refresh Lookups before you can proceed with your field configuration.
From the Configure Fields mapping screen, several configurations are automatically created consisting of Copy Field type mappings and direct Map field type mappings.
The Copy Field type mappings are already configured and the value will be copied from Enterprise Tester to JIRA on Synchronization:
Copy Field – Copy from ET: Name (field) to External System: Summary (field)
Copy Field – Copy from ET: Description to External System: Description (field)
Copy Field – Copy from ET: Created By (field) to External System: Reporter (field)
Copy Field – Copy from ET: Assigned To (field) to External System: Assignee (field)
The Map field type mappings require the field values to be mapped. You can see under the column “Configured = False” that the value for these fields has not yet been mapped:
Map Field – Map from ET: Type to External System: Type
Map Field – Map from ET: Priority to External System: Priority
- To complete the field mappings, click on the “Type” Map field and select ‘Edit’ from the tool bar.
- Complete mapping Enterprise Tester field values to JIRA field values.
- Click “save”.
- Complete mapping field values for “Priority”.
Scheduling Requirement Synchronization
Now that your configuration and field mappings are complete you are ready to synchronize. The synchronization frequency can also be configured from the Schedules tab. There are 3 options that can be configured:
- Adhoc
- Periodic
- Daily
| Type | Scope | Direction | Period | Time |
| Adhoc | You can choose to only update entities since the last synchronization or synchronize all. | Four options:
• To External System ( From ET)
• From External System ( To ET)
• Bi-Directional ( External System changes will synch first)
• Bi-Directional (ET changes will synch first). |
N/A | N/A |
| Periodic | You can choose to only update entities since the last synchronization or synchronize all. | Four options:
• To External System ( From ET)
• From External System ( To ET)
• Bi-Directional ( External System changes will synch first)
• Bi-Directional (ET changes will synch first). |
Specify the synchronization frequency in minutes. | N/A |
| Daily | You can choose to only update entities since the last synchronization or synchronize all. | Four options:
• To External System ( From ET)
• From External System ( To ET)
• Bi-Directional ( External System changes will synch first)
• Bi-Directional (ET changes will synch first). |
N/A | Specify the time using the (24hr clock) when the synchronization will occur daily. |
Once you have configured your synchronization frequency, a summary of the configured synchronization schedules is available. You can see the time of the Last Run, the Next Run (if applicable), whether the schedule is enabled or not and the current Synchronization Status.
You can use the tool bar to add a new scheduled synchronization, delete an existing configuration, enable or disable an existing schedule, configure an existing schedule or manually initiate a synchronization.

Synchronization History
You can view the Synchronization history from both the synchronization configuration screen and the individual synchronized entities. From the configuration screen you can view all synchronization events, select to only view errors, export the synchronization events to a csv file or clear the history.

Deleting Requirement Project Links
Deleting requirement project links will stop the synchronization between Enterprise Tester and your external system. When deleting the link you will have the option to delete the link and remove all external link references or to retain these references. These include the trackback comments and the defect issue link placed in Enterprise Tester. Note that if you chose to delete the references. This will only affect Enterprise Tester. References to Enterprise Tester in your external system cannot be removed, but all references in Enterprise Tester to your external system will be removed.

Limitations
- When synchronizing from ET to JIRA
- Nested requirements will be synchronized, but will not be created as sub tasks in JIRA
- Relationships in ET between requirements will not be synchronized to JIRA
- When synchronizing from JIRA to ET
- Sub tasks are never synchronized to ET
- Links between issues in JIRA are never synchronized to relationships in ET
- Currently synchronization will halt after an error occurs (so it won't continue processing the remaining entities).
- Requirement Synchronization to JIRA does not currently support mapping to/from cascading select fields.
When synchronizing from ET to JIRA, if you see an error message similar to this with the error "is an invalid parent option" this suggests you have tried mapping to a cascading select field:
System.ServiceModel.FaultException: com.atlassian.JIRA.rpc.exception.RemoteValidationException: Fields not valid for issue: Errors: {customfield_10130=The option '1' is an invalid parent option} Error Messages:
Remove the mapping to allow synchronization to work once again.
- Auto-map in the TFS -> ET direction is fine, but auto-mapping in the other direction, even for custom fields, is not currently implemented.
Troubleshooting
- When Synchronizing from JIRA to ET no requirements are created.
If nothing is synchronized from JIRA to Enterprise Tester, but no errors are displayed, check to make sure that on the "External System Configuration" tab you have selected all the issue types you wish to synchronize.
- Changes to status in ET are not being reflected in JIRA.
This is a known issue and also affects status changes for incidents in Enterprise Tester. This is often related to transition field requirements that have not been met or status transitions that are not allowed by the JIRA workflow.
- The type of a synchronized requirement is changed in ET, but it did not change in JIRA
If there is no way to convert an issue from one type to another with mapping statuses etc., then an error will occur and the synchronization of the entity in question will fail. Either stop mapping Type at all, or change the type back to its old value (this could also be achieved by just performing a full sync in the direction of External System -> ET).
- Why can't I add comments via the Requirements screen?
Currently, we do not support comments on requirements and scripts, but we do support displaying comments from external systems (such as JIRA) on the requirements screen, once the requirement has been synchronized with JIRA.
- Why am I getting duplicate requirements created?
If more than one requirement link is set up per project, duplicate requirements may be created. If the requirement matches the synchronization filter criteria of more than one requirement project link your requirement will be imported by each of these links. The only way to avoid this is to define your filter criteria to exclude these entities.
Managing Groups
Adding Group
You can add groups to Enterprise Tester through the Admin section which can be accessed from the Admin tab on the navigator.
To add a group:
- Select the ‘Admin’ tab in the navigator
- Click to expand to the Users folder
- Right click on the ‘Groups’ folder and select ‘Add Group’ - the Add Group screen will display
- Complete the following details:
- Click on the 'Permissions' tab to begin assigning permissions. For more information on granting permissions, see the help topic Granting_Permissions
- On the 'Assign Users' tab you can select the users to associate with the group. Type in the user's name or username and select the user from the results returned. Note that permissions granted here will apply application wide and not just to the assigned projects.
- Click on ‘Save’ to create the group.
Editing Groups
To edit a group:
- Select the ‘Admin’ tab in the tree view.
- Click to expand to the ‘Groups’ folder.
- Right click on the user folder and select View Groups - the view users screen will display.
- Double click on a group to edit.
The Group screen will appear and you can now update the details.
Deleting Groups
To delete a group:
- Select the ‘Admin’ tab in the tree view.
- Expand to the Groups folder.
- Right click on the ‘Groups’ folder and select View Users - the view users screen will display.
- Double click on a group to edit them.
- Click ‘Delete’.
- Click on ‘Yes’ to the prompt - the group will now be removed.
Managing Picklist Values
Picklists for the ET standard fields can be managed at either the project level or at the organisation level.
Managing Picklist Values at the Organization Level
Managing your picklist values at the organisation level is useful when you have standard field values that apply to the majority of your projects. When new projects are created, they will retain the organization picklist values when created. Note however, that changes to picklist values at the organisation level will only apply to new projects. Existing projects will need to be updated individually at the project level.
The picklist for custom fields are applied globally. This means there is only one set of values for a particular custom. It is easiest to manage your custom field values at the organization level.
To edit your organization picklist values, navigate to the Admin tab. Expand your organization, then either double click on your project or right click on your organization and select Edit Organisation from the menu.
On the bottom right corner of the Edit Project screen, select the edit picklist button. The edit picklist screen will appear allowing you to select the field that you wish to update or edit.

Managing Picklist Values at the Project Level
Managing your picklist at the project level is convenient when you have a different set of field values for your project than for your organization. From the project level you can add edit your standard field values to values specific for your project.
Note that there is only a single global list of custom field values and the picklist is best managed at the organization level. Updates can be made to Custom field picklist values at the project level but they will also apply to all other projects using that custom field.
To edit your project specific picklist values, navigate to the Admin tab. Expand your organization and then expand the Projects folder. Then either double click on your project or right click on your project and select Edit Project from the menu.
On the bottom right corner of the Edit Project screen, select the edit picklist button. The edit picklist screen will appear allowing you to select the field that you wish to update or edit.

Managing Projects
Creating Projects
An unlimited number of projects can be created in Enterprise Tester. You can manage projects through the admin section of Enterprise Tester. To add a project:
- Open the Admin Tab of the tree view and expand out until you can see the projects folder.

- Right click on the project folder and select Add Project from the menu. The New Project Wizard will appear.

Enter a name for your project and select a template. The project templates available are:
a. Default – This template is the ET standard project set up using the organisation picklist values. The project structure is as follows:

b. Agile – This template provides an agile project set up option. The project structure is as follows:

In addition, the agile project template also adds the number custom field, Story Points to User Stories (Requirements) and has the following set of picklist values:
| Field | Picklist Values |
| Incident Resolution | Duplicate | Cannot Reproduce | Won't Fix | Fixed | Incomplete |
| Incident Status | Open | In Progress | Resolved | Closed | Reopened |
| Incident Type | Bug | New Feature Task | | | |
| Priority | Blocker | Critical | Major | Minor | Trivial |
| Requirement Difficulty | High | Medium | Low | | |
| Requirement Status | In Progress | Review | Pending | Approved | |
| Requirement Type | User Story | Task | Epic | | |
| Status | In Progress | Review Pending | Approved | | |
| Test Type | Smoke | Functional | Regression | Non-functional | User Acceptance |
c. Cascade – This template provides a hybrid option of classical and agile project set up. The project structure is as follows:
In addition, the Cascade project template has the following set of picklist values:
| Field | Picklist Values |
| Incident Resolution | Duplicate | Cannot Reproduce | Won't Fix | Fixed | Incomplete | |
| Incident Status | Open | In Progress | Resolved | Closed | Reopened | |
| Incident Type | Bug | New Feature | Task | Improvement | | |
| Priority | Blocker | Critical | Major | Minor | Trivial | |
| Requirement Difficulty | High | Medium | Low | | | |
| Requirement Status | In Progress | Review Pending | Approved | Requires Rework | Rejected | On Hold |
| Requirement Type | User Story | Task | Epic | Functional | Non Functional | User Interface |
| Status | In Progress | Review Pending | Approved | Requires Rework | Rejected | On Hold |
| Test Type | Smoke | Functional | Regression | Non-functional | User Acceptance |
Once you have added you project name and selected the appropriate template, click save to open the add project screen.
- Complete the project details:
| Field | Description |
| Organization | Select from the pick list of Organizations you have defined. |
| Name | A name that identifies the project. |
| Type | Enter a name that identifies the type of project. |
| Manager | Select the Project Manager from the pick list of users . |
| Picklist Values | Here you can select to either inherit your picklist values ( Inbuilt and custom fields) from the organization picklist or have an independent set of picklist values for your inbuild fields. |
| Auto-number | You can select auto-numbering of requirements and/or scripts |
| Read only numbers | You can configure the requirement and/or script number fields to be read only. |
| Start Date | The start date of the project. |
| End Date Estimate | The end date of the project. |
| Description | The project description. |
- Click on “Save” to create the project.

Assigning Users to Projects
Users must be assigned to projects and can only access projects where they have been assigned; user access is also limited by associated permissions. A point to note here is that if a user has permissions granted at the application level, they will only require project specific permissions to elevate their permission level
You can assign users to the project in the Assign Users tab of the project:
- Open the project by right clicking and selecting Edit Project or by double clicking the project.
- Select the Assign Users tab.
- You can then add users by simply typing in the user name and selected from the filtered results or by using the drop down and selecting the user.

Assign User Groups to a Project
Groups of users can be assigned to projects and project permission can then be assigned to the group. Group permissions at the application level will take precedence.
You can assign groups to projects similarly to adding users directly to projects.
Time Tracking
You can also set the time to be used for tracking progress for a project by selecting the Time Tracking Tab.
Here you can select:
Working Hours Per Day The number of hours in a working day (1 - 24).
Working Days Per Week The number of days in a working week (1 - 7).
Version Control
You can add the following version control details for a project:
- Type the type of version control application you are using (selected from a supported list).
- Repository Url the url path for the version control repository you are configuring.
- Working Copy Path the working copy path for the version control repository you are configuring.
- Username a gateway user to access the repository.
- Password the password for the gateway user used to access the repository.
- Executable Path the path to the executable for the version control application.
- Additional Arguments any additional arguments required for the repository executable.
Note that you can choose to inherit Version Control from the organization. If you share version control repositories across Projects this enables you to define the connection once.
Managing Users
Adding Users
You can add users to Enterprise Tester through the Admin section which can be accessed from the Admin tab on the navigator.
The number of users you can add to Enterprise Tester depends on your license level.
To add a user:
- Select the ‘Admin’ tab in the navigator.
- Click to expand to the Users folder.
- Right click on the ‘User folder’ and select ‘Add User’ - the Add user screen will display.
- On the User Details tab enter the following details:
- User name - the logon name for the user
- First Name - optional
- Last Name - optional
- Email - the email address for the user
- Phone - an optional phone number for the user
- Password - the logon password
- Confirm - repeat the logon password.
- Click on ‘Save’ to create the user.
On the Permissions tab you can grant the User Application wide permissions to the following areas:
- Resources
- Administration
- Project
- Reports
- Test Management
On the ‘Assign Groups’ tab, you can assign the user to established groups. Note that the user will inherit the application wide permissions of the group.
On the ‘Assign Projects’ tab, you can allocate user to existing projects.
For more information on granting permissions, see the help topic Granting_Permissions
Editing Users
To edit a user:
1. Select the ‘Admin’ tab in the tree view.
2. Click to expand to the ‘Users’ folder.
3. Right click on the user folder and select View Users - the view users screen will display.
4. Double click on a user to edit.
The Edit User screen will appear and you can now update the details.
Deleting Users
To delete a user:
- Select the ‘Admin’ tab in the tree view.
- Expand to the Users folder.
- Right click on the ‘Users’ folder and select View Users - the view users screen will display.
- Double click on a user to edit them.
- Click ‘Delete’.
- Click on ‘Yes’ to the prompt - the user will now be removed.
Managing Your ET License
To manage your Enterprise Tester License, from the Admin tab, expand the Configure folder. Double click on License.

Here you will be able to view your license parameters including the maximum number of concurrent user, maximum number of named users and the start and expiry date of your license.
Server Key
Here you will also find your server key and field for applying your license text. The license text is specific to your server key. In Stable Server Key Generation mode, the server key is affected by the following parameters:
- Machine Name
- Processor Count
- Operating System Name
- Operating System Version
If you are planning to upgrade any of these parameters please be aware that you server key may change and you will need to request a new license text from the Catch Support team.
Managing Your Organization
During the installation of Enterprise Tester, the organizantion is set up with a basic profile. These details are not permanent and can be updated by a system administrator.
You can update or edit your Organization details by expanding the Organisation folder and right clicking on your Organization's name. Select Edit Organisation from the menu.

From the organization set up screen, in addition to providing the organization details, you can set up the external version control, add Enterprise Architect connections and configure your pick lists.

Subversion, Perforce and GIT are supported version control applications. Once version control is configured, projects that are created can choose to inherit version control from the organisation.
You will also notice that on the Organisation edit screen that you can configure picklist values and connections to Enterprise Architect (EA) databases or EAP files. Picklist values that are configured at the organisational level will propogate through to to the projects. This is useful when you have a default set of values for your inbuilt and custom fields that apply to all or most of your projects. Configuring your picklists and EA configurations at the Organisation level will help reduce the effor trequired when setting up your projects.
Search Indexing
Enterprise Tester features a comprehensive search engine which will periodically require search indexing to be performed.
Certain actions (such as adding custom fields) trigger a re-index to be performed. This enables the new information to become searchable.
Re-indexing can take anywhere from 5 to 60 minutes depending on many factors including database performance, IO performance of the disk where the Enterprise Tester indexes are being stored (a slow SAN/NAS based disk can impact on indexing and search performance) and the number of records and relationships stored in Enterprise Tester. As an example, during the testing of this feature a database with 100,000 entities took 30 minutes to re-index.
Performing a Re-index
If a re-index is required and an Administrator logs into Enterprise Tester – they will be redirected to the Indexing Administration page.

As an Administrator you can also access the Index screen by double clicking the Indexing node in the explorer tree:

To Re-index:
- Ensure it is an appropriate time to perform the re-index, it is recommended that you perform re-indexing out of hours or during off peak times. Users can still log in while the re-index is underway, but results in searches, grids and graphs will be inconsistent until the re-indexing process has completed.
- Click the “Re-index Now” button.
- Select “—All Projects –“ from the Project dropdown.
- Check “Optimize” if required (selecting Optimize will result in smaller and more efficient search indexes, however the re-indexing process will take longer and may affect users working in the system). Click “OK”

A reindex progress bar will be displayed:

A confirmation of re-index completion will be displayed:

When the re-index completes, the indexing window should refresh and the value “Requires Index” value should be “No”.

Other Indexing Administration Tabs
- Fields Tab – lists all indexed fields.
- Reserved Words Tab – lists all system reserved words that shouldn’t be used in custom fields.
Changing the indexes folder location
By default the location of the Indexes folder will default to the "Data" folder of your installation. The indexes folder can grow up to 1 gigabyte in size, so if you don't have a lot of space free on your installation drive, or prefer to store data in a different location, you can change the web.config file to specify this location. See the app-setting-configuration mini-guide for details of how to do this.
Version Control
Enterprise Tester integrates with a number of popular Distributed Version Control System (DVCS).
This integration will transparently commit copies of baselines created for a project or package to source control, allowing test artefacts to be stored in a source code repository, allowing correlation of test artifacts with versions of a software code base.
Initial Setup
To enable version control integration with Enterprise Tester, the general steps are:
- Login to the Enterprise Tester server using the same user account as Enterprise Tester has configured for it's application pools identity in IIS.
- Install the command line client tools for you version control system onto the Enterprise Tester server.
- Checkout/clone your version control repository to a local directory on the Enterprise Tester server.
- Attempt a test commit to confirm it is working from command line (i.e. if using GIT + SSH this will ensure you have setup the SSH keys correctly, or if using NTLM this will ensure your windows identity has permission to access to the repository).
- If everything is working correctly, proceed to configure the version control settings at either the project level, or organisation + project level for each project you want to support version control with.
- Attempt to baseline a small package of requirements or scripts in your project, and confirm the baseline was pushed to your version control system.
- If that works, you should be ready to start using version control integration with baselines.
Configuration
Version control can be configured at an organisation or project level.
- To configure version control settings for an organisation, go to Admin -> Organisations -> Edit Organisation, then switch to the Version Control tab.
- To configure version control settings for a specific project, go to Admin -> Organisations -> Projects -> Edit Project, then switch to the Version Control tab.

In each case you will be required to supply the following details:
| Key | Value |
| Type | Type of version control repository to integrate with |
| Repository Url | Url of the repository - this could be a standard HTTP URL, but depends on the type selected (for instance when using git it's OK to use an SSH style url) |
| Working copy path | Where the repository is checked out to (this is where the baselines will be stored on the local disk) e.g. c:\data\baselines\
Note: currently the working directory must be created and checked out initially by the user, Enterprise Tester will not perform an initial checkout itself |
| Username | The username of a user with permissions to commit to the repository, in some cases this can be left blank i.e. when using SSH, or when the repository allows anonymous writes |
| Password | The password of a user with permissions to commit to the repository, in some cases this can be left blank i.e. when using SSH, or when the repository allows anonymous writes |
| Executable Path | This is the path (including filename) to the executable used to perform the source control actions so for example if using GIT integration, you would need to have git for windows installed, and you would then configure the executable path to be: c:\Program Files (x86)\Git\bin\git.exe |
| Additional Arguments | Any additional arguments specified will be automatically added to every command executed using the executable (specified in Executable Path) - this is useful in the case of troubleshooting for instance, where you may want to pass in additional flags to force more verbose error messages and logging |
Once you have configured version control an organisation level, to then use that version control repository you must configure the project repository to use the value "Inherit From Organisation" for the version control type.

In this case project baselines will stored in child folders, based on the name of the project. If version control settings however are configured directly at the project level, baselines will be stored directly into the working directory folder.
Additional Info
Please consult the topics for each version control system, which provide more details are about specific setup steps for each version control type:
GIT
GIT is a popular DVCS (Distributed Version Control System) - supported by Enterprise Tester version 4.4 and above.
Setup
Step #1 - Installing GIT for Windows
To setup GIT integration, you must first install Git for Windows - which can be downloaded from the git-scm.com website.
Once downloaded, run the installation on the Enterprise Tester server.
Last of all, you will want to add the git "bin" folder to your path, to do so:
- Go to Control Panel -> System & Security -> System -> Advanced System Settings -> Environment Variables.
- In the System Variables section, locate "Path".
- Click the edit button, then append the full path to the "bin" folder in your git installation directory (where git.exe exists) to the URL, prefixed by a semicolon.
- Click OK to save changes.
You should now be able to launch a command prompt and type "GIT" and see a version message like so:
C:\> git
usage: git [--version] [--exec-path[=]] [--html-path] [--man-path] [--inf-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=] [--work-tree=] [--namespace=]
[-c name=value] [--help]
[]
....
Step #2 - Cloning your repository
Next you need to clone your repository to a local directory on your Enterprise Tester machine. It the case of bitbucket or github, you can find the URL and directions on how to clone your repository on the home page for the repository.
If you intend on using SSH with a service such as github or bitbucket then you will need to:
- Login to the server using the same username as the identity configured for the application being used by Enterprise Tester.
- Generate an SSH Key (be sure to NOT password protect the SSH Key)
- Add it to your github or bitbucket account.
Github provide a handy guide on how to generate an SSH Key.
At this point you should now be able to clone the repository to a local directory of the machine - so commence with the clone, here an example of cloning from bitbucket:
git clone https://jbloggs@bitbucket.org/jbloggs/jbloggs_et_project.git
Once cloned, you may need to switch the branch of the repository to the branch you want Enterprise Tester to commit to (this can be done using the git checkout command).
git checkout QA
Step #3 - Check Commit Works
Once you have cloned the repository, we suggest performing a test commit (this will allow you to ensure that if using SSH, git does not prompt for a password when committing, and allows you to permanently accept SSH/SSL certificates etc.)
You can do this by:
- Creating a new text document call test.txt in the working directory.
- Executing the command: git add .**
- Execute the command: git commit -m "test commit"
- Execute the command: git push
You should see the new file is added to the remote git repository on the correct branch.
Step #4 - Setup
You are now ready to configure Enterprise Tester at either the project or organisation level - a standard GIT configuration when using a git repository hosted on bitbucket may look like this:

Step #5 - Testing
Once you have setup the configuration for your project, you can test the connection by creating a baseline for a small requirements or scripts package. You should be able to confirm it worked by checking the list of recent commits for your git repository on the remote server.
How it Works
The command flow executed by the synchronizer when creating a baseline for a project with git integration turned on is:
- git rev-parse (used to confirm working directory is part of a git repository)
- git pull or git pull {url} (if repository url specified in config)
- git add {filename}
- git config user.email "{email}" (if user.email not configured globally or locally for repo)
- git config user.name "{full name}" (if user.name not configured globally or locally for repo)
- git commit -m "{commit message}"
- git push (will use default remote configured for local branch via track, you can also manually configure this as per this stackoverflow post)
Perforce
Enterprise Tester supports integrating with Perforce version control when creating baselines.
Prerequisites
You must have the perforce command client installed onto the Enterprise Tester server for perforce integration to work (p4.exe). To install it go to the perforce website and download the version of the client applicable for your perforce version.
Once installed, you will normally find the executable is available at this path: C:\Program Files\Perforce\p4.exe
Setup
Perforce integration relies on setting up a workspace on the local disk of the Enterprise Tester server, pointing to the depot on the perforce server.
Once setup you can then configure Enterprise Tester at the project or organisation level, specifying the location of the p4 executable, the workspace folder, and the login and password to use when accessing the perforce depot (login/password are optional).

Subversion (SVN)
Enterprise Tester supports integration with subversion when creating baselines.
Setup
Step #1 - Download and Install Subversion Client
On the Enterprise Tester server, download and install subversion - we generally suggest using the SilkSVN or CollabNet packages.
The installation should automatically add subversion to your path, you can normally confirm this by launching a command prompt and typing "svn", you should see something like this if subversion is installed:
C:\> svn
Type 'svn help' for usage.
Step #2 - Checkout the Subversion Repository
Next you need to checkout the subversion repository to a folder on the local machine, this can be done using a command like so:
svn checkout https://svn.corpserver.com/svnroot/myproject/trunk/baselines baselines
This will checkout the repository with the URL "https://svn.corpserver.com/svnroot/myproject/trunk/baselines" to the folder "baselines" within the current directory.
Step #3 - Configure Version Control settings
Here is an example the configuration necessary for Subversion to work on a standard windows server:

Step #4 - Test Setup
At this stage you are now ready to test the functionality, we suggesting creating a baseline for a small package - if you receive no errors when creating a baseline, review the commit history for your subversion repository and confirm the baseline.zip file was added correctly.
REST API
Overview
Enterprise Tester provides with a REST API (Application Programming Interface) that can be used for retrieving and manipulating Enterprise Tester data without having to interact with the user interface.
There are many use cases for the API, but some common examples include:
- Building new clients for Enterprise Tester i.e. Mobile.
- Automating the recording, upload or updating of test execution information (including automated test results).
- Synchronizing Data in 3rd party systems with Enterprise Tester (such as Synchronizing Requirements with a document management system).
- Complex report generation - Enterprise Tester's API allows you to harness the full power of the TQL (Testing Query Language) including aggregation support.
- Mashups of Enterprise Tester and other applications with API's (such as the Atlassian toolset).
The REST API is based on open standards, and you can use any web development language to access the API, or a tool such as CURL to make simple requests.
Enterprise Tester's REST API provides a way for applications to access resources (Entities) via a URI (Uniform Resource Identifier) e.g. a path.
To use the REST API your application will make an HTTP request and then parse the response which may include a payload as well as a status indicating if the request was succeedful.
Enterprise Tester's API uses JSON (JavaScript Object Notation) as the default format for its entities, and standard HTTP methods such as GET, POST, PUT and DELETE (Analagous to Read, Create, Update and Delete i.e. CRUD) to perform actions on those entities. Note: Not all resources support all HTTP methods, see the Resources list for a description of each resource, the methods it supports, and whether TQL or OData querying methods are supported.
URI Structure
Enterprise Testers URIs have the following structure:
http://host:port/applicationpath/api/resource-name
In the resource help topics the URI templates are displayed like so:
/api/project/{id}
Values surrounded by braces (such as {id} above) are parameter substitutions, where this part of the URI would be replaced with an appropriate value. All URI's already include the required /api fragment as well, and the examples included with each method supported by a resource show these parameters with example values.
So for a local instance of Enterprise Tester, to GET the details of a single project you would take the template above, replace the ID parameter, and prepend the site's base path (also called the application path, or site.root.rul in the Enterprise Tester documentation) - after which you may end up with a URI that looks like this:
http://localhost/EnterpriseTester/api/project/a1d44feb-01b5-4f85-a18d-a03f00be87f6
Permissions
There is no specific permission required to use the API - Any Enterprise Tester user can access the API, but the features they can use will be limited by the permissions they have been granted. Each Resource topic lists the necessary permissions (if any) required to access the resource, and a summary of all resources with associated permissions required for each HTTP method are available in the Permissions topic.
Getting Started
To get started with the API, please refer to the Resources list, this provides the list of Resources (Entities) currently exposed, along with the methods they support and examples of requests & responses, including parameters, headers and status codes.
We also have a section where common features of the API are discussed, which can provide useful background information for those trying to develop against the Enterprise Tester API.
We also post tips and guides on how to use the API on the Catch Software Blogs which we update regularly.
Feedback
We would love to hear your feedback and feature requests on the API - Catch Software are working hard to make it as easy as possible to extend Enterprise Tester. Get in touch with our Support Team, we would love to hear how you are using the API, what's worked well and what could be improved.
API Features
In the following section general features of Enterprise Testers REST API are discussed.
Authentication
Enterprise Tester allows you to authenticate to the REST API via three methods:
- Session - this allows javascript running within the Enterprise Tester application to access the API as the currently logged in user.
- Basic - passing the login/password as a header with each request - if security is a concern, this should not be used unless Enterprise Tester is accessed via HTTPS (SSL).
- OAuth 1.0 - users can authenticate with Enterprise Tester via OAuth and then make requests using the returned access token.
Predominantly most users will want to use Basic Auth due to it's simplicity, unless building a 3rd party add-on for Enterprise Tester, in which case we recommend the use of OAuth, so your application is not required to store user logins and passwords.
Basic Auth
Basic Auth combined with SSL will often suffice as the authentication mechanism for interacting with the Enterprise Tester API, here is an example of using Curl to retrieve a list of projects from Enterprise Tester with basic auth:
curl -u Administrator:password http://localhost/EnterpriseTester/api/project/650d8904-c145-4f7c-8b65-a02a0092a85f
In this case we are retrieving the project with ID "650d8904-c145-4f7c-8b65-a02a0092a85f" with the login "Administrator" and the password "password".
OAuth 1.0
Enterprise Tester supports OAuth 1.0a.
Implementing an OAuth 1.0a client is outside the scope of this help topic, but the key things required to establish the connection are:
Get Request Token Url
http://localhost/EnterpriseTester/OAuth/Token/GetRequestToken.rails
This is Url that you can retrieve the request token from.
User Authorization Url
http://localhost/EnterpriseTester/OAuth/Authorization/PromptForAuthorization.rails
This is the Url that you send users to, so they can authorize the request for access.
Get AccessToken Url
http://localhost/EnterpriseTester/OAuth/Token/GetAccessToken.rails
This is the Url used to exchange the request token for the access token that you can use to sign all your API requests.
For more information on the mechanics of signing a request with your access token, we recommend that you read through a tutorial on the basic authentication flow in OAuth 1.0, and then subsequently through the specification.
Bulk Actions
Overview
Bulk actions are a common extension point within Enterprise Tester, exposed as features of the grid (normally a button, or selection field and button combination).
Bulk actions can be invoked asynchronously by issuing a POST request to the backgroundtasks collection resource, with the configuration information including the command being invoked passed in the Parameters collection, as show in the example below:
{
"Type": "bulkaction",
"Parameters": {
"commandName": "BulkCopy",
"scenarioName": "BulkCopyScriptsScenario",
"targetId": "ab1bd3c3-f30b-43b2-82e2-a07e0133511c",
"targetType": "TestScriptPackage",
"targetPackageId": "ab1bd3c3-f30b-43b2-82e2-a07e0133511c",
"sourcePackageId": "4016f35b-817f-459e-8533-9fc8015335c8",
"projectId": "c651ed19-5375-475a-a539-9f6401467130",
"selections":[
{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"},
{"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"TestScript"}
],
"retainStructure":true
}
}
If we pull apart the above request we can see that we are:
- Invoking the command "BulkCopy".
- Invoking the command scenario "BulkCopyScriptsScenario" - many commands have more then one associated scenario, and you must use the scenario applicable to your source and target package type, and the type of items you have selected.
- For move and copy operations there needs to be a target and source package (targetPackageId and sourcePackageId) - the source package is used as the "Root" of the bulk copy/move operation so that retain structure can calculate what folders are required.
- In the above example, our targetType and targetId is the same as the targetPackage.
- The selected items to copy "selections" - each selection features an Id and a Type (any type which is supported in TQL as a valid EntityType alias will work here i.e. Script and TestScript will both be treated as a TestScript entity type).
- "retainStructure" - which is a parameter specific to bulk/copy move to retain the packages related to the sourcePackage when copying to the targetPackage.
Available commands
CSV Export command
The CSV Export command is an example of an action which has a payload (an exported file) which you can download after completing the action - first, here is an example of a CSV export task being created:
{
"Type": "bulkaction",
"Parameters": {
"scenarioName": "CSV",
"encoding": "UTF8",
"delimiter": "comma",
"onlyVisibleColumns": false,
"includeHeader": true,
"includeSteps": true,
"includeStepsResults": true,
"query": "Name ~ export",
"exportAll": true,
"commandName": "Export"
}
}
As a result of creating this task, the response will indicate where the task updates can be fetched from via GET using the "Self" URL:
{
"Complete": false,
"TotalElements": 0,
"ProcessedElements": 0,
"StartedAt": "2012-07-03T12:16:30Z",
"ProgressInPercent": 0.0,
"Id": "bulkaction_Export_CSV_56065c63-cdf7-4285-ab10-321646317be8",
"Message": null,
"Self": "http://localhost:29840/api/backgroundtask/bulkaction_Export_CSV_56065c63-cdf7-4285-ab10-321646317be8"
}
When the task has completed, fetching the task will include in it's response details of the where you can then download the exported file from (indicated in the "exportedfile" link).
{
"Complete": true,
"StartedAt": "2012-07-03T12:16:30Z",
"FinishedAt": "2012-07-03T12:16:30Z",
"ProgressInPercent": 1.0,
"Id": "bulkaction_Export_CSV_56065c63-cdf7-4285-ab10-321646317be8",
"Message": "Completed",
"TotalTimeToExecute": "0s",
"FileName": "export-Entities-2012-07-04-121630am.csv",
"ContentType": "text/csv",
"Encoding": "UTF8",
"Self": "http://localhost:29840/api/backgroundtask/bulkaction_Export_CSV_56065c63-cdf7-4285-ab10-321646317be8",
"Links": [
{
"Href": "http://localhost:29840/api/exportfile/export-Entities-2012-07-04-121630am.csv",
"Rel": "exportedfile"
}
]
}
Bulk Assign
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| action.UserId |
Id of the user to assign the selections to |
| commandName |
Must be set to value 'BulkAssign' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
Scenarios
Scenario "AssignBulkActionScenario"
Supported Types: Requirement, Incident, Script, AutomatedTest, ScriptAssignment, AutomatedTestAssignment, AgileRun
This scenario has scenario-specific parameters:
| Parameter |
Description |
| scenarioName |
Must be set to value 'AssignBulkActionScenario' |
Bulk Copy
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| commandName |
Must be set to value 'BulkCopy' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| sourcePackageId |
unique identifier of the source package |
| targetId |
target identifier (unique identifier of the target for this operation, normally a package or parent requirement) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
| targetType |
The entity type of the target (any valid TQL entity type) |
Scenarios
- BulkCopyAssignmentsScenario
- BulkCopyRequirementsScenario
- BulkCopyScriptsScenario
Scenario "BulkCopyAssignmentsScenario"
Supported Types: ScriptAssignment, AutomatedTestAssignment, AgileRun
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCopyAssignmentsScenario' |
Scenario "BulkCopyRequirementsScenario"
Supported Types: Requirement
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCopyRequirementsScenario' |
Scenario "BulkCopyScriptsScenario"
Supported Types: Script, AutomatedTest
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCopyScriptsScenario' |
Bulk Create Assignments
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| commandName |
Must be set to value 'BulkCreateAssignments' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| sourcePackageId |
unique identifier of the source package |
| targetId |
target identifier (unique identifier of the target for this operation, normally a package or parent requirement) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
| targetType |
The entity type of the target (any valid TQL entity type) |
Scenarios
- BulkCreateScriptAssignmentsScenario
Scenario "BulkCreateScriptAssignmentsScenario"
Supported Types: Script, AutomatedTest
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCreateScriptAssignmentsScenario' |
Bulk Create Scripts
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| commandName |
Must be set to value 'BulkCreateScripts' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| sourcePackageId |
unique identifier of the source package |
| targetId |
target identifier (unique identifier of the target for this operation, normally a package or parent requirement) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
| targetType |
The entity type of the target (any valid TQL entity type) |
Scenarios
- BulkCreateScriptsScenario
Scenario "BulkCreateScriptsScenario"
Supported Types: Requirement
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCreateScriptsScenario' |
Bulk Create Scripts From Agile Runs
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| commandName |
Must be set to value 'BulkCreateScriptsFromAgileRuns' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| sourcePackageId |
unique identifier of the source package |
| targetId |
target identifier (unique identifier of the target for this operation, normally a package or parent requirement) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
| targetType |
The entity type of the target (any valid TQL entity type) |
Scenarios
- BulkCreateScriptsFromAgileRunsScenario
Scenario "BulkCreateScriptsFromAgileRunsScenario"
Supported Types: AgileRun
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkCreateScriptsFromAgileRunsScenario' |
Bulk Move
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| commandName |
Must be set to value 'BulkMove' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| sourcePackageId |
unique identifier of the source package |
| targetId |
target identifier (unique identifier of the target for this operation, normally a package or parent requirement) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
| targetType |
The entity type of the target (any valid TQL entity type) |
Scenarios
- BulkMoveAssignmentsScenario
- BulkMoveRequirementsScenario
- BulkMoveScriptsScenario
Scenario "BulkMoveAssignmentsScenario"
Supported Types: ScriptAssignment, AutomatedTestAssignment, AgileRun
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkMoveAssignmentsScenario' |
Scenario "BulkMoveRequirementsScenario"
Supported Types: Requirement
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkMoveRequirementsScenario' |
Scenario "BulkMoveScriptsScenario"
Supported Types: Script, AutomatedTest
This scenario has scenario-specific parameters:
| Parameter |
Description |
| removeEmptyPackages |
Remove empty source packages (true/false) |
| retainStructure |
Retain structure for selected items based on package structure relative to the source package (true/false) |
| scenarioName |
Must be set to value 'BulkMoveScriptsScenario' |
Export
This command does not only process the selected entities, this is normally indicative of a bulk action which supports being passed a TQL query which forms the basis of entities it should apply to.
| Parameter |
Description |
| columns |
The columns to export (if export all is set to false, this is an array of columns states i.e. [{ "Name": "col1", "IsVisible": true }, { "Name": "col2", "IsVisible": true }] ) |
| commandName |
Must be set to value 'Export' |
| exportAll |
Export all records (true/false) |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
Scenarios
Scenario "CSV"
Supported Types: Requirement, Script, Incident, AutomatedTest, ScriptAssignment, AutomatedTestAssignment, RequirementPackage, ScriptPackage, ExecutionPackage, AgileRun
This scenario has scenario-specific parameters:
| Parameter |
Description |
| delimiter |
The CSV delimiter to use (valid values are 'comma', 'colon', 'pipe', 'semicolon' or 'tab') |
| encoding |
The exporting enncoding type |
| includeAssociatedLinks |
Boolean value, if true then association columns (Associated requirements, Associated Scripts, Associated Incidents, External Identifiers) will include hyperlinks to the associated entities |
| includeAttachmentsLinks |
If true, then include attachment URL links in the generated output (otherwise just include attachment names) |
| includeHeader |
Include headers in export file |
| includeSteps |
Include steps for scripts |
| includeStepsResults |
Include step results for script assignments |
| onlyVisibleColumns |
Only export the visible columns |
| query |
The TQL query used to filter the items being exported to CSV |
| scenarioName |
Must be set to value 'CSV' |
Traceability
This command does not only process the selected entities, this is normally indicative of a bulk action which supports being passed a TQL query which forms the basis of entities it should apply to.
| Parameter |
Description |
| columns |
The columns to export (if export all is set to false, this is an array of columns states i.e. [{ "Name": "col1", "IsVisible": true }, { "Name": "col2", "IsVisible": true }] ) |
| commandName |
Must be set to value 'Traceability' |
| exportAll |
Export all records (true/false) |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
Scenarios
Scenario "CSV"
Supported Types: Requirement
This scenario has scenario-specific parameters:
| Parameter |
Description |
| additionalcolumns |
The additional columns to be included (these columns don't necessarily have to be in-scope for the entity type defined by the query / current context). |
| delimiter |
The CSV delimiter to use (valid values are 'comma', 'colon', 'pipe', 'semicolon' or 'tab') |
| encoding |
The exporting enncoding type |
| entitiesToInclude |
List of entity types to include |
| includeAllRuns |
Value specifying of either all runs or last of script are traced (All or LastRun) |
| includeAssociatedLinks |
Boolean value, if true then association columns (Associated requirements, Associated Scripts, Associated Incidents, External Identifiers) will include hyperlinks to the associated entities |
| includeAttachmentsLinks |
If true, then include attachment URL links in the generated output (otherwise just include attachment names) |
| includeHeader |
Include headers in export file |
| query |
The TQL query used to filter the root items being included in the traceability report CSV output |
| scenarioName |
Must be set to value 'CSV' |
Update Script Statuses
This command only processes the entities specified in the 'selections' parameter
| Parameter |
Description |
| action.Status |
The status to update the script to (supported statuses are 'In Progress' and 'Passed') |
| commandName |
Must be set to value 'UpdateScriptStatuses' |
| projectId |
Id of the the project the action applies to (used by some actions to determine the custom fields & permissions required to complete the action) |
| selections |
Array of ID/Type objects i.e. [{"Id":"0a02cb6d-4afa-463c-a6df-9fe400b7d8fc","Type":"TestScript"}, {"Id":"0a675d09-78cd-463e-a600-9fc80153481b","Type":"AgileRun"}] which the bulk action will operate on |
| targetPackageId |
Id of the target package (if any, normally same as the targetId) |
Scenarios
- UpdateScriptStatusBulkActionScenario
Scenario "UpdateScriptStatusBulkActionScenario"
Supported Types: ScriptAssignment
This scenario has scenario-specific parameters:
| Parameter |
Description |
| scenarioName |
Must be set to value 'UpdateScriptStatusBulkActionScenario' |
Consistency
By default API methods that change data in Enterprise Tester will attempt to wait until those changes have also been reflected in the indexes (such as the Run or Entity index).
If you are performing bulk insert operations, and do not rely on needing to be able to immediately query via TQL and retrieve acurate results based on the the data that was created, updated or deleted then you can choose to "opt out" of this wait mechanism.
To do so you request must either:
- Include the query parameter "wait-until-indexed" with the value "false".
- Include the request header "wait-until-indexed" with the value "false".
If the query parameter or header is not present, or set to true, then the default behavior of waiting until the entity is indexed after persisting any changes will apply.
CORS (Cross-origin resource sharing)
CORS (Cross-origin resource sharing) is a web browser specification that defines a way for a web browser and web client to interact in such a way that cross-origin (requests to a server in a different domain) are allowed, for all HTTP methods.
Support for CORS in Enterprise Tester was introduced in version 4.4 and above, and currently supports:
- CORS without authentication (will use session authentication however, if user is already authenticated with the Enterprise Tester server in the same browser session).
- CORS with authentication (Enterprise Tester will handle both pre-flighted and immediate requests, by returning the "Access-Control-Allow-Credentials" header - allowing the use of Basic Authentication).
Because a web browser and it's scripts are inherently insecure to the operator (the user operating the browser can see the javascript/html in raw form easily) - when using CORS with Basic Auth we strongly advise against storing the ET login and password credentials in javascript, and instead they should be retrieved from the user interactively and not stored.
And as always, when using basic Auth, we recommend you access Enterprise Tester via HTTPS (SSL).
Examples of using CORS with Enterprise Tester can be found in the CORS Examples section of our API Github Repository.
Debugging
When debugging output from the API, it can often be useful to have the JSON output rendered in an indented human-readable fashion.
To do this you use the indent-json option - passed as either a query string value e.g.
- /api/permissions?indent-json=true
- or just: /api/permissions?indent-json
Alternatively, you can also pass it as a request header (this is the method we recommend) using the same name and/or value as for the query string.
In responses where the indent-json option is set, a response header will be set with the name indent-json and a value of true.
Examples
Non-indented output
{"Items":[{"Id":"7c67b3bf-2c6d-4dfb-a840-a14300faac14","DisplayName":"Resources","Key":"/Resources","Name":"Resources","Children":[{"Id":"fd4f34f4-8...
Indented output (using indent-json option)
{
"Items": [
{
"Id": "7c67b3bf-2c6d-4dfb-a840-a14300faac14",
"DisplayName": "Resources",
"Key": "/Resources",
"Name": "Resources",
"Children": [
{
"Id": "fd4f34f4-8540-47c9-a994-a14300faac18",
...
Expand
Overview
The Enterprise Tester REST API makes extensive use of a feature called Expand (also known as Expansions) - resources that support expanding will return the list of available expansions in a property of the representation, called "Expand" - here is an example of a "project" resource with a set of available expand values:
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Test Project",
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages"
]
}
When making a request, you can include a query parameter called $expand that provides a comma separated list of expands you wish to have expanded in the response - so for example, to get the priority and status picklists back with the project, you would use a request like this:
GET /api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9?$expand=Status,Priority
In the response those properties will be expanded, and will no longer be listed in the "Expands" property as available properties to expand.
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Test Project",
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Expands": [
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages"
],
"Priorities": [
{
"Id": "6b1e46f4-8b59-4dc3-8ed1-0b3b89612e34",
"Text": "Low",
"SortOrder": 1,
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/priority/6b1e46f4-8b59-4dc3-8ed1-0b3b89612e34"
},
{
"Id": "5d37d6a1-6b1d-4007-8fcf-2c5296af3740",
"Text": "High",
"SortOrder": 2,
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/priority/5d37d6a1-6b1d-4007-8fcf-2c5296af3740"
}
],
"Statuses": [
{
"Id": "753387d7-0a67-45bd-8b96-a58791c283bb",
"Text": "Draft",
"SortOrder": 1,
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/status/753387d7-0a67-45bd-8b96-a58791c283bb"
},
{
"Id": "023b39dc-31a3-4bb6-bf01-69da23de5d3f",
"Text": "Final",
"SortOrder": 2,
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/status/023b39dc-31a3-4bb6-bf01-69da23de5d3f"
}
]
}
Expansions can be more than one level deep. Here is an example of getting a project, with its top level requirement package expanded, and each of those packages children collection expanded as well.
We do this by using a period (.) to navigate to the child expansion:
GET /api/project/593c2fb5-2300-4bce-ad50-9f07009b207c?$expand=RequirementPackages.Children
As you can see the child packages are then expanded as well:
{
"Expands" : [ "Components", ... ],
"Id" : "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name" : "Test Project",
"Self" : "/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"RequirementPackages" : [{
"Id" : "d2353811-36f5-45cf-bb72-a0440092ab60",
"Name" : "Requirements",
"OrderNumber" : 0,
"Parent" : null,
"Self" : "http://localhost/api/requirementpackage/d2353811-36f5-45cf-bb72-a0440092ab60"
"Children" : [
{
"Expands" : [ "Children", "Parent" ],
"Id" : "87fcdd47-c8b5-4eb0-867b-a0440092ba61",
"Name" : "Traceability Matrix",
"OrderNumber" : 0,
"Self" : "http://localhost/api/requirementpackage/87fcdd47-c8b5-4eb0-867b-a0440092ba61"
},
{
"Expands" : [ "Children", "Parent" ],
"Id" : "ef3882a8-27b3-4a0c-9d54-a0440092bb81",
"Name" : "Business Requirements",
"OrderNumber" : 0,
"Self" : "http://localhost/api/requirementpackage/ef3882a8-27b3-4a0c-9d54-a0440092bb81"
},
{
"Expands" : [ "Children", "Parent" ],
"Id" : "7998df31-147d-4954-b6b6-a0440092bb8a",
"Name" : "Stakeholder Requirements",
"OrderNumber" : 0,
"Self" : "http://localhost/api/requirementpackage/7998df31-147d-4954-b6b6-a0440092bb8a"
},
{
"Expands" : [ "Children", "Parent" ],
"Id" : "f2a2c9ad-98c6-480c-b925-a0440092bbe9",
"Name" : "Non-Functional Requirements",
"OrderNumber" : 0,
"Self" : "http://localhost/api/requirementpackage/f2a2c9ad-98c6-480c-b925-a0440092bbe9"
}
],
"Expands" : [ "Parent" ],
}]
}
For each method supported by a resource (GET, POST, PUT) documented within the help system, we also include details of the available expansions.
Deep Expansion
You are not limited to expanding to one or two levels - to expand many levels of depth, you can continue to use a period character between each level i.e. RequirementPackages.Children. Children will return the requirement package, with its children and those children's children.
GET /api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9?$expand=RequirementPackages.Children.Children
As we can see the multiple levels are expanded as requested:
{
"Id": "c651ed19-5375-475a-a539-9f6401467130",
"Name": "Test Project",
"OrganisationId": "564a2bed-e152-4e58-a57d-9f4100888460",
"OrganisationName": "Acme Inc",
"Description": "Description of project",
"EstimatedEndDate": "2011-09-29T11:00:00Z",
"Slug": "test-project",
"AutoNumberRequirements": true,
"AutoNumberScripts": true,
"StartDate": "2011-08-14T12:00:00Z",
"Expands": [
"Components",
"ExecutionPackages",
"IncidentResolutions",
"IncidentStatuses",
"IncidentTypes",
"Priorities",
"RequirementDifficulties",
"RequirementStatuses",
"RequirementTypes",
"ScriptPackages",
"Statuses",
"TestTypes",
"TimeTrackingConfiguration",
"Versions"
],
"RequirementPackages": [
{
"Id": "53b483c7-e332-4d38-bf86-9fd700d552d2",
"ProjectId": "c651ed19-5375-475a-a539-9f6401467130",
"Name": "Requirements",
"OrderNumber": 0,
"Expands": [
"Parent",
"Project",
"Requirements"
],
"Children": [{
"Id": "f3b483c7-e332-4d38-bf86-9fd700d552d2",
"ProjectId": "c651ed19-5375-475a-a539-9f6401467130",
"ParentId": "53b483c7-e332-4d38-bf86-9fd700d552d2",
"Name": "Reports",
"OrderNumber": 0,
"Expands": [
"Parent",
"Project",
"Children": [...],
],
"Self": "http://localhost:29840/api/requirementpackage/f3b483c7-e332-4d38-bf86-9fd700d552d2"
}],
"Self": "http://localhost:29840/api/requirementpackage/53b483c7-e332-4d38-bf86-9fd700d552d2"
}
],
"Self": "http://localhost:29840/api/project/c651ed19-5375-475a-a539-9f6401467130"
}
'All' Expansion
When exploring the API it can be useful to expand everything, so you can see what information is available - this can be done through the pseudo-expansion "All" i.e.
GET /api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9?$expand=All
This will automatically be replaced with all available expands in the response:
{
"Id": "53b483c7-e332-4d38-bf86-9fd700d552d2",
"ProjectId": "c651ed19-5375-475a-a539-9f6401467130",
"Name": "Requirements",
"OrderNumber": 0,
"Children": [...],
"Parent": null,
"Project": {...},
"Requirements": [...],
"Self": "http://localhost:29840/api/requirementpackage/53b483c7-e332-4d38-bf86-9fd700d552d2"
}
You can use multiple levels of "All" as well - but we strongly advise against using "All" when writing code that interacts with the API as it will cause very large payloads to be returned and negatively impact on the performance of Enterprise Tester.
JSONP
JSON (Json with Padding) complements in the existing capability of Enterprise Tester API methods to return JSON. I provides a method to request data from the server where CORS is not a viable alternative.
In a JSONP request, the contents of the response is wrapped in a javascript function call, which allows you to fetch it with a script tag, and the have to response automatically invoke the callback once loaded, to process the response body - let's take a look at an example:
To make a JSONP request you pass an additional query parameter as part of the url with the name "callback", the value of which is the name of the callback function to invoke:
Example
If we make a request as follows:
GET http://localhost/EnterpriseTester/api/groups?callback=processResponse
Then we can see in the response, that it's wrapped in a call to the function processResponse:
processResponse({
"Items": [
{
"Id": "2192ce56-971d-4b19-9df7-a0770041f1cf",
"Name": "Viewer",
"Description": "Viewer",
"Expands": [
"Users"
],
"Self": "http://localhost/EnterpriseTester/api/group/2192ce56-971d-4b19-9df7-a0770041f1cf",
"Links": [...]
},
...
],
"Self": "http://localhost/EnterpriseTester/api/groups?callback=process"
})
Limitations
JSONP requests are only support for GET HTTP methods.
OData (Open Data Protocol)
Some parts of the REST API expose collections which can be queried via OData mechanisms.
ODATA, or Open Data Protocol, is an involved standard allowing for adhoc filtering, paging (and much more) of resources - more details can be found here.
Currently Enterprise Tester leverages some features of OData as below:
- $filter - Is supported for OData implementing collections.
- $orderby - Is supported for OData implementing collections.
- $expand - Is supported for most resource types, but it's implementation differs in some ways (we align more closely with the Jira REST API expand functionality).
- $top - Is supported for OData implementing collections (also supported on any collections that take TQL queries).
- $skip - Is supported for OData implementing collections (also supported on any collections that take TQL queries).
Enterprise Tester at current does not intend to be OData compliant, in particular we have no plans to implement the navigation or metadata features that are within OData, at least not for the first version of the API.
Please see the Uri Conventions topic on the OData website for more information on how the various query parameters can be used to compose queries.
URL structure
Just to whet your appetite, here is a simple query of the projects collection - demonstrating projects being filtered, ordered and paged:
GET /api/projects?$filter=substringof('test',Name) eq true&$orderby=Name desc&$top=5
Pulling the URL apart we can see that:
- The filter is "substringof('test',Name) eq true" - this will find all projects containing the word 'test' ($filter = substringof('test',Name))
- we are sorting by the Name of the project, in descending order. ($order=Name desc)
- We want the first 5 resuts only ($top=5)
Examples
Example - Query without inline count
Url:
http://myserver/EnterpriseTester/api/users?$filter=Name eq 'john'&$top=2
Results:
{
"Items": [
{
"Id": "5b2b0ad0-5371-4abf-a661-9f410088925f",
"UserName": "Administrator",
"Email": "john.smith@mycompany.com",
"FirstName": "John",
"LastName": "Smith",
"Self": "http://myserver/EnterpriseTester/api/user/5b2b0ad0-5371-4abf-a661-9f410088925f"
},
{
"Id": "084c8a30-071c-4280-bf4c-9f48015b195f",
"UserName": "johnb",
"Email": "john.blogs@mycompany.com",
"FirstName": "John",
"LastName": "Bloggs",
"Self": "http://myserver/EnterpriseTester/api/user/084c8a30-071c-4280-bf4c-9f48015b195f"
}
}
Example - Query with inline count
Url:
http://myserver/EnterpriseTester/api/users?$inlinecount=allpages&$top=2&$skip=3
Results:
{
"Skip": 3,
"Top": 2,
"Total": 497,
"Items": [
{
"Id": "5b2b0ad0-5371-4abf-a661-9f410088925f",
"UserName": "Administrator",
"Email": "john.smith@mycompany.com",
"FirstName": "John",
"LastName": "Smith",
"Self": "http://myserver/EnterpriseTester/api/user/5b2b0ad0-5371-4abf-a661-9f410088925f"
},
{
"Id": "084c8a30-071c-4280-bf4c-9f48015b195f",
"UserName": "johnb",
"Email": "john.blogs@mycompany.com",
"FirstName": "John",
"LastName": "Bloggs",
"Self": "http://myserver/EnterpriseTester/api/user/084c8a30-071c-4280-bf4c-9f48015b195f"
}
]
}
Time Zones
Introduction
By default All TQL queries are executed in the context of the servers configured time-zone.
As of version 4.6 of Enterprise Tester, we now allow the time-zone to be overriden when searching for or aggregating over date/time values (such as when grouping by day), ensuring you get the results you would expect when using the API.
The methods in which the timezone can be set are:
- Passing the "timeZone" query parameter (supported by API resources which allow execution of TQL queries e.g. /api/search?tql=query&timeZone=tz)
- Adding the "TimeZone" property to the specification object being submitted (using by the Grid Widget Data resources currently).
- Using the "TimeZone" query hint, via SET in your TQL query.
The query hint can be supplied by prefixing your existing query with the timezone hint, so if you had the query:
GROUP BY Day(CreatedAt) { COUNT }
You could change the timezone the query ran in by prefixing the query with SET TimeZone=;
SET TimeZone=UTC; GROUP BY Day(CreatedAt) { COUNT }
This method also allows for specifying the timezone when running queries from within the UI, which can be useful if you want to get consistent output from a saved query for all users, even if they are in different timezones.
If the timezone contains a space or punctuation character such as a forward slash, you will need to enclose it within double or single quotes e.g.
SET TimeZone="America/New_York"; GROUP BY Day(CreatedAt) { COUNT }
For more information on how SET (also known as query hints) work - see the SET topic in the TQL help section.
Browser Timezone identification
Enterprise Tester will automatically attempt to detect and use the timezone of the browser when performing searches from within the UI, this is done by using a 3rd party javascript library "jsTimezoneDetect".
If you find the results of your queries are incorrect due to mis-handling of timezone detection, currently your options are:
- Notify us, and await a fix in the next version of Enterprise Tester.
- Specify (via a "SET TimeZone=tz;" prefix on your query) the correct time zone to use.
- Try changing the timezone of your machine to another timezone (with the same UTC offset) and see if that corrects the issue.
Timezone information for the server and client are displayed on the user-profile screen, under the "Timezone" heading, and hovering over the current time zone will display the "raw" IANA zone info key that is being passed to the Enterprise Tester server (which is then subsequently converted into a windows timezone when executing the TQL query.
Time Zone Identifiers
Enterprise Tester supports time zones specified using either the Windows Timezone ID or IANA zone info key (Olsen Timezone ID).
A list of common time zone identifiers follows:
- Afghanistan Standard Time
- Africa/Abidjan
- Africa/Accra
- Africa/Addis_Ababa
- Africa/Algiers
- Africa/Asmera
- Africa/Bamako
- Africa/Bangui
- Africa/Banjul
- Africa/Bissau
- Africa/Blantyre
- Africa/Brazzaville
- Africa/Bujumbura
- Africa/Cairo
- Africa/Casablanca
- Africa/Ceuta
- Africa/Conakry
- Africa/Dakar
- Africa/DaresSalaam
- Africa/Djibouti
- Africa/Douala
- Africa/El_Aaiun
- Africa/Freetown
- Africa/Gaborone
- Africa/Harare
- Africa/Johannesburg
- Africa/Juba
- Africa/Kampala
- Africa/Khartoum
- Africa/Kigali
- Africa/Kinshasa
- Africa/Lagos
- Africa/Libreville
- Africa/Lome
- Africa/Luanda
- Africa/Lubumbashi
- Africa/Lusaka
- Africa/Malabo
- Africa/Maputo
- Africa/Maseru
- Africa/Mbabane
- Africa/Mogadishu
- Africa/Monrovia
- Africa/Nairobi
- Africa/Ndjamena
- Africa/Niamey
- Africa/Nouakchott
- Africa/Ouagadougou
- Africa/Porto-Novo
- Africa/Sao_Tome
- Africa/Tripoli
- Africa/Tunis
- Africa/Windhoek
- Alaskan Standard Time
- America/Anchorage
- America/Anguilla
- America/Antigua
- America/Araguaina
- America/Argentina/La_Rioja
- America/Argentina/Rio_Gallegos
- America/Argentina/Salta
- America/Argentina/San_Juan
- America/Argentina/San_Luis
- America/Argentina/Tucuman
- America/Argentina/Ushuaia
- America/Aruba
- America/Asuncion
- America/Bahia
- America/Bahia_Banderas
- America/Barbados
- America/Belem
- America/Belize
- America/Blanc-Sablon
- America/Boa_Vista
- America/Bogota
- America/Boise
- America/Buenos_Aires
- America/Cambridge_Bay
- America/Campo_Grande
- America/Cancun
- America/Caracas
- America/Catamarca
- America/Cayenne
- America/Cayman
- America/Chicago
- America/Chihuahua
- America/Coral_Harbour
- America/Cordoba
- America/Costa_Rica
- America/Creston
- America/Cuiaba
- America/Curacao
- America/Danmarkshavn
- America/Dawson
- America/Dawson_Creek
- America/Denver
- America/Detroit
- America/Dominica
- America/Edmonton
- America/Eirunepe
- America/El_Salvador
- America/Fortaleza
- America/Glace_Bay
- America/Godthab
- America/Goose_Bay
- America/Grand_Turk
- America/Grenada
- America/Guadeloupe
- America/Guatemala
- America/Guayaquil
- America/Guyana
- America/Halifax
- America/Hermosillo
- America/Indiana/Knox
- America/Indiana/Marengo
- America/Indiana/Petersburg
- America/Indiana/Tell_City
- America/Indiana/Vevay
- America/Indiana/Vincennes
- America/Indiana/Winamac
- America/Indianapolis
- America/Inuvik
- America/Iqaluit
- America/Jamaica
- America/Jujuy
- America/Juneau
- America/Kentucky/Monticello
- America/Kralendijk
- America/La_Paz
- America/Lima
- America/Los_Angeles
- America/Louisville
- America/Lower_Princes
- America/Maceio
- America/Managua
- America/Manaus
- America/Marigot
- America/Martinique
- America/Matamoros
- America/Mazatlan
- America/Mendoza
- America/Menominee
- America/Merida
- America/Mexico_City
- America/Moncton
- America/Monterrey
- America/Montevideo
- America/Montreal
- America/Montserrat
- America/Nassau
- America/New_York
- America/Nipigon
- America/Nome
- America/Noronha
- America/North_Dakota/Beulah
- America/North_Dakota/Center
- America/NorthDakota/NewSalem
- America/Ojinaga
- America/Panama
- America/Pangnirtung
- America/Paramaribo
- America/Phoenix
- America/PortofSpain
- America/Port-au-Prince
- America/Porto_Velho
- America/Puerto_Rico
- America/Rainy_River
- America/Rankin_Inlet
- America/Recife
- America/Regina
- America/Resolute
- America/Rio_Branco
- America/Santa_Isabel
- America/Santarem
- America/Santiago
- America/Santo_Domingo
- America/Sao_Paulo
- America/Scoresbysund
- America/Shiprock
- America/Sitka
- America/St_Barthelemy
- America/St_Johns
- America/St_Kitts
- America/St_Lucia
- America/St_Thomas
- America/St_Vincent
- America/Swift_Current
- America/Tegucigalpa
- America/Thule
- America/Thunder_Bay
- America/Tijuana
- America/Toronto
- America/Tortola
- America/Vancouver
- America/Whitehorse
- America/Winnipeg
- America/Yakutat
- America/Yellowknife
- Antarctica/Casey
- Antarctica/Davis
- Antarctica/DumontDUrville
- Antarctica/Macquarie
- Antarctica/Mawson
- Antarctica/McMurdo
- Antarctica/Palmer
- Antarctica/Rothera
- Antarctica/South_Pole
- Antarctica/Syowa
- Antarctica/Vostok
- Arab Standard Time
- Arabian Standard Time
- Arabic Standard Time
- Arctic/Longyearbyen
- Argentina Standard Time
- Asia/Aden
- Asia/Almaty
- Asia/Amman
- Asia/Anadyr
- Asia/Aqtau
- Asia/Aqtobe
- Asia/Ashgabat
- Asia/Baghdad
- Asia/Bahrain
- Asia/Baku
- Asia/Bangkok
- Asia/Beirut
- Asia/Bishkek
- Asia/Brunei
- Asia/Calcutta
- Asia/Choibalsan
- Asia/Chongqing
- Asia/Colombo
- Asia/Damascus
- Asia/Dhaka
- Asia/Dili
- Asia/Dubai
- Asia/Dushanbe
- Asia/Gaza
- Asia/Harbin
- Asia/Hebron
- Asia/Hong_Kong
- Asia/Hovd
- Asia/Irkutsk
- Asia/Jakarta
- Asia/Jayapura
- Asia/Jerusalem
- Asia/Kabul
- Asia/Kamchatka
- Asia/Karachi
- Asia/Kashgar
- Asia/Katmandu
- Asia/Khandyga
- Asia/Krasnoyarsk
- Asia/Kuala_Lumpur
- Asia/Kuching
- Asia/Kuwait
- Asia/Macau
- Asia/Magadan
- Asia/Makassar
- Asia/Manila
- Asia/Muscat
- Asia/Nicosia
- Asia/Novokuznetsk
- Asia/Novosibirsk
- Asia/Omsk
- Asia/Oral
- Asia/Phnom_Penh
- Asia/Pontianak
- Asia/Pyongyang
- Asia/Qatar
- Asia/Qyzylorda
- Asia/Rangoon
- Asia/Riyadh
- Asia/Saigon
- Asia/Sakhalin
- Asia/Samarkand
- Asia/Seoul
- Asia/Shanghai
- Asia/Singapore
- Asia/Taipei
- Asia/Tashkent
- Asia/Tbilisi
- Asia/Tehran
- Asia/Thimphu
- Asia/Tokyo
- Asia/Ulaanbaatar
- Asia/Urumqi
- Asia/Ust-Nera
- Asia/Vientiane
- Asia/Vladivostok
- Asia/Yakutsk
- Asia/Yekaterinburg
- Asia/Yerevan
- Atlantic Standard Time
- Atlantic/Azores
- Atlantic/Bermuda
- Atlantic/Canary
- Atlantic/Cape_Verde
- Atlantic/Faeroe
- Atlantic/Madeira
- Atlantic/Reykjavik
- Atlantic/South_Georgia
- Atlantic/St_Helena
- Atlantic/Stanley
- AUS Central Standard Time
- AUS Eastern Standard Time
- Australia/Adelaide
- Australia/Brisbane
- Australia/Broken_Hill
- Australia/Currie
- Australia/Darwin
- Australia/Hobart
- Australia/Lindeman
- Australia/Melbourne
- Australia/Perth
- Australia/Sydney
- Azerbaijan Standard Time
- Azores Standard Time
- Bahia Standard Time
- Bangladesh Standard Time
- Canada Central Standard Time
- Cape Verde Standard Time
- Caucasus Standard Time
- Cen. Australia Standard Time
- Central America Standard Time
- Central Asia Standard Time
- Central Brazilian Standard Time
- Central Europe Standard Time
- Central European Standard Time
- Central Pacific Standard Time
- Central Standard Time
- Central Standard Time (Mexico)
- China Standard Time
- CST6CDT
- Dateline Standard Time
- E. Africa Standard Time
- E. Australia Standard Time
- E. Europe Standard Time
- E. South America Standard Time
- Eastern Standard Time
- Egypt Standard Time
- Ekaterinburg Standard Time
- EST5EDT
- Etc/GMT
- Etc/GMT+1
- Etc/GMT+10
- Etc/GMT+11
- Etc/GMT+12
- Etc/GMT+2
- Etc/GMT+3
- Etc/GMT+4
- Etc/GMT+5
- Etc/GMT+6
- Etc/GMT+7
- Etc/GMT-1
- Etc/GMT-10
- Etc/GMT-11
- Etc/GMT-12
- Etc/GMT-13
- Etc/GMT-2
- Etc/GMT-3
- Etc/GMT-4
- Etc/GMT-5
- Etc/GMT-6
- Etc/GMT-7
- Etc/GMT-8
- Etc/GMT-9
- Europe/Amsterdam
- Europe/Andorra
- Europe/Athens
- Europe/Belgrade
- Europe/Berlin
- Europe/Bratislava
- Europe/Brussels
- Europe/Bucharest
- Europe/Budapest
- Europe/Busingen
- Europe/Chisinau
- Europe/Copenhagen
- Europe/Dublin
- Europe/Gibraltar
- Europe/Guernsey
- Europe/Helsinki
- Europe/IsleofMan
- Europe/Istanbul
- Europe/Jersey
- Europe/Kaliningrad
- Europe/Kiev
- Europe/Lisbon
- Europe/Ljubljana
- Europe/London
- Europe/Luxembourg
- Europe/Madrid
- Europe/Malta
- Europe/Mariehamn
- Europe/Minsk
- Europe/Monaco
- Europe/Moscow
- Europe/Oslo
- Europe/Paris
- Europe/Podgorica
- Europe/Prague
- Europe/Riga
- Europe/Rome
- Europe/Samara
- Europe/San_Marino
- Europe/Sarajevo
- Europe/Simferopol
- Europe/Skopje
- Europe/Sofia
- Europe/Stockholm
- Europe/Tallinn
- Europe/Tirane
- Europe/Uzhgorod
- Europe/Vaduz
- Europe/Vatican
- Europe/Vienna
- Europe/Vilnius
- Europe/Volgograd
- Europe/Warsaw
- Europe/Zagreb
- Europe/Zaporozhye
- Europe/Zurich
- Fiji Standard Time
- FLE Standard Time
- Georgian Standard Time
- GMT Standard Time
- Greenland Standard Time
- Greenwich Standard Time
- GTB Standard Time
- Hawaiian Standard Time
- India Standard Time
- Indian/Antananarivo
- Indian/Chagos
- Indian/Christmas
- Indian/Cocos
- Indian/Comoro
- Indian/Kerguelen
- Indian/Mahe
- Indian/Maldives
- Indian/Mauritius
- Indian/Mayotte
- Indian/Reunion
- Iran Standard Time
- Israel Standard Time
- Jordan Standard Time
- Kaliningrad Standard Time
- Kamchatka Standard Time
- Korea Standard Time
- Magadan Standard Time
- Mauritius Standard Time
- Mid-Atlantic Standard Time
- Middle East Standard Time
- Montevideo Standard Time
- Morocco Standard Time
- Mountain Standard Time
- Mountain Standard Time (Mexico)
- MST7MDT
- Myanmar Standard Time
- N. Central Asia Standard Time
- Namibia Standard Time
- Nepal Standard Time
- New Zealand Standard Time
- Newfoundland Standard Time
- North Asia East Standard Time
- North Asia Standard Time
- Pacific SA Standard Time
- Pacific Standard Time
- Pacific Standard Time (Mexico)
- Pacific/Apia
- Pacific/Auckland
- Pacific/Efate
- Pacific/Enderbury
- Pacific/Fakaofo
- Pacific/Fiji
- Pacific/Funafuti
- Pacific/Galapagos
- Pacific/Guadalcanal
- Pacific/Guam
- Pacific/Honolulu
- Pacific/Johnston
- Pacific/Kosrae
- Pacific/Kwajalein
- Pacific/Majuro
- Pacific/Midway
- Pacific/Nauru
- Pacific/Niue
- Pacific/Noumea
- Pacific/Pago_Pago
- Pacific/Palau
- Pacific/Ponape
- Pacific/Port_Moresby
- Pacific/Rarotonga
- Pacific/Saipan
- Pacific/Tahiti
- Pacific/Tarawa
- Pacific/Tongatapu
- Pacific/Truk
- Pacific/Wake
- Pacific/Wallis
- Pakistan Standard Time
- Paraguay Standard Time
- PST8PDT
- Romance Standard Time
- Russian Standard Time
- SA Eastern Standard Time
- SA Pacific Standard Time
- SA Western Standard Time
- Samoa Standard Time
- SE Asia Standard Time
- Singapore Standard Time
- South Africa Standard Time
- Sri Lanka Standard Time
- Syria Standard Time
- Taipei Standard Time
- Tasmania Standard Time
- Tokyo Standard Time
- Tonga Standard Time
- Turkey Standard Time
- Ulaanbaatar Standard Time
- US Eastern Standard Time
- US Mountain Standard Time
- UTC
- UTC+12
- UTC-02
- UTC-11
- Venezuela Standard Time
- Vladivostok Standard Time
- W. Australia Standard Time
- W. Central Africa Standard Time
- W. Europe Standard Time
- West Asia Standard Time
- West Pacific Standard Time
- Yakutsk Standard Time
If your timezone is not present on this list, please let us know and we will add support for it in a future version of Enterprise Tester.
TQL
Some resources in Enterprise Tester support executing TQL queries. For details on constructing a valid TQL query see the TQL Search topic.
The results of a TQL query a retrieved via a GET request to a resource, and use the following parameters.
Query Parameters
- tql - a string containing the TQL query, including ORDER BY information.
- $expand - Is supported for most resource types - each resource will return a list of unexpanded expansions as part of it's representation.
- $top - Is supported for both OData and TQL queries, it is an integer number specifying the number of results you want.
- $skip - Is supported for both OData and TQL queries, it is an integer number specifying the result to begin from (so if paging with a $top of 10, the third page of results would be identified via a $skip of 20).
- $inlinecount - Is supported for both OData and TQL queries, if passed then the results will include the total number of results in the representation, as a property called "Total".
Permissions
The account accessing the API requires project/organisation level permissions to access each supported Method of a resource, the table below documents each resource and the permissions required for use.
| Name | URI Template | GET | PATCH | POST | PUT | DELETE |
|---|
| Agile Run | api/agilerun/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ExecuteTests | TestManagement/ManageExecution |
| Agile Run All Relationships | api/agilerun/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Agile Run Relationships | api/agilerun/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Agile Runs | api/agileruns | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Assigned To Search | api/assignedtosearch | No Permissions | Unsupported | No Permissions | Unsupported | Unsupported |
| Attachment Contents | api/attachment/{id}/contents | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test | api/automatedtest/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageScripts | TestManagement/ManageScripts |
| Automated Test All Relationships | api/automatedtest/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Assignment | api/automatedtestassignment/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageExecution | TestManagement/ManageExecution |
| Automated Test Assignment All Relationships | api/automatedtestassignment/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Assignment Relationships | api/automatedtestassignment/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Assignment Runs | api/automatedtestassignment/{id}/runs | TestManagement/View | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| Automated Test Assignments | api/automatedtestassignments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Automated Test Relationships | api/automatedtest/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Run | api/automatedtestrun/{id} | TestManagement/View | Unsupported | Unsupported | Unsupported | TestManagement/ManageExecution |
| Automated Test Run Attachment | api/automatedtestrun/{runId}/attachment/{attachmentId} | Unsupported | Unsupported | Unsupported | Unsupported | TestManagement/ManageExecution |
| Automated Test Run Attachments | api/automatedtestrun/{runId}/attachments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Automated Test Run Data | api/automatedtestrun/{id}/testdata | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Run Incident | api/automatedtestrun/{runId}/node/{nodeId}/incident/{incidentId} | TestManagement/View | Unsupported | Unsupported | Unsupported | TestManagement/ManageExecution |
| Automated Test Run Incidents | api/automatedtestrun/{runId}/node/{nodeId}/incidents | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Automated Test Run Node Attachment | api/automatedtestrun/{runId}/node/{nodeId}/attachment/{attachmentId} | Unsupported | Unsupported | Unsupported | Unsupported | TestManagement/ManageExecution |
| Automated Test Run Node Attachments | api/automatedtestrun/{runId}/node/{nodeId}/attachments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Automated Test Run Result Children | api/automatedtestrun/{runId}/node/{nodeId}/children | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Run Result Node | api/automatedtestrun/{runId}/node/{nodeId} | TestManagement/View | TestManagement/ExecuteTests | Unsupported | Unsupported | Unsupported |
| Automated Test Run Result Root Nodes | api/automatedtestrun/{runId}/nodes | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Runs | api/automatedtestruns | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Schedule | api/automatedtestschedule/{id} | No Permissions | Unsupported | Unsupported | No Permissions | No Permissions |
| Automated Test Schedule Import Configuration | api/automatedtestschedule/{scheduleId}/importconfiguration/{configId} | No Permissions | No Permissions | Unsupported | No Permissions | No Permissions |
| Automated Test Schedule Import Configurations | api/automatedtestschedule/{id}/importconfigurations | No Permissions | Unsupported | No Permissions | Unsupported | Unsupported |
| Automated Test Schedule Schedule Configuration | api/automatedtestschedule/{scheduleId}/schedule/{scheduleConfigId} | Resources/ExternalLinks | Resources/ExternalLinks | Unsupported | Resources/ExternalLinks | Resources/ExternalLinks |
| Automated Test Schedule Schedule Configuration Run | api/automatedtestschedule/{scheduleId}/schedule/{scheduleConfigId}/run | Unsupported | Unsupported | Resources/ExternalLinks | Unsupported | Unsupported |
| Automated Test Schedule Schedule Configurations | api/automatedtestschedule/{id}/schedules | Resources/ExternalLinks | Unsupported | Resources/ExternalLinks | Unsupported | Unsupported |
| Automated Test Schedules | api/automatedtestschedules | No Permissions | Unsupported | No Permissions | Unsupported | Unsupported |
| Automated Test Type | api/automatedtesttype/{name} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Test Types | api/automatedtesttypes | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Automated Tests | api/automatedtests | TestManagement/View | Unsupported | TestManagement/ManageScripts | Unsupported | Unsupported |
| Background Task | api/backgroundtask/{id} | Enforced by task implementation | Unsupported | Unsupported | Unsupported | Unsupported |
| Background Tasks | api/backgroundtasks | Unsupported | Unsupported | Enforced by task implementation | Unsupported | Unsupported |
| Custom Field | api/customfield/{name} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Custom Field Type | api/customfieldtype/{name} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Custom Field Types | api/customfieldtypes | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Custom Fields | api/customfields | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Execution Package | api/executionpackage/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageExecution | TestManagement/ManageExecution |
| Execution Package Children | api/executionpackage/{id}/children | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Execution Packages | api/executionpackages | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Export File | api/exportfile/{filename} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| External System | api/externalsystem/{id} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| External System Link | api/externalsystemlink/{id} | Resources/ExternalLinks | Unsupported | Unsupported | Unsupported | No Permissions |
| External System Link Field Values | api/externalsystemlink/{linkId}/field/{fieldName} | Resources/ExternalLinks | Unsupported | Unsupported | Unsupported | Unsupported |
| External System Link Ticket | api/externalsystemlink/{externalSystemLinkId}/ticket/{ticketId} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| External System Link Ticket Link | api/externalsystemlink/{externalSystemLinkId}/ticket/{ticketId}/link | Unsupported | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| External System Links | api/externalsystemlinks | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| External Systems | api/externalsystems | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| External System's Links | api/externalsystem/{systemId}/links | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Grid Widget Data | api/gridwidget/{widgetType}/data/{dataName} | Unsupported | Unsupported | No Permissions | Unsupported | Unsupported |
| Grid Widget State | api/gridwidgethost/{hostId}/project/{projectId}/position/{position} | No Permissions | Unsupported | Unsupported | No Permissions | Unsupported |
| Grid Widget States | api/gridwidgethost/{hostId}/project/{projectId}/positions | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Group | api/group/{id} | No Permissions | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Administration/Organisation/ManageUserAndGroupSecurity |
| Group Permission Projects | api/group/{id}/permissions/projects | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Unsupported | Unsupported |
| Group Permissions | api/group/{id}/permissions/global | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported |
| Group Users | api/group/{id}/users | No Permissions | Unsupported | Unsupported | No Permissions | Unsupported |
| Groups | api/groups | No Permissions | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported |
| Groups Search | api/groupssearch | TestManagement/View | Unsupported | TestManagement/View | Unsupported | Unsupported |
| Incident | api/incident/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ExecuteTests | TestManagement/ExecuteTests |
| Incident Comments | api/incident/{id}/comments | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Incident Relationships | api/incident/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Incident Relationships All Relationships | api/incident/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Incidents | api/incidents | TestManagement/View | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| Mail Queue Messages | api/mailqueue/messages | Administration/Organisation | Unsupported | Unsupported | Unsupported | Unsupported |
| Mail Sender Settings | api/mailsender/default/settings | Administration/Organisation | Unsupported | Unsupported | Administration/Organisation | Unsupported |
| Notification | api/user/{userId}/notification/{notificationId} | No Permissions | No Permissions | Unsupported | Unsupported | No Permissions |
| Notifications | api/user/{userId}/notifications | No Permissions | Unsupported | Administration/Organisation | Unsupported | No Permissions |
| Organisation | api/organisation/{id} | No Permissions | Unsupported | Unsupported | Administration/Organisation/ManageOrganisation | Unsupported |
| Organisation Picklist | api/organisation/{organisationId}/picklist/{type} | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Organisation Picklist Search | api/organisation/{organisationId}/picklistsearch/{type} | TestManagement/View | Unsupported | TestManagement/View | Unsupported | Unsupported |
| Organisation Relationship Types | api/organisation/{id}/relationshiptypes | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Organisations | api/organisations | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Permission | api/permission/{id} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Permissions | api/permissions | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Project | api/project/{id} | TestManagement/View | Unsupported | Unsupported | Project/ManageProject | Unsupported |
| Project Assignees | api/project/{projectId}/assignees | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Project Categories | api/projectcategories | No Permissions | Unsupported | Administration/Organisation/ManageOrganisation | Unsupported | Unsupported |
| Project Category | api/projectcategory/{id} | No Permissions | Unsupported | Unsupported | Administration/Organisation/ManageOrganisation | Administration/Organisation/ManageOrganisation |
| Project Category Children | api/projectcategory/{id}/children | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Project Group Permissions | api/group/{groupId}/permissions/project/{projectId} | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported |
| Project Picklist | api/project/{projectId}/picklist/{type} | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Project Picklist Search | api/project/{projectId}/picklistsearch/{type} | TestManagement/View | Unsupported | TestManagement/View | Unsupported | Unsupported |
| Project Templates | api/projecttemplates | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Project Tickets | api/project/{projectId}/tickets | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Project User Permissions | api/user/{userId}/permissions/project/{projectId} | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported |
| Projects | api/projects | TestManagement/View | Unsupported | Project/ManageProject | Unsupported | Unsupported |
| Projects Search | api/projectssearch | TestManagement/View | Unsupported | TestManagement/View | Unsupported | Unsupported |
| Relationship | api/organisation/{organisationId}/relationshiptype/{key}/relationship/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/View | TestManagement/View |
| Relationship Type | api/organisation/{id}/relationshiptype/{key} | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Relationship Types | api/relationshiptypes | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Relationships | api/organisation/{id}/relationshiptype/{key}/relationships | Unsupported | Unsupported | TestManagement/View | Unsupported | Unsupported |
| Requirement | api/requirement/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageRequirements | TestManagement/ManageRequirements |
| Requirement All Relationships | api/requirement/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Requirement Attachment | api/requirement/{requirementId}/attachment/{id} | Unsupported | Unsupported | Unsupported | Unsupported | TestManagement/ManageRequirements |
| Requirement Attachments | api/requirement/{id}/attachments | TestManagement/View | Unsupported | TestManagement/ManageRequirements | Unsupported | Unsupported |
| Requirement Children | api/requirement/{id}/children | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Requirement Comments | api/requirement/{id}/comments | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Requirement Package | api/requirementpackage/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageRequirements | TestManagement/ManageRequirements |
| Requirement Package Children | api/requirementpackage/{id}/children | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Requirement Packages | api/requirementpackages | TestManagement/View | Unsupported | TestManagement/ManageRequirements | Unsupported | Unsupported |
| Requirement Relationships | api/requirement/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Requirements | api/requirements | TestManagement/View | Unsupported | TestManagement/ManageRequirements | Unsupported | Unsupported |
| Root | api/ | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Script | api/script/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageScripts | TestManagement/ManageScripts |
| Script All Relationships | api/script/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Script Assignment | api/scriptassignment/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageExecution | TestManagement/ManageExecution |
| Script Assignment All Relationships | api/scriptassignment/{id}/allrelationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Script Assignment Relationships | api/scriptassignment/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Script Assignment Runs | api/scriptassignment/{id}/runs | TestManagement/View | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| Script Assignments | api/scriptassignments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Script Attachment | api/script/{scriptId}/attachment/{id} | Unsupported | Unsupported | Unsupported | Unsupported | TestManagement/ExecuteTests |
| Script Attachments | api/script/{id}/attachments | TestManagement/View | Unsupported | TestManagement/ManageScripts | Unsupported | Unsupported |
| Script Package | api/scriptpackage/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ManageScripts | TestManagement/ManageScripts |
| Script Package Children | api/scriptpackage/{id}/children | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Script Packages | api/scriptpackages | TestManagement/View | Unsupported | TestManagement/ManageScripts | Unsupported | Unsupported |
| Script Relationships | api/script/{id}/relationships | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Script Run | api/scriptrun/{id} | TestManagement/View | Unsupported | Unsupported | TestManagement/ExecuteTests | TestManagement/ManageExecution |
| Script Runs | api/scriptruns | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Scripts | api/scripts | TestManagement/View | Unsupported | TestManagement/ManageScripts | Unsupported | Unsupported |
| Script's Assignments | api/script/{scriptId}/assignments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Search | api/search | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Search Index | api/search/index/{indexName} | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Search Indexes | api/search/indexes | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Step Result | api/stepresult/{id} | TestManagement/View | Unsupported | Unsupported | Unsupported | Unsupported |
| Step Result Attachment | api/stepresult/{stepResultId}/attachment/{id} | Unsupported | Unsupported | Unsupported | Unsupported | TestManagement/ExecuteTests |
| Step Result Attachments | api/stepresult/{id}/attachments | TestManagement/View | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| Step Result Incident | api/stepresult/{stepResultId}/incident/{id} | TestManagement/View | Unsupported | Unsupported | Unsupported | TestManagement/ExecuteTests |
| Step Result Incidents | api/stepresult/{id}/incidents | TestManagement/View | Unsupported | TestManagement/ExecuteTests | Unsupported | Unsupported |
| Synchronizer Schedule | api/synchronizer/{linkId}/schedule/{id} | Resources/ExternalLinks | Resources/ExternalLinks | Unsupported | Resources/ExternalLinks | Resources/ExternalLinks |
| Synchronizer Schedule Run | api/synchronizer/{linkId}/schedule/{id}/run | Unsupported | Unsupported | Resources/ExternalLinks | Unsupported | Unsupported |
| Synchronizer Schedules | api/synchronizer/{id}/schedules | Resources/ExternalLinks | Unsupported | Resources/ExternalLinks | Unsupported | Unsupported |
| System Event | api/systemevent/{id} | No Permissions | Unsupported | Unsupported | Unsupported | No Permissions |
| System Events | api/systemevents | No Permissions | Unsupported | Administration | Unsupported | No Permissions |
| System Info | api/systeminfo | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| Temporary Attachment Set | api/temporaryattachmentset/{id} | No Permissions | Unsupported | No Permissions | Unsupported | Unsupported |
| Temporary Attachment Set Attachment | api/temporaryattachmentset/{setId}/attachment/{id} | Unsupported | Unsupported | Unsupported | Unsupported | No Permissions |
| Temporary Attachments Set | api/temporaryattachmentsets | Unsupported | Unsupported | No Permissions | Unsupported | Unsupported |
| Test Automated Test Assignments | api/automatedtest/{testId}/assignments | TestManagement/View | Unsupported | TestManagement/ManageExecution | Unsupported | Unsupported |
| Time Zone | api/timezone | No Permissions | Unsupported | Unsupported | Unsupported | Unsupported |
| User | api/user/{id} | No Permissions | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Administration/Organisation/ManageUserAndGroupSecurity |
| User Groups | api/user/{id}/groups | No Permissions | Unsupported | Unsupported | No Permissions | Unsupported |
| User Mail | api/user/{userId}/mailmessages | Unsupported | Unsupported | Administration/Organisation | Unsupported | Unsupported |
| User Password | api/user/{id}/password | Unsupported | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported |
| User Permission Projects | api/user/{id}/permissions/projects | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Unsupported | Unsupported |
| User Permissions | api/user/{id}/permissions/global | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported |
| Users | api/users | No Permissions | Unsupported | Administration/Organisation/ManageUserAndGroupSecurity | Unsupported | Unsupported |
| Users Search | api/userssearch | TestManagement/View | Unsupported | TestManagement/View | Unsupported | Unsupported |
Resources
Enterprise Tester's REST API is composed of a number of resources.
- Agile Run (GET, PUT, DELETE)
- Agile Run All Relationships (GET)
- Agile Run Relationships (GET)
- Agile Runs (GET, POST)TQL
- Assigned To Search (GET, POST)
- Attachment Contents (GET)
- Automated Test (GET, PUT, DELETE)
- Automated Test All Relationships (GET)
- Automated Test Assignment (GET, PUT, DELETE)
- Automated Test Assignment All Relationships (GET)
- Automated Test Assignment Relationships (GET)
- Automated Test Assignment Runs (GET, POST)OData
- Automated Test Assignments (GET, POST)TQL
- Automated Test Relationships (GET)
- Automated Test Run (GET, DELETE)TQL
- Automated Test Run Attachment (DELETE)
- Automated Test Run Attachments (GET, POST)
- Automated Test Run Data (GET)
- Automated Test Run Incident (GET, DELETE)
- Automated Test Run Incidents (GET, POST)
- Automated Test Run Node Attachment (DELETE)
- Automated Test Run Node Attachments (GET, POST)
- Automated Test Run Result Children (GET)
- Automated Test Run Result Node (GET, PATCH)
- Automated Test Run Result Root Nodes (GET)
- Automated Test Runs (GET)TQL
- Automated Test Schedule (GET, PUT, DELETE)
- Automated Test Schedule Import Configuration (GET, PATCH, PUT, DELETE)
- Automated Test Schedule Import Configurations (GET, POST)OData
- Automated Test Schedule Schedule Configuration (GET, PATCH, PUT, DELETE)
- Automated Test Schedule Schedule Configuration Run (POST)
- Automated Test Schedule Schedule Configurations (GET, POST)OData
- Automated Test Schedules (GET, POST)
- Automated Test Type (GET)
- Automated Test Types (GET)OData
- Automated Tests (GET, POST)TQL
- Background Task (GET)
- Background Tasks (POST)
- Custom Field (GET)
- Custom Field Type (GET)
- Custom Field Types (GET)OData
- Custom Fields (GET)OData
- Execution Package (GET, PUT, DELETE)
- Execution Package Children (GET)OData
- Execution Packages (GET, POST)TQL
- Export File (GET)
- External System (GET)
- External System Link (GET, DELETE)
- External System Link Field Values (GET)
- External System Link Ticket (GET)
- External System Link Ticket Link (POST)
- External System Links (GET)OData
- External Systems (GET)OData
- External System's Links (GET)OData
- Grid Widget Data (POST)
- Grid Widget State (GET, PUT)
- Grid Widget States (GET)
- Group (GET, PUT, DELETE)
- Group Permission Projects (GET)
- Group Permissions (GET, PUT)
- Group Users (GET, PUT)OData
- Groups (GET, POST)OData
- Groups Search (GET, POST)
- Incident (GET, PUT, DELETE)
- Incident Comments (GET)OData
- Incident Relationships (GET)
- Incident Relationships All Relationships (GET)
- Incidents (GET, POST)TQL
- Mail Queue Messages (GET)
- Mail Sender Settings (GET, PUT)
- Notification (GET, PATCH, DELETE)
- Notifications (GET, POST, DELETE)
- Organisation (GET, PUT)
- Organisation Picklist (GET)
- Organisation Picklist Search (GET, POST)
- Organisation Relationship Types (GET)OData
- Organisations (GET)OData
- Permission (GET)
- Permissions (GET)OData
- Project (GET, PUT)
- Project Assignees (GET)
- Project Categories (GET, POST)OData
- Project Category (GET, PUT, DELETE)
- Project Category Children (GET)OData
- Project Group Permissions (GET, PUT)
- Project Picklist (GET)OData
- Project Picklist Search (GET, POST)
- Project Templates (GET)OData
- Project Tickets (GET)
- Project User Permissions (GET, PUT)
- Projects (GET, POST)OData
- Projects Search (GET, POST)
- Relationship (GET, PUT, DELETE)
- Relationship Type (GET)OData
- Relationship Types (GET)OData
- Relationships (POST)OData
- Requirement (GET, PUT, DELETE)
- Requirement All Relationships (GET)
- Requirement Attachment (DELETE)
- Requirement Attachments (GET, POST)OData
- Requirement Children (GET)OData
- Requirement Comments (GET)OData
- Requirement Package (GET, PUT, DELETE)
- Requirement Package Children (GET)OData
- Requirement Packages (GET, POST)TQL
- Requirement Relationships (GET)
- Requirements (GET, POST)TQL
- Root (GET)
- Script (GET, PUT, DELETE)
- Script All Relationships (GET)
- Script Assignment (GET, PUT, DELETE)
- Script Assignment All Relationships (GET)
- Script Assignment Relationships (GET)
- Script Assignment Runs (GET, POST)OData
- Script Assignments (GET, POST)TQL
- Script Attachment (DELETE)
- Script Attachments (GET, POST)OData
- Script Package (GET, PUT, DELETE)
- Script Package Children (GET)OData
- Script Packages (GET, POST)TQL
- Script Relationships (GET)
- Script Run (GET, PUT, DELETE)
- Script Runs (GET)TQL
- Scripts (GET, POST)TQL
- Script's Assignments (GET, POST)TQL
- Search (GET)TQL
- Search Index (GET)
- Search Indexes (GET)OData
- Step Result (GET)
- Step Result Attachment (DELETE)
- Step Result Attachments (GET, POST)OData
- Step Result Incident (GET, DELETE)
- Step Result Incidents (GET, POST)OData
- Synchronizer Schedule (GET, PATCH, PUT, DELETE)
- Synchronizer Schedule Run (POST)
- Synchronizer Schedules (GET, POST)OData
- System Event (GET, DELETE)
- System Events (GET, POST, DELETE)OData
- System Info (GET)
- Temporary Attachment Set (GET, POST)OData
- Temporary Attachment Set Attachment (DELETE)
- Temporary Attachments Set (POST)
- Test Automated Test Assignments (GET, POST)TQL
- Time Zone (GET)
- User (GET, PUT, DELETE)
- User Groups (GET, PUT)OData
- User Mail (POST)
- User Password (PUT)
- User Permission Projects (GET)
- User Permissions (GET, PUT)
- Users (GET, POST)OData
- Users Search (GET, POST)
Resource: Agile Run ( /api/agilerun/{id} )
Agile Run resource representing an agile run entity with Enterprise Tester, this resource allows you to fetch, update and delete existing runs within an Execution Package.
Methods
DELETE
Removes an agile run.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if agile run was successfully deleted. |
Example - DELETE
Example of deleting an agile run via DELETE.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of Agile Run to delete. |
Status Code
200 - OK
GET
Retrieves a single agile run by its GUID Identifier.
Required Permissions
Supported Expansions
- FieldControls
- FieldValues
- Steps
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request is completed successfully. |
| 403 - Forbidden | Returned if request can not be completed due to lack of permissions or validation problems. |
| 404 - NotFound | Returned if agile run does not exist. |
Example - GET
Example of retrieving an agile run by its unique GUID Identifier.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the Agile Run to fetch. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Creating invoice with paste due date value",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 0,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Failed",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues"
],
"Steps": [
{
"Description": "Click date field",
"ExpectedResult": "Date field get's focus",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "945c7670-dd34-4d1a-b4d6-267f7959c3be",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Enter date 2010-1-1",
"ExpectedResult": "Date is accepted",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "2e020ac3-8013-4daf-b5a4-b9ca9323da8e",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Click save",
"ExpectedResult": "User is prompted with warning about paste due date",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": "No prompt displayed",
"Result": "Failed",
"Id": "db2799e8-966d-4548-bb04-af678ba75339",
"HasIncidents": false,
"HasAttachments": false
}
],
"Self": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
}
]
}
Status Code
200 - OK
PUT
Updates an agile run.
Required Permissions
- TestManagement/ExecuteTests
Supported Expansions
- FieldControls
- FieldValues
- Steps
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request is completed successfully. |
Example - PUT
Example of updating an agile run via PUT.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of Agile Run to update |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AssignedToId": null,
"Description": null,
"Steps": [
{
"Description": "Click date field",
"ExpectedResult": "Date field get's focus",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "00000000-0000-0000-0000-000000000000",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Enter date 2010-1-1",
"ExpectedResult": "Date is accepted",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "00000000-0000-0000-0000-000000000000",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Click save",
"ExpectedResult": "User is prompted with warning about paste due date",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": "No prompt displayed",
"Result": "Failed",
"Id": "00000000-0000-0000-0000-000000000000",
"HasIncidents": false,
"HasAttachments": false
}
],
"Name": "Creating invoice with paste due date value",
"Notes": null,
"Number": null,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": null,
"StatusId": null,
"TypeId": null,
"PackageId": null,
"OrderNumber": null,
"ProjectId": null,
"EstimatedDuration": null,
"ActualDuration": null,
"FieldControlValues": null,
"FieldValues": null
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Creating invoice with paste due date value",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 0,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Failed",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues"
],
"Steps": [
{
"Description": "Click date field",
"ExpectedResult": "Date field get's focus",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "945c7670-dd34-4d1a-b4d6-267f7959c3be",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Enter date 2010-1-1",
"ExpectedResult": "Date is accepted",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "Passed",
"Id": "2e020ac3-8013-4daf-b5a4-b9ca9323da8e",
"HasIncidents": false,
"HasAttachments": false
},
{
"Description": "Click save",
"ExpectedResult": "User is prompted with warning about paste due date",
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": "No prompt displayed",
"Result": "Failed",
"Id": "db2799e8-966d-4548-bb04-af678ba75339",
"HasIncidents": false,
"HasAttachments": false
}
],
"Self": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
}
]
}
Status Code
200 - OK
Resource: Agile Run All Relationships ( /api/agilerun/{id}/allrelationships )
A resource representing the set of relationships belonging to the Agile Run (includes the full graph of related entities, not just those which can be reached through destination and source->destination directed relationships).
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Agile Run Relationships ( /api/agilerun/{id}/relationships )
A resource representing the set of relationships belonging to the Agile Run.
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Agile Runs ( /api/agileruns )
Agile Runs collection resource
Root Relation: AgileRuns
Methods
GET
Retrieves all (or a subset) of agile runs that are visible to the user.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
- FieldControls
- FieldValues
- Steps
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request is completed successfully. |
Example - GET (filtered by TQL Query)
Retrieves agile runs matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | Maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
| $expands | Steps | The aditional fields to expand |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "e7a8ade8-2452-4856-9f7d-6296b3b82fc8",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Report pagination",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 1,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Not Run",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues"
],
"Steps": [
{
"Description": null,
"ExpectedResult": null,
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "NotRun",
"Id": "23d16899-703f-4e4a-84af-6b87e3bd3adb",
"HasIncidents": false,
"HasAttachments": false
}
],
"Self": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8",
"Links": [
{
"Href": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8/allrelationships",
"Rel": "AllRelationships"
}
]
}
]
}
Status Code
200 - OK
Example - GET (no filter)
Retrieves agile runs matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $top | 5 | Maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
| $expands | Steps | The aditional fields to expand |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 2,
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Agile Run Started At 2-05-2012 10:00:08 p.m.",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 0,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Not Run",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues"
],
"Steps": [
{
"Description": null,
"ExpectedResult": null,
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "NotRun",
"Id": "b85cea17-60ce-48ba-923f-f7c332c99cda",
"HasIncidents": false,
"HasAttachments": false
}
],
"Self": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
}
]
},
{
"Id": "e7a8ade8-2452-4856-9f7d-6296b3b82fc8",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Report pagination",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 1,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Not Run",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues"
],
"Steps": [
{
"Description": null,
"ExpectedResult": null,
"Notes": null,
"Data": null,
"OrderNumber": 0,
"ActualResult": null,
"Result": "NotRun",
"Id": "23d16899-703f-4e4a-84af-6b87e3bd3adb",
"HasIncidents": false,
"HasAttachments": false
}
],
"Self": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8",
"Links": [
{
"Href": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/e7a8ade8-2452-4856-9f7d-6296b3b82fc8/allrelationships",
"Rel": "AllRelationships"
}
]
}
]
}
Status Code
200 - OK
POST
Creates a new agile run.
Required Permissions
- TestManagement/ManageExecution
Supported Expansions
- FieldControls
- FieldValues
- Steps
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if agile run is created successfully. |
Example - Create agile run (minimum required information)
Example of creating a new agile run with the bare minimum of information (supplying only the package where the agile run should be created).
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Body
{ "PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25" }
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"Name": "Agile Run Started At 2-05-2012 10:00:08 p.m.",
"Notes": null,
"Number": 1,
"Objective": null,
"PostCondition": null,
"PreCondition": null,
"PriorityId": "a79e5778-befc-4ffe-b910-873ff737296c",
"StatusId": "f304c468-58d4-4245-a9c8-7b61a42f57f3",
"TypeId": "27537607-6c59-4d7c-b812-d5dff13ff738",
"SourceId": null,
"SourceContainerId": null,
"PackageId": "a5c52dc7-e849-4af9-ab99-a01401130d25",
"OrderNumber": 0,
"ProjectId": "ef7b7b88-b990-4cb9-98b5-2d89786e51f3",
"ProjectName": "Test Project",
"PackageName": "Execution Sets",
"EstimatedDuration": null,
"ActualDuration": null,
"ExecutionStatus": "Not Run",
"AgileRunNumberReadOnly": false,
"Expands": [
"FieldControls",
"FieldValues",
"Steps"
],
"Self": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/agilerun/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
}
]
}
Status Code
201 - Created
Resource: Assigned To Search ( /api/assignedtosearch )
Allows the searching of applicable assigned to values by partial name (including groups, users and special values such as 'Me').
Root Relation: AssignedToSearch
Methods
GET
Searches for users, groups and special users e.g. currently logged in user (self) by partial name match
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the query request was satisfied. |
Example - Search using query
Search for all 'Assigned To' values starting with the letter M
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| query | M | The partial values query |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 3,
"Total": 25,
"Items": [
{
"Id": "357ec7c6-f1e1-4b4b-b248-c7346774d466",
"Type": "Group",
"Name": "Managers",
"GlobalId": "Group:357ec7c6-f1e1-4b4b-b248-c7346774d466",
"CssClass": "assigned-to-group"
},
{
"Type": "Self",
"Name": "Me",
"GlobalId": "Self",
"CssClass": "assigned-to-self"
},
{
"Id": "e68c26d3-888f-4fa5-96e3-88c5d6368fb9",
"Type": "User",
"Name": "Michael Mango",
"GlobalId": "User:e68c26d3-888f-4fa5-96e3-88c5d6368fb9",
"CssClass": "assigned-to-user"
}
],
"Self": "http://localhost/api/api/assignedtosearch?query=M",
"Links": [
{
"Href": "http://localhost/api/api/assignedtosearch?query=M&$skip=3&$top=3",
"Rel": "next"
},
{
"Href": "http://localhost/api/api/assignedtosearch?query=M&$skip=22&$top=3",
"Rel": "last"
}
]
}
Status Code
200 - OK
POST
Searches for users, groups and special users e.g. currently logged in user (self) by partial name match (using POST to allow large existing value queries)
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the query request was satisfied. |
Example - Search using query
Search for all 'Assigned To' values starting with the letter M
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| query | M | The partial values query |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 3,
"Total": 25,
"Items": [
{
"Id": "357ec7c6-f1e1-4b4b-b248-c7346774d466",
"Type": "Group",
"Name": "Managers",
"GlobalId": "Group:357ec7c6-f1e1-4b4b-b248-c7346774d466",
"CssClass": "assigned-to-group"
},
{
"Type": "Self",
"Name": "Me",
"GlobalId": "Self",
"CssClass": "assigned-to-self"
},
{
"Id": "e68c26d3-888f-4fa5-96e3-88c5d6368fb9",
"Type": "User",
"Name": "Michael Mango",
"GlobalId": "User:e68c26d3-888f-4fa5-96e3-88c5d6368fb9",
"CssClass": "assigned-to-user"
}
],
"Self": "http://localhost/api/api/assignedtosearch",
"Links": [
{
"Href": "http://localhost/api/api/assignedtosearch?$skip=3&$top=3",
"Rel": "next"
},
{
"Href": "http://localhost/api/api/assignedtosearch?$skip=22&$top=3",
"Rel": "last"
}
]
}
Status Code
200 - OK
Resource: Attachment Contents ( /api/attachment/{id}/contents )
Used to retrieve the contents of an attachment.
Methods
GET
Retrieves the contents of an attachment.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request is completed successfully. |
| 404 - NotFound | Returned if the attachment does not exist. |
Example - Retrieve Attachment Contents
Example of retrieving the contents of an attachment.
Request Headers
| Key | Value | Description |
|---|
| Accept | */* | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the attachment to retrieve contents for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/octet-stream | |
Status Code
200 - OK
Resource: Automated Test ( /api/automatedtest/{id} )
Automated test resource
Methods
DELETE
Deletes the automated test by its unique identifier
Required Permissions
- TestManagement/ManageScripts
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the automated test was deleted successfully. |
| 403 - Forbidden | Returned if the automated test can not be deleted (normally if the necessary permissions to complete the request have not been met, or the automated test has associated assignments). |
| 404 - NotFound | Returned if the automated test package was not found. |
Example - Delete automated test
Delete automated test by its unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 7FABE725-28A0-4C48-A6AF-AAF4041223D2 | The Unique identifier of automated test to delete. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves an automated test by its unique identifier.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request is completed successfully. |
| 403 - Forbidden | Returned if the required permissions to view the automated test have not been met. |
| 404 - NotFound | Returned if the automated test does not exist. |
Example - Get automated test
Retrieve automated test by its unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | DFF56A5F-40FA-41D5-8BC8-33C3D0014368 | Unique identifier of the automated test to return. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Type": "UnitTest",
"Name": "JUnit Results",
"CreatedAt": "2012-01-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 1,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Links": [
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/assignments",
"Rel": "Assignments"
}
]
}
Status Code
200 - OK
PUT
Creates a new automated test.
Required Permissions
- TestManagement/ManageScripts
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request is completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the automated test does not exist. |
Example - Update Automated Test
Update automated test.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | DFF56A5F-40FA-41D5-8BC8-33C3D0014368 | Unique identifier of the automated test to return. |
Request Body
{
"Id": "dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Type": "UnitTest",
"Name": "Cycle 2 JUnit Results",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"OrderNumber": 1,
"Configuration": {
"Type": "JUnit"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Type": "UnitTest",
"Name": "Cycle 2 JUnit Results",
"CreatedAt": "2012-01-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 1,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Links": [
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/assignments",
"Rel": "Assignments"
}
]
}
Status Code
200 - OK
Resource: Automated Test All Relationships ( /api/automatedtest/{id}/allrelationships )
A resource representing the set of relationships belonging to the Automated Test (includes the full graph of related entities, not just those which can be reached through destination and source->destination directed relationships).
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Automated Test Assignment ( /api/automatedtestassignment/{id} )
Automated Test Assignment resource
Methods
DELETE
Delete automated test assignment by it's unique Identifier
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if the required permissions to delete this automated test assignment have not been met. |
| 404 - NotFound | Returned if no automated test assignment with the specified identifier exists. |
Example - Delete Assignment
Example of deleting an automated test assignment.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the automated test assignment to delete. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a single automated test assignment by its unique identifier.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request is completed successfully. |
| 403 - Forbidden | Returned if the required permission to view this automated test assignment have not been met. |
| 404 - NotFound | Returned if no automated test assignment with the specified identifier exists. |
Example - GET
Example of retrieving a automated test assignment
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of assignment to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": null,
"AssignedToId": null,
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
200 - OK
PUT
Update automated test assignment
Required Permissions
- TestManagement/ManageExecution
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the automated test assignment has been updated successfully. |
| 403 - Forbidden | Returned if the request could not be completed successfuly (normally due to lack of permissions or validation failure). |
Example - PUT (update package for the automated test assignment)
Updating the package that the automated test assignment belongs to.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": null,
"AssignedToId": null,
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/888f8e22-0137-440a-bcf2-173b9d6f543f",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
200 - OK
Example - PUT (assign automated test assignment to user)
Updating a automated test assignment to be assigned to a new user (this does not change the tester for any active script runs associated with this assignment).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"AssignedToId": "203f8f8a-20a7-40ff-bb9c-dbed4fcfcd98",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": "joeb",
"AssignedToId": "203f8f8a-20a7-40ff-bb9c-dbed4fcfcd98",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/888f8e22-0137-440a-bcf2-173b9d6f543f",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
200 - OK
Example - PUT (unassign a previously assigned script)
Updating an automated test assignment to be unassigned (A null value cannot be passed because this will be ignored, due the implementation of partial updates. An empty GUID will be passed instead.)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"AssignedToId": "00000000-0000-0000-0000-000000000000",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "888f8e22-0137-440a-bcf2-173b9d6f543f",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": null,
"AssignedToId": null,
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/888f8e22-0137-440a-bcf2-173b9d6f543f",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
200 - OK
Resource: Automated Test Assignment All Relationships ( /api/automatedtestassignment/{id}/allrelationships )
A resource representing the set of relationships belonging to the Automated Test Assignment (includes the full graph of related entities, not just those which can be reached through destination and source->destination directed relationships).
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Automated Test Assignment Relationships ( /api/automatedtestassignment/{id}/relationships )
A resource representing the set of relationships belonging to the Automated Test Assignment.
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Automated Test Assignment Runs ( /api/automatedtestassignment/{id}/runs )
A collection resource that can be used for creating new automated test assignment runs from a test results file via POST request, or retrieving the list of existing runs
Methods
GET
Retrieves the set of runs associated with the automated test assignment
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the test assignment. |
| 404 - NotFound | Returned if automated test assignment does not exist. |
Example - Retrieve all runs
Retrieve all runs of automated test assignment
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | FC68461E-5921-4240-BB8B-2D00549D923A | Unique identifier of automated test assignment |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "7564ff5c-7e17-4e05-a06c-9e6e64bf2afc",
"AssignmentId": "00000000-0000-0000-0000-000000000000",
"Id": "a4257c03-7c3c-47c8-a637-ba3927b6b127",
"Status": "Failed",
"ImportedAt": "2012-01-04T12:00:00Z",
"StartedAt": "2012-01-02T03:04:05Z",
"FinishedAt": "2012-01-03T04:05:06Z",
"Self": "http://localhost/api/automatedtestrun/a4257c03-7c3c-47c8-a637-ba3927b6b127"
},
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "7564ff5c-7e17-4e05-a06c-9e6e64bf2afc",
"AssignmentId": "00000000-0000-0000-0000-000000000000",
"Id": "d3996027-1672-43e2-9c1f-6b4e74a5b12b",
"Status": "Failed",
"ImportedAt": "2012-02-04T12:00:00Z",
"StartedAt": "2012-02-03T04:05:06Z",
"FinishedAt": "2012-02-03T05:00:00Z",
"Self": "http://localhost/api/automatedtestrun/d3996027-1672-43e2-9c1f-6b4e74a5b12b"
}
]
}
Status Code
200 - OK
POST
Creates a new automated test run, via an upload or by pointing to a results file
Required Permissions
- TestManagement/ExecuteTests
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
Example - Mime multipart file upload
Import via a file upload
Request Headers
| Key | Value | Description |
|---|
| Content-Type | multipart/mixed; boundary=65bf6b94-c91c-442c-abe7-f41444d7c71f | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | E0B7E86E-86F2-43BE-83CC-8309C07F3F38 | Unique identifier of the automated test assignment |
Request Body
------65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: form-data; name="fileUpload"; filename="NUnit.xml"
Content-Type: text/xml
...
------65bf6b94-c91c-442c-abe7-f41444d7c71f--
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": false,
"TotalElements": 0,
"ProcessedElements": 0,
"StartedAt": "2012-07-04T10:58:22Z",
"ProgressInPercent": 0.0,
"Id": "automatedtestimport_a7505ca4-1658-404e-b458-9cc9e5d0a219",
"Self": "http://localhost/EnterpriseTester/api/backgroundtask/automatedtestimport_a7505ca4-1658-404e-b458-9cc9e5d0a219"
}
Status Code
202 - Accepted
Example - POST - via on-server file
Import results via an on-server file
Request Headers
| Key | Value | Description |
|---|
| Content-Type | multipart/mixed; boundary=65bf6b94-c91c-442c-abe7-f41444d7c71f | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | E0B7E86E-86F2-43BE-83CC-8309C07F3F38 | Unique identifier of the automated test assignment |
Request Body
{
"Parameters": {
"ResultFile": "D:\\testoutput\\NUnit-simple.xml"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": false,
"TotalElements": 0,
"ProcessedElements": 0,
"StartedAt": "2012-07-04T10:58:22Z",
"ProgressInPercent": 0.0,
"Id": "automatedtestimport_a7505ca4-1658-404e-b458-9cc9e5d0a219",
"Self": "http://localhost/EnterpriseTester/api/backgroundtask/automatedtestimport_a7505ca4-1658-404e-b458-9cc9e5d0a219"
}
Status Code
202 - Accepted
Resource: Automated Test Assignments ( /api/automatedtestassignments )
Automated Test Assignments collection resource.
Root Relation: AutomatedTestAssignments
Methods
GET
Retrieves all (or a subset) of automated test assignments that are visible associated with the automated test. This method takes a TQL query.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request is completed successfully. |
Example - GET (filtered by TQL Query)
Retrieves automated test assignments matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | The Maximum number of results to return (defaults to 25). |
| $skip | 0 | The number of results to skip before return the $top number of results matching the query |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "3fa6ec13-3939-45b6-beb1-dd03e00a83f9",
"AutomatedTestId": "c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Name": "Report output paging",
"Status": "Not Run",
"AssignedTo": "joeb",
"AssignedToId": "b2a74983-e374-41d4-bf49-bc3c9a5f0e89",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/runs",
"Rel": "Runs"
}
]
}
],
"Self": "http://localhost/api/api/automatedtestassignments?tql=Name~'Report'"
}
Status Code
200 - OK
Example - GET (no TQL query)
Retrieves all automated test assignments, across all projects.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Id": "3fa6ec13-3939-45b6-beb1-dd03e00a83f9",
"AutomatedTestId": "c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Name": "Report output paging",
"Status": "Not Run",
"AssignedTo": "joeb",
"AssignedToId": "b2a74983-e374-41d4-bf49-bc3c9a5f0e89",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/3fa6ec13-3939-45b6-beb1-dd03e00a83f9/runs",
"Rel": "Runs"
}
]
},
{
"Id": "8be49e2e-590c-485e-a713-ef3e8353e1d5",
"AutomatedTestId": "c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Name": "Login password minimum length is 6",
"Status": "Passed",
"AssignedTo": "joeb",
"AssignedToId": "b2a74983-e374-41d4-bf49-bc3c9a5f0e89",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/8be49e2e-590c-485e-a713-ef3e8353e1d5",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/8be49e2e-590c-485e-a713-ef3e8353e1d5/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/c6173eab-f684-4d35-8ca7-62851b8df0e1",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/8be49e2e-590c-485e-a713-ef3e8353e1d5/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/8be49e2e-590c-485e-a713-ef3e8353e1d5/runs",
"Rel": "Runs"
}
]
}
]
}
Status Code
200 - OK
POST
Creates a new automated test assignment.
Required Permissions
- TestManagement/ManageExecution
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the automated test assignment is created successfully. |
| 403 - Forbidden | Returned if the request could not be completed successfuly (normally due to lack of permissions or validation failure). |
Example - POST (no assignee)
Create a new automated test assignment, with no assignee.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"AutomatedTestId": "5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": null,
"AssignedToId": null,
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
201 - Created
Example - POST (with assignee)
Create a new automated test assignment, with the assignee set.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"AssignedToId": "5bb78013-222a-45a8-b639-ac0ce0a8a505",
"AutomatedTestId": "5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"AutomatedTestId": "5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Name": "My Test",
"Status": "Not Run",
"AssignedTo": "joeb",
"AssignedToId": "5bb78013-222a-45a8-b639-ac0ce0a8a505",
"PackageId": "f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Expands": [
"Package"
],
"Self": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/5ef6c545-6ef8-472e-bae7-b1cc3d3fbab0",
"Rel": "AutomatedTest"
},
{
"Href": "http://localhost/api/executionpackage/f6ed1282-bd89-4f8f-8e94-47e344bba905",
"Rel": "ExecutionPackage"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtestassignment/4bb709c2-e0e7-4af3-9f60-a045016a9610/runs",
"Rel": "Runs"
}
]
}
Status Code
201 - Created
Resource: Automated Test Relationships ( /api/automatedtest/{id}/relationships )
A resource representing the set of relationships belonging to the Automated Test.
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Automated Test Run ( /api/automatedtestrun/{id} )
Automated Test Run resource
Methods
DELETE
Deletes an automated test run by its unique identifier.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if the required permissions to delete this automated test run have not been met. |
| 404 - NotFound | Returned if no automated test run with the specified identifier exists. |
Example - DELETE
An example of deleting a automated test run.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | The unique identifier of the automated test run to delete. |
Status Code
200 - OK
GET
Retrieves an automated test run by ID.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete request (normally due to a validation failure or you don't have the necessary permissions to complete the request). |
Example - GET
Retrieves automated test run by identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| id | 02cbe373-a042-4f7b-8ba3-e03b1588dbfa | The unique identifier of the automated test run. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Passed",
"ImportedAt": "2013-01-17T05:15:00Z",
"StartedAt": "2013-01-17T04:05:06Z",
"FinishedAt": "2013-01-16T05:00:00Z",
"Expands": [
"Assignment",
"Totals"
],
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
}
Status Code
200 - OK
Example - GET (expand Totals)
Retrieves an automated test run with the Totals included.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| id | 02cbe373-a042-4f7b-8ba3-e03b1588dbfa | The unique identifier of the automated test run. |
| $expand | | Totals |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Passed",
"ImportedAt": "2013-01-17T05:15:00Z",
"StartedAt": "2013-01-17T04:05:06Z",
"FinishedAt": "2013-01-16T05:00:00Z",
"Expands": [
"Assignment"
],
"Totals": {
"Errors": 0,
"Failed": 0,
"Iterations": 0,
"NotRun": 0,
"Passed": 10,
"Skipped": 0,
"Warnings": 0,
"Done": 0,
"Infos": 0,
"TotalNodes": 10,
"TotalResults": 10
},
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
}
Status Code
200 - OK
Resource: Automated Test Run Attachment ( /api/automatedtestrun/{runId}/attachment/{attachmentId} )
A resource representing an attachment of an Automated Test Run.
Methods
DELETE
Deletes an attachment from a particular Automated Test Run.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the attachment was not found in the database. |
Example - DELETE
Deletes an attachment for a particular Automated Test Run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
| {attachmentId} | 9cb7f1cb-984d-4c47-9275-82d6409ed6be | The unique identifier (GUID) of the Attachment to delete. |
Status Code
200 - OK
Resource: Automated Test Run Attachments ( /api/automatedtestrun/{runId}/attachments )
A collection resource representing the attachments of an Automated Test Run.
Methods
GET
Retrieves a list of attachments for a particular Automated Test Run.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run was not found in the database. |
Example - GET
Retrieves a list of attachments for a particular Automated Test Run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "9cb7f1cb-984d-4c47-9275-82d6409ed6be",
"Name": "File 1",
"FileName": "File 1.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 111,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/attachment/9cb7f1cb-984d-4c47-9275-82d6409ed6be",
"Content": "http://localhost/api/attachment/9cb7f1cb-984d-4c47-9275-82d6409ed6be/contents"
},
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "e6040570-48fb-48b4-af1e-fa90fe4ae7dd",
"Name": "File 2",
"FileName": "File 2.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 148,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/attachment/e6040570-48fb-48b4-af1e-fa90fe4ae7dd",
"Content": "http://localhost/api/attachment/e6040570-48fb-48b4-af1e-fa90fe4ae7dd/contents"
},
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "72d41457-1840-4a86-8080-788f3d974ba6",
"Name": "File 3",
"FileName": "File 3.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 185,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/attachment/72d41457-1840-4a86-8080-788f3d974ba6",
"Content": "http://localhost/api/attachment/72d41457-1840-4a86-8080-788f3d974ba6/contents"
}
]
Status Code
200 - OK
POST
Adds a new attachment to a particular Automated Test Run.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run was not found in the database. |
| 415 - UnsupportedMediaType | Returned if the request is not mime multipart. |
Example - POST
Adds a new attachment to a particular Automated Test Run.
Request Headers
| Key | Value | Description |
|---|
| Content-Type | multipart/mixed; boundary=65bf6b94-c91c-442c-abe7-f41444d7c71f | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
Request Body
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=screenshot1.png; name="screenshot 1"; size=122454
Content-Type: image/png
Content-Length: 3
...
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=notes.txt; name=notes; size=3
Content-Type: text/plain
Content-Length: 3
ABC
--65bf6b94-c91c-442c-abe7-f41444d7c71f--
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/attachments | The location of the new attachment resource |
Status Code
201 - Created
Resource: Automated Test Run Data ( /api/automatedtestrun/{id}/testdata )
A resource representing the data of an Automated Test Run.
Methods
GET
Retrieves the data for a particular Automated Test Run.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run was not found in the database. |
Example - GET
Retrieves the data for a particular Automated Test Run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 5cd9987f-c4c6-400e-a3a3-95f7997be00a | The unique identifier (GUID) of the Automated Test Run. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Tables": [
{
"Name": "People",
"ColumnNames": [
"Age",
"Id",
"Name"
],
"Rows": [
{
"Id": "1",
"Name": "Joe",
"Age": "33",
"__row_number": "0"
},
{
"Id": "2",
"Name": "John",
"Age": "45",
"__row_number": "1"
}
]
},
{
"Name": "Jobs",
"ColumnNames": [
"Id",
"Name"
],
"Rows": [
{
"Id": "1",
"Name": "Baker",
"__row_number": "0"
},
{
"Id": "2",
"Name": "Butcher",
"__row_number": "1"
}
]
}
],
"Self": "http://localhost/api/automatedtestrun/5cd9987f-c4c6-400e-a3a3-95f7997be00a/testdata"
}
Status Code
200 - OK
Resource: Automated Test Run Incident ( /api/automatedtestrun/{runId}/node/{nodeId}/incident/{incidentId} )
A resource representing an incident link of an automated test run.
Methods
DELETE
Deletes an incident link from a particular automated test run.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run, node or incident was not found in the database, or if the link didn't exist. |
Example - DELETE
Deletes an incident from a particular automated test run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the automated test run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the automated test run result node. |
| {incidentId} | 5a5be006-ba7b-4c45-b3a8-ce8d793066dd | The unique identifier (GUID) of the incident. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a particular incident for an automated test run.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run, node or incident was not found in the database. |
Example - GET
Retrieves a particular incident for a automated test run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the automated test run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the automated test run result node. |
| {incidentId} | 5a5be006-ba7b-4c45-b3a8-ce8d793066dd | The unique identifier (GUID) of the incident. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"IncidentId": "5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Expands": [
"Run",
"Node",
"Incident"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Links": [
{
"Href": "http://localhost/api/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Rel": "Incident"
}
]
}
Status Code
200 - OK
Resource: Automated Test Run Incidents ( /api/automatedtestrun/{runId}/node/{nodeId}/incidents )
A collection resource representing the incident links of an automated test run.
Methods
GET
Retrieves the incidents for a particular automated test run.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or node was not found in the database. |
Example - GET
Retrieves a list of incidents for a particular automated test run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the automated test run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the automated test run result node. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"IncidentId": "5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Expands": [
"Run",
"Node",
"Incident"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Links": [
{
"Href": "http://localhost/api/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Rel": "Incident"
}
]
},
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"IncidentId": "02b6a3f5-121c-4900-8d10-16604ed2c297",
"Expands": [
"Run",
"Node",
"Incident"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/incident/02b6a3f5-121c-4900-8d10-16604ed2c297",
"Links": [
{
"Href": "http://localhost/api/incident/02b6a3f5-121c-4900-8d10-16604ed2c297",
"Rel": "Incident"
}
]
}
]
Status Code
200 - OK
POST
Adds an incident link to a particular automated test run.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 400 - BadRequest | Returned if the POST data was incorrect. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run, node or incident was not found in the database. |
Example - POST
Adds a new incident to a particular automated test run.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the automated test run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the automated test run result node. |
Request Body
{
"IncidentId": "5a5be006-ba7b-4c45-b3a8-ce8d793066dd"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd | The location of the new incident resource. |
Response Body
{
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"IncidentId": "5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Expands": [
"Run",
"Node",
"Incident"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Links": [
{
"Href": "http://localhost/api/incident/5a5be006-ba7b-4c45-b3a8-ce8d793066dd",
"Rel": "Incident"
}
]
}
Status Code
201 - Created
Resource: Automated Test Run Node Attachment ( /api/automatedtestrun/{runId}/node/{nodeId}/attachment/{attachmentId} )
A resource representing an attachment of an Automated Test Run Result Node.
Methods
DELETE
Deletes an attachment from a particular Automated Test Run's Result Node.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run, node or attachment was not found in the database. |
Example - DELETE
Deletes an attachment for a particular Automated Test Run's result node.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the Automated Test Run Result Node. |
| {attachmentId} | 9cb7f1cb-984d-4c47-9275-82d6409ed6be | The unique identifier (GUID) of the Attachment to delete. |
Status Code
200 - OK
Resource: Automated Test Run Node Attachments ( /api/automatedtestrun/{runId}/node/{nodeId}/attachments )
A collection resource representing the attachments of an Automated Test Run Result Node.
Methods
GET
Retrieves a list of attachments for a particular Automated Test Run's Result Node.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the node was not found in the database. |
Example - GET
Retrieves a list of attachments for a particular Automated Test Run's result node.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the Automated Test Run Result Node. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "9cb7f1cb-984d-4c47-9275-82d6409ed6be",
"Name": "File 1",
"FileName": "File 1.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 111,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/attachment/9cb7f1cb-984d-4c47-9275-82d6409ed6be",
"Content": "http://localhost/api/attachment/9cb7f1cb-984d-4c47-9275-82d6409ed6be/contents"
},
{
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "e6040570-48fb-48b4-af1e-fa90fe4ae7dd",
"Name": "File 2",
"FileName": "File 2.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 148,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/attachment/e6040570-48fb-48b4-af1e-fa90fe4ae7dd",
"Content": "http://localhost/api/attachment/e6040570-48fb-48b4-af1e-fa90fe4ae7dd/contents"
},
{
"NodeId": "b8166143-c269-4bd8-876e-d2584edc4e2e",
"RunId": "1459858c-9526-412e-afdd-09415593c2d3",
"Id": "72d41457-1840-4a86-8080-788f3d974ba6",
"Name": "File 3",
"FileName": "File 3.txt",
"ContentType": "text/plain",
"CreatedAt": "2013-02-02T00:00:00Z",
"CreatedById": "89fda208-2f7a-42e9-8d0a-3518b80b0765",
"Size": 185,
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/b8166143-c269-4bd8-876e-d2584edc4e2e/attachment/72d41457-1840-4a86-8080-788f3d974ba6",
"Content": "http://localhost/api/attachment/72d41457-1840-4a86-8080-788f3d974ba6/contents"
}
]
Status Code
200 - OK
POST
Adds a new attachment to a particular Automated Test Run's Result Node.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the node was not found in the database. |
| 415 - UnsupportedMediaType | Returned if the request is not mime multipart. |
Example - POST
Adds a new attachment to a particular Automated Test Run's result node.
Request Headers
| Key | Value | Description |
|---|
| Content-Type | multipart/mixed; boundary=65bf6b94-c91c-442c-abe7-f41444d7c71f | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the Automated Test Run. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The unique identifier (GUID) of the Automated Test Run Result Node. |
Request Body
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=screenshot1.png; name="screenshot 1"; size=122454
Content-Type: image/png
Content-Length: 3
...
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=notes.txt; name=notes; size=3
Content-Type: text/plain
Content-Length: 3
ABC
--65bf6b94-c91c-442c-abe7-f41444d7c71f--
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/attachments | The location of the new attachment resource |
Status Code
201 - Created
Resource: Automated Test Run Result Children ( /api/automatedtestrun/{runId}/node/{nodeId}/children )
A collection resource representing the child result ndes of an Automated Test Run Result node.
Methods
GET
Retrieves the children of a particular automated test run result node. This collection can optionally be filtered by outcome/status. Passing an empty GUID for the node ID will return the root nodes in a run.
Required Permissions
Supported Expansions
- Metadata
- Parameters
- Children
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 400 - BadRequest | Returned if the status filter included an invalid status. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the node was not found in the database. |
Example - GET
Retrieves run result children by parent node ID.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the run to get results for. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The parent node unique identifier (GUID) to find children for (or an empty GUID to find root nodes). |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": true,
"Id": "a1d456c4-3713-4f5e-906b-8d56fd977aa2",
"Name": "Passing test run node",
"Description": "A node that passes",
"Notes": null,
"Status": "Passed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children",
"Metadata",
"Parameters"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/a1d456c4-3713-4f5e-906b-8d56fd977aa2"
},
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": false,
"Id": "8b34026c-260e-4a8c-8bc5-60df88cf1c27",
"Name": "Failed test run node",
"Description": "A node that's failed",
"Notes": null,
"Status": "Failed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children",
"Metadata",
"Parameters"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/8b34026c-260e-4a8c-8bc5-60df88cf1c27"
},
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": false,
"Id": "12a4c6ad-5c99-4f61-974b-723543cb167c",
"Name": "Not run test run node",
"Description": "A node that's not been run",
"Notes": null,
"Status": "NotRun",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children",
"Metadata",
"Parameters"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/12a4c6ad-5c99-4f61-974b-723543cb167c"
}
]
Status Code
200 - OK
Example - GET with statuses filter
Retrieves run result children by parent node ID, including only nodes that have (or with descendants that have) one of the specified statuses.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the run to get results for. |
| {nodeId} | b8166143-c269-4bd8-876e-d2584edc4e2e | The parent node unique identifier (GUID) to find children for (or an empty GUID to find root nodes). |
| statuses | Passed,Done | A comma separated list of statuses to filter by. Valid statuses are: Passed, Failed, Done, Warning, Information, Skipped, Error and NotRun. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": true,
"Id": "a1d456c4-3713-4f5e-906b-8d56fd977aa2",
"Name": "Passing test run node",
"Description": "A node that passes",
"Notes": null,
"Status": "Passed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children",
"Metadata",
"Parameters"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/a1d456c4-3713-4f5e-906b-8d56fd977aa2"
}
]
Status Code
200 - OK
Resource: Automated Test Run Result Node ( /api/automatedtestrun/{runId}/node/{nodeId} )
Represents a single automated test result node, which can be either retrieved or updated.
Methods
GET
Retrieves a result node of an automated test run by node ID.
Required Permissions
Supported Expansions
- Metadata
- Parameters
- Children
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the node was not found in the database. |
Example - GET
Retrieves run result nodes by ID.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the run to get results for. |
| {nodeId} | a1d456c4-3713-4f5e-906b-8d56fd977aa2 | The node unique identifier (GUID) to find. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": true,
"Id": "a1d456c4-3713-4f5e-906b-8d56fd977aa2",
"Name": "Passing test run node",
"Description": "A node that passes",
"Notes": null,
"Status": "Passed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children"
],
"Metadata": {
"ApplicationDir": "C:\\Program Files (x86)\\HP\\QuickTest Professional",
"ApplicationPath": "\\samples\\flight\\app\\flight4a.exe"
},
"Parameters": {
"Disp": "OpenApplication [FlightLib] Summary",
"ElementName": "Action"
},
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/a1d456c4-3713-4f5e-906b-8d56fd977aa2"
}
]
Status Code
200 - OK
PATCH
Patches a result node of an automated test run by node ID (allows updating of the Notes field associated with a result node).
Required Permissions
- TestManagement/ExecuteTests
Supported Expansions
- Metadata
- Parameters
- Children
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run or the node was not found in the database. |
Example - PATCH
Update the Notes field of an existing result node.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the run to get results for. |
| {nodeId} | a1d456c4-3713-4f5e-906b-8d56fd977aa2 | The node unique identifier (GUID) to find. |
Request Body
{
"Notes": "This test fails if run after 3pm"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": true,
"Id": "a1d456c4-3713-4f5e-906b-8d56fd977aa2",
"Name": "Passing test run node",
"Description": "A node that passes",
"Notes": "This test fails if run after 3pm",
"Status": "Passed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children",
"Metadata",
"Parameters"
],
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/a1d456c4-3713-4f5e-906b-8d56fd977aa2"
}
]
Status Code
200 - OK
Resource: Automated Test Run Result Root Nodes ( /api/automatedtestrun/{runId}/nodes )
Gets the root result nodes of an Automated Test Run.
Methods
GET
Retrieves the root result nodes of an automated test run.
Required Permissions
Supported Expansions
- Metadata
- Parameters
- Children
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the ID for the run was not found in the database. |
Example - GET
Retrieves root run result nodes.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {runId} | 1459858c-9526-412e-afdd-09415593c2d3 | The unique identifier (GUID) of the run to get results for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": true,
"Id": "a1d456c4-3713-4f5e-906b-8d56fd977aa2",
"Name": "Passing test run node",
"Description": "A node that passes",
"Notes": null,
"Status": "Passed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children"
],
"Metadata": {
"ApplicationDir": "C:\\Program Files (x86)\\HP\\QuickTest Professional",
"ApplicationPath": "\\samples\\flight\\app\\flight4a.exe"
},
"Parameters": {
"Disp": "OpenApplication [FlightLib] Summary",
"ElementName": "Action"
},
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/a1d456c4-3713-4f5e-906b-8d56fd977aa2"
},
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": false,
"Id": "8b34026c-260e-4a8c-8bc5-60df88cf1c27",
"Name": "Failed test run node",
"Description": "A node that's failed",
"Notes": null,
"Status": "Failed",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children"
],
"Metadata": {
"ApplicationDir": "C:\\Program Files (x86)\\HP\\QuickTest Professional",
"ApplicationPath": "\\samples\\flight\\app\\flight4a.exe"
},
"Parameters": {
"Disp": "OpenApplication [FlightLib] Summary",
"ElementName": "Action"
},
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/8b34026c-260e-4a8c-8bc5-60df88cf1c27"
},
{
"HasAttachments": false,
"HasIncidents": false,
"HasChildren": false,
"Id": "12a4c6ad-5c99-4f61-974b-723543cb167c",
"Name": "Not run test run node",
"Description": "A node that's not been run",
"Notes": null,
"Status": "NotRun",
"Iteration": 5,
"StartedAt": "2008-12-25T14:24:00Z",
"FinishedAt": "2008-12-25T14:29:00Z",
"DurationInSeconds": 300.0,
"Expands": [
"Children"
],
"Metadata": {
"ApplicationDir": "C:\\Program Files (x86)\\HP\\QuickTest Professional",
"ApplicationPath": "\\samples\\flight\\app\\flight4a.exe"
},
"Parameters": {
"Disp": "OpenApplication [FlightLib] Summary",
"ElementName": "Action"
},
"Self": "http://localhost/api/automatedtestrun/1459858c-9526-412e-afdd-09415593c2d3/node/12a4c6ad-5c99-4f61-974b-723543cb167c"
}
]
Status Code
200 - OK
Resource: Automated Test Runs ( /api/automatedtestruns )
Automated Test Runs collection resource.
Root Relation: AutomatedTestRuns
Methods
GET
Retrieves all (or a subset) of automated test runs that are visible to the user.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET would not complete request (normally due to a validation failure or you don't have the necessary permissions to complete the request). |
Example - GET (filtered by TQL Query)
Retrieves automated test runs matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Status = Passed | The TQL query to execute. |
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | The number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Passed",
"ImportedAt": "2013-01-17T05:15:00Z",
"StartedAt": "2013-01-17T04:05:06Z",
"FinishedAt": "2013-01-16T05:00:00Z",
"Expands": [
"Assignment",
"Totals"
],
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
}
],
"Self": "http://localhost/api/api/automatedtestruns?tql=Status=Passed&$top=5&$skip=0"
}
Status Code
200 - OK
Example - GET (no filter)
Retrieves all automated test runs
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | The number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 2,
"Items": [
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Passed",
"ImportedAt": "2013-01-17T05:15:00Z",
"StartedAt": "2013-01-17T04:05:06Z",
"FinishedAt": "2013-01-16T05:00:00Z",
"Expands": [
"Assignment",
"Totals"
],
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
},
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Failed",
"ImportedAt": "2013-01-18T05:15:00Z",
"StartedAt": "2013-01-18T04:05:06Z",
"FinishedAt": "2013-01-18T05:06:00Z",
"Expands": [
"Assignment",
"Totals"
],
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
}
],
"Self": "http://localhost/api/api/automatedtestruns?$top=5&$skip=0"
}
Status Code
200 - OK
Example - GET (no filter) with Totals expanded
Retrieves all automated test runs, including Totals
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | The number of results to skip before return the $top number of results matching the query. |
| $expand | | Totals |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 2,
"Items": [
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Passed",
"ImportedAt": "2013-01-17T05:15:00Z",
"StartedAt": "2013-01-17T04:05:06Z",
"FinishedAt": "2013-01-16T05:00:00Z",
"Expands": [
"Assignment"
],
"Totals": {
"Errors": 0,
"Failed": 0,
"Iterations": 0,
"NotRun": 0,
"Passed": 10,
"Skipped": 0,
"Warnings": 0,
"Done": 0,
"Infos": 0,
"TotalNodes": 10,
"TotalResults": 10
},
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
},
{
"RunByDisplayName": "joeb",
"RunBy": "joeb",
"RunById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignmentId": "979ce5f8-efb7-432d-8848-c9cdf3151977",
"Id": "02cbe373-a042-4f7b-8ba3-e03b1588dbfa",
"Status": "Failed",
"ImportedAt": "2013-01-18T05:15:00Z",
"StartedAt": "2013-01-18T04:05:06Z",
"FinishedAt": "2013-01-18T05:06:00Z",
"Expands": [
"Assignment"
],
"Totals": {
"Errors": 2,
"Failed": 0,
"Iterations": 0,
"NotRun": 0,
"Passed": 0,
"Skipped": 8,
"Warnings": 0,
"Done": 0,
"Infos": 0,
"TotalNodes": 10,
"TotalResults": 10
},
"Self": "http://localhost/api/automatedtestrun/02cbe373-a042-4f7b-8ba3-e03b1588dbfa"
}
],
"Self": "http://localhost/api/api/automatedtestruns?$expand=Totals&$top=5&$skip=0"
}
Status Code
200 - OK
Resource: Automated Test Schedule ( /api/automatedtestschedule/{id} )
Automated Test Schedule resource
Methods
DELETE
Deletes an existing automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to delete the schedule. |
| 404 - NotFound | Returned if the automated test schedule does not exist. |
Example - DELETE
Delete a schedule (including all it's schedule and import configurations)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | ID of the schedule to delete |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves an automated test schedule by its unique identifier.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 404 - NotFound | Returned if the automated test schedule does not exist. |
Example - GET
Get details for a schedule
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | ID of the schedule to retrieve |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52",
"ProjectName": "Project XYZ",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
}
Status Code
200 - OK
PUT
Updates an existing automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if the automated test schedule configuration was invalid. |
| 404 - NotFound | Returned if the automated test schedule does not exist. |
Example - PUT
Rename the schedule
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | ID of the schedule to update |
Request Body
{
"Name": "Unit Tests"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52",
"ProjectName": "Project XYZ",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
}
Status Code
200 - OK
Resource: Automated Test Schedule Import Configuration ( /api/automatedtestschedule/{scheduleId}/importconfiguration/{configId} )
Automated Test Schedule Import Configuration resource
Methods
DELETE
Removes a configuration from an automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to remove the configuration from the automated test schedule. |
| 404 - NotFound | Returned if schedule or configuration does not exist. |
Example - DELETE
Remove an import configuration from an automated test schedule (Duette Schedule)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the schedule the import configuration belongs to. |
| {configId} | 62FF8D7C-9256-4C6B-B889-3600F675F5A7 | Unique identifier of the import configuration. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a configuration for an automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the automated test schedule configuration. |
| 404 - NotFound | Returned if schedule or configuration does not exist. |
Example - GET
Retrieve a single import configuration associated with automated test schedule (Duette Schedule)
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the schedule the import configuration belongs to. |
| {configId} | 62FF8D7C-9256-4C6B-B889-3600F675F5A7 | Unique identifier of the import configuration. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldValues",
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
200 - OK
PATCH
Patches a configuration in an automated test schedule (currently only allows changing the 'Enabled' property).
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to patch the automated test schedule the configuration belongs to. |
| 404 - NotFound | Returned if schedule or configuration does not exist. |
Example - PATCH
Disable an enabled import configuration
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the schedule the import configuration belongs to. |
| {configId} | 62FF8D7C-9256-4C6B-B889-3600F675F5A7 | Unique identifier of the import configuration. |
Request Body
{
"Enabled": false
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": false,
"Expands": [
"FieldValues",
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
200 - OK
PUT
Updates a configuration in an automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to update the automated test schedule the configuration belongs to. |
| 404 - NotFound | Returned if schedule or configuration does not exist. |
Example - PUT (using FieldValues)
Update (replace) the import configuration - this demonstrates passing in a full FieldValues object where you can specify additional options such as SubType, Default path etc.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the schedule the import configuration belongs to. |
| {configId} | 62FF8D7C-9256-4C6B-B889-3600F675F5A7 | Unique identifier of the import configuration. |
| $expand | FieldValues | include FieldValues object in response |
Request Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"FieldValues": {
"DefaultPath": "c:\\testdata\\",
"Type": "NUnit"
},
"SkipIfFilesUnchanged": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"FieldValues": {
"Type": "NUnit",
"DefaultPath": null,
"XsltFile": null
},
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
200 - OK
Example - PUT (using in-line SubType)
Update (replace) the import configuration - this demonstrates supplying SubType in-line.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the schedule the import configuration belongs to. |
| {configId} | 62FF8D7C-9256-4C6B-B889-3600F675F5A7 | Unique identifier of the import configuration. |
Request Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldValues",
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
200 - OK
Resource: Automated Test Schedule Import Configurations ( /api/automatedtestschedule/{id}/importconfigurations )
Automated Test Schedule Import Configurations (collection) resource
Methods
GET
Retrieves the list of automated test schedule configurations.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the automated test schedule the configurations belong to. |
| 404 - NotFound | Returned if schedule does not exist. |
Example - GET
Retrieve all import configurations belonging to an automated test schedule (Duette Schedule)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | Unique identifier of the automated test schedule |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Total": 1,
"Items": [
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldValues",
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
]
}
Status Code
200 - OK
POST
Adds a new configuration to the automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to add a new configuration to the automated test schedule. |
| 404 - NotFound | Returned if schedule does not exist. |
Example - POST (using in-line SubType)
Create a new import configuration for an automated test schedule (Duette Schedule) - this demonstrates supplying SubType in-line.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldValues",
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
201 - Created
Example - POST (using FieldValues)
Create a new import configuration for an automated test schedule (Duette Schedule) - this demonstrates passing in a full FieldValues object where you can specify additional options such as SubType, Default path etc.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $expand | FieldValues | include FieldValues object in response |
Request Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"FieldValues": {
"DefaultPath": "c:\\testdata\\",
"Type": "NUnit"
},
"SkipIfFilesUnchanged": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Name": "All NUnit Results",
"Type": "UnitTest",
"SubType": "NUnit",
"SourcePath": "C:\\testdata\\{name}.xml",
"NameTemplate": "{name}",
"CombineResults": false,
"ScriptPackageId": "05ec0839-3c87-41ce-9940-fd142563c28f",
"ExecutionPackageId": "6ee31f73-b36a-4288-9ce9-23281054e365",
"MaximumNumberOfResultsRetained": 10,
"SkipIfFilesUnchanged": true,
"Description": "DefaultPath: N/A, XSLT File: N/A",
"Enabled": true,
"Expands": [
"FieldControls",
"ExecutionPackagePath",
"ScriptPackagePath"
],
"FieldValues": {
"Type": "NUnit",
"DefaultPath": null,
"XsltFile": null
},
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/importconfiguration/62ff8d7c-9256-4c6b-b889-3600f675f5a7",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Rel": "Schedule"
}
]
}
Status Code
201 - Created
Resource: Automated Test Schedule Schedule Configuration ( /api/automatedtestschedule/{scheduleId}/schedule/{scheduleConfigId} )
Represents a single schedule associated with a synchronization configuration
Methods
DELETE
Deletes a schedule.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to delete this resource. |
Example - Delete Schedule
Example of deleting a schedule.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule). |
| {scheduleConfigId} | BBD69B4E-4CFE-435D-8A5D-634A3CC11732 | The ID of the schedule configuration to remove. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves information about a schedule.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this resource. |
Example - Get Schedule
Example of retrieving a schedule.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule). |
| {scheduleConfigId} | BBD69B4E-4CFE-435D-8A5D-634A3CC11732 | The ID of the schedule configuration. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Configuration": {
"PeriodInMinutes": 15,
"Type": "Periodic"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "bbd69b4e-4cfe-435d-8a5d-634a3cc11732",
"Description": "Periodic (repeating every 15 minutes); Synchronizing from External System; Synchronize Updates",
"Enabled": true,
"IsRunning": false,
"StatusMessage": "Synchronization Completed (Started At: 5/10/2012 12:36:52 p.m., Duration: 00:00:00.0810046)",
"LastRun": "2012-10-05T12:36:00Z",
"NextRun": "2012-10-05T12:51:00Z",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/bbd69b4e-4cfe-435d-8a5d-634a3cc11732"
}
Status Code
200 - OK
PATCH
Patches an existing schedule (the Enabled status property only).
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to update this resource. |
Example - Disable the Schedule
Example of using PATCH to disable the schedule. Note: Currently PATCH only supports changing the 'Enabled' status
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule). |
| {scheduleConfigId} | BBD69B4E-4CFE-435D-8A5D-634A3CC11732 | The ID of the schedule configuration. |
Request Body
{ "Enabled": false }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Configuration": {
"PeriodInMinutes": 15,
"Type": "Periodic"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "bbd69b4e-4cfe-435d-8a5d-634a3cc11732",
"Description": "Periodic (repeating every 15 minutes)",
"Enabled": false,
"IsRunning": false,
"StatusMessage": "Import Completed (Started At: 5/10/2012 12:36:52 p.m., Duration: 00:00:00.0810046)",
"LastRun": "2012-10-05T12:36:00Z",
"NextRun": "2012-10-05T12:51:00Z",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/bbd69b4e-4cfe-435d-8a5d-634a3cc11732"
}
Status Code
200 - OK
PUT
Update an existing schedule.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to update this resource. |
Example - Update Schedule
An example of updating the schedule configuration.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule). |
| {scheduleConfigId} | BBD69B4E-4CFE-435D-8A5D-634A3CC11732 | The ID of the schedule configuration. |
Request Body
{
"Configuration": {
"PeriodInMinutes": 15,
"Type": "Periodic"
},
"Enabled": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Configuration": {
"PeriodInMinutes": 15,
"Type": "Periodic"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "bbd69b4e-4cfe-435d-8a5d-634a3cc11732",
"Description": "Periodic (repeating every 15 minutes)",
"Enabled": true,
"IsRunning": false,
"StatusMessage": "Import Completed (Started At: 5/10/2012 12:36:52 p.m., Duration: 00:00:00.0810046)",
"LastRun": "2012-10-05T12:36:00Z",
"NextRun": "2012-10-05T12:51:00Z",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/bbd69b4e-4cfe-435d-8a5d-634a3cc11732"
}
Status Code
200 - OK
Resource: Automated Test Schedule Schedule Configuration Run ( /api/automatedtestschedule/{scheduleId}/schedule/{scheduleConfigId}/run )
A resource you can POST to for initiating a run of a specific schedule configuration associated with an Automated Test Schedule (Duette Schedule).
Methods
POST
Trigger the schedule to immediately start importing results.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 202 - Accepted | Returned if the schedule was triggered. |
| 403 - Forbidden | Returned if the user does not have permission to add a new schedule. |
Example - Initiate import immediately for a schedule
Update the schedule configuration
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {scheduleId} | 91c059b3-f0d8-4507-9d02-b80aa3df50f2 | ID of the ExternalSystemLink representing the synchronizer the schedule belongs to |
| {scheduleConfigId} | bbd69b4e-4cfe-435d-8a5d-634a3cc11732 | ID of the schedule |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
202 - Accepted
Resource: Automated Test Schedule Schedule Configurations ( /api/automatedtestschedule/{id}/schedules )
This is a collection resource for schedules associated with an automated tests schedule configuration set (Duette schedule).
Methods
GET
Retrieves information about an automated test schedule set's schedules.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this resource. |
Example - Get All Schedules for an Automated Test (Duette) schedule set
An Example of retrieving all schedules.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule) to retrieve schedules for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Configuration": {
"PeriodInMinutes": 15,
"Type": "Periodic"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "bbd69b4e-4cfe-435d-8a5d-634a3cc11732",
"Description": "Periodic (repeating every 15 minutes)",
"Enabled": true,
"IsRunning": false,
"StatusMessage": "Import Completed (Started At: 5/10/2012 12:36:52 p.m., Duration: 00:00:00.0810046)",
"LastRun": "2012-10-05T12:36:00Z",
"NextRun": "2012-10-05T12:51:00Z",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/bbd69b4e-4cfe-435d-8a5d-634a3cc11732"
},
{
"Configuration": {
"Type": "AdHoc"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "437246d4-c1ec-4da2-a4a7-2371847a1be1",
"Description": "Ad-hoc",
"Enabled": true,
"IsRunning": false,
"StatusMessage": "Idle",
"LastRun": null,
"NextRun": null,
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/437246d4-c1ec-4da2-a4a7-2371847a1be1"
}
],
"Self": "http://localhost/api/api/automatedtestschedule/91C059B3-F0D8-4507-9D02-B80AA3DF50F2/schedules"
}
Status Code
200 - OK
POST
Creates a new schedule for importing results.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the new schedule was created successfully. |
| 403 - Forbidden | Returned if the user does not have permission to add a new schedule. |
Example - Create a new Schedule
An Example of creating a new schedule for the automated test schedule set (Duette Schedule).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | B7C458E9-D207-4998-BAD0-3AFF0E6FA365 | The ID of the automated test schedule set (Duette Schedule) to add a schedule to. |
Request Body
{
"Configuration": {
"Type": "AdHoc"
},
"Enabled": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/synchronizer/91C059B3-F0D8-4507-9D02-B80AA3DF50F2/schedule/BBD69B4E-4CFE-435D-8A5D-634A3CC11732 | |
Response Body
{
"Configuration": {
"Type": "AdHoc"
},
"ScheduleId": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Id": "437246d4-c1ec-4da2-a4a7-2371847a1be1",
"Description": "Ad-hoc",
"Enabled": true,
"IsRunning": false,
"StatusMessage": "Idle",
"LastRun": null,
"NextRun": null,
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/schedules/437246d4-c1ec-4da2-a4a7-2371847a1be1"
}
Status Code
201 - Created
Resource: Automated Test Schedules ( /api/automatedtestschedules )
Automated Test Schedules (collection) resource
Root Relation: AutomatedTestSchedules
Methods
GET
Retrieves the list of automated test schedules.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
Example - GET (for all projects)
Retrieves a list of automated test schedules in application (all projects)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Total": 1,
"Items": [
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52",
"ProjectName": "Project XYZ",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
},
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Import Selenium Tests",
"ProjectId": "9e1fe662-c6c0-4dd6-8198-e630e4951f6d",
"ProjectName": "Project ABC",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
}
],
"Self": "http://localhost/api/api/automatedtestschedules"
}
Status Code
200 - OK
Example - GET (for project)
An example of retrieving a list of automated test schedules associated with a project.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| projectId | 42B9A01E-8A84-462C-ADB9-3F96D3D7DE52 | The ID of the project associated with the list of automated test schedules. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Total": 1,
"Items": [
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52",
"ProjectName": "Project XYZ",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
}
],
"Self": "http://localhost/api/api/automatedtestschedules?projectId=42B9A01E-8A84-462C-ADB9-3F96D3D7DE52"
}
Status Code
200 - OK
POST
Creates a new automated test schedule.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if request completed successfully. |
| 403 - Forbidden | If you do not have permission to create a schedule for the select project, or project was invalid. |
Example - POST
An example of creating a new test schedule. Note: After creating the schedule you must populate the import and import schedule configurations before the schedule will be usable.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Body
{
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Name": "Unit Tests",
"ProjectId": "42b9a01e-8a84-462c-adb9-3f96d3d7de52",
"ProjectName": "Project XYZ",
"Self": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365",
"Links": [
{
"Href": "http://localhost/api/automatedtestschedule/b7c458e9-d207-4998-bad0-3aff0e6fa365/configurations",
"Rel": "ScheduleConfigurations"
}
]
}
Status Code
201 - Created
Resource: Automated Test Type ( /api/automatedtesttype/{name} )
Automated test type resource
Methods
GET
Retrieves automated test type by its name.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 404 - NotFound | Returned if the automated test type does not exist. |
Example - Example - Get automated test type
Example of retrieving an automated test type by its name.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {name} | UnitTest | The name of the automated test type to retrieve |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Name": "UnitTest",
"FriendlyName": "Unit Test Results",
"Types": [
{
"Name": "NUnit",
"FriendlyName": "NUnit"
},
{
"Name": "JUnit",
"FriendlyName": "JUnit"
}
],
"Self": "http://localhost/api/automatedtesttype/unittest"
}
Status Code
200 - OK
Resource: Automated Test Types ( /api/automatedtesttypes )
Automated Test Types (collection) resource
Root Relation: AutomatedTestTypes
Methods
GET
Retrieves the list of automated test types
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request completed successfully. |
| 404 - NotFound | Returned if the automated test type does not exist. |
Example - Example - Get all automated test type
Example of getting all automated test types
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Name": "UnitTest",
"FriendlyName": "Unit Test Results",
"Types": [
{
"Name": "NUnit",
"FriendlyName": "NUnit"
},
{
"Name": "JUnit",
"FriendlyName": "JUnit"
}
],
"Self": "http://localhost/api/automatedtesttype/unittest"
},
{
"Name": "Selenium",
"FriendlyName": "Selenium",
"Types": [],
"Self": "http://localhost/api/automatedtesttype/selenium"
}
]
}
Status Code
200 - OK
Resource: Automated Tests ( /api/automatedtests )
Automated tests (collection) resource
Root Relation: AutomatedTests
Methods
GET
Retrieves all (or a subset) of automated tests that are visible.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete request (normally due to a validation failure or the necessary permissions to complete the request were not met). |
Example - Get all automated test
Retrieve all automated tests
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Id": "dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Type": "UnitTest",
"Name": "JUnit Results",
"CreatedAt": "2012-01-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 1,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Links": [
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/assignments",
"Rel": "Assignments"
}
]
},
{
"Id": "08348cb0-1313-4721-bfcb-b9e02a0cd5bc",
"Type": "Selenium",
"Name": "Login Tests",
"CreatedAt": "2012-03-03T04:05:06Z",
"LastUpdatedAt": "2012-04-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 2,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/08348cb0-1313-4721-bfcb-b9e02a0cd5bc",
"Links": [
{
"Href": "http://localhost/api/automatedtest/08348cb0-1313-4721-bfcb-b9e02a0cd5bc/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/08348cb0-1313-4721-bfcb-b9e02a0cd5bc/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/08348cb0-1313-4721-bfcb-b9e02a0cd5bc/assignments",
"Rel": "Assignments"
}
]
}
]
}
Status Code
200 - OK
Example - Get automated tests (with TQL query)
Retrieve automated tests matching TQL query
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Type = UnitTest | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 1,
"Items": [
{
"Id": "dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Type": "UnitTest",
"Name": "JUnit Results",
"CreatedAt": "2012-01-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 1,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368",
"Links": [
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/dff56a5f-40fa-41d5-8bc8-33c3d0014368/assignments",
"Rel": "Assignments"
}
]
}
]
}
Status Code
200 - OK
POST
Creates a new automated test
Required Permissions
- TestManagement/ManageScripts
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete request (normally due to a validation failure or the necessary permissions to complete the request were not met.). |
Example - Create a new automated test
Create automated test
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | DFF56A5F-40FA-41D5-8BC8-33C3D0014368 | The unique identifier of automated test to return. |
Request Body
{
"Type": "UnitTest",
"Name": "Cycle 2 JUnit Results",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"OrderNumber": 1,
"Configuration": {
"Type": "JUnit"
}
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/automatedtest/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Type": "UnitTest",
"Name": "Cycle 2 JUnit Results",
"CreatedAt": "2012-01-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"CreatedBy": "joeb",
"LastUpdatedById": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"LastUpdatedBy": "joeb",
"AssignedToId": "f10c226f-1778-4038-b0d4-2eae86bd5a9e",
"AssignedTo": "joeb",
"PackageId": "68f38eb7-9882-41b8-9749-712c43dc3f51",
"ProjectId": "4f0d1bc3-3247-4ad0-b753-aaa538d8c523",
"ProjectName": "Test Project",
"PackageName": "Script Library",
"OrderNumber": 1,
"Expands": [
"Assignments",
"Configuration"
],
"Self": "http://localhost/api/automatedtest/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/automatedtest/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/automatedtest/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/automatedtest/4bb709c2-e0e7-4af3-9f60-a045016a9610/assignments",
"Rel": "Assignments"
}
]
}
Status Code
201 - Created
Resource: Background Task ( /api/backgroundtask/{id} )
The Background Task resource allows you to retrieve the details of a currently executed or completed task. This includes information related to the progress (% completed) of the task.
Methods
GET
Retrieves the status of a running or completed job. Note that after some time completed jobs will be flushed. At this point, this method will return a '404 Not Found' response.
Required Permissions
- Enforced by task implementation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if no job was found with the sepcified identifier. |
Example - In Progress Task
Example of retrieving the progress status for a task that is running in the background.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | reindex-7bdba522-590a-4df4-b409-a2939851241b | The Unique identifier of the job (string). |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": false,
"TotalElements": 10,
"ProcessedElements": 5,
"StartedAt": "2012-01-01T00:00:00Z",
"ProgressInPercent": 0.5,
"Id": "reindex-7bdba522-590a-4df4-b409-a2939851241b",
"Message": "Reticulating Splines",
"Self": "http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b"
}
Status Code
200 - OK
Example - Completed Task
Example of retrieving the progress for a task that has finished.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | reindex-7bdba522-590a-4df4-b409-a2939851241b | Unique identifier of the job (string) |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": true,
"TotalElements": 10,
"ProcessedElements": 10,
"StartedAt": "2012-01-01T01:00:00Z",
"FinishedAt": "2012-01-01T01:10:14Z",
"ProgressInPercent": 1.0,
"Id": "reindex-7bdba522-590a-4df4-b409-a2939851241b",
"Message": "Task Completed",
"Self": "http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b"
}
Status Code
200 - OK
Resource: Background Tasks ( /api/backgroundtasks )
Collection of background tasks
Root Relation: BackgroundTasks
Methods
POST
Starts a new background task.
Required Permissions
- Enforced by task implementation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 202 - Accepted | Returned if the task was created successfully. |
| 403 - Forbidden | If you do not have permission to execute this job. |
| 500 - InternalServerError | If the job handler for this background task encountered an unrecoverable error creating the job. |
Example - Start project reindex
An example of starting the re-indexing of a individual project by passing in the project's unique GUID identifier as a parameter to the 'Reindex' background task type.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "Reindex",
"Parameters": {
"Optimize": true,
"ProjectId": "c651ed19-5375-475a-a539-9f6401467130"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b | |
Response Body
{
"Complete": false,
"TotalElements": 10,
"ProcessedElements": 1,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.1,
"Id": "reindex-7bdba522-590a-4df4-b409-a2939851241b",
"Message": "Queuing index events",
"Self": "http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b"
}
Status Code
202 - Accepted
Example - Start all-projects reindex
An Example of starting the re-indexing of all projects in Enterprise Tester without optimization, and skipping relationship re-indexing.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "Reindex",
"Parameters": {
"Optimize": false,
"SkipRelationships": true
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b | |
Response Body
{
"Complete": false,
"TotalElements": 10,
"ProcessedElements": 1,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.1,
"Id": "reindex-7bdba522-590a-4df4-b409-a2939851241b",
"Message": "Queuing index events",
"Self": "http://localhost/api/backgroundtask/reindex-7bdba522-590a-4df4-b409-a2939851241b"
}
Status Code
202 - Accepted
Example - Link a ticket to a Script Assignment's Step Result
Links a ticket to a Script Assignment's Step Result, Tickets is the term used for external incidents stored in defect trackers.
This background task allows you to link to a ticket via it's unique key, as part of this linking process an associated Incident synchronized
with the Ticket will be created in Enterprise Tester, if an Incident does not already exist. An error (500) will be returned by this background task
if the Ticket can not be found, or is already linked to the Step Result.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "LinkTicketToStepResult",
"Parameters": {
"StepResultId": "ad3c8f9a-6959-4226-9b47-a0a601595de4",
"Key": "TST-123"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5 | |
Response Body
{
"Complete": false,
"TotalElements": 3,
"ProcessedElements": 2,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.67,
"Id": "linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5",
"Message": "Creating link",
"Self": "http://localhost/api/backgroundtask/linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5"
}
Status Code
202 - Accepted
Example - Link a ticket to a Script Assignment's Step Result (with External System Link specified)
This example demonstrates passing an additional parameter to disambiguate the Key for the ticket (ExternalSystemLinkId) - this is necessary if the project has 1 or more associated Defect Tracker external systems, and the ticket Key's are duplicated in both systems. Note: This additional parameter is also supported by the 'LinkTicketToAgileRunStep' and 'LinkTicketToAutomatedTestRunResultNode' task types.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "LinkTicketToStepResult",
"Parameters": {
"StepResultId": "ad3c8f9a-6959-4226-9b47-a0a601595de4",
"ExternalSystemLinkId": "d8e4c6a3-5287-4b38-82f8-7791adcb6dc9",
"Key": "TST-123"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5 | |
Response Body
{
"Complete": false,
"TotalElements": 3,
"ProcessedElements": 2,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.67,
"Id": "linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5",
"Message": "Creating link",
"Self": "http://localhost/api/backgroundtask/linktickettostepresult_d58d140f-fdd5-4d3e-b08b-4629b0b02da5"
}
Status Code
202 - Accepted
Example - Link a ticket to a Agile Run's Step
Links a ticket to a Agile Run's Step, Tickets is the term used for external incidents stored in defect trackers.
This background task allows you to link to a ticket via it's unique key, as part of this linking process an associated Incident synchronized
with the Ticket will be created in Enterprise Tester, if an Incident does not already exist. An error (500) will be returned by this background task
if the Ticket can not be found, or is already linked to the Agile Run's Step.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "LinkTicketToAgileRunStep",
"Parameters": {
"AgileRunId": "161e7eed-2cd7-45cc-97d9-a00f010e3aa4",
"StepId": "79853241-febd-4f5d-93bf-4d380d024206",
"Key": "TST-123"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/linktickettoagilerunstep_d58d140f-fdd5-4d3e-b08b-4629b0b02da5 | |
Response Body
{
"Complete": false,
"TotalElements": 3,
"ProcessedElements": 2,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.67,
"Id": "linktickettoagilerunstep_d58d140f-fdd5-4d3e-b08b-4629b0b02da5",
"Message": "Creating link",
"Self": "http://localhost/api/backgroundtask/linktickettoagilerunstep_d58d140f-fdd5-4d3e-b08b-4629b0b02da5"
}
Status Code
202 - Accepted
Example - Link a ticket to a Automated Test Run's Result Node
Links a ticket to a Result Node in Automated Test Run, Tickets is the term used for external incidents stored in defect trackers.
This background task allows you to link to a ticket via it's unique key, as part of this linking process an associated Incident synchronized
with the Ticket will be created in Enterprise Tester, if an Incident does not already exist. An error (500) will be returned by this background task
if the Ticket can not be found, or is already linked to the Automated Test's Result Node.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "LinkTicketToAutomatedTestRunResultNode",
"Parameters": {
"AutomatedTestRunId": "ad3c8f9a-6959-4226-9b47-a0a601595de4",
"ResultNodeId": "3aaf3505-85ca-43c4-a822-fe468118aab7",
"Key": "TST-123"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/linktickettoautomatedtestrunresultnode_d58d140f-fdd5-4d3e-b08b-4629b0b02da5 | |
Response Body
{
"Complete": false,
"TotalElements": 3,
"ProcessedElements": 2,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.67,
"Id": "linktickettoautomatedtestrunresultnode_d58d140f-fdd5-4d3e-b08b-4629b0b02da5",
"Message": "Creating link",
"Self": "http://localhost/api/backgroundtask/linktickettoautomatedtestrunresultnode_d58d140f-fdd5-4d3e-b08b-4629b0b02da5"
}
Status Code
202 - Accepted
Example - Create an incident from a ticket
This background task is not normally executed directly, and is instead started by performing a POST request to 'StartCreateIncident' Link associated a ticket search result, but it can also be invoked directly as below. Note: TicketId is the internal identifier for the ticket (Issue) and is not the publicly visible 'Key' for the ticket.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Type": "CreateTicketLink",
"Parameters": {
"TicketId": "12345",
"ExternalSystemLinkId": "3aaf3505-85ca-43c4-a822-fe468118aab7"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/ticketlinking_d58d140f-fdd5-4d3e-b08b-4629b0b02da5 | |
Response Body
{
"Complete": false,
"TotalElements": 2,
"ProcessedElements": 1,
"StartedAt": "2012-01-01T10:50:00Z",
"ProgressInPercent": 0.34,
"Id": "ticketlinking_d58d140f-fdd5-4d3e-b08b-4629b0b02da5",
"Message": "Creating incident",
"Self": "http://localhost/api/backgroundtask/ticketlinking_d58d140f-fdd5-4d3e-b08b-4629b0b02da5"
}
Status Code
202 - Accepted
Resource: Custom Field ( /api/customfield/{name} )
Custom field resource
Methods
GET
Retrieves a custom field by its identifier.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the custom field type does not exist. |
Example - GET
Example of retrieving a custom field by its name.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {name} | IsRegression | The name of the custom field to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4b4329a0-44a3-4e3c-a527-6973bb2b063b",
"Name": "IsRegression",
"CustomFieldTypeName": "Checkbox",
"Label": "Is Regression?",
"Description": null,
"Required": false,
"Entities": [
"TestScript",
"Requirement",
"Incident"
],
"Scopes": [
{
"Type": "Project",
"Id": "d17289f6-8f43-4074-88d0-3841f9830b19",
"Name": "Test Project"
}
],
"Expands": [
"Configuration",
"Options",
"Type"
],
"Self": "http://localhost/api/customfield/IsRegression",
"Links": [
{
"Href": "http://localhost/api/customfieldtype/checkbox",
"Rel": "CustomFieldType"
}
]
}
Status Code
200 - OK
Resource: Custom Field Type ( /api/customfieldtype/{name} )
Custom field type resource
Methods
GET
Retrieves a custom field type by its name.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the custom field type does not exist. |
Example - Get custom field type
Example of fetching all custom field types.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {name} | Text | The name of the custom field type to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Name": "Text",
"DisplayName": "Text",
"Self": "http://localhost/api/customfieldtype/text"
}
]
}
Status Code
200 - OK
Resource: Custom Field Types ( /api/customfieldtypes )
Custom field types (collection) resource
Root Relation: CustomFieldTypes
Methods
GET
Retrieves the list of custom field types.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the custom field type does not exist. |
Example - Get all custom field types
Example of fetching all custom field types.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Name": "Text",
"DisplayName": "Text",
"Self": "http://localhost/api/customfieldtype/text"
},
{
"Name": "ComboBox",
"DisplayName": "Combo Box",
"Self": "http://localhost/api/customfieldtype/combobox"
},
{
"Name": "Checkbox",
"DisplayName": "Checkbox",
"Self": "http://localhost/api/customfieldtype/checkbox"
}
]
}
Status Code
200 - OK
Example - Get custom field types using OData filter
Example of fetching subset of custom field types using OData filter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Name eq 'Text' | Fetch custom field type with name 'Text' |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Name": "Text",
"DisplayName": "Text",
"Self": "http://localhost/api/customfieldtype/text"
}
]
}
Status Code
200 - OK
Resource: Custom Fields ( /api/customfields )
Custom fields (collection) resource
Root Relation: CustomFields
Methods
GET
Retrieves all custom fields.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the custom field type does not exist. |
Example - Get all custom fields
An Example of fetching all custom fields.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "4b4329a0-44a3-4e3c-a527-6973bb2b063b",
"Name": "IsRegression",
"CustomFieldTypeName": "Checkbox",
"Label": "Is Regression?",
"Description": null,
"Required": false,
"Entities": [
"TestScript",
"Requirement",
"Incident"
],
"Scopes": [
{
"Type": "Project",
"Id": "d17289f6-8f43-4074-88d0-3841f9830b19",
"Name": "Test Project"
}
],
"Expands": [
"Configuration",
"Options",
"Type"
],
"Self": "http://localhost/api/customfield/IsRegression",
"Links": [
{
"Href": "http://localhost/api/customfieldtype/checkbox",
"Rel": "CustomFieldType"
}
]
},
{
"Id": "8b385cac-fcbf-4d27-83d0-132e121e8ea1",
"Name": "Severity",
"CustomFieldTypeName": "ComboBox",
"Label": "Severity",
"Description": null,
"Required": true,
"Entities": [
"Incident"
],
"Scopes": [
{
"Type": "Organisation",
"Id": "3d0d2ebf-d9c4-40bb-ab8e-85d63dab1f8a",
"Name": "Testing Intl"
}
],
"Expands": [
"Configuration",
"Options",
"Type"
],
"Self": "http://localhost/api/customfield/Severity",
"Links": [
{
"Href": "http://localhost/api/customfieldtype/combobox",
"Rel": "CustomFieldType"
}
]
}
]
}
Status Code
200 - OK
Example - Get custom fields using OData filter
An Example of fetching subset of custom fields using OData filter and expansion for options.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | CustomFieldTypeName eq 'ComboBox' | Fetch all custom fields of type combo box. |
| $expand | Options | Expands the options for any matching field. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "8b385cac-fcbf-4d27-83d0-132e121e8ea1",
"Name": "Severity",
"CustomFieldTypeName": "ComboBox",
"Label": "Severity",
"Description": null,
"Required": true,
"Entities": [
"Incident"
],
"Scopes": [
{
"Type": "Organisation",
"Id": "3d0d2ebf-d9c4-40bb-ab8e-85d63dab1f8a",
"Name": "Testing Intl"
}
],
"Expands": [
"Configuration",
"Type"
],
"Options": [
{
"Identifier": "05ec42ae-2713-4d51-9306-3226a2446712",
"Text": "Low"
},
{
"Identifier": "05ec42ae-2713-4d51-9306-3226a2446712",
"Text": "Medium"
},
{
"Identifier": "05ec42ae-2713-4d51-9306-3226a2446712",
"Text": "High"
}
],
"Self": "http://localhost/api/customfield/Severity",
"Links": [
{
"Href": "http://localhost/api/customfieldtype/combobox",
"Rel": "CustomFieldType"
}
]
}
]
}
Status Code
200 - OK
Resource: Execution Package ( /api/executionpackage/{id} )
Execution Package resource
Methods
DELETE
Deletes an execution package by its unique identifier.
Required Permissions
- TestManagement/ManageExecution
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if execution package was deleted successfully. |
| 403 - Forbidden | Returned if execution package can not be deleted (normally because required permission have not been met or the package has children but you did not pass the deleteChildren parameter.). |
| 404 - NotFound | Returned if execution package was not found. |
Example - Delete empty package
Example of deleting a package.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Status Code
200 - OK
Example - Delete package with children
Example of deleting a package with children.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
| deleteChildren | true | Will delete a package and all its children. |
Status Code
200 - OK
Example - Delete package with children (without deleteChildren parameter)
Example of deleting a non-empty package without deleteChildren=true.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Response Body
{
"Message": "The package is not empty."
}
Status Code
403 - Forbidden
GET
Retrieves an execution package by its unique identifier.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if execution package was not found. |
Example - GET
Example of retrieving execution package by unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"Stereotype": null,
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
PUT
Update an execution package.
Required Permissions
- TestManagement/ManageExecution
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create execution packages in the target project. |
| 404 - NotFound | Returned if the package does not exist. |
Example - PUT (update package name)
Updating a package name.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "New Package Name"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "New Package Name",
"Stereotype": null,
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
Status Code
200 - OK
Example - PUT (move package to new parent)
Updating package to have a different parent.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"Stereotype": null,
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
Example - PUT (update multiple details)
Updating package name, stereotype, order and parent.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to delete. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "New Package Name",
"Stereotype": "Plan",
"OrderNumber": 2,
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"Stereotype": "Plan",
"OrderNumber": 2,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
Resource: Execution Package Children ( /api/executionpackage/{id}/children )
Execution Package resource
Methods
GET
Retrieves the children of the execution package.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create execution packages in the target project. |
| 404 - NotFound | Returned if the package does not exist. |
Example - GET
Example of retrieving all child packages for package.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the parent package. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2d33ee96-7634-4363-891f-d90a15709bb9",
"ParentId": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Cycle 1",
"Stereotype": "Plan",
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/2d33ee96-7634-4363-891f-d90a15709bb9",
"Links": [
{
"Href": "http://localhost/api/executionpackage/2d33ee96-7634-4363-891f-d90a15709bb9/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Rel": "Parent"
}
]
},
{
"Id": "ed07f8a1-3ffa-4f25-bc28-0dae55650205",
"ParentId": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Cycle 2",
"Stereotype": "Plan",
"OrderNumber": 2,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/ed07f8a1-3ffa-4f25-bc28-0dae55650205",
"Links": [
{
"Href": "http://localhost/api/executionpackage/ed07f8a1-3ffa-4f25-bc28-0dae55650205/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Rel": "Parent"
}
]
}
]
}
Status Code
200 - OK
Resource: Execution Packages ( /api/executionpackages )
Execution Packages collection resource
Root Relation: ExecutionPackages
Methods
GET
Retrieves all (or a subset) of execution packages that are visible.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - GET (filtered by TQL Query)
Retrieves all packages matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | Maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Reports",
"Stereotype": "Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"Links": [
{
"Href": "http://localhost/api/executionpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/executionpackages?tql=Name~'Report'&$top=5&$skip=0"
}
Status Code
200 - OK
Example - GET (no TQL query)
Retrieves all packages, across all projects.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Id": "d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Reports",
"Stereotype": "Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"Links": [
{
"Href": "http://localhost/api/executionpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
},
{
"Id": "7c8ffe51-c584-41d6-8739-8dbd56d5770f",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Data Import",
"Stereotype": "Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/7c8ffe51-c584-41d6-8739-8dbd56d5770f",
"Links": [
{
"Href": "http://localhost/api/executionpackage/7c8ffe51-c584-41d6-8739-8dbd56d5770f/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/executionpackages"
}
Status Code
200 - OK
POST
Create a new execution package.
Required Permissions
- TestManagement/ManageExecution
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create execution packages in the target project. |
Example - POST (top-level package)
Create a new package (at root of project).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "New Package",
"ProjectId": "4545fe95-e9c2-40e9-8f4a-3f000d14526f"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "New Package",
"Stereotype": "Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
Status Code
201 - Created
Example - POST (child of existing package)
Create a new package (as child of existing package).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "New Child Package",
"ParentId": "9bfeb244-06a6-4440-b6b6-a8bcc0847673"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "9bfeb244-06a6-4440-b6b6-a8bcc0847673",
"Name": "New Child Package",
"Stereotype": "Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/executionpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/executionpackage/9bfeb244-06a6-4440-b6b6-a8bcc0847673",
"Rel": "Parent"
}
]
}
Status Code
201 - Created
Resource: Export File ( /api/exportfile/{filename} )
Used to retrieve the contents of an exported file.
Methods
GET
Retrieves the contents of an exported file.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the file does not exist. |
Example - Get export file contents
Example of retrieving the contents of an exported file.
Request Headers
| Key | Value | Description |
|---|
| Accept | text/csv | |
Request Parameters
| Key | Value | Description |
|---|
| {filename} | export-Entities-2012-07-03-115806pm.csv | The filename to download. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | text/csv | |
Status Code
200 - OK
Resource: External System ( /api/externalsystem/{id} )
Allows the retrieval of details for a single external system (Defect Tracker of Enterprise Architect connection)
Methods
GET
Retrieves a single external system by ID.
Supported Expansions
- Configuration
- ExternalSystemLinks
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if external system does not exist. |
Example - Get External System
Example of fetching an external system by ID
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | a01fc7ed-3492-4792-9a0b-e2b52fa10913 | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Name": "TFS",
"ConnectionString": "http://tfs.mycompany.com:8080/tfs/Projects",
"Type": "TFS2010",
"Enabled": true,
"ImplementationType": "DefectTracker",
"UserName": "remote_tfs",
"Self": "http://localhost/api/externalsystem/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
Status Code
200 - OK
Resource: External System Link ( /api/externalsystemlink/{id} )
Allows the retrieval of details for a single external system link (Incident, Requirement, UseCase link etc.)
Methods
DELETE
Deletes the external system link, and optionally removes all associated references and events for this link
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if external system link does not exist. |
Example - Delete External System Link (and keep external system references)
Example of deleting external system and retaining all external system references and events (so when previously synchronized entities will remain unchanged after deleting the link)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | a01fc7ed-3492-4792-9a0b-e2b52fa10913 | |
| keepReferences | true | Keep references but delete link (this is also the default value for this parameter, so it can be omitted entirely) |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
Example - Delete External System Link (and remove external system references)
Example of deleting external system and removing all external system references and events
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | a01fc7ed-3492-4792-9a0b-e2b52fa10913 | |
| keepReferences | false | Force removal of all references and events associated with this link. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a single external system link by ID.
Required Permissions
Supported Expansions
- Configuration
- ExternalSystem
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have the necessary permissions to view this external system link. |
| 404 - NotFound | Returned if external system link does not exist. |
Example - Get External System Link
Example of fetching an external system link by ID
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | a01fc7ed-3492-4792-9a0b-e2b52fa10913 | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "8620f850-a390-4acf-817b-e21435e2ac04",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Incident",
"Name": "Project X",
"Enabled": true,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
Status Code
200 - OK
Resource: External System Link Field Values ( /api/externalsystemlink/{linkId}/field/{fieldName} )
Allows fetching of allowable values for a field associated with an external system link
Methods
GET
Retrieves all options for a field belonging to an external system link
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you dont not have permission to retrieve field values for this link. |
| 404 - NotFound | Returned if the link does not exist. |
Example - Get all options for field
Retrieves all options for a field belonging to an external system link
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {linkId} | DF463CBF-32C9-4295-8B6C-55AAE7B640B9 | |
| {fieldName} | Priority | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 3,
"Items": [
{
"Identifier": "1",
"Text": "High"
},
{
"Identifier": "2",
"Text": "Medium"
},
{
"Identifier": "3",
"Text": "Low"
}
]
}
Status Code
200 - OK
Example - Get all options for field matching partial name query
Retrieves options for a field belonging to an external system link matching partial name query
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {linkId} | DF463CBF-32C9-4295-8B6C-55AAE7B640B9 | |
| {fieldName} | Priority | |
| query | H | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 1,
"Items": [
{
"Identifier": "1",
"Text": "High"
}
]
}
Status Code
200 - OK
Resource: External System Link Ticket ( /api/externalsystemlink/{externalSystemLinkId}/ticket/{ticketId} )
Allows the retrieval of a single project ticket
Methods
GET
Retrieves a single ticket by ID.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if external system does not exist. |
Example - Get ticket
Example of fetching a ticket by it's Id and the external system link it's associated with.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {ticketId} | 18759 | |
| {externalSystemLinkId} | c63e805c-e5d3-4919-9d10-a0a500e0754a | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Key": "TST-4629",
"Summary": "Test windows title clips text on bottom",
"Url": "https://mycompany.atlassian.net/browse/TST-4629",
"Id": "18759",
"Type": "Bug",
"ExternalSystemId": "c63e805c-e5d3-4919-9d10-a0a500e0754a",
"ExternalSystemName": "testing",
"IncidentId": null,
"Status": "Open",
"InternalKey": null,
"Self": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759",
"Links": [
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759/link",
"Rel": "StartCreateIncident"
},
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a",
"Rel": "ExternalSystemLink"
}
]
}
Status Code
200 - OK
Resource: External System Link Ticket Link ( /api/externalsystemlink/{externalSystemLinkId}/ticket/{ticketId}/link )
Resource you can POST to, resulting in the creation of a new Incident synchronized to a Ticket in an external system (POST creates the background task only, which is then completed asynchronously as linking can be take a long time).
Methods
POST
Starts a task for creating an incident from an external ticket.
Required Permissions
- TestManagement/ExecuteTests
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 202 - Accepted | Returned if the task was created successfully. |
| 403 - Forbidden | If you do not have permission to execute this job, or the parameters are invalid. |
Example - Start background task to create new incident linked to ticket
Create a new incident synchronized with a ticket. Note: When the task completes, retrieving the progress of the task will include a link to the Incident that was created and an additional value 'IncidentId'.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {ticketId} | 16841 | ID of the ticket to link to, in cases of systems such as Jira, this is the internal identifier, not the 'Key' for the ticket (issue) |
| {externalSystemLinkId} | c63e805c-e5d3-4919-9d10-a0a500e0754a | ID of the ticket to link to, in cases of systems such as Jira, this is the internal identifier, not the 'Key' for the ticket (issue) |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": false,
"TotalElements": 0,
"ProcessedElements": 0,
"StartedAt": "2012-08-06T11:28:45Z",
"ProgressInPercent": 0.0,
"Id": "ticketlinking_cba3035a-bf63-4006-89b1-b291aaac0460",
"Message": null,
"Self": "http://localhost/api/backgroundtask/ticketlinking_cba3035a-bf63-4006-89b1-b291aaac0460"
}
Status Code
202 - Accepted
Example - Create new incident linked to ticket (when task completed immediately)
This example shows the progress response of linking once completed, including the additional details of the Incident that was created.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {ticketId} | 16841 | ID of the ticket to link to, in cases of systems such as Jira, this is the internal identifier, not the 'Key' for the ticket (issue) |
| {externalSystemLinkId} | 9b01796c-a9ae-40cb-a6ad-a802346c0c33 | ID of the ticket to link to, in cases of systems such as Jira, this is the internal identifier, not the 'Key' for the ticket (issue) |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Complete": true,
"StartedAt": "2012-08-06T11:39:45Z",
"FinishedAt": "2012-08-06T11:39:53Z",
"ProgressInPercent": 1.0,
"Id": "ticketlinking_9b01796c-a9ae-40cb-a6ad-a802346c0c33",
"Message": "Completed",
"IncidentId": "029b2c43-38be-4c94-b547-a0a50185fb9e",
"Self": "http://localhost/api/backgroundtask/ticketlinking_9b01796c-a9ae-40cb-a6ad-a802346c0c33",
"Links": [
{
"Href": "http://localhost/api/incident/029b2c43-38be-4c94-b547-a0a50185fb9e",
"Rel": "Incident"
}
]
}
Status Code
202 - Accepted
Resource: External System Links ( /api/externalsystemlinks )
Allows the search and retrieval of external system links (Defect Trackers and Enterprise Architect connections)
Root Relation: ExternalSystemLinks
Methods
GET
Retrieves all (or a subset) of external systems links
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
- Configuration
- ExternalSystem
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get all external system links
An example of fetching all external system links
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Incident",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
},
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Requirement",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
]
Status Code
200 - OK
Example - Get all external system links filtered by type
An example of fetching a set of external system links by type and project Id, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Type eq 'Incident' AND ProjectId eq '3AFBE0DD-55CA-419E-B75D-D21C821D7281' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Type%20eq%20'Incident'%20AND%20Project%20eq%20'3AFBE0DD-55CA-419E-B75D-D21C821D7281' |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Incident",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
]
Status Code
200 - OK
Resource: External Systems ( /api/externalsystems )
Allows the search and retrieval of external systems (Defect Trackers and Enterprise Architect connections)
Root Relation: ExternalSystems
Methods
GET
Retrieves all (or a subset) of external systems.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
- Configuration
- ExternalSystemLinks
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get al external systems
An example of fetching all external systems.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Name": "TFS",
"ConnectionString": "http://tfs.mycompany.com:8080/tfs/Projects",
"Type": "TFS2010",
"Enabled": true,
"ImplementationType": "DefectTracker",
"UserName": "remote_tfs",
"Self": "http://localhost/api/externalsystem/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
},
{
"Id": "744904d6-9612-4e87-a718-7b5d80c0060d",
"Name": "Jira Production",
"ConnectionString": "http://tfs.mycompany.com:8080/tfs/Projects",
"Type": "Jira",
"Enabled": true,
"ImplementationType": "DefectTracker",
"UserName": "remote",
"Self": "http://localhost/api/externalsystem/744904d6-9612-4e87-a718-7b5d80c0060d"
}
]
Status Code
200 - OK
Example - Get external systems filtered by type
An example of fetching a set of external systems by type, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Type eq 'Jira' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Type%20eq%20'Jira'. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "744904d6-9612-4e87-a718-7b5d80c0060d",
"Name": "Jira Production",
"ConnectionString": "http://tfs.mycompany.com:8080/tfs/Projects",
"Type": "Jira",
"Enabled": true,
"ImplementationType": "DefectTracker",
"UserName": "remote",
"Self": "http://localhost/api/externalsystem/744904d6-9612-4e87-a718-7b5d80c0060d"
}
]
Status Code
200 - OK
Resource: External System's Links ( /api/externalsystem/{systemId}/links )
Allows the search and retrieval of external system links for an external system (Defect Trackers and Enterprise Architect connections)
Methods
GET
Retrieves all (or a subset) of external systems links for an external system
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
- Configuration
- ExternalSystem
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get all external system links
An example of fetching all external system links
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {systemId} | b5ee119f-bc44-4b3c-befe-919f2fe3f4f7 | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Incident",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
},
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Requirement",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
]
Status Code
200 - OK
Example - Get all external system links filtered by type
An example of fetching a set of external system links by type and project Id, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {systemId} | b5ee119f-bc44-4b3c-befe-919f2fe3f4f7 | |
| $filter | Type eq 'Incident' AND ProjectId eq '3AFBE0DD-55CA-419E-B75D-D21C821D7281' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Type%20eq%20'Incident'%20AND%20Project%20eq%20'3AFBE0DD-55CA-419E-B75D-D21C821D7281' |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"ExternalSystemId": "b5ee119f-bc44-4b3c-befe-919f2fe3f4f7",
"ProjectId": "3afbe0dd-55ca-419e-b75d-d21c821d7281",
"Id": "a01fc7ed-3492-4792-9a0b-e2b52fa10913",
"Type": "Incident",
"Name": "Project X",
"Enabled": false,
"LastSynchronizedAt": "2012-01-02T03:04:07Z",
"LastDestinationToSourceSynchronizationAt": "2012-01-02T03:04:05Z",
"LastSourceToDestinationSynchronizationAt": "2012-01-02T03:04:06Z",
"Self": "http://localhost/api/externalsystemlink/a01fc7ed-3492-4792-9a0b-e2b52fa10913"
}
]
Status Code
200 - OK
Resource: Grid Widget Data ( /api/gridwidget/{widgetType}/data/{dataName} )
Allows the retrieval of data for a grid widget.
Methods
POST
Retrieves the data set for a grid widget.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if widget type was invalid. |
Example - POST
Retrieve a set of data (by name) for a type of grid widget. Note: this is a POST rather than a GET request, because a large amount of contextual state must be passed in for this operation to complete.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {widgetType} | RunStatusesGroupedByFieldForAutomatedRuns | Type of widget to return data from. |
| {dataName} | results | The name of the data set to retrieve (data may be retrieved for displaying on the widget, or for populating additional metadata required for configuring the widget). |
Request Body
{
"IndexName": "Run",
"AllowableTypes": [
"AutomatedTestRun",
"ScriptRun",
"AgileRun"
],
"BaseQuery": "AssignmentID = 2d8d6b25-0203-4595-9903-1325bcd85948",
"ProjectId": "cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133",
"PackageId": "df3097c2-0777-4156-9186-d321e9611481",
"PackageType": "ExecutionPackage",
"Query": "ORDER BY CreatedAt DESC",
"Selections": [
{
"Id": "482c3531-1781-42ae-b084-7369964e674a",
"Type": "AutomatedTestRun"
},
{
"Id": "281850fd-cf28-484c-b88a-e4ff43b49e27",
"Type": "AgileRun"
}
],
"TimeZone": "America/New_York",
"Parameters": {
"groupingType": "Field",
"groupingField": "RunNumber"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Data": {
"Results": [
{
"Key": "1",
"InProgress": 0,
"Undetermined": 0,
"Errors": 0,
"Failed": 167,
"NotRun": 0,
"Passed": 2588,
"Skipped": 3,
"Warnings": 0,
"Blocked": 0
}
]
}
}
Status Code
0 - 0
Resource: Grid Widget State ( /api/gridwidgethost/{hostId}/project/{projectId}/position/{position} )
Allows retrieval of state information for a grid widget at a specified position within a widget host for the combination of current user and a specific project.
Methods
GET
Retrieves the states of a widget at a specified position associated with a widget host for the current user and selected project.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if a position was not specified. |
| 404 - NotFound | Returned if project or position does not exist. |
Example - GET
Retrieve state of widget at specific position.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {hostId} | automated_test_run_summary | ID of the host for the set of grid widgets. |
| {projectId} | cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133 | Unique ID of project the grid widgets are being displayed for. |
| {position} | right | The position of the widget within the grid widget host (current valid values are 'left' and 'right'). |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Position": "right",
"WidgetType": "RunStatusesGroupedByFieldForAutomatedRuns",
"Data": {
"groupingType": "Field",
"groupingField": "RunNumber"
},
"Self": "http://localhost/api/gridwidgethost/automated_test_run_summary/project/cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133/position/right"
}
Status Code
200 - OK
PUT
Sets the state of a widget at a specified position associated with a widget host for the current user and selected project.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if a position was not specified. |
| 404 - NotFound | Returned if widget type was invalid. |
Example - PUT
Update state of widget at specific position.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {hostId} | automated_test_run_summary | ID of the host for the set of grid widgets. |
| {projectId} | cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133 | Unique ID of project the grid widgets are being displayed for. |
| {position} | right | The position of the widget within the grid widget host (current valid values are 'left' and 'right'). |
Request Body
{
"Position": null,
"WidgetType": "RunStatusesGroupedByFieldForAutomatedRuns",
"Data": {
"groupingType": "Field",
"groupingField": "RunNumber"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Position": "right",
"WidgetType": "RunStatusesGroupedByFieldForAutomatedRuns",
"Data": {
"groupingType": "Field",
"groupingField": "RunNumber"
},
"Self": "http://localhost/api/gridwidgethost/automated_test_run_summary/project/cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133/position/right"
}
Status Code
200 - OK
Resource: Grid Widget States ( /api/gridwidgethost/{hostId}/project/{projectId}/positions )
Grid widget states allow the retrieval of state information for all widgets associated with a Widget host ID.
Methods
GET
Retrieves the states of all widgets associated with a widget host for the current user and selected project.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if project does not exist. |
Example - GET
Retrieves the states of all widgets associated with a widget host.
Request Headers
| Key | Value | Description |
|---|
| Content-type | application/json | |
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {hostId} | automated_test_run_summary | ID of the host for the set of grid widgets. |
| {projectId} | cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133 | Unique ID of project the grid widgets are being displayed for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"HostId": "automated_test_run_summary",
"Positions": {
"left": {
"Position": "left",
"WidgetType": "RunStatusOverTime",
"Data": {
"selections": [
"ScriptRun",
"AgileRun"
]
},
"Self": "http://localhost/api/gridwidgethost/automated_test_run_summary/project/cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133/position/left"
},
"right": {
"Position": "right",
"WidgetType": "RunStatusesGroupedByFieldForAutomatedRuns",
"Data": {
"groupingType": "Field",
"groupingField": "RunNumber"
},
"Self": "http://localhost/api/gridwidgethost/automated_test_run_summary/project/cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133/position/right"
}
},
"Self": "http://localhost/api/gridwidgethost/automated_test_run_summary/project/cdd1a0cf-2cd1-4f9a-8513-a9a2fc74d133/positions"
}
Status Code
200 - OK
Resource: Group ( /api/group/{id} )
Allows the retrieval of details for an individual group.
Methods
DELETE
Deletes an existing group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if request could not be completed. |
| 404 - NotFound | Returned if group does not exists. |
Example - Delete Group
Example of deleting a group.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 9e1ee34b-f96f-4005-9f7a-1457df86256d | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a single group by ID.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if user does not exists. |
Example - Get Group
Example of fetching a group
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 9e1ee34b-f96f-4005-9f7a-1457df86256d | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
Status Code
200 - OK
PUT
Updates an existing group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if request contained invalid data or would cause a conflict with an existing group record. |
| 404 - NotFound | Returned if group does not exists. |
Example - Update Group
Example of updating group.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 9e1ee34b-f96f-4005-9f7a-1457df86256d | |
Request Body
{
"Id": null,
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
Status Code
200 - OK
Resource: Group Permission Projects ( /api/group/{id}/permissions/projects )
Returns links to the set of project group permissions resources
Methods
GET
Retrieves a set of links, one for each project, which can be used to manage the project group permissions for this group.
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the group does not exist. |
Example - Retrieve project permission links
Retrieve a set of links for managing this groups permissions associated with each project
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to retrieve project permission links for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Projects": [
{
"ProjectId": "4feb1531-77eb-4393-918f-ed17bc5e12d7",
"Self": "http://localhost/api/group/3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9/permissions/project/4feb1531-77eb-4393-918f-ed17bc5e12d7",
"Links": [
{
"Title": "Project X",
"Href": "http://localhost/api/project/4feb1531-77eb-4393-918f-ed17bc5e12d7",
"Rel": "Project"
}
]
},
{
"ProjectId": "e1a9644c-9d20-44a8-847f-eabff527cebc",
"Self": "http://localhost/api/group/3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9/permissions/project/e1a9644c-9d20-44a8-847f-eabff527cebc",
"Links": [
{
"Title": "Project Y",
"Href": "http://localhost/api/project/e1a9644c-9d20-44a8-847f-eabff527cebc",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/group/3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9/permissions/projects"
}
Status Code
200 - OK
Resource: Group Permissions ( /api/group/{id}/permissions/global )
Global Group Permissions resource - allows the retrieval of the collection of global permissions directly associated with a group, or updating the permissions associated with a group.
Methods
GET
Retrieves the global permissions for this group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the group does not exist. |
Example - Retrieve global permissions
Retrieve the global permissions associated with a group
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to retrieve global permissions for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
PUT
Sets the global permissions for this group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if one or more permissions could not be resolved. |
| 404 - NotFound | Returned if the group does not exist. |
Example - Set global permissions
Set the global permissions for a group (using the unique ID for each permission)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to retrieve global permissions for |
Request Body
[
{
"Key": null,
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22"
},
{
"Key": null,
"Id": "fad12035-4937-401a-881a-ea340050218e"
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Example - Set global permissions
Set the global permissions for a group (using the unique Key for each permission)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to retrieve global permissions for |
Request Body
[
{
"Key": "/Administration",
"Id": null
},
{
"Key": "/Resources",
"Id": null
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Resource: Group Users ( /api/group/{id}/users )
Collection resource of users belonging to a group.
Methods
GET
Retrieves all (or a subset) of users in a group.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if group does not exist. |
Example - Get All Users
An example of fetching all users in group.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 0832C85F-E532-472F-92E1-287995CE3726 | ID of the group |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "00000000-0000-0000-0000-000000000000",
"UserName": "joeb",
"Email": "joeb@unknown.net",
"FirstName": "Joe",
"LastName": "Bloggs",
"Phone": "(09)-555-999",
"LastLogIn": null,
"Self": "http://localhost/api/user/00000000-0000-0000-0000-000000000000",
"Links": [
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/mailmessages",
"Rel": "MailMessages"
}
]
},
{
"Id": "00000000-0000-0000-0000-000000000000",
"UserName": "janed",
"Email": "janed@unknown.net",
"FirstName": "Jane",
"LastName": "Doe",
"Phone": "(09)-555-999",
"LastLogIn": null,
"Self": "http://localhost/api/user/00000000-0000-0000-0000-000000000000",
"Links": [
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/mailmessages",
"Rel": "MailMessages"
}
]
}
]
Status Code
200 - OK
Example - Get Users filtered by first name
An example of fetching a set of users by first name belonging to the group, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 0832C85F-E532-472F-92E1-287995CE3726 | ID of the group |
| $filter | FirstName eq 'Jane' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=FirstName%20eq%20'Jane'. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "00000000-0000-0000-0000-000000000000",
"UserName": "janed",
"Email": "janed@unknown.net",
"FirstName": "Jane",
"LastName": "Doe",
"Phone": "(09)-555-999",
"LastLogIn": null,
"Self": "http://localhost/api/user/00000000-0000-0000-0000-000000000000",
"Links": [
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/mailmessages",
"Rel": "MailMessages"
}
]
}
]
Status Code
200 - OK
PUT
Sets the users that are members of the group.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if group does not exist. |
Example - Set Members
Sets the users who are members of this group.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 0832C85F-E532-472F-92E1-287995CE3726 | ID of the group |
Request Body
{
"Items": [
{
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Id": "00000000-0000-0000-0000-000000000000"
}
]
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "00000000-0000-0000-0000-000000000000",
"UserName": "joeb",
"Email": "joeb@unknown.net",
"FirstName": "Joe",
"LastName": "Bloggs",
"Phone": "(09)-555-999",
"LastLogIn": null,
"Self": "http://localhost/api/user/00000000-0000-0000-0000-000000000000",
"Links": [
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/mailmessages",
"Rel": "MailMessages"
}
]
},
{
"Id": "00000000-0000-0000-0000-000000000000",
"UserName": "janed",
"Email": "janed@unknown.net",
"FirstName": "Jane",
"LastName": "Doe",
"Phone": "(09)-555-999",
"LastLogIn": null,
"Self": "http://localhost/api/user/00000000-0000-0000-0000-000000000000",
"Links": [
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/00000000-0000-0000-0000-000000000000/mailmessages",
"Rel": "MailMessages"
}
]
}
]
Status Code
200 - OK
Resource: Groups ( /api/groups )
Allows the search and retrieval of groups.
Root Relation: Groups
Methods
GET
Retrieves all (or a subset) of groups.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get All Groups
An example of fetching all groups.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "Admins",
"Description": "System Administrators",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
},
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
]
Status Code
200 - OK
Example - Get Groups filtered by group name
An example of fetching a set of groups filtered by name, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Name eq 'QA' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Name%20eq%20'QA' . |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
]
Status Code
200 - OK
POST
Create a new group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if request contained invalid data or would cause a conflict with an existing group record. |
| 404 - NotFound | Returned if group does not exists. |
Example - Create new group
Create a new group.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Id": null,
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
| Location | http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d | |
Response Body
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "QA",
"Description": "QA Team (Testers + Test Managers)",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
Status Code
201 - Created
Resource: Groups Search ( /api/groupssearch )
Allows the searching of groups by partial match.
Root Relation: GroupsSearch
Methods
GET
Searches for groups by partial name match
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the group request was able to be satisfied. |
Example - Search for groups
An example of fetching all groups.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 8E064E7A-847F-4853-AFFF-2CD1803664D7 | The ID of the user to fetch group membership for |
| query | ad | Partial name to search for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 1,
"Items": [
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "Admins",
"Description": "System Administrators",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
]
}
Status Code
200 - OK
POST
Searches for groups by partial name match (using POST to allow large existing value queries)
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the group request was able to be satisfied. |
Example - Search for groups
An example of fetching all groups.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 8E064E7A-847F-4853-AFFF-2CD1803664D7 | The ID of the user to fetch group membership for |
| query | ad | Partial name to search for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 1,
"Items": [
{
"Id": "9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Name": "Admins",
"Description": "System Administrators",
"Self": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d",
"Links": [
{
"Title": "Members",
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/users",
"Rel": "Users"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Href": "http://localhost/api/group/9e1ee34b-f96f-4005-9f7a-1457df86256d/permissions/projects",
"Rel": "ProjectPermissions"
}
]
}
]
}
Status Code
200 - OK
Resource: Incident ( /api/incident/{id} )
Incident resource
Methods
DELETE
Delete a incident.
Required Permissions
- TestManagement/ExecuteTests
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the permissions required to delete the incident have not been met. |
| 404 - NotFound | Returned if incident does not exist. |
Example - DELETE
Delete an incident.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the incident to update. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a single incident by its unique Identifier.
Required Permissions
Supported Expansions
- FieldControls
- FieldValues
- Project
- Comments
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this incident. |
| 404 - NotFound | Returned if no incident with that identifier exists. |
Example - GET
Retrieves incident by its unique identifier
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the incident to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": [
"2b86c434-bdfa-467a-a944-1f3ac05a83cb"
],
"FixedVersionIds": [
"93588d80-b8cd-465a-847c-b14fa2dee0b8",
"c09e7115-c55f-4899-856c-1b861143f78b"
],
"ComponentIds": [
"71917512-da95-4a24-9eb9-b7a6ba9f7346"
],
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project",
"Comments"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
200 - OK
PUT
Updates an existing incident.
Required Permissions
- TestManagement/ExecuteTests
Supported Expansions
- FieldControls
- FieldValues
- Project
- Comments
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
| 404 - NotFound | Returned if the incident does not exist. |
Example - PUT (rename incident)
Example of renaming a incident.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the incident to update. |
Request Body
{ "Name": "Updated name" }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Updated name",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": [
"2b86c434-bdfa-467a-a944-1f3ac05a83cb"
],
"FixedVersionIds": [
"93588d80-b8cd-465a-847c-b14fa2dee0b8",
"c09e7115-c55f-4899-856c-1b861143f78b"
],
"ComponentIds": [
"71917512-da95-4a24-9eb9-b7a6ba9f7346"
],
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project",
"Comments"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
200 - OK
Example - PUT (move incident to new package)
Example of moving an incident to a new package.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the incident to move. |
Request Body
{ "PackageId": "daa396d6-ad7d-4acf-a6c5-40551a70f79" }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Updated name",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": [
"2b86c434-bdfa-467a-a944-1f3ac05a83cb"
],
"FixedVersionIds": [
"93588d80-b8cd-465a-847c-b14fa2dee0b8",
"c09e7115-c55f-4899-856c-1b861143f78b"
],
"ComponentIds": [
"71917512-da95-4a24-9eb9-b7a6ba9f7346"
],
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project",
"Comments"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
200 - OK
Example - PUT (full update)
Example of updating an existing Incident with most fields populated (including custom fields and comments) - Note: when performing a PUT or POST that includes comments, the comments Expand will be automatically applied to the response.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the incident to update. |
| $expand | FieldValues | Expand field (we expand the FieldValues to ensure we get it back in the response to creating a new incident. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"TemporaryId": "6cc26034-6514-44e0-907c-8f4f5eaa85b5",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Number": 22,
"Summary": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"EstimatedDuration": "5m",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"Description": "description",
"Comments": [
{
"Body": "This bug also affects grid pagination on some screens."
}
],
"FieldControlValues": null,
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "My New Incident",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "description",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": [
"2b86c434-bdfa-467a-a944-1f3ac05a83cb"
],
"FixedVersionIds": [
"93588d80-b8cd-465a-847c-b14fa2dee0b8",
"c09e7115-c55f-4899-856c-1b861143f78b"
],
"ComponentIds": [
"71917512-da95-4a24-9eb9-b7a6ba9f7346"
],
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": true,
"Expands": [
"FieldControls",
"Project"
],
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
},
"Comments": [
{
"Id": "36f8985c-040e-44e6-9340-17a5ce68a086",
"Body": "This bug also affects grid pagination on some screens.",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedByUserName": "joeb",
"TicketCommentId": null,
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedByUserName": "joeb",
"CreatedAt": "2012-02-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comment/36f8985c-040e-44e6-9340-17a5ce68a086",
"Links": [
{
"Href": "http://localhost/api/user/191375f2-ae6e-4b52-8bed-4192e34b6486",
"Rel": "CreatedBy"
},
{
"Href": "http://localhost/api/user/191375f2-ae6e-4b52-8bed-4192e34b6486",
"Rel": "LastUpdatedBy"
}
]
}
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
200 - OK
Resource: Incident Comments ( /api/incident/{id}/comments )
Incident comment collection resource, provides the ability to retrieve all or a subset of comments associated with an incident. Currently to add new comments to an incident, you must update the incident and include a 'Comments' child collection (see the Incident resource examples for more details).
Methods
GET
Retrieves all (or a subset) of an incident's comments.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you don't have permission to view this incident. |
| 404 - NotFound | Returned if the incident does not exist. |
Example - Get all comments
Retrieve a collection of all comments
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | a1f57de4-832f-4986-99e1-f026ea2e026f | ID of the incident to retrieve the comments for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "1e401c7a-ae50-45c2-b94e-8227eebac854",
"Body": "I have updated the priority of this to high, it's affecting all our customers",
"CreatedById": "25e9dd38-475d-483b-9c50-3fafee0389b7",
"CreatedByUserName": "joeb",
"TicketCommentId": "1234",
"LastUpdatedById": "25e9dd38-475d-483b-9c50-3fafee0389b7",
"LastUpdatedByUserName": "joeb",
"CreatedAt": "2012-03-04T10:34:22Z",
"LastUpdatedAt": "2012-03-04T10:34:22Z",
"Self": "http://localhost/api/incident/a1f57de4-832f-4986-99e1-f026ea2e026f/comment/1e401c7a-ae50-45c2-b94e-8227eebac854",
"Links": [
{
"Href": "http://localhost/api/user/25e9dd38-475d-483b-9c50-3fafee0389b7",
"Rel": "CreatedBy"
},
{
"Href": "http://localhost/api/user/25e9dd38-475d-483b-9c50-3fafee0389b7",
"Rel": "LastUpdatedBy"
}
]
},
{
"Id": "2aa4900c-e022-4abd-9e3b-ed764f286867",
"Body": "Issue is now resolved in feature branch - requires further testing before being released to production.",
"CreatedById": "25e9dd38-475d-483b-9c50-3fafee0389b7",
"CreatedByUserName": "joeb",
"TicketCommentId": "1320",
"LastUpdatedById": "25e9dd38-475d-483b-9c50-3fafee0389b7",
"LastUpdatedByUserName": "joeb",
"CreatedAt": "2012-04-05T12:11:10Z",
"LastUpdatedAt": "2012-04-05T12:11:10Z",
"Self": "http://localhost/api/incident/a1f57de4-832f-4986-99e1-f026ea2e026f/comment/2aa4900c-e022-4abd-9e3b-ed764f286867",
"Links": [
{
"Href": "http://localhost/api/user/25e9dd38-475d-483b-9c50-3fafee0389b7",
"Rel": "CreatedBy"
},
{
"Href": "http://localhost/api/user/25e9dd38-475d-483b-9c50-3fafee0389b7",
"Rel": "LastUpdatedBy"
}
]
}
]
}
Status Code
200 - OK
Resource: Incident Relationships ( /api/incident/{id}/relationships )
A resource representing the set of relationships belonging to the Incident.
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Incident Relationships All Relationships ( /api/incident/{id}/allrelationships )
A resource representing the set of relationships belonging to the Incident (includes the full graph of related entities, not just those which can be reached through destination and source->destination directed relationships).
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Incidents ( /api/incidents )
Incidents collection resource
Root Relation: Incidents
Methods
GET
Retrieves all (or a subset) of incidents that are visible.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
- FieldControls
- FieldValues
- Project
- Comments
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET would not complete request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
Example - GET (filtered by TQL Query)
Retrieves all incidents matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | Maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": null,
"FixedVersionIds": null,
"ComponentIds": null,
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/incidents?tql=Name~'Report'&$top=5&$skip=0"
}
Status Code
200 - OK
Example - GET (no filter)
Retrieves all incidents.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $top | 5 | Maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 2,
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": null,
"FixedVersionIds": null,
"ComponentIds": null,
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
},
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "Login",
"AssignedToId": null,
"AssignedTo": null,
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": null,
"FixedVersionIds": null,
"ComponentIds": null,
"CreatedAt": "2012-03-02T03:04:05Z",
"LastUpdatedAt": "2012-03-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/incidents?$top=5&$skip=0"
}
Status Code
200 - OK
POST
Creates a new test incident.
Required Permissions
- TestManagement/ExecuteTests
Supported Expansions
- FieldControls
- FieldValues
- Project
- Comments
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Create Incident with minimum required fields
Example of creating a new incident with the minimum required information.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Summary": "My New Incident",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"FieldControlValues": null,
"FieldValues": null
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "My New Incident",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": null,
"FixedVersionIds": null,
"ComponentIds": null,
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Project"
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
201 - Created
Example - Create Incident with most fields populated
Example of creating an new Incident with most fields populated (including custom fields and comments) - Note: when performing a PUT or POST that includes comments, the comments Expand will be automatically applied to the response.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $expand | FieldValues | Expand field (we expand the FieldValues to ensure that they are included in the response to creating a new incident. |
Request Body
{
"TemporaryId": "6cc26034-6514-44e0-907c-8f4f5eaa85b5",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Number": 22,
"Summary": "My New Incident",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"EstimatedDuration": "5m",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"Description": "description",
"Comments": [
{
"Body": "This bug needs to be resolved before the next release."
}
],
"FieldControlValues": null,
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
}
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Summary": "My New Incident",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "description",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"ResolutionId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"AffectedVersionIds": null,
"FixedVersionIds": null,
"ComponentIds": null,
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"IncidentNumber": 0,
"InternalId": null,
"HasAttachments": true,
"Expands": [
"FieldControls",
"Project"
],
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
},
"Comments": [
{
"Id": "36f8985c-040e-44e6-9340-17a5ce68a086",
"Body": "This bug needs to be resolved before the next release.",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedByUserName": "joeb",
"TicketCommentId": null,
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedByUserName": "joeb",
"CreatedAt": "2012-02-03T04:05:06Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comment/36f8985c-040e-44e6-9340-17a5ce68a086",
"Links": [
{
"Href": "http://localhost/api/user/191375f2-ae6e-4b52-8bed-4192e34b6486",
"Rel": "CreatedBy"
},
{
"Href": "http://localhost/api/user/191375f2-ae6e-4b52-8bed-4192e34b6486",
"Rel": "LastUpdatedBy"
}
]
}
],
"Self": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/incident/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
},
{
"Href": "http://localhost/api/project/27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"Rel": "Project"
}
]
}
Status Code
201 - Created
Resource: Mail Queue Messages ( /api/mailqueue/messages )
Allows the retrieval of messages awaiting delivery in the mail queue (collection resource)
Root Relation: MailQueueMessages
Methods
GET
Retrieves mail messages queued for delivery.
Required Permissions
- Administration/Organisation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to retrieve items in the mail queue. |
Example - Get page of mail messages
Example of fetching the first page of mail messages
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $skip | 0 | |
| $top | 25 | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Id": "abfa25fc-87ef-4a6a-8320-c933b5d3c8c7",
"EnqueuedAt": "2013-01-02T03:04:05Z",
"Subject": "This is the subject (title) of the email",
"Body": "This is the body of the email",
"To": [
{
"Address": "joeb@test.com",
"Name": "Joe Bloggs"
}
],
"Self": "http://localhost/api/mailqueue/message/abfa25fc-87ef-4a6a-8320-c933b5d3c8c7"
},
{
"Id": "66181f42-02b5-44a8-988b-13ad5e8deb80",
"EnqueuedAt": "2013-01-02T03:04:06Z",
"Subject": "This is the subject (title) of another email message",
"Body": "This is another email message body\r\nThat spans\r\nMultiple lines",
"To": [
{
"Address": "joeb@test.com",
"Name": "Joe Bloggs"
},
{
"Address": "janed@test.com",
"Name": "Jane Doe"
}
],
"Self": "http://localhost/api/mailqueue/message/66181f42-02b5-44a8-988b-13ad5e8deb80"
}
],
"Self": "http://localhost/api/api/mailqueue/messages?$skip=0&$top=25"
}
Status Code
200 - OK
Resource: Mail Sender Settings ( /api/mailsender/default/settings )
Allows the retrieval of the mail sender (using SMTP) settings that Enterprise Tester will use when sending e-mail notifications.
Root Relation: DefaultMailsenderSettings
Methods
GET
Retrieves default mail sender settings.
Required Permissions
- Administration/Organisation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to retrieve the mail sender settings. |
Example - Get SMTP settings
Example of fetching current mail sender (SMTP) settings
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Enabled": true,
"Type": "SMTP",
"FromAddress": "noreply@corp.com",
"EmailPrefix": "[ET]",
"HostName": "smtp.corp.com",
"Port": null,
"Timeout": 10000,
"SSL": true,
"UserName": "etmail",
"Password": "etpwd"
}
Status Code
200 - OK
PUT
Updates default mail sender settings
Required Permissions
- Administration/Organisation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to update the mail sender settings. |
Example - Update SMTP settings
Example of updating smtp settings for application.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Enabled": true,
"Type": "SMTP",
"FromAddress": "noreply@corp.com",
"EmailPrefix": "[ET]",
"HostName": "smtp.corp.com",
"Port": null,
"Timeout": 10000,
"SSL": true,
"UserName": "etmail",
"Password": "etpwd"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Enabled": true,
"Type": "SMTP",
"FromAddress": "noreply@corp.com",
"EmailPrefix": "[ET]",
"HostName": "smtp.corp.com",
"Port": null,
"Timeout": 10000,
"SSL": true,
"UserName": "etmail",
"Password": "etpwd"
}
Status Code
200 - OK
Resource: Notification ( /api/user/{userId}/notification/{notificationId} )
Resource representing a single notification message for a user.
Methods
DELETE
Deletes a single notification message
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to delete notifications for this user. |
| 404 - NotFound | Returned if notification message was not found. |
Example - Delete a notification message
Removes a notification from the users collection of in-app notifications
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 32B00F17-D492-4DAD-AD6A-DEBD61EFA119 | ID of the user whose in-box the notification belongs to. |
| {notificationId} | 2E2A2B7F-EEEA-4649-8F34-4A841426F27B | ID of the notification message |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves information about a single notification message.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view notifications for this user. |
| 404 - NotFound | Returned if notification message was not found. |
Example - Get individual notification
Retrieves a notification identified by it's user and notification identifier
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 32B00F17-D492-4DAD-AD6A-DEBD61EFA119 | ID of the user whose in-box the notification belongs to. |
| {notificationId} | 2E2A2B7F-EEEA-4649-8F34-4A841426F27B | ID of the notification message |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"OccurredAt": "2012-01-02T03:04:05Z",
"Id": "2e2a2b7f-eeea-4649-8f34-4a841426f27b",
"HtmlSummary": "Joe Bloggs has created requirement 'All close buttons should be red'",
"Viewed": false,
"IconClass": "requirement-icon",
"IconTitle": "Requirement",
"Self": "http://localhost/api/user/32b00f17-d492-4dad-ad6a-debd61efa119/notification/2e2a2b7f-eeea-4649-8f34-4a841426f27b"
}
Status Code
200 - OK
PATCH
Patch an existing notification message (Allows updating the Viewed property)
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to mark this notification message as being viewed. |
Example - Patch notification's 'Viewed' property
Marks the notification as having been viewed by the user (will cause message to be displayed in grey color within the in-app notifications inbox)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 32B00F17-D492-4DAD-AD6A-DEBD61EFA119 | ID of the user whose in-box the notification belongs to. |
| {notificationId} | 2E2A2B7F-EEEA-4649-8F34-4A841426F27B | ID of the notification message |
Request Body
{
"Viewed": true
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"OccurredAt": "2012-01-02T03:04:05Z",
"Id": "2e2a2b7f-eeea-4649-8f34-4a841426f27b",
"HtmlSummary": "Joe Bloggs has created requirement 'All close buttons should be red'",
"Viewed": true,
"IconClass": "requirement-icon",
"IconTitle": "Requirement",
"Self": "http://localhost/api/user/32b00f17-d492-4dad-ad6a-debd61efa119/notification/2e2a2b7f-eeea-4649-8f34-4a841426f27b"
}
Status Code
200 - OK
Resource: Notifications ( /api/user/{userId}/notifications )
Resource representing the collection of notification messages for a user.
Methods
DELETE
Clears all notifications for the user
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to delete notifications for this user. |
Example - Delete all notifications
Deletes all notifications for a user (allows immediately clearing of all notifications, both read and unread).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 3BB1CDC3-2ADB-46C3-B5E3-7A6208A8E10D | Unique identifier of the User |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves notification messages for a user.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view notifications for this user. |
Example - Retrieve notifications for user
Retrieve the notifications for a user (read and un read) ordered in Date descending order
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | f545f3ae-f35c-4677-b516-c5c740f2a8cf | Unique identifier of the User |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"OccurredAt": "2012-11-12T04:38:00Z",
"Id": "386429b0-5b4f-4422-ac09-a1070122baee",
"HtmlSummary": "Joe Blogs deleted Requirement 'Weapons must use antimater'",
"Viewed": true,
"IconClass": "requirement-icon",
"IconTitle": "Requirement",
"Self": "http://localhost/api/user/f545f3ae-f35c-4677-b516-c5c740f2a8cf/notification/386429b0-5b4f-4422-ac09-a1070122baee"
},
{
"OccurredAt": "2012-11-12T04:37:23Z",
"Id": "71f38117-f39e-48f7-a3d4-7486047ac199",
"HtmlSummary": "Joe Blogs updated Requirement '<a href=\"http://myserver/EnterpriseTester/home#/requirement/edit/8f5a4b01-ef57-4910-b1a2-a10101632917\">Weapons must use anti-matter</a>'",
"Viewed": false,
"IconClass": "requirement-icon",
"IconTitle": "Requirement",
"Self": "http://localhost/api/user/f545f3ae-f35c-4677-b516-c5c740f2a8cf/notification/71f38117-f39e-48f7-a3d4-7486047ac199"
}
],
"UnviewedTotal": 1,
"Self": "http://localhost/api/api/user/F545F3AE-F35C-4677-B516-C5C740F2A8CF/notifications"
}
Status Code
200 - OK
POST
Create a new notification for the user (users can create notifications for themselves without any permissions, otherwise Administrative permissions are required for the organisation)
Required Permissions
- Administration/Organisation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create a notification for this user. |
Example - Create a new notification message for this user
Creates a new notification message for this user
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | f545f3ae-f35c-4677-b516-c5c740f2a8cf | Unique identifier of the User |
Request Body
{
"HtmlSummary": "Reminder - <a href=\"http://mywiki/projectx?page=sprint1\" target=\"_blank\">Sprint 1</a> finishes tomorrow!"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"OccurredAt": "2012-11-12T04:37:23Z",
"Id": "2fba775e-c8f7-468d-9ad2-e9f4f6631130",
"HtmlSummary": "Reminder - <a href=\"http://mywiki/projectx?page=sprint1\" target=\"_blank\">Sprint 1</a> finishes tomorrow!",
"Viewed": false,
"IconClass": "notification-message-icon",
"IconTitle": "Alert",
"Self": "http://localhost/api/user/f545f3ae-f35c-4677-b516-c5c740f2a8cf/notification/2fba775e-c8f7-468d-9ad2-e9f4f6631130"
}
Status Code
201 - Created
Resource: Organisation ( /api/organisation/{id} )
Resource representing a single organisation. Currently Enterprise Tester only supports a single organisation, so the unique orgranisation identifier can be omitted to return the default project when interacting with this resource.
Methods
GET
Retrieves information about a single organisation.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if organisation was not found. |
Example - Get organisation by ID
Retrieve organisation identified by its unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | A84DE3D2-6B49-41C4-AD1D-C937338B0E31 | Unique identifier of organisation. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Name": "Acme Inc",
"OrderNumber": 1,
"ShortDescription": "Acme Inc make products",
"LongDescription": "Acme Inc make products large and small, for many verticals and horizontals.",
"IndustryType": "Generics",
"Expands": [
"Components",
"IncidentResolutions",
"IncidentStatuses",
"IncidentTypes",
"Priorities",
"ProjectCategories",
"Projects",
"RequirementDifficulties",
"RequirementStatuses",
"RequirementTypes",
"Statuses",
"TestTypes",
"Versions"
],
"Self": "http://localhost/api/organisation/a84de3d2-6b49-41c4-ad1d-c937338b0e31"
}
Status Code
200 - OK
Example - Get default organisation
Retrieves the default organisation by omitting any unique identifier (Currently all Enterprise Tester installations have a maximum of 1 organisation, so this will return the only organisation).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Name": "Acme Inc",
"OrderNumber": 1,
"ShortDescription": "Acme Inc make products",
"LongDescription": "Acme Inc make products large and small, for many verticals and horizontals",
"IndustryType": "Generics",
"Expands": [
"Components",
"IncidentResolutions",
"IncidentStatuses",
"IncidentTypes",
"Priorities",
"ProjectCategories",
"Projects",
"RequirementDifficulties",
"RequirementStatuses",
"RequirementTypes",
"Statuses",
"TestTypes",
"Versions"
],
"Self": "http://localhost/api/organisation/a84de3d2-6b49-41c4-ad1d-c937338b0e31"
}
Status Code
200 - OK
PUT
Update details for an organisation.
Required Permissions
- Administration/Organisation/ManageOrganisation
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if request can not be satisified (invalid values, or insufficient permissions). |
| 404 - NotFound | Returned if organisation was not found. |
Example - Update organisation details
Update organisation details.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "XYZ Corp",
"OrderNumber": 2,
"ShortDescription": "XYZ Corp integrate systems",
"LongDescription": "XYZ Corp can integrate any X with any Y to make a Z",
"IndustryType": "Integration"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Name": "XYZ Corp",
"OrderNumber": 2,
"ShortDescription": "XYZ Corp integrate systems",
"LongDescription": "XYZ Corp can integrate any X with any Y to make a Z",
"IndustryType": "Integration",
"Expands": [
"Components",
"IncidentResolutions",
"IncidentStatuses",
"IncidentTypes",
"Priorities",
"ProjectCategories",
"Projects",
"RequirementDifficulties",
"RequirementStatuses",
"RequirementTypes",
"Statuses",
"TestTypes",
"Versions"
],
"Self": "http://localhost/api/organisation/a84de3d2-6b49-41c4-ad1d-c937338b0e31"
}
Status Code
200 - OK
Resource: Organisation Picklist ( /api/organisation/{organisationId}/picklist/{type} )
Used to retrieve the picklist values associated with an organisation (values which are copied/inherited into new projects)
Methods
GET
Retrieve picklist values specific to a project.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 404 - NotFound | Returned if the project does not exist. |
Example - Retrieve all picklist values
Retrieve all picklist value for the picklist 'Priority'.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the organisation related to the picklist values. |
| {type} | Priority | The picklist type e.g. RequirementType,RequirementStatus,Priority,RequirementDifficulty etc. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
},
{
"Id": "fb82918b-cb0e-4c38-b994-bc35f469d020",
"Text": "Medium",
"SortOrder": 1,
"Self": "http://localhost/api/project/priority/fb82918b-cb0e-4c38-b994-bc35f469d020"
},
{
"Id": "b6a3cb4d-638b-4803-9cf5-bc9830e29835",
"Text": "Low",
"SortOrder": 2,
"Self": "http://localhost/api/project/priority/b6a3cb4d-638b-4803-9cf5-bc9830e29835"
}
],
"Self": "http://localhost/api/api/organisation/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklist/Priority"
}
Status Code
200 - OK
Resource: Organisation Picklist Search ( /api/organisation/{organisationId}/picklistsearch/{type} )
Allows the searching of picklist values for an organisation by partial name match.
Methods
GET
Searches for picklist values by partial name match
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view picklist values for this project. |
| 404 - NotFound | Returned if the organisation does not exist. |
Example - Search for picklist values
Search for picklist values by partial name
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the organisation related to the picklist values. |
| {type} | Priority | The picklist type e.g. RequirementType,RequirementStatus,Priority,RequirementDifficulty etc. |
| query | H | The partial name to search for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
}
],
"Self": "http://localhost/api/api/organisation/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklistsearch/Priority?query=H"
}
Status Code
200 - OK
POST
Searches for picklist values by partial name match (using POST to allow large existing value queries)
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view picklist values for this project. |
| 404 - NotFound | Returned if the organisation does not exist. |
Example - Search for picklist values
Search for picklist values by partial name
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the organisation related to the picklist values. |
| {type} | Priority | The picklist type e.g. RequirementType,RequirementStatus,Priority,RequirementDifficulty etc. |
| query | H | The partial name to search for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
}
],
"Self": "http://localhost/api/api/organisation/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklistsearch/Priority"
}
Status Code
200 - OK
Resource: Organisation Relationship Types ( /api/organisation/{id}/relationshiptypes )
Allows retrieving of all relationship types associated with a single organisation.
Methods
GET
Retrieves all relationship types
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the organisation does not exist. |
Example - Retrieve all relationship types
Retrieves all the relationship types
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | e12cce32-7029-4083-99dd-51aed6fd8adb | ID of Organisation to fetch relationship types for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"CanCreateRelationshipsOfThisType": true,
"CanDeleteRelationshipsOfThisType": true,
"CanEditRelationshipsOfThisType": true,
"DestinationToSourceLabel": "Associated",
"SourceToDestinationLabel": "Associated",
"OrganisationId": "e12cce32-7029-4083-99dd-51aed6fd8adb",
"Key": "RequirementToRequirementAssociation",
"Name": "Association (Requirement <-> Requirement)",
"SourceEntityType": "Requirement",
"DestinationEntityType": "Requirement",
"AllowableDirections": [
{
"Id": "0",
"Name": "None"
},
{
"Id": "1",
"Name": "Source -> Destination"
},
{
"Id": "2",
"Name": "Destination -> Source"
},
{
"Id": "3",
"Name": "Source <-> Destination"
}
],
"Self": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation",
"Links": [
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb",
"Rel": "Organisation"
},
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation/relationships",
"Rel": "CreateRelationship"
}
]
},
{
"CanCreateRelationshipsOfThisType": true,
"CanDeleteRelationshipsOfThisType": true,
"CanEditRelationshipsOfThisType": false,
"DestinationToSourceLabel": "Covered By",
"SourceToDestinationLabel": "Covers",
"OrganisationId": "e12cce32-7029-4083-99dd-51aed6fd8adb",
"Key": "ScriptToRequirementCoverage",
"Name": "Coverage (TestScript <-> Requirement)",
"SourceEntityType": "TestScript",
"DestinationEntityType": "Requirement",
"AllowableDirections": [
{
"Id": "1",
"Name": "Source -> Destination"
}
],
"Self": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/ScriptToRequirementCoverage",
"Links": [
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb",
"Rel": "Organisation"
},
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/ScriptToRequirementCoverage/relationships",
"Rel": "CreateRelationship"
}
]
}
]
}
Status Code
200 - OK
Resource: Organisations ( /api/organisations )
Organisations (collection) resource
Root Relation: Organisations
Methods
GET
Retrieves a list of all organisations.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get all organisations
Retrieves all organisations.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Name": "Acme Inc",
"OrderNumber": 1,
"ShortDescription": "Acme Inc make products",
"LongDescription": "Acme Inc make products large and small, for many verticals and horizontals",
"IndustryType": "Generics",
"Expands": [
"Components",
"IncidentResolutions",
"IncidentStatuses",
"IncidentTypes",
"Priorities",
"ProjectCategories",
"Projects",
"RequirementDifficulties",
"RequirementStatuses",
"RequirementTypes",
"Statuses",
"TestTypes",
"Versions"
],
"Self": "http://localhost/api/organisation/a84de3d2-6b49-41c4-ad1d-c937338b0e31"
}
]
}
Status Code
200 - OK
Resource: Permission ( /api/permission/{id} )
Permission resource.
Methods
GET
Retrieves a permission by it's unique ID.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Retrieve a permission (and all it's children)
Returns a single permission identified by it's unique ID
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 16342c78-d2ec-4436-a9c3-aaa105cafda4 | Unique ID of the permission to retrieve |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "16342c78-d2ec-4436-a9c3-aaa105cafda4",
"DisplayName": "Resources",
"Key": "/Resources",
"Name": "Resources",
"Children": [
{
"Id": "38d05448-09f7-4a13-b091-bc271d148246",
"DisplayName": "Resources -> External Links",
"Key": "/Resources/ExternalLinks",
"Name": "External Links",
"Children": [],
"Self": "http://localhost/api/permission/38d05448-09f7-4a13-b091-bc271d148246"
}
],
"Self": "http://localhost/api/permission/16342c78-d2ec-4436-a9c3-aaa105cafda4"
}
Status Code
200 - OK
Resource: Permissions ( /api/permissions )
Permissions (collection) resource.
Root Relation: Permissions
Methods
GET
Retrieves list of permissions (including all child permissions).
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Retrieve all permissions
Returns a collection of all permissions (including all nested permissions)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "16342c78-d2ec-4436-a9c3-aaa105cafda4",
"DisplayName": "Resources",
"Key": "/Resources",
"Name": "Resources",
"Children": [
{
"Id": "38d05448-09f7-4a13-b091-bc271d148246",
"DisplayName": "Resources -> External Links",
"Key": "/Resources/ExternalLinks",
"Name": "External Links",
"Children": [],
"Self": "http://localhost/api/permission/38d05448-09f7-4a13-b091-bc271d148246"
}
],
"Self": "http://localhost/api/permission/16342c78-d2ec-4436-a9c3-aaa105cafda4"
},
{
"Id": "b5fee9b8-563a-4d1b-b3b0-4a0cea9cf78e",
"DisplayName": "Administration",
"Key": "/Administration",
"Name": "Administration",
"Children": [],
"Self": "http://localhost/api/permission/b5fee9b8-563a-4d1b-b3b0-4a0cea9cf78e"
}
]
}
Status Code
200 - OK
Resource: Project ( /api/project/{id} )
Represents a project within Enterprise Tester
Methods
GET
Retrieves information about a single project
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this project. |
Example - Get Project
Example of fetching a single project (no expansions)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| id | EB06E5D8-F774-4B0F-A95C-A911C13527A9 | Unique GUID identifier of the project |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Test Project",
"OrganisationId": "41930a0d-0d44-4a82-a9de-e2c25780130b",
"OrganisationName": "Acme Inc",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "test-project",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
}
Status Code
200 - OK
Example - Get Project (with expansions)
Example of fetching a single project (with Priority and Status picklists expanded).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | EB06E5D8-F774-4B0F-A95C-A911C13527A9 | Unique GUID identifier of the project. |
| $expand | Priorities,Statuses | Expand properties to eager fetch. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Test Project",
"OrganisationId": "41930a0d-0d44-4a82-a9de-e2c25780130b",
"OrganisationName": "Acme Inc",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "test-project",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Priorities": [
{
"Id": "6b1e46f4-8b59-4dc3-8ed1-0b3b89612e34",
"Text": "Low",
"SortOrder": 1,
"Self": "http://localhost/api/project/priority/6b1e46f4-8b59-4dc3-8ed1-0b3b89612e34"
},
{
"Id": "5d37d6a1-6b1d-4007-8fcf-2c5296af3740",
"Text": "High",
"SortOrder": 2,
"Self": "http://localhost/api/project/priority/5d37d6a1-6b1d-4007-8fcf-2c5296af3740"
}
],
"Statuses": [
{
"Id": "753387d7-0a67-45bd-8b96-a58791c283bb",
"Text": "Draft",
"SortOrder": 1,
"Self": "http://localhost/api/project/status/753387d7-0a67-45bd-8b96-a58791c283bb"
},
{
"Id": "023b39dc-31a3-4bb6-bf01-69da23de5d3f",
"Text": "Final",
"SortOrder": 2,
"Self": "http://localhost/api/project/status/023b39dc-31a3-4bb6-bf01-69da23de5d3f"
}
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
}
Status Code
200 - OK
PUT
Update an existing project.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the project was updated successfully. |
| 403 - Forbidden | Returned if the user does not have permission to update a project. |
| 404 - NotFound | Returned if the project does not exist. |
| 409 - Conflict | Returned if the name for the project is in use (if attempting to rename the project). |
Example - Update Project
Example of updating a project
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| id | EB06E5D8-F774-4B0F-A95C-A911C13527A9 | Unique GUID identifier of the project |
Request Body
{
"Name": "New Name",
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"ProjectCategoryId": "b8cd5461-24af-4393-b089-c51ed25687fa",
"Description": "Updated description",
"EstimatedEndDate": "2013-01-01T00:00:00Z",
"ManagerId": "1409a902-9d1b-4afb-aa92-082ebe8eb3bf",
"AutoNumberRequirements": true,
"AutoNumberScripts": false,
"Independent": true,
"RequirementNumberReadOnly": true,
"ScriptNumberReadOnly": false,
"OrderNumber": 2,
"StartDate": "2012-01-01T00:00:00Z"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "New Name",
"OrganisationId": "41930a0d-0d44-4a82-a9de-e2c25780130b",
"OrganisationName": "Acme Inc",
"ProjectCategoryId": "b8cd5461-24af-4393-b089-c51ed25687fa",
"ProjectCategoryName": "Archived Projects",
"Description": "Updated description",
"EstimatedEndDate": "2013-01-01T00:00:00Z",
"ManagerId": "1409a902-9d1b-4afb-aa92-082ebe8eb3bf",
"ManagerUserName": "janedoe",
"Slug": "new-name",
"AutoNumberRequirements": true,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 2,
"StartDate": "2012-01-01T00:00:00Z",
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
}
Status Code
200 - OK
Resource: Project Assignees ( /api/project/{projectId}/assignees )
Allows the searching of available assignees for a project (results are sorted alphabetically).
Methods
GET
Searches for assignees by partial name match
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the search request was able to be satisfied. |
| 404 - NotFound | Returned if project does not exist. |
Example - Search for users
An example of searching for users.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | E032C596-F299-47CB-B08F-CB2EFFF60E27 | ID of the project to find assignable users for |
| query | jo | The partial username, firstname or lastname to search for |
| $skip | 20 | Number of items to skip (start result number) |
| $top | 10 | Number of search results to return |
| $inlinecount | allpages | Include or supress inline counts |
| $expand | DisplayName | Allows expansion of additional user properties |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 20,
"Top": 10,
"Total": 1,
"Items": [
{
"Id": "3464e9da-f1b7-49aa-87db-7e1eebfd17a5",
"UserName": "joeb",
"Email": "joeb@unknown.net",
"FirstName": "Joe",
"LastName": "Bloggs",
"Phone": "(09)-555-999",
"LastLogIn": null,
"DisplayName": "Joe Bloggs (joeb)",
"Self": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5",
"Links": [
{
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/password",
"Rel": "ChangePassword"
},
{
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/permissions/global",
"Rel": "GlobalPermissions"
},
{
"Title": "Group Memberships",
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/groups",
"Rel": "Groups"
},
{
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/notifications",
"Rel": "Notifications"
},
{
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/permissions/projects",
"Rel": "ProjectPermissions"
},
{
"Href": "http://localhost/api/user/3464e9da-f1b7-49aa-87db-7e1eebfd17a5/mailmessages",
"Rel": "MailMessages"
}
]
}
],
"Self": "http://localhost/api/project/E032C596-F299-47CB-B08F-CB2EFFF60E27/assignees?query=jo&$skip=20&$top=10&$inlinecount=allpages",
"Links": [
{
"Href": "http://localhost/api/project/E032C596-F299-47CB-B08F-CB2EFFF60E27/assignees?query=jo&$skip=10&$top=10&$inlinecount=allpages",
"Rel": "prev"
},
{
"Href": "http://localhost/api/project/E032C596-F299-47CB-B08F-CB2EFFF60E27/assignees?query=jo&$skip=0&$top=10&$inlinecount=allpages",
"Rel": "first"
}
]
}
Status Code
200 - OK
Resource: Project Categories ( /api/projectcategories )
Project Categories (collection) resource
Root Relation: ProjectCategories
Methods
GET
Retrieves a list of all project categories.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get all project categories
Retrieves a list of all project categories.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"Name": "Active",
"OrderNumber": 0,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": true,
"HasProjects": false,
"HasParent": false,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/dc8b3352-05cf-4b54-868b-a1f6c3cc73ba"
},
{
"Id": "092c1c83-cfe7-4075-aea8-4dc445f8d87d",
"Name": "Mobile",
"OrderNumber": 0,
"OrganisationId": null,
"OrganisationName": null,
"ParentId": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"ParentName": "Active",
"HasChildren": false,
"HasProjects": false,
"HasParent": true,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/092c1c83-cfe7-4075-aea8-4dc445f8d87d"
},
{
"Id": "4b538f8f-994b-4a82-8874-22a16586eebf",
"Name": "Archived",
"OrderNumber": 1,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": false,
"HasProjects": false,
"HasParent": false,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/4b538f8f-994b-4a82-8874-22a16586eebf"
}
]
}
Status Code
200 - OK
Example - Retrieves filtered set of project categories.
Retrieves a list of project categories filtered by name.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Name eq 'Archive' | Retrieves a list of all project categories with the name 'Archive'. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "4b538f8f-994b-4a82-8874-22a16586eebf",
"Name": "Archived",
"OrderNumber": 1,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": false,
"HasProjects": false,
"HasParent": false,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/4b538f8f-994b-4a82-8874-22a16586eebf"
}
]
}
Status Code
200 - OK
POST
Retrieves a list of all project categories.
Required Permissions
- Administration/Organisation/ManageOrganisation
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the project category was created successfully. |
| 403 - Forbidden | Returned if the project category could not be created (due to lack of permissions or an invalid json request). |
| 409 - Conflict | Returned if the project category name is already in use. |
Example - Create a new project category (for organisation).
Create a new project category directly underneath an organisation (note: if OrganisationId and ParentId are both omitted, then default organisation will be used).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "Sandbox",
"OrderNumber": 3
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/projectcategory/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Sandbox",
"OrderNumber": 3,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": false,
"HasProjects": false,
"HasParent": false,
"Self": "http://localhost/api/projectcategory/4bb709c2-e0e7-4af3-9f60-a045016a9610"
}
Status Code
201 - Created
Example - Create a new project category (for parent).
Create a new project category underneath another project category.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "Desktop",
"ParentId": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/projectcategory/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Desktop",
"OrderNumber": 0,
"OrganisationId": null,
"OrganisationName": null,
"ParentId": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"ParentName": "Active",
"HasChildren": false,
"HasProjects": false,
"HasParent": true,
"Self": "http://localhost/api/projectcategory/4bb709c2-e0e7-4af3-9f60-a045016a9610"
}
Status Code
201 - Created
Resource: Project Category ( /api/projectcategory/{id} )
Project Category resource
Methods
DELETE
Delete a project category (removing a project category does not remove the projects beneath it, these will instead be moved directly beneath the organisation).
Required Permissions
- Administration/Organisation/ManageOrganisation
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Project category deleted successfully. |
| 403 - Forbidden | Returned if project category could not be deleted (normally due to lack of permissions). |
| 404 - NotFound | Returned if project category does not exist. |
Example - Delete a project category.
Delete a project category.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | dc8b3352-05cf-4b54-868b-a1f6c3cc73ba | Unique identifier of the project category. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a project category by its unique identifier.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if project category does not exist. |
Example - Get a project category by the unique identifier.
Retrieve a project category by its unique identifier
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | DC8B3352-05CF-4B54-868B-A1F6C3CC73BA | The unique identifier of the project category. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"Name": "Active",
"OrderNumber": 0,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": true,
"HasProjects": false,
"HasParent": false,
"Self": "http://localhost/api/projectcategory/dc8b3352-05cf-4b54-868b-a1f6c3cc73ba"
}
Status Code
200 - OK
PUT
Update a project category.
Required Permissions
- Administration/Organisation/ManageOrganisation
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Update a project category. |
| 403 - Forbidden | Returned if project category could not be updated (due to lack of permissions or an invalid json request). |
| 404 - NotFound | Returned if project category does not exist. |
| 409 - Conflict | Returned if project category name is already in use. |
Example - Update an existing project category (rename).
Updates the name of a project category.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | dc8b3352-05cf-4b54-868b-a1f6c3cc73ba | Unique identifier of the project category. |
Request Body
{
"Name": "In Flight"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"Name": "In Flight",
"OrderNumber": 0,
"OrganisationId": "d7b68899-6cdc-4ec3-8f83-b19a4d9d27d3",
"OrganisationName": "Acme Inc",
"ParentId": null,
"ParentName": null,
"HasChildren": true,
"HasProjects": false,
"HasParent": false,
"Self": "http://localhost/api/projectcategory/dc8b3352-05cf-4b54-868b-a1f6c3cc73ba"
}
Status Code
200 - OK
Example - Update an existing project category (move to a new parent).
Moves a project category to a new parent.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 092c1c83-cfe7-4075-aea8-4dc445f8d87d | Unique identifier of the project category. |
Request Body
{
"ParentId": "4b538f8f-994b-4a82-8874-22a16586eebf"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "092c1c83-cfe7-4075-aea8-4dc445f8d87d",
"Name": "Mobile",
"OrderNumber": 0,
"OrganisationId": null,
"OrganisationName": null,
"ParentId": "4b538f8f-994b-4a82-8874-22a16586eebf",
"ParentName": "Archived",
"HasChildren": false,
"HasProjects": false,
"HasParent": true,
"Self": "http://localhost/api/projectcategory/092c1c83-cfe7-4075-aea8-4dc445f8d87d"
}
Status Code
200 - OK
Resource: Project Category Children ( /api/projectcategory/{id}/children )
Project Category Children (collection) resource
Methods
GET
Retrieves a list of all child project categories for a project category.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request is completed successfully. |
| 404 - NotFound | Returned if project category does not exist. |
Example - Retrieves all children of a project category.
Retrieves all the child categories of a project category.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | dc8b3352-05cf-4b54-868b-a1f6c3cc73ba | Unique identifier of the project category. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "092c1c83-cfe7-4075-aea8-4dc445f8d87d",
"Name": "Mobile",
"OrderNumber": 0,
"OrganisationId": null,
"OrganisationName": null,
"ParentId": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"ParentName": "Active",
"HasChildren": false,
"HasProjects": false,
"HasParent": true,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/092c1c83-cfe7-4075-aea8-4dc445f8d87d"
},
{
"Id": "c0b6196a-59d1-46e4-a007-cb7c69562394",
"Name": "Desktop",
"OrderNumber": 1,
"OrganisationId": null,
"OrganisationName": null,
"ParentId": "dc8b3352-05cf-4b54-868b-a1f6c3cc73ba",
"ParentName": "Active",
"HasChildren": false,
"HasProjects": false,
"HasParent": true,
"Expands": [
"Projects",
"Parent",
"Organisation",
"Children"
],
"Self": "http://localhost/api/projectcategory/c0b6196a-59d1-46e4-a007-cb7c69562394"
}
]
}
Status Code
200 - OK
Resource: Project Group Permissions ( /api/group/{groupId}/permissions/project/{projectId} )
Project Group Permissions resource - allows the retrieval of the collection of permissions directly associated with a group for a project, or updating the permissions associated with a project group.
Methods
GET
Retrieves the project permissions for this group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the group does not exist. |
Example - Retrieve Permissions
Retrieve the permissions assigned to this group for selected project.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {groupId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to retrieve permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to retrieve permissions for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
PUT
Sets the project permissions for this group
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if one or more permissions could not be resolved. |
| 404 - NotFound | Returned if the group or project does not exist. |
Example - Set Permissions (by Permission ID)
Set the permissions to grant to the group for this project (using the ID for each permission)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {groupId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to set project permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to set group permissions for |
Request Body
[
{
"Key": null,
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22"
},
{
"Key": null,
"Id": "fad12035-4937-401a-881a-ea340050218e"
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Example - Set Permissions (by Key)
Set the permissions to grant to the group for this project (using the unique Key for each permission)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {groupId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the group to set project permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to set group permissions for |
Request Body
[
{
"Key": "/Administration",
"Id": null
},
{
"Key": "/Resources",
"Id": null
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Resource: Project Picklist ( /api/project/{projectId}/picklist/{type} )
Used to retrieve the picklist values associated with a project
Methods
GET
Retrieve picklist values specific to a project.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view picklist values for this project. |
| 404 - NotFound | Returned if the project does not exist. |
Example - Retrieve all picklist values
Retrieve all picklist value for the picklist 'Priority'.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the project related to the picklist values. |
| {type} | Priority | The picklist type e.g. Priority, RequirementType, RequirementStatus, RequirementDifficulty, IncidentResolution etc. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
},
{
"Id": "fb82918b-cb0e-4c38-b994-bc35f469d020",
"Text": "Medium",
"SortOrder": 1,
"Self": "http://localhost/api/project/priority/fb82918b-cb0e-4c38-b994-bc35f469d020"
},
{
"Id": "b6a3cb4d-638b-4803-9cf5-bc9830e29835",
"Text": "Low",
"SortOrder": 2,
"Self": "http://localhost/api/project/priority/b6a3cb4d-638b-4803-9cf5-bc9830e29835"
}
],
"Self": "http://localhost/api/api/project/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklistsearch/Priority"
}
Status Code
200 - OK
Resource: Project Picklist Search ( /api/project/{projectId}/picklistsearch/{type} )
Allows the searching of picklist values for an project by partial name match.
Methods
GET
Searches for picklist values by partial name match
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view picklist values for this project. |
| 404 - NotFound | Returned if the project does not exist. |
Example - Retrieve all picklist values
Retrieve all picklist values
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the project related to the picklist values. |
| {type} | Priority | The picklist type e.g. Priority, RequirementType, RequirementStatus, RequirementDifficulty, IncidentResolution etc. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
}
],
"Self": "http://localhost/api/api/project/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklistsearch/Priority?query=H"
}
Status Code
200 - OK
POST
Searches for picklist values by partial name match
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the picklist values were retrieved successfully. |
| 403 - Forbidden | Returned if the user does not have permission to view picklist values for this project. |
| 404 - NotFound | Returned if the project does not exist. |
Example - Retrieve all picklist values
Retrieve all picklist values
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | bc692c60-99b2-4df3-8cf8-74f4ac770b16 | Unique ID of the project related to the picklist values. |
| {type} | Priority | The picklist type e.g. Priority, RequirementType, RequirementStatus, RequirementDifficulty, IncidentResolution etc. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2fe983c7-bc0d-430f-83f2-9a97863e4891",
"Text": "High",
"SortOrder": 0,
"Self": "http://localhost/api/project/priority/2fe983c7-bc0d-430f-83f2-9a97863e4891"
}
],
"Self": "http://localhost/api/api/project/BC692C60-99B2-4DF3-8CF8-74F4AC770B16/picklistsearch/Priority"
}
Status Code
200 - OK
Resource: Project Templates ( /api/projecttemplates )
Project templates that can be used when creating a new project to pre-populate the project with data.
Root Relation: ProjectTemplates
Methods
GET
Retrieves all (or a subset) of project templates that are visible to the user.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get all Project templates
An example of retrieving all project templates.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Title": "Agile Template",
"Expands": [],
"Self": "http://localhost/api/projecttemplate/eb06e5d8-f774-4b0f-a95c-a911c13527a9"
},
{
"Id": "00000000-0000-0000-0000-000000000000",
"Title": "Empty Project",
"Expands": [],
"Self": "http://localhost/api/projecttemplate/00000000-0000-0000-0000-000000000000"
}
]
Status Code
200 - OK
Example - Get project templates filtered by name
Example of fetching a set of project templates by name, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Title eq 'Agile Template' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Name%20eq%20'Agile Template'. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Title": "Agile Template",
"Expands": [],
"Self": "http://localhost/api/projecttemplate/eb06e5d8-f774-4b0f-a95c-a911c13527a9"
}
]
Status Code
200 - OK
Resource: Project Tickets ( /api/project/{projectId}/tickets )
Allows the searching of tickets in external systems
Methods
GET
Retrieves tickets for a project via a query
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Search tickets for items matching query
An example of fetching tickets matching a text search.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | D2FA3402-30FD-4714-BB39-FAA30748BC14 | Unique ID of Project to find tickets for |
| q | test | Text to search for in ticket |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Key": "TST-4629",
"Summary": "Test windows title clips text on bottom",
"Url": "https://mycompany.atlassian.net/browse/TST-4629",
"Id": "18759",
"Type": "Bug",
"ExternalSystemId": "c63e805c-e5d3-4919-9d10-a0a500e0754a",
"ExternalSystemName": "testing",
"IncidentId": null,
"Status": "Open",
"InternalKey": null,
"Self": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759",
"Links": [
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759/link",
"Rel": "StartCreateIncident"
},
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a",
"Rel": "ExternalSystemLink"
}
]
},
{
"Key": "TST-2222",
"Summary": "Re-run selenium tests",
"Url": "https://mycompany.atlassian.net/browse/TST-2222",
"Id": "12123",
"Type": "Task",
"ExternalSystemId": "c63e805c-e5d3-4919-9d10-a0a500e0754a",
"ExternalSystemName": "testing",
"IncidentId": null,
"Status": "In Progress",
"InternalKey": null,
"Self": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/12123",
"Links": [
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/12123/link",
"Rel": "StartCreateIncident"
},
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a",
"Rel": "ExternalSystemLink"
}
]
}
],
"Self": "http://localhost/api/api/project/D2FA3402-30FD-4714-BB39-FAA30748BC14/tickets?q=test"
}
Status Code
200 - OK
Example - Search tickets for items matching query (with different number of max results)
An example of fetching tickets matching a text search, with a configured maximum number of results.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {projectId} | D2FA3402-30FD-4714-BB39-FAA30748BC14 | Unique ID of Project to find tickets for |
| q | test | Text to search for in ticket |
| $top | 1 | Maxmimum number of tickets to return |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 1,
"Total": 1,
"Items": [
{
"Key": "TST-4629",
"Summary": "Test windows title clips text on bottom",
"Url": "https://mycompany.atlassian.net/browse/TST-4629",
"Id": "18759",
"Type": "Bug",
"ExternalSystemId": "c63e805c-e5d3-4919-9d10-a0a500e0754a",
"ExternalSystemName": "testing",
"IncidentId": null,
"Status": "Open",
"InternalKey": null,
"Self": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759",
"Links": [
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a/ticket/18759/link",
"Rel": "StartCreateIncident"
},
{
"Href": "http://localhost/api/externalsystemlink/c63e805c-e5d3-4919-9d10-a0a500e0754a",
"Rel": "ExternalSystemLink"
}
]
}
],
"Self": "http://localhost/api/api/project/D2FA3402-30FD-4714-BB39-FAA30748BC14/tickets?q=test&$top=1"
}
Status Code
200 - OK
Resource: Project User Permissions ( /api/user/{userId}/permissions/project/{projectId} )
Project User Permissions resource - allows the retrieval of the collection of permissions directly associated with a user for a project, or updating the permissions associated with a project user.
Methods
GET
Retrieves the project permissions for this user
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if the user does not exist. |
Example - Retrieve Permissions
Retrieve the permissions assigned to this user for selected project.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the user to retrieve permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to retrieve permissions for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
PUT
Sets the project permissions for this user
Required Permissions
- Administration/Organisation/ManageUserAndGroupSecurity
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if one or more permissions could not be resolved. |
| 404 - NotFound | Returned if the user or project does not exist. |
Example - Set Permissions (by Permission ID)
Set the permissions to grant to the user for this project (using the ID for each permission).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the user to set project permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to set user permissions for |
Request Body
[
{
"Key": null,
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22"
},
{
"Key": null,
"Id": "fad12035-4937-401a-881a-ea340050218e"
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Example - Set Permissions (by Key)
Set the permissions to grant to the user for this project (using the unique Key for each permission).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {userId} | 3a31a68a-9e51-4d87-91bb-aca0fa5c1fe9 | Unique ID of the user to set project permissions for |
| {projectId} | 9ee7ac7b-1fa9-4af6-91f2-cc59408b84d7 | Unique ID of the project to set user permissions for |
Request Body
[
{
"Key": "/Administration",
"Id": null
},
{
"Key": "/Resources",
"Id": null
}
]
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
[
{
"Id": "e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Key": "/Administration",
"Links": [
{
"Href": "http://localhost/api/permission/e6a7d6d3-6b16-4e94-a768-54bdd8bb3b22",
"Rel": "Permission"
}
]
},
{
"Id": "fad12035-4937-401a-881a-ea340050218e",
"Key": "/Resources",
"Links": [
{
"Href": "http://localhost/api/permission/fad12035-4937-401a-881a-ea340050218e",
"Rel": "Permission"
}
]
}
]
Status Code
200 - OK
Resource: Projects ( /api/projects )
Projects collection resource, allowing the search and retrieval of all visible projects.
Root Relation: Projects
Methods
GET
Retrieves all (or a subset) of projects that are visible to the user.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get All Projects
An example of Retrieving all projects.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Project ABC",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "abc",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
},
{
"Id": "cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Name": "Project XYZ",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "xyz",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/assignees",
"Rel": "Assignees"
}
]
}
]
}
Status Code
200 - OK
Example - Get Projects filtered by name
An example of retrieving a set of projects by name, by using the ODATA $filter query parameter.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $filter | Name eq 'Project ABC' | The ODATA $filter parameter, this query parameter should be url encoded i.e. $filter=Name%20eq%20'Project ABC' |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Project ABC",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "abc",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
}
]
}
Status Code
200 - OK
POST
Create a new project.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the new project was created successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create a project. |
| 409 - Conflict | Returned if the projects name is already in use. |
Example - Create a project
Example of creating a new project.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Name": "My New Project",
"ProjectCategoryId": "28f16438-8dfa-49cc-8db3-18aa1803cb86",
"Description": "My new ET project",
"EstimatedEndDate": "2013-01-01T00:00:00Z",
"ManagerId": "83116d87-fff5-408b-8cdd-5491d17a9a26",
"AutoNumberRequirements": true,
"AutoNumberScripts": true,
"Independent": false,
"RequirementNumberReadOnly": true,
"ScriptNumberReadOnly": false,
"OrderNumber": 1,
"StartDate": "2012-01-01T00:00:00Z",
"TimeTrackingConfiguration": {
"HoursPerDay": 24,
"DaysPerWeek": 7
}
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "My New Project",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": "28f16438-8dfa-49cc-8db3-18aa1803cb86",
"ProjectCategoryName": "Current Projects",
"Description": "My new ET project",
"EstimatedEndDate": "2013-01-01T00:00:00Z",
"ManagerId": "83116d87-fff5-408b-8cdd-5491d17a9a26",
"ManagerUserName": "joeb",
"Slug": "my-new-project",
"AutoNumberRequirements": true,
"AutoNumberScripts": true,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 1,
"StartDate": "2012-01-01T00:00:00Z",
"Self": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610/assignees",
"Rel": "Assignees"
}
]
}
Status Code
201 - Created
Example - Create a project using template
An example of creating a new project using a template (using the Id for the template retrieved from the list of project templates at /api/projecttemplates) - we leave all other configuration to be their default values.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"Name": "My New Project",
"TemplateId": "C3A156A4-5CE0-4773-938A-9C6EADC030FD"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "My New Project",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "my-new-project",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Self": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/4bb709c2-e0e7-4af3-9f60-a045016a9610/assignees",
"Rel": "Assignees"
}
]
}
Status Code
201 - Created
Resource: Projects Search ( /api/projectssearch )
Projects search resource, allowing the search for a project by a partial name.
Root Relation: ProjectsSearch
Methods
GET
Retrieves all (or a subset) of projects that are visible to the user.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get All Projects matching partial string
An example of retrieving projects matching a partial string.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| query | te | Partial name to match (in this case will match any project where the name beings with 'te') |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Terrestrial monitoring",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "tm",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
},
{
"Id": "cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Name": "Termination framework",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "tf",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/assignees",
"Rel": "Assignees"
}
]
}
],
"Self": "http://localhost/api/api/projectsearch?query=te"
}
Status Code
200 - OK
POST
Retrieves all (or a subset) of projects that are visible to the user (using POST to allow large existing value queries).
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Get All Projects matching partial string
An example of retrieving projects matching a partial string.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| query | te | Partial name to match (in this case will match any project where the name beings with 'te') |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Name": "Terrestrial monitoring",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "tm",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/eb06e5d8-f774-4b0f-a95c-a911c13527a9/assignees",
"Rel": "Assignees"
}
]
},
{
"Id": "cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Name": "Termination framework",
"OrganisationId": "ce67194e-29e2-49ee-af97-bb17aacedce0",
"OrganisationName": "Acme Inc.",
"ProjectCategoryId": null,
"ProjectCategoryName": null,
"Description": null,
"EstimatedEndDate": null,
"ManagerId": null,
"ManagerUserName": null,
"Slug": "tf",
"AutoNumberRequirements": false,
"AutoNumberScripts": false,
"Independent": false,
"RequirementNumberReadOnly": false,
"ScriptNumberReadOnly": false,
"OrderNumber": 0,
"StartDate": null,
"Expands": [
"Statuses",
"Priorities",
"RequirementTypes",
"RequirementStatuses",
"RequirementDifficulties",
"IncidentTypes",
"TestTypes",
"IncidentResolutions",
"IncidentStatuses",
"Versions",
"Components",
"ExecutionPackages",
"ScriptPackages",
"RequirementPackages",
"TimeTrackingConfiguration"
],
"Self": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8",
"Links": [
{
"Title": "Project Tickets Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/tickets",
"Rel": "Tickets"
},
{
"Title": "Project Assignees Search",
"Href": "http://localhost/api/project/cd69b4f5-507d-4735-b0af-8493c91b43a8/assignees",
"Rel": "Assignees"
}
]
}
],
"Self": "http://localhost/api/api/projectsearch"
}
Status Code
200 - OK
Resource: Relationship ( /api/organisation/{organisationId}/relationshiptype/{key}/relationship/{id} )
Relationship resource - allows the retrieval, update and deletion of a single relationship
Methods
DELETE
Retrieve a relationship (does not include it's children)
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request was completed successfully. |
| 403 - Forbidden | Returned if you have insufficient permissions to delete this relationship. |
| 404 - NotFound | Returned if organisation or relationship does not exist. |
Example - Delete a single relationship
Removes a single relationship.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | ID of the organisation the relationship belongs to. |
| {key} | RequirementToRequirementAssociation | The key of the relationship type being updated. |
| {id} | e6cc76e6-df0f-42ac-bf20-72576256d262 | ID of the relationship to update. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieve a relationship (does not include it's children)
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request was completed successfully. |
| 403 - Forbidden | Returned if you have insufficient permissions to retrieve this relationship. |
| 404 - NotFound | Returned if organisation or relationship does not exist. |
Example - Retrieve a single relationship
Retrieves the details of a single realtionship.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | ID of the organisation the relationship belongs to. |
| {key} | RequirementToRequirementAssociation | The key of the relationship type being retrieved. |
| {id} | e6cc76e6-df0f-42ac-bf20-72576256d262 | ID of the relationship to retrieved. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Version 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Version 1",
"RelationshipId": "e6cc76e6-df0f-42ac-bf20-72576256d262",
"RelationshipTypeKey": "RequirementToRequirementAssociation",
"RelationshipType": "Associated",
"Relation": "Association",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
201 - Created
PUT
Update the direction of a relationship
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you have insufficient permissions to update the relationship. |
| 404 - NotFound | Returned if organisation or relationship does not exist. |
Example - Update the direction of a relationship
Updates the direction of a relationship (This is the only supported type of a update you can apply to a relationship, to change it's source or destination end you must be delete the existing relationship and create a new one.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {organisationId} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | ID of the organisation the relationship belongs to. |
| {key} | RequirementToRequirementAssociation | The key of the relationship type being updated. |
| {id} | e6cc76e6-df0f-42ac-bf20-72576256d262 | ID of the relationship to update. |
Request Body
{
"RelationshipDirection": "SourceToDestination"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Version 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Version 1",
"RelationshipId": "e6cc76e6-df0f-42ac-bf20-72576256d262",
"RelationshipTypeKey": "RequirementToRequirementAssociation",
"RelationshipType": "Associated",
"Relation": "Association",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
201 - Created
Resource: Relationship Type ( /api/organisation/{id}/relationshiptype/{key} )
Allows retrieving of details for a single relationship type belonging to an organisation.
Methods
GET
Retrieves all relationship types
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Retrieve a single relationship type by key
Retrieves all the relationship types
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | e12cce32-7029-4083-99dd-51aed6fd8adb | ID of the Organisation to fetch the relationship type for. |
| {key} | RequirementToRequirementAssociation | The key of the relationship type to retrieve |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"CanCreateRelationshipsOfThisType": true,
"CanDeleteRelationshipsOfThisType": true,
"CanEditRelationshipsOfThisType": true,
"DestinationToSourceLabel": "Associated",
"SourceToDestinationLabel": "Associated",
"OrganisationId": "e12cce32-7029-4083-99dd-51aed6fd8adb",
"Key": "RequirementToRequirementAssociation",
"Name": "Association (Requirement <-> Requirement)",
"SourceEntityType": "Requirement",
"DestinationEntityType": "Requirement",
"AllowableDirections": [
{
"Id": "0",
"Name": "None"
},
{
"Id": "1",
"Name": "Source -> Destination"
},
{
"Id": "2",
"Name": "Destination -> Source"
},
{
"Id": "3",
"Name": "Source <-> Destination"
}
],
"Self": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation",
"Links": [
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb",
"Rel": "Organisation"
},
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation/relationships",
"Rel": "CreateRelationship"
}
]
}
Status Code
200 - OK
Resource: Relationship Types ( /api/relationshiptypes )
Allows retrieving of all registered relationship types.
Root Relation: RelationshipTypes
Methods
GET
Retrieves all relationship types
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Retrieve all relationship types
Retrieves all the relationship types
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"CanCreateRelationshipsOfThisType": true,
"CanDeleteRelationshipsOfThisType": true,
"CanEditRelationshipsOfThisType": true,
"DestinationToSourceLabel": "Associated",
"SourceToDestinationLabel": "Associated",
"OrganisationId": "e12cce32-7029-4083-99dd-51aed6fd8adb",
"Key": "RequirementToRequirementAssociation",
"Name": "Association (Requirement <-> Requirement)",
"SourceEntityType": "Requirement",
"DestinationEntityType": "Requirement",
"AllowableDirections": [
{
"Id": "0",
"Name": "None"
},
{
"Id": "1",
"Name": "Source -> Destination"
},
{
"Id": "2",
"Name": "Destination -> Source"
},
{
"Id": "3",
"Name": "Source <-> Destination"
}
],
"Self": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation",
"Links": [
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb",
"Rel": "Organisation"
},
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/RequirementToRequirementAssociation/relationships",
"Rel": "CreateRelationship"
}
]
},
{
"CanCreateRelationshipsOfThisType": true,
"CanDeleteRelationshipsOfThisType": true,
"CanEditRelationshipsOfThisType": false,
"DestinationToSourceLabel": "Covered By",
"SourceToDestinationLabel": "Covers",
"OrganisationId": "e12cce32-7029-4083-99dd-51aed6fd8adb",
"Key": "ScriptToRequirementCoverage",
"Name": "Coverage (TestScript <-> Requirement)",
"SourceEntityType": "TestScript",
"DestinationEntityType": "Requirement",
"AllowableDirections": [
{
"Id": "1",
"Name": "Source -> Destination"
}
],
"Self": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/ScriptToRequirementCoverage",
"Links": [
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb",
"Rel": "Organisation"
},
{
"Href": "http://localhost/api/organisation/e12cce32-7029-4083-99dd-51aed6fd8adb/relationshiptype/ScriptToRequirementCoverage/relationships",
"Rel": "CreateRelationship"
}
]
}
]
}
Status Code
200 - OK
Resource: Relationships ( /api/organisation/{id}/relationshiptype/{key}/relationships )
Relationships (Collection) resource - allows the creation of new relationships via a POST request
Methods
POST
Retrieves all relationship types
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 404 - NotFound | Returned if organisation does not exist. |
Example - Create a new relationship
Creates a new relationship between two entities.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | ID of the Organisation to create the relationship for. |
| {key} | ScriptToRequirementCoverage | The key of the relationship type to create |
Request Body
{
"RelationshipDirection": "SourceToDestination",
"DestinationEntityId": "e0f4b167-a01f-4e74-a78a-a182011e0305",
"DestinationEntityType": "Requirement",
"SourceEntityId": "d38882b4-8d73-4cd7-8ba1-a182011e3db1",
"SourceEntityType": "TestScript"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/organisation/1b716a03-b63d-4a17-b916-a182011b35d0/relationshiptype/ScriptToRequirementCoverage/relationship/940e88fb-5ba5-42af-ade1-a18500bedfd3 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "e0f4b167-a01f-4e74-a78a-a182011e0305",
"Number": "1",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Reports",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Reports",
"ParentPath": "",
"RelationshipId": "940e88fb-5ba5-42af-ade1-a18500bedfd3",
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
201 - Created
Resource: Requirement ( /api/requirement/{id} )
Requirement resource
Methods
DELETE
Delete a requirement.
Required Permissions
- TestManagement/ManageRequirements
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you don not have the permissions required to delete the requirement. |
| 404 - NotFound | Returned if the requirement does not exist. |
Example - DELETE
Delete a requirement with no children.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to delete. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
Example - DELETE (when requirement has children).
Delete a requirement which has children. When deleteChildren is not set a forbidden status to be returned.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to delete. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Message": "The requirement has children."
}
Status Code
403 - Forbidden
Example - Delete requirement and children.
Delete requirement and all its children.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to delete. |
| deleteChildren | true | Forces deletion of children. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
GET
Retrieves a single requirement by its unique Identifier.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this requirement. |
| 404 - NotFound | Returned if no requirement with that identifier exists. |
Example - GET
Retrieves a requirement by its unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
200 - OK
PUT
Updates an existing requirement.
Required Permissions
- TestManagement/ManageRequirements
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET did not complete request (normally due to a validation failure or invalid permissions to complete the request). |
| 404 - NotFound | Returned if the requirement does not exist. |
Example - PUT (rename requirement)
Example of renaming a requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to update. |
Request Body
{ "Name": "Updated name" }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Updated name",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
200 - OK
Example - PUT (move requirement to new package)
Example of renaming a requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to update. |
Request Body
{ "PackageId": "daa396d6-ad7d-4acf-a6c5-40551a70f79" }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Updated name",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "daa396d6-ad7d-4acf-a6c5-40551a70f790",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 3",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
200 - OK
Example - PUT (generate new auto-number)
An example of updating a requirement with a new automatically generated value (if auto-number of requirements is enabled for the project this requirement belongs to).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to update. |
Request Body
{ "Number": "auto" }
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Sample name",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1234,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
200 - OK
Example - PUT (full update)
Example of creating a new requirement with most of its fields populated (including custom fields).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the requirement to update. |
| $expand | FieldValues | Expand field (we expand the FieldValues to ensure that it is returned in the response to create a new requirement). |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"TemporaryId": "6cc26034-6514-44e0-907c-8f4f5eaa85b5",
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"Number": 22,
"Name": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"EstimatedDuration": "5m",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"Description": "derequiremention",
"ChangeComment": "Requirement created updated via my API",
"OrderNumber": 2,
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
}
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "My New Requirement",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "derequiremention",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": "5 minutes",
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 22,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": "Requirement created updated via my API",
"VersionNumber": 2,
"HasAttachments": true,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
200 - OK
Resource: Requirement All Relationships ( /api/requirement/{id}/allrelationships )
A resource representing the set of relationships belonging to the Requirement (includes the full graph of related entities, not just those which can be reached through destination and source->destination directed relationships).
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Requirement Attachment ( /api/requirement/{requirementId}/attachment/{id} )
Allows you to manage a single attachment for a requirement.
Methods
DELETE
Deletes an attachment from the requirement.
Required Permissions
- TestManagement/ManageRequirements
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you have insufficient permissions to delete the attachment. |
| 404 - NotFound | Returned if the attachment or requirement does not exist. |
Example - Delete attachment
Delete an attachment associated with the requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {requirementId} | 4A685B80-BC5A-42BE-82E0-616D0E70FF05 | The unique identifier (GUID) of the requirement the attachment belongs to. |
| {id} | B1105C56-43AB-4F66-AFDE-1135AAC851E5 | The unique identifier (GUID) of the attachment to delete. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Status Code
200 - OK
Resource: Requirement Attachments ( /api/requirement/{id}/attachments )
Requirement Attachments (collection) resource for fetching attachments associated with a requirement, or adding new attachments to the requirement.
Methods
GET
Retrieves list of attachments for the requirement.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you have insufficient permissions to retrieve attachments. |
| 404 - NotFound | Returned if the requirement was not found. |
Example - GET
Retrieves a list of all attachments associated with a requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | Unique identifier of the script. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "9b02c840-c330-4725-b743-b40181420bc2",
"RequirementId": "ad506e26-dea1-4fba-a2c8-ee993b9f9444",
"Name": "screenshot 1",
"FileName": "screenshot1.png",
"ContentType": "image/png",
"CreatedAt": "2012-01-02T03:04:05Z",
"CreatedById": "2b364daa-0dff-4a6f-8554-f5963d3011be",
"Size": 122454,
"Self": "http://localhost/api/requirement/ad506e26-dea1-4fba-a2c8-ee993b9f9444/attachment/9b02c840-c330-4725-b743-b40181420bc2",
"Content": "http://localhost/api/attachment/00000000-0000-0000-0000-000000000000/contents"
},
{
"Id": "5669f517-5ef4-40b6-856f-dbd488319da6",
"RequirementId": "ad506e26-dea1-4fba-a2c8-ee993b9f9444",
"Name": "notes.txt",
"FileName": "notes",
"ContentType": "text/plain",
"CreatedAt": "2012-01-02T03:04:05Z",
"CreatedById": "2b364daa-0dff-4a6f-8554-f5963d3011be",
"Size": 3,
"Self": "http://localhost/api/requirement/ad506e26-dea1-4fba-a2c8-ee993b9f9444/attachment/5669f517-5ef4-40b6-856f-dbd488319da6",
"Content": "http://localhost/api/attachment/00000000-0000-0000-0000-000000000000/contents"
}
]
}
Status Code
200 - OK
POST
Upload one or more attachments for this requirement.
Required Permissions
- TestManagement/ManageRequirements
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the attachments were uploaded successfully. |
| 403 - Forbidden | Returned if the multipart request did not contain any files. |
| 415 - UnsupportedMediaType | Returned if the request is not mime multipart. |
Example - POST
Uploads one or more files using a mime multipart request (this example shows a response where two files were uploaded).
Request Headers
| Key | Value | Description |
|---|
| Content-Type | multipart/mixed; boundary=65bf6b94-c91c-442c-abe7-f41444d7c71f | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | The unique identifier (GUID) of the script to add the attachments to. |
Request Body
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=screenshot1.png; name="screenshot 1"; size=122454
Content-Type: image/png
Content-Length: 3
...
--65bf6b94-c91c-442c-abe7-f41444d7c71f
Content-Disposition: attachment; filename=notes.txt; name=notes; size=3
Content-Type: text/plain
Content-Length: 3
ABC
--65bf6b94-c91c-442c-abe7-f41444d7c71f--
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "9b02c840-c330-4725-b743-b40181420bc2",
"RequirementId": "ad506e26-dea1-4fba-a2c8-ee993b9f9444",
"Name": "screenshot 1",
"FileName": "screenshot1.png",
"ContentType": "image/png",
"CreatedAt": "2012-01-02T03:04:05Z",
"CreatedById": "2b364daa-0dff-4a6f-8554-f5963d3011be",
"Size": 122454,
"Self": "http://localhost/api/requirement/ad506e26-dea1-4fba-a2c8-ee993b9f9444/attachment/9b02c840-c330-4725-b743-b40181420bc2",
"Content": "http://localhost/api/attachment/00000000-0000-0000-0000-000000000000/contents"
},
{
"Id": "5669f517-5ef4-40b6-856f-dbd488319da6",
"RequirementId": "ad506e26-dea1-4fba-a2c8-ee993b9f9444",
"Name": "notes.txt",
"FileName": "notes",
"ContentType": "text/plain",
"CreatedAt": "2012-01-02T03:04:05Z",
"CreatedById": "2b364daa-0dff-4a6f-8554-f5963d3011be",
"Size": 3,
"Self": "http://localhost/api/requirement/ad506e26-dea1-4fba-a2c8-ee993b9f9444/attachment/5669f517-5ef4-40b6-856f-dbd488319da6",
"Content": "http://localhost/api/attachment/00000000-0000-0000-0000-000000000000/contents"
}
]
}
Status Code
201 - Created
Resource: Requirement Children ( /api/requirement/{id}/children )
Requirement children collection resource
Methods
GET
Retrieves all (or a subset) of child requirements that are visible.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
Example - GET children
Retrieves all the immediate child packages of the requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 1A3A2C3C-5FC3-4540-9083-B1681D0DCBA1 | Unique identifier of the parent requirement. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": "1a3a2c3c-5fc3-4540-9083-b1681d0dcba1",
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Projec",
"ParentName": "Parent",
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
},
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Login",
"AssignedToId": null,
"AssignedTo": null,
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-03-02T03:04:05Z",
"LastUpdatedAt": "2012-03-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": "1a3a2c3c-5fc3-4540-9083-b1681d0dcba1",
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Projec",
"ParentName": "Parent",
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
]
}
Status Code
200 - OK
Resource: Requirement Comments ( /api/requirement/{id}/comments )
Allows the retrieval of external comments associated with any tickets this requirement has been synchronized with.
Methods
GET
Retrieves all (or a subset) of external ticket comments associated with this requirement.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view this requirement's comments. |
| 404 - NotFound | Returned if requirement does not exist. |
Example - Retrieve all comments for a requirement
Retrieves all the comments for a requirement.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | f6e5de1d-809a-4848-8630-09f5097db052 | ID of the Requirement to retrieve comments for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"CreatedAt": "2012-03-04T10:12:01Z",
"Body": "Joe Bloggs attached file test.png to this issue",
"CreatedBy": "joeb",
"Id": "1234",
"ExternalSystemLinkId": "86b6d146-28f3-47ad-ba6b-252a849f5751",
"TicketId": "57573",
"Self": "http://localhost/api/externalsystemlink/86b6d146-28f3-47ad-ba6b-252a849f5751/ticket/57573/comment/1234",
"Links": [
{
"Href": "http://localhost/api/externalsystemlink/86b6d146-28f3-47ad-ba6b-252a849f5751/ticket/57573",
"Rel": "Ticket"
},
{
"Href": "http://localhost/api/externalsystemlink/86b6d146-28f3-47ad-ba6b-252a849f5751",
"Rel": "ExternalSystemLink"
}
]
}
]
}
Status Code
200 - OK
Resource: Requirement Package ( /api/requirementpackage/{id} )
Requirement Package resource
Methods
DELETE
Deletes a requirement package by its unique identifier.
Required Permissions
- TestManagement/ManageRequirements
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the requirement package was deleted successfully. |
| 403 - Forbidden | Returned if the requirement package can not be deleted (normally because the required permissions have not been met, or the package has children but you did not pass the deleteChildren parameter). |
| 404 - NotFound | Returned if the requirement package was not found. |
Example - Delete empty package
An example of deleting a package.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to delete. |
Status Code
200 - OK
Example - Delete package with children
An example of deleting a package with children.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to delete. |
| deleteChildren | true | Will delete a package and all its children. |
Status Code
200 - OK
Example - Delete package with children (without deleteChildren parameter)
An example of deleting a non-empty package without deleteChildren=true.
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to delete. |
Response Body
{
"Message": "The package is not empty."
}
Status Code
403 - Forbidden
GET
Retrieves a requirement package by its unique identifier.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - GET
Example of retrieving a package by its unique identifier.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of package to retrieve. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
PUT
Update a requirement package.
Required Permissions
- TestManagement/ManageRequirements
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create requirement packages in the target project. |
| 404 - NotFound | Returned if the package does not exist. |
Example - PUT (update package name)
Updating a package's name.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to update. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "New Package Name"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "New Package Name",
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
Status Code
200 - OK
Example - PUT (move package to new parent)
Updating package to have a different parent package.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to update. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
Example - PUT (update multiple details)
Updating package name, stereotype, order and parent.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to update. |
Request Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "New Package Name",
"OrderNumber": 2,
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6"
}
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Name": "New Package Name",
"OrderNumber": 2,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/cc91ec0b-a9f2-44fe-bf86-97ecb98cecc6",
"Rel": "Parent"
}
]
}
Status Code
200 - OK
Resource: Requirement Package Children ( /api/requirementpackage/{id}/children )
Requirement Package resource
Methods
GET
Retrieves the children of the requirement package.
This method supports the OData parameters $filter, $top, $take, $orderby and $inlinecount. See OData Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create requirement packages in the target project. |
| 404 - NotFound | Returned if the package does not exist. |
Example - GET
Example of retrieving all child packages for package.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 4bb709c2-e0e7-4af3-9f60-a045016a9610 | GUID Identifier of the package to retrieve children for. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Items": [
{
"Id": "2d33ee96-7634-4363-891f-d90a15709bb9",
"ParentId": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Cycle 1",
"OrderNumber": 1,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/2d33ee96-7634-4363-891f-d90a15709bb9",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/2d33ee96-7634-4363-891f-d90a15709bb9/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Rel": "Parent"
}
]
},
{
"Id": "ed07f8a1-3ffa-4f25-bc28-0dae55650205",
"ParentId": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Cycle 2",
"OrderNumber": 2,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/ed07f8a1-3ffa-4f25-bc28-0dae55650205",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/ed07f8a1-3ffa-4f25-bc28-0dae55650205/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Rel": "Parent"
}
]
}
]
}
Status Code
200 - OK
Resource: Requirement Packages ( /api/requirementpackages )
Requirement Packages collection resource
Root Relation: RequirementPackages
Methods
GET
Retrieves all (or a subset of) requirement packages that are visible.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - GET (filtered by TQL Query)
Retrieves packages matching a TQL query.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Reports",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/requirementpackages?tql=Name~'Report'"
}
Status Code
200 - OK
Example - GET (no TQL query)
Retrieves all packages, across all projects.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 25,
"Total": 2,
"Items": [
{
"Id": "d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Reports",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/d009c056-6025-4a5e-a3b9-fc0fa8cf1f2e/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
},
{
"Id": "7c8ffe51-c584-41d6-8739-8dbd56d5770f",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "Data Import",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/7c8ffe51-c584-41d6-8739-8dbd56d5770f",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/7c8ffe51-c584-41d6-8739-8dbd56d5770f/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
],
"Self": "http://localhost/api/api/requirementpackages"
}
Status Code
200 - OK
POST
Create a new requirement package.
Required Permissions
- TestManagement/ManageRequirements
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 201 - Created | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if the user does not have permission to create requirement packages in the target project. |
Example - POST (top-level package)
Create a new package (at root of project)
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "New Package",
"ProjectId": "4545fe95-e9c2-40e9-8f4a-3f000d14526f"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ProjectId": "944aa658-8067-42cf-a6a6-ce71535a73bc",
"Name": "New Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/project/944aa658-8067-42cf-a6a6-ce71535a73bc",
"Rel": "Project"
}
]
}
Status Code
201 - Created
Example - POST (child of existing package)
Create a new package (as child of existing package).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Body
{
"Name": "New Child Package",
"ParentId": "9bfeb244-06a6-4440-b6b6-a8bcc0847673"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"ParentId": "9bfeb244-06a6-4440-b6b6-a8bcc0847673",
"Name": "New Child Package",
"OrderNumber": 0,
"Expands": [
"Children",
"Parent",
"Project"
],
"Self": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirementpackage/4bb709c2-e0e7-4af3-9f60-a045016a9610/children",
"Rel": "Children"
},
{
"Href": "http://localhost/api/requirementpackage/9bfeb244-06a6-4440-b6b6-a8bcc0847673",
"Rel": "Parent"
}
]
}
Status Code
201 - Created
Resource: Requirement Relationships ( /api/requirement/{id}/relationships )
A resource representing the set of relationships belonging to the Requirement.
Methods
GET
Retrieves all relationships
Required Permissions
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if you do not have permission to view the relationships associated with this entity. |
| 404 - NotFound | Returned if the entity does not exist. |
Example - Retrieve Relationships
Retrieve relationships (the response is a generic example, and does not necessarily represent the type of relationships that would be returned for this Entity Type).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| {id} | 5E2814AF-1800-4C8F-B7C8-2ED9FADF98D0 | The ID of the entity to retrieve the relationships for |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"EntityId": "8F00D2CE-6243-4956-AF89-60B7B9755A9B",
"Number": "1",
"Name": "Some Script",
"EntityType": "TestScript",
"AssignedTo": "joeb",
"Status": "Draft",
"Priority": "High",
"Type": "Functional",
"PackageId": "c232382b-0c66-475b-b59b-8753d4c5377b",
"PackageName": "Cycle 1",
"PackageEntityType": "ScriptPackage",
"PackagePath": "/Script Library/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Source -> Destination",
"CanDelete": true,
"CanEdit": false,
"Children": [
{
"EntityId": "4155F037-B778-4E9D-B942-0CC237D51038",
"Number": "2",
"Name": "Some Requirement",
"EntityType": "Requirement",
"AssignedTo": "janed",
"Status": "Draft",
"Priority": "Medium",
"Type": "Functional",
"PackageId": "454bc5ca-3496-4abb-a69a-919bf5f3ca0b",
"PackageName": "Cycle 1",
"PackageEntityType": "RequirementPackage",
"PackagePath": "/Requirements/Cycle 1",
"RelationshipId": null,
"RelationshipTypeKey": "ScriptToRequirementCoverage",
"RelationshipType": "Coverage",
"Relation": "Covered By",
"RelationshipDirection": "Destination -> Source",
"CanDelete": false,
"CanEdit": true,
"Children": [],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
],
"Links": [
{
"Href": "http://localhost/api",
"Rel": "Entity"
}
]
}
Status Code
200 - OK
Resource: Requirements ( /api/requirements )
Requirements collection resource
Root Relation: Requirements
Methods
GET
Retrieves all (or a subset) of requirements that are visible.
This method supports the TQL query parameters tql, $top, $take and $inlinecount. See TQL Topic for more details.
Required Permissions
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
| 403 - Forbidden | Returned if ET could not complete the request (normally due to a validation failure or the necessary permissions to complete the request have not been met). |
Example - GET (filtered by TQL Query)
Retrieves requirements matching a TQL query
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| tql | Name ~ 'Report' | The TQL query to execute. |
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 1,
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package",
"Assignments"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
],
"Self": "http://localhost/api/api/requirements?tql=Name~'Report'"
}
Status Code
200 - OK
Example - GET (no filter)
Retrieves all requirements.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $top | 5 | The maximum number of results to return (defaults to 25). |
| $skip | 0 | The Number of results to skip before return the $top number of results matching the query. |
Response Headers
| Key | Value | Description |
|---|
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Skip": 0,
"Top": 5,
"Total": 2,
"Items": [
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Report pagination",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package",
"Assignments"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
},
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "Login",
"AssignedToId": null,
"AssignedTo": null,
"Description": "Check report pagination works correctly",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-03-02T03:04:05Z",
"LastUpdatedAt": "2012-03-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Project",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package",
"Assignments"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
],
"Self": "http://localhost/api/api/requirements"
}
Status Code
200 - OK
POST
Creates a new test requirement.
Required Permissions
- TestManagement/ManageRequirements
Supported Expansions
For more details on expansions, please see the Expand help topic.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Example
An example of creating a new requirement with only the minimum required information.
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Body
{
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"Name": "My New Requirement",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2"
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "My New Requirement",
"AssignedToId": null,
"AssignedTo": null,
"Description": null,
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": null,
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 0,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Projec",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": null,
"VersionNumber": 0,
"HasAttachments": false,
"Expands": [
"FieldControls",
"FieldValues",
"Package",
"Assignments"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
201 - Created
Example - Example
An example of creating a new requirement with majority of fields populated (including custom fields).
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
| Content-type | application/json | |
Request Parameters
| Key | Value | Description |
|---|
| $expand | FieldValues | Expand field (FieldValues are expanded to ensure that they are returned in the response to creating a new requirement.) |
Request Body
{
"TemporaryId": "6cc26034-6514-44e0-907c-8f4f5eaa85b5",
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"Number": 22,
"Name": "My New Requirement",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"EstimatedDuration": "5m",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"Description": "derequiremention",
"ChangeComment": "Requirement created via my API",
"OrderNumber": 2,
"FieldValues": {
"Cycle": "V2.1 Cycle 1"
}
}
Response Headers
| Key | Value | Description |
|---|
| Location | http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610 | |
| Content-Type | application/json; charset=utf-8 | |
Response Body
{
"Id": "4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Name": "My New Requirement",
"AssignedToId": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"AssignedTo": "joeb",
"Description": "derequiremention",
"PriorityId": "fe92720f-3fbd-4e49-a3b2-309f6a0a062a",
"StatusId": "62daf195-0a65-400f-af4b-7fda3d529acb",
"TypeId": "cfe51645-8179-4fe5-ada3-c145a64d0a05",
"DifficultyLevelId": "47b4b0cc-22ee-4993-8ed5-ef1dec40a0d2",
"CreatedAt": "2012-01-02T03:04:05Z",
"LastUpdatedAt": "2012-02-03T04:05:06Z",
"CreatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"CreatedBy": "joeb",
"LastUpdatedById": "191375f2-ae6e-4b52-8bed-4192e34b6486",
"LastUpdatedBy": "joeb",
"Number": 1,
"EstimatedDuration": "5 minutes",
"PackageId": "0f2c3a76-bbd1-4370-8faa-6aacb52f1a01",
"ParentId": null,
"OrderNumber": 22,
"ProjectId": "27dcaff0-1f8a-4dff-b49a-bb3d9f7153b3",
"ProjectName": "Test Projec",
"ParentName": null,
"PackageName": "Cycle 1",
"ChangeComment": "Requirement created via my API",
"VersionNumber": 1,
"HasAttachments": true,
"Expands": [
"FieldControls",
"FieldValues",
"Package",
"Assignments"
],
"Self": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610",
"Links": [
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/relationships",
"Rel": "Relationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/allrelationships",
"Rel": "AllRelationships"
},
{
"Href": "http://localhost/api/requirement/4bb709c2-e0e7-4af3-9f60-a045016a9610/comments",
"Rel": "Comments"
}
]
}
Status Code
201 - Created
Resource: Root ( /api/ )
Returns root-level response listing available resources.
Methods
GET
Retrieves the list of available root-level resources.
Status Codes
These are the expected status codes returned by the service - in addition, some other status codes may be returned if either an internal error occurs or there is an authentication issue (such as an expired OAuth token).
| Status | Description |
| 200 - OK | Returned if the request was completed successfully. |
Example - Retrieve root-level resource links
This provides entry points to ensure clients don't have to be aware of URI structure when implementing an API client
Request Headers
| Key | Value | Description |
|---|
| Accept | application/json | |
Response Headers