Introduction
The Hydra Cloud API was created to simplify integration processes. It comprises several Web Services that comply to the principles of the RESTful architectural style. Since REST is not a restrictive standard it allows flexibility and freedom of structure. This document describes the approach on REST taken by Hydra Cloud API and assumes the reader has familiarity with REST and JSON responses.
Authentication
Authentication, Authorization and Security
There are 2 types of users in the Hydra PSA API:
- Platform Users log in using the same credentials as on the Hydra PSA Web application and will be able to query only objects he/she can access, retaining its user license type and access permissions on companies and projects.
- Company Users log in using the company Web API Key. For this, you will need to generate the API Key in the Company Preferences on the Hydra PSA Web application. By default, a company API Key is not generated. With this type of authentication you will be granted access to all of the organization data, useful for data integration scenarios. Keep in mind that you can regenerate the API Key whenever needed, but that mens all integration calls to the authentication service must be updated.
The authentication URIs are:
- For platform users:
https://api.hydra.cloud/v1/login/username/password
- For company users:
https://api.hydra.cloud/v1/auth/companyId/apikey
The result of a succesful login is an authentication token string that must be attached to every subsequent API invocation (in the same fashion as a session id). This is done using the etask-auth-token HTTP header. The default format of this token string will be JSON, but XML can also be specified through the Accept HTTP header.
ApiKey Login
curl 'https://api.hydra.cloud/v1/auth/{companyId}/{apiKey}'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/auth/{companyId}/{apiKey}'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
"e1c27de2-96a2-4ff9-a133-0f77a5b91305"
<string>da056d71-a263-47cf-a877-4a8f2bd8044e</string>
Allows an etask company user, given the company Id and its API Key. This access point is defined for companies requiring integration processes.
HTTP Request
GET/v1/auth/{companyId}/{apiKey}
Request Input
Name | Description | Param Type |
---|---|---|
Long companyId | Id of the company to authenticate. | Path (Mandatory) |
String apiKey | private key assigned to the company for API access. | Path (Mandatory) |
Returns
Response Type | Description |
---|---|
String | generated security token. Must be included with each subsequent invocation using the etask-auth-token header. |
ApiKey Login Body
curl 'https://api.hydra.cloud/v1/auth'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-x POST
-d '{"companyId":"282","apiKey":"BRh8vJ631YNs3299Y1Q6S1SB8N5FXq"}'
curl 'https://api.hydra.cloud/v1/auth'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type:application/xml;charset=utf-8'
-x POST
-d '<com.etask.api.guard.CompApiKey>
<companyId>282</companyId>
<apiKey>BRh8vJ631YNs3299Y1Q6S1SB8N5FXq</apiKey>
</com.etask.api.guard.CompApiKey>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
"97d7c126-a64d-431d-8da9-ca079ea06061"
<string>97d7c126-a64d-431d-8da9-ca079ea06061</string>
Allows an etask company user, given the company Id and its API Key. This access point is defined for the companies which require integration processes. POST Version
HTTP Request
POST/v1/auth
Request Input
Name | Description | Param Type |
---|---|---|
CompApiKey api | company ID and its API Key. | RequestBody |
Returns
Response Type | Description |
---|---|
String | generated security token. Must be included with each subsequent invocation using the etask-auth-token header. |
Platform Login
curl 'https://api.hydra.cloud/v1/login/{username}/{password}'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/login/{username}/{password}'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
"669307e0-4398-4a21-92a1-2a72a5299e95"
<string>669307e0-4398-4a21-92a1-2a72a5299e95</string>
Allows an etask user to log into the API application by providing the username and password credentials, in the URL. This access point is provided mainly for end-user mobile applications.
HTTP Request
GET/v1/login/{username}/{password}
Request Input
Name | Description | Param Type |
---|---|---|
String username | A username is in the form of an email address. | Path (Mandatory) |
String password | Username password. | Path (Mandatory) |
Returns
Response Type | Description |
---|---|
String | generated security token. Must be included with each subsequent invocation using the etask-auth-token header. |
Mobile Login
curl 'https://api.hydra.cloud/v1/login'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-x POST
-d '{"username":"luis.montano@hydra.com","password":"Asdf1234$"}'
curl 'https://api.hydra.cloud/v1/login'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type:application/xml;charset=utf-8'
-x POST
-d '<com.etask.api.guard.UserPwd>
<username>luis.montano@hydra.com</username>
<password>Asdf1234$</password>
</com.etask.api.guard.UserPwd>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
"97d7c126-a64d-431d-8da9-ca079ea06061"
<string>97d7c126-a64d-431d-8da9-ca079ea06061</string>
Allows an hydra MOBILE APP user to log into the API application by providing the username and password credentials through HTTP-POST’s RequestBody
HTTP Request
POST/v1/login
Request Input
Name | Description | Param Type |
---|---|---|
UserPwd user | user and password | RequestBody |
Returns
Response Type | Description |
---|---|
String | generated security token. Must be included with each subsequent invocation using the etask-auth-token header. |
Login with preferences
curl 'https://api.hydra.cloud/v1/mobile'
-H 'etask-user: user'
-H 'etask-auth-token: token'
-H 'User-Agent:HydraApp'
-H 'Content-Type:application/json;charset=utf-8'
-x POST
-d '{"platform":"ANDROID","notiserviceToken":"26722ASKJALL"}'
curl 'https://api.hydra.cloud/v1/mobile'
-H 'etask-user: user'
-H 'etask-auth-token: token'
-H 'User-Agent:HydraApp'
-H 'Content-Type:application/xml;charset=utf-8'
-x POST
-d '<com.etask.api.guard.MobilePrefsDTO>
<platform>ANDROID</platform>
<notiserviceToken>26722ASKJALL</notiserviceToken>
</com.etask.api.guard.MobilePrefsDTO>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
Allows an ETASK PLATFORM user to add Mobile Preferences to the application Including the user’s device notification services’ token and its platform
HTTP Request
POST/v1/mobile
Request Input
Name | Description | Param Type |
---|---|---|
MobilePrefs preferences | mobile preferences. | RequestBody |
logout
curl 'https://api.hydra.cloud/v1/logout'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/logout'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
true
<boolean>true</boolean>
Allows user to log off from the API application..
HTTP Request
GET/v1/logout
Returns
Response Type | Description |
---|---|
boolean | true only if the token could be validated. |
Request Headers
Description
The Hydra PSA API defines the etask-request HTTP headers to customize all API resources’ GET requests: pagination, partial response, filtering and ordering. This mechanism allows for many different views on the data available to the user, empowering client applications with different points of view. To address the custom headers, all features are introduced first -presenting the available headers for each one- and then an example is shown to illustrate their use.
Pagination: Use the etask-request-limit header to define number of results and the etask-request-offset header to set the starting result. 10 is the default limit and 0 the default starting record.
Partial response fields: Use the etask-request-fields header to set the fields wanted in the response. For a specific resource’s fields refer to the Catalog information on a methods’ help in the API Documentation. All resources define the “default” shortcut to return common fields, and also “basic” to return basic information, such as id and name, for combo boxes. If this header is not specified, the “default” fields will be returned.
Filters: Allow you to return only records matching one or more conditions. For this, use one or more etask-request-filter-nn headers, where nn starts from 1 (non-consecutive numbers are ignored). Refer to the Catalog of an API resource to see all available filters for each resource. There are 2 types of filters:
Filters over a filtrable field: the user can filter the results using approved fields, for which filtering is relevant. For example, a filter by name, status, or a range of dates. For this, the user specifies as value for an etask-request-filter-nn header a string containing a field, an operator and a value (or comma-separated values):
- For filtrable field names refer to the Catalog information on a methods’ help in the API Documentation.
- The operations available are EQUALS, NOT_EQUALS, LIKE, IN, NOT_IN, LESS_THAN, GREATER_THAN, LESS_EQUALS, GREATER_EQUALS and BETWEEN.
- For the filter value(s), you may only specify numbers (int, long, double), string, boolean (true/false), enumeration values, and dates conforming to the W3C standard for XML (YYYY-MM-DD), depending on the field type.
Predetermined filters: these are filters that cannot receive parameters. They can be used interchangeably with filters over fields, but may conflict with other predetermined filters. Example: in /myTasks you can specify the filter this_week to get this week’s tasks and this_month to get this month’s tasks. If both filters are specified, this_month will have precedence, as it is the rule for this particular case.
Ordering: use one or more etask-request-order-nn headers, where nn starts from 1 (non-consecutive numbers are ignored) and the ordering is applied according to that index. Again, refer to the Catalog information on a methods’ help in the API Documentation to see which fields are valid ordering fields. Additionally you can specify ASC or DESC, to order ascendently or descendently. If it isn’t specified, ASC is the default value. If no ordering is set, each API resource defines its own default ordering (/myTasks defines startDate ascending as the default ordering, for instance).
Example of use
The following headers can be applied to a single invocation to /myTasks:
Header | Value | Meaning |
---|---|---|
etask-request-limit | 25 | return up to 25 records |
etask-request-offset | 10 | start from the 10th record |
etask-request-fields | name,description,status | select only said fields |
etask-request-filter-1 | companyId|EQUALS|55 | return records for company with Id = 55 |
etask-request-filter-2 | status|IN|PLANNED, IN_PROGRESS | …matching both types of status |
etask-request-filter-3 | startDate|BETWEEN|2013-05-15,2013-06-15 | …with starting date between the W3C-compliant dates specified |
etask-request-filter-4 | tags|LIKE|c7 | “…associated with tags containing the ”“c7”“ string” |
etask-request-filter-5 | pending | “return only ”“pending”“ tasks (predetermined filter). Overrides the ”“status”“ filter.” |
etask-request-order-1 | startDate|DESC | order first by starting date, descendently |
etask-request-order-2 | name | …then order ascendently by name. |
Filter details
For each object’s catalog, there are definitions in how to filter their fields, the way to understand the description of each object’s catalog is described here:
- Is selectable?: Applies for those fields that can be defined into the etask-request header parameter: etask-request-fields, allowing to indicate which fields could be referenced into the SELECT clause for the listing queries related to a particular business object.
- Is a filter?: Applies for those fields that can defined into the etask-request header parameter: etask-request-filter-#, allowing to indicate which fields could be referenced into the WHERE clause for the listing queries related to a particular business object.
- operations available are: EQUALS, NOT_EQUALS, LIKE, IN, NOT_IN, LESS_THAN, GREATER_THAN, LESS_EQUALS, GREATER_EQUALS and BETWEEN.
- Is sortable?: Applies for those fields that can be defined into the etask-request header parameter: etask-request-order-#, allowing to define which fields could be referenced into the ORDER BY clause for the listing queries related to a particular business object.
- you can specify ASC or DESC, to order ascendently or descendently
- Is a basic field?: Applies for those fields which always will be selected in any query, in spite of the user has defined which fields will be selected, into the etask-request-fields header parameter.
- Is a default field?: Applies for those fields which will be selected in any query by default. unless the user has defined which fields will be selected, into the etask-request-fields header parameter.
Api Key Auth Mode Headers
When api key authentication is used you have to provide these headers for each request:
Header | Meaning |
---|---|
etask-auth-token | Token returned by the authentication endpoint |
etask-company | Id of the company |
User Auth Mode Headers
When user authentication is used you have to provide these headers for each request:
Header | Meaning |
---|---|
etask-auth-token | Token returned by the authentication endpoint |
etask-user | User’s login |
Admin Times
Admin Times object
Administrative Times are concepts that consume resource’s time different than work on a specific task. Meetings, vacations, training and absences are examples of this. An administrator can define administrative times for the company, and each project manager can define them for every project. Then, resources can log times for these concepts using their timesheet. This resource exposes administrative times for a given company or project, so resources can log times for any of these using the API.
This catalog defines the supported fields for a Field definition object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
billable | BOOLEAN | X | |||||||||
companyId | LONG | X | X | X | X | ||||||
companyName | STRING | X | X | X | X | ||||||
description | STRING | X | X | X | |||||||
icon | STRING | X | |||||||||
id | LONG | X | X | X | X | X | |||||
name | STRING | X | X | X | X | X | |||||
projectId | LONG | X | X | X | X | ||||||
projectName | STRING | X | X | X | X | ||||||
status | ENUM | X | X | X | X | ||||||
userId | LONG | X | X | X | X | ||||||
companyStatus | ENUM | X | X | X | X | ||||||
userCompanyStatus | ENUM | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | StatusEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/adminTimes'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/adminTimes'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 39581,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Ausencias",
"description": "Ausencias",
"status": "ENABLED"
},
{
"id": 39583,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Entrenamiento",
"description": "Entrenamiento",
"status": "ENABLED"
},
{
"id": 40421,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9886,
"projectName": "Crear Proyecto 10255",
"name": "Entrenamiento",
"description": "Entrenamiento",
"status": "ENABLED"
}
]
<list>
<com.etask.api.dto.resources.AdminTime>
<id>39581</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Ausencias</name>
<description>Ausencias</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>39583</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Entrenamiento</name>
<description>Entrenamiento</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>40421</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9886</projectId>
<projectName>Crear Proyecto 10255</projectName>
<name>Entrenamiento</name>
<description>Entrenamiento</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
</list>
Returns all available administrative times for the current user.
HTTP Request
GET/v1/adminTimes
Returns
A list with the administrative times available to the current user.
find
curl 'https://api.hydra.cloud/v1/adminTimes/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/adminTimes/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 39581,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Ausencias",
"description": "Ausencias",
"status": "ENABLED"
}
<com.etask.api.dto.resources.AdminTime>
<id>39581</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Ausencias</name>
<description>Ausencias</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
Returns the details for a single administrative time as long as it is
HTTP Request
GET/v1/adminTimes/{id}
Returns
Administrative time for the given ID.
count
curl 'https://api.hydra.cloud/v1/adminTimes/count'
-H 'etask-user:user'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/adminTimes/count'
-H 'etask-user:user'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<int>3</int>
Retrieves the number of administrative times according to the defined task-request header parameters.
HTTP Request
GET/v1/adminTimes/count
Returns
Response Type | Description |
---|---|
int | number of matching administrative times. |
sync
curl -X POST
'https://api.hydra.cloud/v1/adminTimes/sync'
-H 'Content-Type: application/json;charset=utf-8'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-d '{
"adminTimeTypesToSync":["Annual leave","IT Delays"],
"adminTimes":[
{
"adminTimeTypeName":"Annual leave",
"startDate":"2018-06-02T00:00:00.000",
"endDate":"2018-06-08T23:59:59.999",
"resourceAlias":"RES-005"
},
{
"adminTimeTypeName":"IT Delays",
"startDate":"2018-06-14T00:00:00.000",
"endDate":"2018-06-19T23:59:59.999",
"resourceMail":"peter@acme.com"
},
{
"adminTimeTypeName":"IT Delays",
"startDate":"2018-06-14T00:00:00.000",
"endDate":"2018-06-14T12:00:00.000",
"resourceAlias":"RES-001"
}
]
}'
HTTP/1.1 200 OK
The above command returns an Object structured like this, where the first record record was invalid :
{
"failedAdminTimes": [
{
"cause": {
"code": "ADMSYNC_RES_NOT_FOUND",
"message": "Provided resource doesn't exist"
},
"adminTime": {
"adminTimeTypeName": "IT Delays",
"startDate": "2018-06-14T00:00",
"endDate": "2018-06-14T12:00",
"resourceAlias": "RES-0005"
}
}
]
}
Synchronizes administrative times. This service allows to update the current and future administrative times in the platform. Only takes into account administrative times where its startDate is after the current date or its endDate is after the current date. This service is only available for use with an api key.
Recieves a list of administrative times(adminTimes) and a list of time types(adminTimeTypesToSync) to sync.
The adminTimeTypesToSync property is the list of admin time types that are going to be synchronized, its purpouse is provide which kind of administratives times are going to be synchronized. All records in the adminTimes property must have an admin time type included in the adminTimeTypesToSync list.
The adminTimes property is the list of admin times that are going to be synchronized. Each record in the list contains the resource alias(resourceAlias) or the resource email(resourceMail), the date range (startDate,endDate) and the administrative time type name(adminTimeTypeName).
startDate and endDate must be no time zoned dates.
Synchronization Process
- Each existing administrative time in the platform which is overlapped by a provided one with the same time type is replaced.
- All existing future administrative times in the list of timetypes to synchronize is removed if no overlapping or equal administrative time with same time type is recieved in the request.
- All provided administrative records that doesn’t overlap any of the existing ones in the platform are created as new records.
- If a provided record is equal to an existing one(same dates and same administrative time type) no modifications are perfomed.
HTTP Request
POST/v1/adminTimes/sync
Returns
Returns a list of records(failedAdminTimes) that were invalid during the synchronization and for each record what was wrong(cause).
Cause Code | Cause Message |
---|---|
ADMSYNC_EMPTY_DATES | Dates are empty |
ADMSYNC_ENDDATE_BEFORE_START | The end date is before the start date |
ADMSYNC_PAST_DATE_RANGE | Past date ranges are not allowed to sync |
ADMSYNC_RES_NOT_FOUND | Provided resource doesn’t exist |
ADMSYN_APPROVED_TIMELOGS | There are approved timelogs for this admin time record |
ADMSYN_TYPE_NOT_FOUND | The admin time type was not found |
ADMSYN_TYPE_NOT_IN_LIST | The admin time type is not on the list of admin type types to sync |
ADMSYN_TYPE_NON_WORKING | The admin time range covers a complete non-working period |
findCompaniesProjects
curl 'https://api.hydra.cloud/v1/adminTimes/companiesProjects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/adminTimes/companiesProjects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 39,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"name": "Companies or Projects"
},
{
"id": 39,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"projectId": 9218,
"projectName": "Crear Proyecto Prueba test performance................",
"name": "Companies or Projects"
},
{
"id": 1,
"companyId": 1,
"companyName": "Zarpa",
"name": "Companies or Projects"
}
]
<list>
<com.etask.api.dto.resources.AdminTime>
<id>39</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<name>Companies or Projects</name>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>39</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<projectId>9218</projectId>
<projectName>Crear Proyecto Prueba test performance................</projectName>
<name>Companies or Projects</name>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>1</id>
<companyId>1</companyId>
<companyName>Zarpa</companyName>
<name>Companies or Projects</name>
</com.etask.api.dto.resources.AdminTime>
</list>
Returns all available companies and projects for administrative times for the current user.
HTTP Request
GET/v1/adminTimes/companiesProjects
Returns
A list with the administrative times available to the current user.
findByCompanyOrProjectId
curl 'https://api.hydra.cloud/v1/adminTimes/{companyOrProject}/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/adminTimes/{companyOrProject}/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 5637,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"name": "General Overhead",
"status": "ENABLED"
},
{
"id": 92,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"name": "Training",
"description": "Training",
"status": "ENABLED"
},
{
"id": 5636,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"name": "Training",
"status": "ENABLED"
},
{
"id": 90,
"companyId": 39,
"companyName": "Alpha and Omega Technologies",
"name": "Vacations",
"description": "Vacations",
"status": "ENABLED"
}
]
<list>
<com.etask.api.dto.resources.AdminTime>
<id>5637</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<name>General Overhead</name>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>92</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<name>Training</name>
<description>Training</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>5636</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<name>Training</name>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
<com.etask.api.dto.resources.AdminTime>
<id>90</id>
<companyId>39</companyId>
<companyName>Alpha and Omega Technologies</companyName>
<name>Vacations</name>
<description>Vacations</description>
<status>ENABLED</status>
<billable>false</billable>
</com.etask.api.dto.resources.AdminTime>
</list>
Returns all available administrative times for the current user and company or project selected.
HTTP Request
GET/v1/adminTimes/{companyOrProject}/{id}
Request Input
Name | Description | Param Type |
---|---|---|
String companyOrProject | type: comp or proj | Path (Mandatory) |
Long companyOrProjectID | identifier of the company or project | Path (Mandatory) |
Returns
A list with the administrative times available to the current user and company or project selected.
Approval
Approval object
An approval is a mechanism which allows to ensure that a task has been verified by different people. In the Hydra-PSA application, an approval process supports up to 3 levels, where for each one there is a defined user, who is in charge for the supervision of the task, and who can deny or accept the current status for the requested task.
This catalog defines the supported fields for an Approval object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
actual_approval_effort | DOUBLE | X | X | X | X | X |
approval_type | ENUM | X | X | X | X | |
approver | STRING | X | X | X | X | X |
attachments | STRING | X | ||||
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
criteriaFilter | ENUM | X | ||||
deadline | DOUBLE | X | X | X | X | X |
deadlineDate | DATE | X | X | X | X | X |
deadlineUnit | ENUM | X | X | X | X | X |
expiration_rule | ENUM | X | X | X | X | X |
health | ENUM | X | X | X | ||
id | LONG | X | X | X | X | X |
level | INTEGER | X | X | X | X | X |
name | STRING | X | X | X | X | X |
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
request_date | DATE | X | X | X | X | X |
requestor_id | LONG | X | X | X | X | X |
requestor_name | STRING | X | X | X | X | X |
status | ENUM | X | X | X | X | X |
status_date | DATE | X | X | X | X | X |
userId | LONG | X | X | X | X | |
type | ENUM | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
approval_type | ApprovalTypeEnum |
|
criteriaFilter | TaskViewsEnum |
|
deadlineUnit | TimePeriodicityEnum |
|
expiration_rule | ApprovalExpirationRuleEnum |
|
health | HealthEnum |
|
status | ResApprovalStatusEnum |
|
type | ApprovalTypeEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/approvals'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/approvals'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 111021,
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 1",
"holderId": 2228657,
"level": 0,
"deadline": 1,
"deadlineUnit": "WEEKS",
"deadlineDate": "2017-06-13T16:00:00",
"requestDate": "2017-05-05T16:58:52",
"health": "GREEN",
"actualApprovalEffort": 0,
"status": "STARTED",
"attachmentsCount": 0,
"expirationRule": "SEND_REMINDER",
"approver": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA"
}
},
{
"id": 111022,
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 2",
"holderId": 2228662,
"level": 0,
"deadline": 1,
"deadlineUnit": "WEEKS",
"deadlineDate": "2017-06-07T16:00:00",
"requestDate": "2017-05-05T17:00:40",
"health": "GREEN",
"actualApprovalEffort": 0,
"status": "STARTED",
"attachmentsCount": 0,
"expirationRule": "SEND_REMINDER",
"approver": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA"
}
}
]
<list>
<com.etask.api.dto.resources.Approval>
<id>111021</id>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 1</name>
<holderId>2228657</holderId>
<level>0</level>
<deadline>1.00</deadline>
<deadlineUnit>WEEKS</deadlineUnit>
<deadlineDate>2017-06-13 22:00:00.0 UTC</deadlineDate>
<requestDate class="sql-timestamp">2017-05-05 22:58:52.0</requestDate>
<health>GREEN</health>
<actualApprovalEffort>0</actualApprovalEffort>
<status>STARTED</status>
<attachmentsCount>0</attachmentsCount>
<expirationRule>SEND_REMINDER</expirationRule>
<approver>
<id>10559</id>
<name>LUIS MONTAÑO CASTAÑEDA</name>
</approver>
</com.etask.api.dto.resources.Approval>
<com.etask.api.dto.resources.Approval>
<id>111022</id>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 2</name>
<holderId>2228662</holderId>
<level>0</level>
<deadline>1.00</deadline>
<deadlineUnit>WEEKS</deadlineUnit>
<deadlineDate>2017-06-07 22:00:00.0 UTC</deadlineDate>
<requestDate class="sql-timestamp">2017-05-05 23:00:40.0</requestDate>
<health>GREEN</health>
<actualApprovalEffort>0</actualApprovalEffort>
<status>STARTED</status>
<attachmentsCount>0</attachmentsCount>
<expirationRule>SEND_REMINDER</expirationRule>
<approver>
<id>10559</id>
<name>LUIS MONTAÑO CASTAÑEDA</name>
</approver>
</com.etask.api.dto.resources.Approval>
</list>
Generic approval finder. Can be customized using etask-request headers.
HTTP Request
GET/v1/approvals
Returns
List of Approval objects.
count
curl 'https://api.hydra.cloud/v1/approvals/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/approvals/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
2
<long>2</long>
Retrieves the number of results matching the etask-request headers received.
HTTP Request
GET/v1/approvals/count
Returns
Response Type | Description |
---|---|
long | number of matching approvals. |
find
curl 'https://api.hydra.cloud/v1/approvals/{approvalID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-1: approval_type|in|task'
curl 'https://api.hydra.cloud/v1/approvals/{approvalID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-1: approval_type|in|task'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 111022,
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 2",
"holderId": 2228662,
"level": 0,
"deadline": 1,
"deadlineUnit": "WEEKS",
"deadlineDate": "2017-06-07T17:00:00",
"requestDate": "2017-05-05T17:00:40",
"health": "GREEN",
"actualApprovalEffort": 0,
"status": "STARTED",
"type": "TASK",
"attachmentsCount": 0,
"expirationRule": "SEND_REMINDER",
"approver": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA"
}
}
<com.etask.api.dto.resources.Approval>
<id>111022</id>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 2</name>
<holderId>2228662</holderId>
<level>0</level>
<deadline>1.00</deadline>
<deadlineUnit>WEEKS</deadlineUnit>
<deadlineDate class="sql-timestamp">2017-06-07 23:00:00.0</deadlineDate>
<requestDate class="sql-timestamp">2017-05-05 23:00:40.0</requestDate>
<health>GREEN</health>
<actualApprovalEffort>0</actualApprovalEffort>
<status>STARTED</status>
<type>TASK</type>
<attachmentsCount>0</attachmentsCount>
<expirationRule>SEND_REMINDER</expirationRule>
<approver>
<id>10559</id>
<name>LUIS MONTAÑO CASTAÑEDA</name>
</approver>
</com.etask.api.dto.resources.Approval>
Returns the detail of the approval with the given Id. Can be customized using {@link EtaskRequest} headers.
HTTP Request
GET/v1/approvals/{approvalID}
Request Input
Name | Description | Param Type |
---|---|---|
Long approvalID | identifier of the approval. | Path (Mandatory) |
Returns
Approval object.
update
curl 'https://api.hydra.cloud/v1/approvals'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '{
"id": 111170,
"projectId": 9887,
"projectName": "Crear Proyecto 1025",
"name": "Pruebas",
"holderId": 2229910,
"level": 0,
"deadline": 1,
"deadlineUnit": "WEEKS",
"deadlineDate": "2017-05-18T16:00:00",
"requestDate": "2017-05-11T11:42:57",
"health": "GREEN",
"actualApprovalEffort": 0,
"status": "REJECTED",
"attachmentsCount": 0,
"expirationRule": "SEND_REMINDER",
"approver": {
"id": 10488,
"name": "Miguel Montañez"
},
"type":"TASK"
}'
curl 'https://api.hydra.cloud/v1/approvals'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '
<com.etask.api.dto.resources.Approval>
<id>111170</id>
<projectId>9887</projectId>
<projectName>Crear Proyecto 1025</projectName>
<name>Pruebas</name>
<holderId>2229910</holderId>
<level>0</level>
<deadline>1.00</deadline>
<deadlineUnit>WEEKS</deadlineUnit>
<deadlineDate>2017-05-18 22:00:00.0 UTC</deadlineDate>
<requestDate class="sql-timestamp">2017-05-11 17:42:57.0</requestDate>
<statusDate class="sql-timestamp">2017-05-11 18:01:32.0</statusDate>
<health>GREEN</health>
<actualApprovalEffort>0</actualApprovalEffort>
<status>PENDING</status>
<attachmentsCount>0</attachmentsCount>
<expirationRule>SEND_REMINDER</expirationRule>
<approver>
<id>10488</id>
<name>Miguel Montañez</name>
</approver>
<type>TASK</type>
</com.etask.api.dto.resources.Approval>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 111170,
"projectId": 9887,
"projectName": "Crear Proyecto 1025",
"name": "Pruebas",
"holderId": 2229910,
"level": 0,
"deadline": 1,
"deadlineUnit": "WEEKS",
"deadlineDate": "2017-05-18T16:00:00",
"requestDate": "2017-05-11T11:42:57",
"health": "GREEN",
"actualApprovalEffort": 0,
"status": "REJECTED",
"type": "TASK",
"attachmentsCount": 0,
"expirationRule": "SEND_REMINDER",
"approver": {
"id": 10488,
"name": "Miguel Montañez"
}
}
<com.etask.api.dto.resources.Approval>
<id>111170</id>
<projectId>9887</projectId>
<projectName>Crear Proyecto 1025</projectName>
<name>Pruebas</name>
<holderId>2229910</holderId>
<level>0</level>
<deadline>1.00</deadline>
<deadlineUnit>WEEKS</deadlineUnit>
<deadlineDate>2017-05-18 22:00:00.0 UTC</deadlineDate>
<requestDate class="sql-timestamp">2017-05-11 17:42:57.0</requestDate>
<statusDate class="sql-timestamp">2017-05-11 18:01:32.0</statusDate>
<health>GREEN</health>
<actualApprovalEffort>0</actualApprovalEffort>
<status>PENDING</status>
<type>TASK</type>
<attachmentsCount>0</attachmentsCount>
<expirationRule>SEND_REMINDER</expirationRule>
<approver>
<id>10488</id>
<name>Miguel Montañez</name>
</approver>
</com.etask.api.dto.resources.Approval>
Updates an approval’s information and status: approves, rejects or skips the approval.
HTTP Request
PUT/v1/approvals
Request Input
Name | Description | Param Type |
---|---|---|
Approval approval | approval object | RequestBody |
Returns
Approval object detail after the update.
Blueprint
Blueprint object
A blueprint is a model of the business or organization, its working practices and processes, the information it requires and the technology that will be needed to deliver the capability described in the vision statement.
This catalog defines the supported fields for a Blueprint object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
alias | STRING | X | X | X | X | X |
companyBp | BOOLEAN | X | X | X | X | |
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
description | STRING | X | X | X | ||
id | LONG | X | X | X | X | X |
language | ENUM | X | X | X | X | |
name | STRING | X | X | X | X | X |
orgUnits | STRING | X | X | |||
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
status | ENUM | X | X | X | X | |
tags | STRING | X | ||||
userId | LONG | X | X | X | X | |
version | STRING | X | X | X | X | |
versionComments | STRING | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
Language | LanguageEnum |
|
Status | StatusEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/blueprints'
-H 'etask-company:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/blueprints'
-H 'etask-user:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 7755,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9915,
"projectName": "Hydra Management",
"name": "Hydra Management",
"alias": "BPRT-010",
"status": "ENABLED",
"language": "ES",
"companyBp": true
},
{
"id": 7731,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9865,
"projectName": "Hydra Management",
"name": "Hydra Management",
"alias": "BPRT-008",
"status": "ENABLED",
"language": "ES",
"companyBp": true
}
]
<list>
<com.etask.api.dto.resources.Blueprint>
<id>7755</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9915</projectId>
<projectName>Hydra Management</projectName>
<name>Hydra Management</name>
<alias>BPRT-010</alias>
<status>ENABLED</status>
<language>ES</language>
<companyBp>true</companyBp>
</com.etask.api.dto.resources.Blueprint>
<com.etask.api.dto.resources.Blueprint>
<id>7731</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9865</projectId>
<projectName>Hydra Management</projectName>
<name>Hydra Management</name>
<alias>BPRT-008</alias>
<status>ENABLED</status>
<language>ES</language>
<companyBp>true</companyBp>
</com.etask.api.dto.resources.Blueprint>
</list>
Company Blueprints finder. Can be customized using etask-request headers.
HTTP Request
GET/v1/blueprints
Returns
List of Blueprint.
count
curl 'https://api.hydra.cloud/v1/blueprints/count'
-H 'etask-company:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/blueprints/count'
-H 'etask-company:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
2
<long>2</long>
Retrieves the number of results that would be returned by the find service. Can be customized using etask-request headers.
HTTP Request
GET/v1/blueprints/count
Returns
Response Type | Description |
---|---|
long | number of matching blueprints. |
find
curl 'https://api.hydra.cloud/v1/blueprints/{blueprintID}'
-H 'etask-company:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/blueprints/{blueprintID}'
-H 'etask-company:companyID'
-H 'etask-auth-token: companyToken'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 7755,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9915,
"projectName": "Hydra Management",
"name": "Hydra Management",
"alias": "BPRT-010",
"status": "ENABLED",
"language": "ES",
"companyBp": true
}
<com.etask.api.dto.resources.Blueprint>
<id>7755</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9915</projectId>
<projectName>Hydra Management</projectName>
<name>Hydra Management</name>
<alias>BPRT-010</alias>
<status>ENABLED</status>
<language>ES</language>
<companyBp>true</companyBp>
</com.etask.api.dto.resources.Blueprint>
Service that allows to retrieve the company Blueprint information for a Blueprint Id specified in URL.
HTTP Request
GET/v1/blueprints/{blueprintID}
Request Input
Name | Description | Param Type |
---|---|---|
Long blueprintID | identifier of the blueprint. | Path (Mandatory) |
Returns
Blueprint object.
Batch
Batch object
This catalog defines the supported fields for a Batch object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
trackerId | STRING | X | X | X | |||||||
startDate | DATE | X | X | X | |||||||
endDate | DATE | X | X | ||||||||
status | ENUM | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | Status |
|
find
curl 'https://api.hydra.cloud/v1/batch/{trackerId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/batch/{trackerId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"trackerId": "02cb5564-1879-449e-8c62-fb57c355d743",
"creationDate": "2018-02-26T13:28:06",
"startDate": "2018-02-26T13:28:06",
"endDate": "2018-02-26T13:28:15",
"status": "COMPLETED"
}
<com.etask.api.dto.resources.Batch>
<trackerId>02cb5564-1879-449e-8c62-fb57c355d743</trackerId>
<startDate class="sql-timestamp">2018-02-26 18:28:06.0</startDate>
<endDate class="sql-timestamp">2018-02-26 18:28:15.0</endDate>
<status>COMPLETED</status>
</com.etask.api.dto.resources.Batch>
Retrieves the batch process detail given its tracker id. Tracker ID is returned by services that run on background mode.
HTTP Request
GET/v1/batch/{trackerId}
Returns
The batch’s detail.
Bulk
It is classified into 3 types of objects:
This catalog defines the supported fields for those objects and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
BulkJob
BulkJob holder for API related operations The catalog which describes the defined fields for this resource is shown below:
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
batchCount | INTEGER | X | X | X | X | ||||||
companyId | LONG | X | X | X | X | ||||||
companyName | STRING | X | X | X | X | ||||||
endDate | DATE | X | X | X | X | ||||||
executionMode | STRING | X | X | X | |||||||
id | LONG | X | X | X | X | X | |||||
projectId | LONG | X | X | X | X | ||||||
projectName | STRING | X | X | X | X | ||||||
recordCount | INTEGER | X | X | X | X | ||||||
startDate | DATE | X | X | X | X | ||||||
status | ENUM | X | X | X | X | X | X | ||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | JobStatus |
|
BulkBatch
BulkBatch holder for API related operations The catalog which describes the defined fields for this resource is shown below:
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
companyId | LONG | X | X | X | X | ||||||
companyName | STRING | X | X | X | X | ||||||
endDate | DATE | X | X | X | X | ||||||
executionMode | STRING | X | X | X | |||||||
id | LONG | X | X | X | X | X | |||||
jobId | LONG | X | X | ||||||||
projectId | LONG | X | X | X | X | ||||||
projectName | STRING | X | X | X | X | ||||||
recordCount | INTEGER | X | X | X | X | ||||||
startDate | DATE | X | X | X | X | ||||||
status | ENUM | X | X | X | X | X | |||||
type | ENUM | X | X | X | X | X | |||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | JobStatus |
|
type | BulkBatchType |
|
BulkRecord
BulkRecord holder for API related operations The catalog which describes the defined fields for this resource is shown below:
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
batchId | LONG | X | X | ||||||||
companyId | LONG | X | X | X | X | ||||||
companyName | STRING | X | X | X | X | ||||||
eventCount | INTEGER | X | X | X | X | ||||||
eventDate | DATE | X | X | X | X | ||||||
id | LONG | X | X | X | X | X | |||||
jobId | LONG | X | X | ||||||||
position | LONG | X | X | X | X | X | X | ||||
projectId | LONG | X | X | X | X | ||||||
projectName | STRING | X | X | X | X | ||||||
status | ENUM | X | X | X | X | X | |||||
type | ENUM | X | X | X | X | X | |||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | JobStatus |
|
type | BulkRecordType |
|
findAll
curl 'https://api.hydra.cloud/v1/jobs'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-company: companyId'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/jobs'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-company: companyId'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"bulkJobs": [
{
"id": 606,
"companyId": 280,
"userId": 11023,
"status": "FAILED",
"batchCount": 1,
"recordCount": 2,
"startDate": "2017-05-09T10:08:29",
"endDate": "2017-05-09T10:08:34",
"executionMode": "SEQUENTIAL"
},
{
"id": 605,
"companyId": 280,
"userId": 11023,
"status": "FAILED",
"batchCount": 1,
"recordCount": 2,
"startDate": "2017-05-09T09:45:02",
"endDate": "2017-05-09T09:45:08",
"executionMode": "SEQUENTIAL"
},
{
"id": 604,
"companyId": 280,
"userId": 11023,
"status": "FAILED",
"batchCount": 1,
"recordCount": 2,
"startDate": "2017-05-09T09:44:48",
"endDate": "2017-05-09T09:45:00",
"executionMode": "SEQUENTIAL"
}
],
"count": 3
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<bulkJobs>
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>606</id>
<companyId>280</companyId>
<userId>11023</userId>
<status>FAILED</status>
<batchCount>1</batchCount>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 16:08:29.0</startDate>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>605</id>
<companyId>280</companyId>
<userId>11023</userId>
<status>FAILED</status>
<batchCount>1</batchCount>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 15:45:02.0</startDate>
<endDate class="sql-timestamp">2017-05-09 15:45:08.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>604</id>
<companyId>280</companyId>
<userId>11023</userId>
<status>FAILED</status>
<batchCount>1</batchCount>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 15:44:48.0</startDate>
<endDate class="sql-timestamp">2017-05-09 15:45:00.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
</bulkJobs>
<count>3</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Finds all Bulk Job objects created by the company. The results can be customized using the etask-request headers.
HTTP Request
GET/v1/jobs
Returns
List of matching bulk job objects.
find bulk job
curl 'https://api.hydra.cloud/v1/jobs/{id}'
-H 'etask-user:user'
-H 'etask-company: companyId'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/jobs/{id}'
-H 'etask-user:user'
-H 'etask-company: companyId'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 606,
"companyId": 280,
"userId": 11023,
"status": "FAILED",
"batchCount": 1,
"batchStatus": {
"queued": 0,
"inProgress": 0,
"completedSuccess": 0,
"completedErrors": 0,
"failed": 1,
"notProcessed": 0,
"total": 1
},
"batches": [
{
"id": 612,
"bulkJobId": 606,
"status": "FAILED",
"recordCount": 2,
"startDate": "2017-05-09T10:08:29",
"endDate": "2017-05-09T10:08:34",
"executionMode": "SEQUENTIAL",
"type": "LOAD_PROJECTS_OBJECTS",
"executionOrder": 0
}
],
"recordCount": 2,
"startDate": "2017-05-09T10:08:29",
"endDate": "2017-05-09T10:08:34",
"executionMode": "SEQUENTIAL"
}
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>606</id>
<companyId>280</companyId>
<userId>11023</userId>
<status>FAILED</status>
<batchCount>1</batchCount>
<batchStatus>
<queued>0</queued>
<inProgress>0</inProgress>
<completedSuccess>0</completedSuccess>
<completedErrors>0</completedErrors>
<failed>1</failed>
<notProcessed>0</notProcessed>
<total>1</total>
</batchStatus>
<batches>
<com.etask.api.dto.resources.bulk.APIBulkBatch>
<id>612</id>
<bulkJobId>606</bulkJobId>
<status>FAILED</status>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 16:08:29.0</startDate>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
<type>LOAD_PROJECTS_OBJECTS</type>
<executionOrder>0</executionOrder>
</com.etask.api.dto.resources.bulk.APIBulkBatch>
</batches>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 16:08:29.0</startDate>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
Returns a Bulk Job’s details given its id. The results can be customized using the etask-request headers.
HTTP Request
GET/v1/jobs/{id}
Returns
The bulk job’s details.
find bulk batch
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 612,
"status": "FAILED",
"recordCount": 2,
"recordStatus": {
"queued": 0,
"inProgress": 0,
"completedSuccess": 0,
"completedErrors": 0,
"failed": 2,
"notProcessed": 0,
"total": 2
},
"startDate": "2017-05-09T10:08:29",
"endDate": "2017-05-09T10:08:34",
"executionMode": "SEQUENTIAL",
"type": "LOAD_PROJECTS_OBJECTS",
"executionOrder": 0,
"records": [
{
"id": 10455,
"bulkJobId": 606,
"bulkBatchId": 612,
"status": "NOT_PROCESSED",
"payload": "{\"companyId\":280,\"name\":\"Bulk Project 1\",\"estStart\":\"2017-04-03T00:00:00\",\"estFinish\":\"2018-04-22T23:59:59\",\"projectManagerEmail\":\"miguelm@mail.com\",\"userCreatorEmail\":\"miguelm@mail.com\"}",
"endDate": "2017-05-09T10:08:34",
"position": 1,
"type": "JAVA_OBJ"
},
{
"id": 10456,
"bulkJobId": 606,
"bulkBatchId": 612,
"status": "NOT_PROCESSED",
"payload": "{\"companyId\":280,\"name\":\"Bulk Project 2\",\"estStart\":\"2017-04-03T00:00:00\",\"estFinish\":\"2018-04-22T23:59:59\",\"projectManagerEmail\":\"miguelm@mail.com\",\"userCreatorEmail\":\"miguelm@mail.com\"}",
"endDate": "2017-05-09T10:08:34",
"position": 2,
"type": "JAVA_OBJ"
}
]
}
<com.etask.api.dto.resources.bulk.APIBulkBatch>
<id>612</id>
<status>FAILED</status>
<recordCount>2</recordCount>
<recordStatus>
<queued>0</queued>
<inProgress>0</inProgress>
<completedSuccess>0</completedSuccess>
<completedErrors>0</completedErrors>
<failed>2</failed>
<notProcessed>0</notProcessed>
<total>2</total>
</recordStatus>
<startDate class="sql-timestamp">2017-05-09 16:08:29.0</startDate>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
<type>LOAD_PROJECTS_OBJECTS</type>
<executionOrder>0</executionOrder>
<records>
<com.etask.api.dto.resources.bulk.APIBulkRecord>
<id>10455</id>
<bulkJobId>606</bulkJobId>
<bulkBatchId>612</bulkBatchId>
<status>NOT_PROCESSED</status>
<payload>{"companyId":280,"name":"Bulk Project 1","estStart":"2017-04-03T00:00:00","estFinish":"2018-04-22T23:59:59","projectManagerEmail":"miguelm@mail.com","userCreatorEmail":"miguelm@mail.com"}</payload>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<position>1</position>
<type>JAVA_OBJ</type>
</com.etask.api.dto.resources.bulk.APIBulkRecord>
<com.etask.api.dto.resources.bulk.APIBulkRecord>
<id>10456</id>
<bulkJobId>606</bulkJobId>
<bulkBatchId>612</bulkBatchId>
<status>NOT_PROCESSED</status>
<payload>{"companyId":280,"name":"Bulk Project 2","estStart":"2017-04-03T00:00:00","estFinish":"2018-04-22T23:59:59","projectManagerEmail":"miguelm@mail.com","userCreatorEmail":"miguelm@mail.com"}</payload>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<position>2</position>
<type>JAVA_OBJ</type>
</com.etask.api.dto.resources.bulk.APIBulkRecord>
</records>
</com.etask.api.dto.resources.bulk.APIBulkBatch>
Returns a Bulk Batch’s details given its id. The results can be customized using the etask-request headers.
HTTP Request
GET/v1/jobs/{jobId}/batches/{batchId}
Returns
The bulkbatch’s details.
find bulk record
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/records/{recordId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/records/{recordId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 10455,
"status": "NOT_PROCESSED",
"payload": "{\"companyId\":280,\"name\":\"Bulk Project 1\",\"estStart\":\"2017-04-03T00:00:00\",\"estFinish\":\"2018-04-22T23:59:59\",\"projectManagerEmail\":\"miguelm@mail.com\",\"userCreatorEmail\":\"miguelm@mail.com\"}",
"endDate": "2017-05-09T10:08:34",
"position": 1,
"type": "JAVA_OBJ",
"events": [
{
"id": 2964,
"message": "The Cantidad custom field is mandatory, please include a value for :",
"code": "CF_2002",
"eventDate": "2017-05-09T10:08:34",
"type": "ERROR"
}
]
}
<com.etask.api.dto.resources.bulk.APIBulkRecord>
<id>10455</id>
<status>NOT_PROCESSED</status>
<payload>{"companyId":280,"name":"Bulk Project 1","estStart":"2017-04-03T00:00:00","estFinish":"2018-04-22T23:59:59","projectManagerEmail":"miguelm@mail.com","userCreatorEmail":"miguelm@mail.com"}</payload>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<position>1</position>
<type>JAVA_OBJ</type>
<events>
<com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
<id>2964</id>
<message>The Cantidad custom field is mandatory, please include a value for :</message>
<code>CF_2002</code>
<eventDate class="sql-timestamp">2017-05-09 16:08:34.0</eventDate>
<type>ERROR</type>
</com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
</events>
</com.etask.api.dto.resources.bulk.APIBulkRecord>
Returns a Bulk Record’s details given its id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/jobs/{jobId}/batches/{batchId}/records/{recordId}
Returns
The bulk record’s details.
count bulk jobs
curl 'https://api.hydra.cloud/v1/jobs/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/jobs/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"count": 5
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<count>5</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Retrieves the number of Bulk Jobs. The results can be customized using the etask-request headers.
HTTP Request
GET/v1/jobs/count
Returns
Number of matching Bulk Job objects.
count bulk batches
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"count": 1
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<count>1</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Retrieves the number of Bulk batches. The results can be customized using the etask-request headers.
HTTP Request
GET/v1/jobs/{jobId}/count
Returns
Number of matching Bulk Batch objects.
count bulk records
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"count": 2
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<count>2</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Retrieves the number of Bulk Records matching the etask-request header parameters.
HTTP Request
GET/v1/jobs/{jobId}/batches/{batchId}/count
Returns
Number of matching Bulk Record objects.
findAll Bulk Batches
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-company: companyId'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-company: companyId'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"bulkBatches": [
{
"id": 612,
"status": "FAILED",
"recordCount": 2,
"startDate": "2017-05-09T10:08:29",
"endDate": "2017-05-09T10:08:34",
"executionMode": "SEQUENTIAL",
"type": "LOAD_PROJECTS_OBJECTS",
"executionOrder": 0
}
],
"count": 1
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<bulkBatches>
<com.etask.api.dto.resources.bulk.APIBulkBatch>
<id>612</id>
<status>FAILED</status>
<recordCount>2</recordCount>
<startDate class="sql-timestamp">2017-05-09 16:08:29.0</startDate>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<executionMode>SEQUENTIAL</executionMode>
<type>LOAD_PROJECTS_OBJECTS</type>
<executionOrder>0</executionOrder>
</com.etask.api.dto.resources.bulk.APIBulkBatch>
</bulkBatches>
<count>1</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Finds all Bulk Batch objects in a given Bulk Job.
HTTP Request
GET/v1/jobs/{jobId}/batches
Returns
List of matching bulk batch objects.
findAll Bulk Records
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/records'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-company: companyId'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/records'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-company: companyId'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"bulkRecords": [
{
"id": 10456,
"status": "NOT_PROCESSED",
"payload": "{\"companyId\":280,\"name\":\"Bulk Project 2\",\"estStart\":\"2017-04-03T00:00:00\",\"estFinish\":\"2018-04-22T23:59:59\",\"projectManagerEmail\":\"miguelm@mail.com\",\"userCreatorEmail\":\"miguelm@mail.com\"}",
"endDate": "2017-05-09T10:08:34",
"position": 2,
"type": "JAVA_OBJ",
"events": [
{
"id": 2965,
"message": "The Cantidad custom field is mandatory, please include a value for :",
"code": "CF_2002",
"eventDate": "2017-05-09T10:08:34",
"type": "ERROR"
}
]
},
{
"id": 10455,
"status": "NOT_PROCESSED",
"payload": "{\"companyId\":280,\"name\":\"Bulk Project 1\",\"estStart\":\"2017-04-03T00:00:00\",\"estFinish\":\"2018-04-22T23:59:59\",\"projectManagerEmail\":\"miguelm@mail.com\",\"userCreatorEmail\":\"miguelm@mail.com\"}",
"endDate": "2017-05-09T10:08:34",
"position": 1,
"type": "JAVA_OBJ",
"events": [
{
"id": 2964,
"message": "The Cantidad custom field is mandatory, please include a value for :",
"code": "CF_2002",
"eventDate": "2017-05-09T10:08:34",
"type": "ERROR"
}
]
}
],
"count": 2
}
<com.etask.api.dto.resources.bulk.BulkResponse>
<bulkRecords>
<com.etask.api.dto.resources.bulk.APIBulkRecord>
<id>10456</id>
<status>NOT_PROCESSED</status>
<payload>{"companyId":280,"name":"Bulk Project 2","estStart":"2017-04-03T00:00:00","estFinish":"2018-04-22T23:59:59","projectManagerEmail":"miguelm@mail.com","userCreatorEmail":"miguelm@mail.com"}</payload>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<position>2</position>
<type>JAVA_OBJ</type>
<events>
<com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
<id>2965</id>
<message>The Cantidad custom field is mandatory, please include a value for :</message>
<code>CF_2002</code>
<eventDate class="sql-timestamp">2017-05-09 16:08:34.0</eventDate>
<type>ERROR</type>
</com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
</events>
</com.etask.api.dto.resources.bulk.APIBulkRecord>
<com.etask.api.dto.resources.bulk.APIBulkRecord>
<id>10455</id>
<status>NOT_PROCESSED</status>
<payload>{"companyId":280,"name":"Bulk Project 1","estStart":"2017-04-03T00:00:00","estFinish":"2018-04-22T23:59:59","projectManagerEmail":"miguelm@mail.com","userCreatorEmail":"miguelm@mail.com"}</payload>
<endDate class="sql-timestamp">2017-05-09 16:08:34.0</endDate>
<position>1</position>
<type>JAVA_OBJ</type>
<events>
<com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
<id>2964</id>
<message>The Cantidad custom field is mandatory, please include a value for :</message>
<code>CF_2002</code>
<eventDate class="sql-timestamp">2017-05-09 16:08:34.0</eventDate>
<type>ERROR</type>
</com.etask.api.dto.resources.bulk.APIBulkRecordEvent>
</events>
</com.etask.api.dto.resources.bulk.APIBulkRecord>
</bulkRecords>
<count>2</count>
</com.etask.api.dto.resources.bulk.BulkResponse>
Finds all Bulk Record objects in a given Bulk Batch.
HTTP Request
GET/v1/jobs/{jobId}/batches/{batchId}/records
Returns
List of matching bulk record objects.
create bulk job
curl 'https://api.hydra.cloud/v1/jobs'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
curl 'https://api.hydra.cloud/v1/jobs'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 609,
"companyId": 280,
"status": "ON_CONFIG",
"batchCount": 0,
"executionMode": "SEQUENTIAL"
}
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>610</id>
<companyId>280</companyId>
<status>ON_CONFIG</status>
<batchCount>0</batchCount>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
Allows the creation of an empty bulk job. After a job is created, you have to create bulk batches associated to this job and then start it, changing the status to QUEUED.
HTTP Request
POST/v1/jobs
Request Input
Name | Description | Param Type |
---|---|---|
BulkJob bulkJob | bulkJob object | RequestBody |
Returns
Return a new empty bulk job in CONFIGURE State
create bulk batch
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
-d '{
"type": "LOAD_PROJECTS_FILE"
}'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches'
-H 'etask-user:user'
-H 'etask-company: companyId'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-d '<com.etask.api.dto.resources.bulk.APIBulkBatch>
<type>LOAD_PROJECTS_FILE</type>
</com.etask.api.dto.resources.bulk.APIBulkBatch>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 4,
"status": "ON_CONFIG",
"recordCount": 0,
"executionMode": "SEQUENTIAL",
"type": "LOAD_PROJECTS_FILE",
"loadType": "CSV_FILE_LOAD",
"executionOrder": 3
}
<com.etask.api.dto.resources.bulk.APIBulkBatch>
<id>5</id>
<status>ON_CONFIG</status>
<recordCount>0</recordCount>
<executionMode>SEQUENTIAL</executionMode>
<type>LOAD_PROJECTS_FILE</type>
<loadType>CSV_FILE_LOAD</loadType>
<executionOrder>4</executionOrder>
</com.etask.api.dto.resources.bulk.APIBulkBatch>
Allows the creation of an empty bulk batch.
HTTP Request
POST/v1/jobs/{jobId}/batches
Request Input
Name | Description | Param Type |
---|---|---|
APIBulkBatch bulk batch | APIBulkBatch object | RequestBody |
Returns
Return a new empty bulk batch in CONFIGURE State.
upload batch file
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/file'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-X POST
-F 'file=@C:\Users\USUARIO\Desktop\projects.csv'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}/batches/{batchId}/file'
-H 'etask-user:user'
-H 'etask-company: companyId'
-H 'etask-auth-token: token'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-F 'file=@C:\Users\USUARIO\Desktop\projects.csv'
HTTP/1.1 200 OK
Associates a file with a batch, if a file is already associated, it will be replaced by the new one.
HTTP Request
POST/v1/jobs/{jobId}/batches/{batchId}/file
Request Input
Name | Description | Param Type |
---|---|---|
multipart file | file to link with bulk batch | RequestBody |
Returns
empty
start bulk job
curl 'https://api.hydra.cloud/v1/jobs/{jobId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X PUT
-d '{
"status": "QUEUED"
}'
curl 'https://api.hydra.cloud/v1/jobs/{jobId}'
-H 'etask-user:user'
-H 'etask-company: companyId'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type:application/xml;charset=utf-8'
-X PUT
-d '<com.etask.api.dto.resources.bulk.APIBulkJob>
<status>QUEUED</status>
</com.etask.api.dto.resources.bulk.APIBulkJob>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 609,
"companyId": 280,
"status": "QUEUED",
"batchCount": 0,
"executionMode": "SEQUENTIAL"
}
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>610</id>
<companyId>280</companyId>
<status>QUEUED</status>
<batchCount>0</batchCount>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
Updates an existing job. To start a bulk job, update the status to QUEUED. The job must have at least one batch, and all batches need to be associated to a file.
HTTP Request
PUT/v1/jobs/{jobId}
Request Input
Name | Description | Param Type |
---|---|---|
APIBulkJob bulkJob | APIBulkJob object | RequestBody |
Returns
Updated bulk job
Checklist
Checklist object
The check list is a combination of an action list and a tool to verify that necessary steps have been completed. The start-up check list should be organized according to the major areas of concern that will determine the project’s success.
This catalog defines the supported fields for a Blueprint object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
checked | BOOLEAN | X | X | X | X | |
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
description | STRING | X | X | |||
group | BOOLEAN | X | X | X | ||
groupId | LONG | X | X | X | ||
groupName | LONG | X | ||||
id | LONG | X | X | X | X | X |
mandatory | BOOLEAN | X | X | X | ||
name | STRING | X | X | X | X | X |
ownerId | LONG | X | X | |||
ownerName | STRING | X | ||||
ownerType | ENUM | X | X | |||
place | INTEGER | X | X | X | ||
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Value |
---|---|---|
ownerType | ChecklistDomainTypeEnum |
|
find
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 265514,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Nuevo Ítem 1",
"group": false,
"place": 0,
"checked": false,
"mandatory": false
}
<com.etask.api.dto.resources.ChecklistItem>
<id>265514</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Nuevo Ítem 1</name>
<group>false</group>
<place>0</place>
<checked>false</checked>
<mandatory>false</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
Retrieves a Checklist Item details for the Id specified in URL.
HTTP Request
GET/v1/checklist/{checklistID}
Request Input
Name | Description | Param Type |
---|---|---|
Long checklistID | identifier of the checklist. | Path (Mandatory) |
Returns
Checklist Item.
check
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}/check'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}/check'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 265514,
"checked": true
}
<com.etask.api.dto.resources.ChecklistItem>
<id>265514</id>
<checked>true</checked>
</com.etask.api.dto.resources.ChecklistItem>
Service to check the received ChecklistItem.
HTTP Request
PUT/v1/checklist/{checklistID}/check
Request Input
Name | Description | Param Type |
---|---|---|
Long checklistID | identifier of the checklist. | Path (Mandatory) |
Returns
Checklist Item updated.
unchek
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}/uncheck'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
curl 'https://api.hydra.cloud/v1/checklist/{checklistID}/uncheck'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 265514,
"checked": false
}
<com.etask.api.dto.resources.ChecklistItem>
<id>265514</id>
<checked>false</checked>
</com.etask.api.dto.resources.ChecklistItem>
Service to uncheck the received ChecklistItem.
HTTP Request
PUT/v1/checklist/{checklistID}/uncheck
Request Input
Name | Description | Param Type |
---|---|---|
Long checklistID | identifier of the checklist. | Path (Mandatory) |
Returns
Checklist Item updated.
list checklist for an object
curl 'https://api.hydra.cloud/v1/checklist/{objectType}/{objectID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/checklist/{objectType}/{objectID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 265512,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Check 1",
"description": "description check 1",
"group": false,
"place": 0,
"checked": true,
"mandatory": false
},
{
"id": 265513,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Check 2",
"description": "description check 2",
"group": false,
"place": 1,
"checked": true,
"mandatory": true
}
]
<list>
<com.etask.api.dto.resources.ChecklistItem>
<id>265512</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Check 1</name>
<description>description check 1</description>
<group>false</group>
<place>0</place>
<checked>true</checked>
<mandatory>false</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
<com.etask.api.dto.resources.ChecklistItem>
<id>265513</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Check 2</name>
<description>description check 2</description>
<group>false</group>
<place>1</place>
<checked>true</checked>
<mandatory>true</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
</list>
Returns the list of Checklist Items for an Object given its type and Id, specified in URL. The object type is case insensitive.
HTTP Request
GET/v1/checklist/{objectType}/{objectID}
Request Input
Name | Description | Param Type |
---|---|---|
String objectType | type of the object according to ObjectTypeEnum values. | Path (Mandatory) |
Long objectId | identifier of the object. | Path (Mandatory) |
Object Type
Fields | Enumeration | Values |
---|---|---|
objectType | ObjectTypeEnum |
|
Returns
List of Checklist items.
Customer
Customer object
A customer is the person or group that is the direct beneficiary of a project or service. These are the people for whom the project is being undertaken (indirect beneficiaries are stakeholders). In many organizations, internal beneficiaries are called “clients” and external beneficiaries are called “customers,” but this is not a hard and fast rule.
This catalog defines the supported fields for an Customer object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
alias | STRING | X | X | X | X | X |
attachments | MULTIVAL | |||||
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
contacts | MULTIVAL | |||||
description | STRING | X | ||||
id | LONG | X | X | X | X | X |
name | STRING | X | X | X | X | X |
orgUnits | MULTIVAL_STRING | X | X | |||
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
projects | MULTIVAL | |||||
status | ENUM | X | X | X | X | |
tagGroups | CUSTOMFIELD_CONTAINER | X | ||||
tags | MULTIVAL_STRING | X | X | |||
updates | MULTIVAL | |||||
userId | LONG | X | X | X | X | |
website | STRING | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
status | StatusEnum |
|
customers
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 362,
"companyId": 282,
"companyName": "HYDRA",
"name": "COMPUFACIL",
"alias": "CLI-003",
"website": "WWW.COMPUFACIL.COM",
"status": "ENABLED"
},
{
"id": 361,
"companyId": 282,
"companyName": "HYDRA",
"name": "INFODESARROLLO",
"alias": "CLI-002",
"website": "WWW.INFODESARROLLO.COM",
"status": "ENABLED"
}
]
<list>
<com.etask.api.dto.resources.Customer>
<id>362</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<name>COMPUFACIL</name>
<alias>CLI-003</alias>
<website>WWW.COMPUFACIL.COM</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
<com.etask.api.dto.resources.Customer>
<id>361</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<name>INFODESARROLLO</name>
<alias>CLI-002</alias>
<website>WWW.INFODESARROLLO.COM</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
</list>
Generic customer finder, for all companies granted to the current user. The result can be customized through etask-request headers.
HTTP Request
GET/v1/customers
Returns
List of Customers.
count
curl 'https://api.hydra.cloud/v1/customers/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/customers/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<long>3</long>
Returns the number of customers matching the invocation. The result can be customized through etask-request headers.
HTTP Request
GET/v1/customers/count
Returns
Response Type | Description |
---|---|
long | number of matching customers. |
find
curl 'https://api.hydra.cloud/v1/customers/{customerID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/customers/{customerID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 362,
"companyId": 282,
"companyName": "HYDRA",
"name": "COMPUFACIL",
"alias": "CLI-003",
"website": "WWW.COMPUFACIL.COM",
"status": "ENABLED"
}
<com.etask.api.dto.resources.Customer>
<id>362</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<name>COMPUFACIL</name>
<alias>CLI-003</alias>
<website>WWW.COMPUFACIL.COM</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
Returns a customer’s details for the Id specified in the URL.
HTTP Request
GET/v1/customers/{customerID}
Request Input
Name | Description | Param Type |
---|---|---|
Long customerID | identifier of the customer. | Path (Mandatory) |
Returns
create
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X POST
-d '[
{
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Customer for testing 1",
"website": "www.customerfortesting1.com",
"status": "ENABLED"
},
{
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Customer for testing 2",
"website": "www.customerfortesting2.com",
"status": "ENABLED"
}
]'
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X POST
-d '<com.etask.api.web.services.customers.CustomersController_-CustomerList serialization="custom">
<list>
<default>
<size>2</size>
</default>
<int>2</int>
<com.etask.api.dto.resources.Customer>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Customer for testing 5</name>
<website>www.customerfortesting5.com</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
<com.etask.api.dto.resources.Customer>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Customer for testing 6</name>
<website>www.customerfortesting6.com</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
</list>
</com.etask.api.web.services.customers.CustomersController_-CustomerList>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
[
{
"id": 372,
"name": "Customer for testing 1"
},
{
"id": 373,
"name": "Customer for testing 2"
}
]
<list>
<com.etask.api.dto.resources.Customer>
<id>374</id>
<name>Customer for testing 3</name>
</com.etask.api.dto.resources.Customer>
<com.etask.api.dto.resources.Customer>
<id>375</id>
<name>Customer for testing 4</name>
</com.etask.api.dto.resources.Customer>
</list>
Allows to create a set of customers.
HTTP Request
POST/v1/customers
Request Input
Name | Description | Param Type |
---|---|---|
List of Customer customers | Customer object | RequestBody |
Returns
The materialized customers.
update a customer
curl 'https://api.hydra.cloud/v1/customers/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '{
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Customer for testing 2",
"website": "www.customerfortesting2.com",
"status": "ENABLED"
}'
curl 'https://api.hydra.cloud/v1/customers/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '<com.etask.api.dto.resources.Customer>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Customer for testing 11</name>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>'
HTTP/1.1 200 OK
Updates the customer with the given Id.
HTTP Request
PUT/v1/customers/{id}
Request Input
Name | Description | Param Type |
---|---|---|
Customer customer | Customer object | RequestBody |
Returns
empty
update a list of customers
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '[
{
"id": 372,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Customer for testing 1111",
"website": "www.customerfortesting1.com",
"status": "ENABLED"
},
{
"id": 373,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Customer for testing 222",
"website": "www.customerfortesting2.com",
"status": "ENABLED"
}
]'
curl 'https://api.hydra.cloud/v1/customers'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '<com.etask.api.web.services.customers.CustomersController_-CustomerList serialization="custom">
<list>
<default>
<size>2</size>
</default>
<int>2</int>
<com.etask.api.dto.resources.Customer>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Customer for testing 5</name>
<website>www.customerfortesting5.com</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
<com.etask.api.dto.resources.Customer>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Customer for testing 6</name>
<website>www.customerfortesting6.com</website>
<status>ENABLED</status>
</com.etask.api.dto.resources.Customer>
</list>
</com.etask.api.web.services.customers.CustomersController_-CustomerList>'
HTTP/1.1 200 OK
Updates a list of customers.
HTTP Request
PUT/v1/customers
Request Input
Name | Description | Param Type |
---|---|---|
List of Customer customers | Customer object | RequestBody |
Returns
empty
Deliverable
Deliverable object
In project management, a deliverable is defined as any measurable and verifiable work product, elaborated to complete a project or a part of it. Also, the deliverables help to define the project’s scope, and its advance can be measured and tracked based on its deliverables advance.
This catalog defines the supported fields for a Deliverable object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Is allowed for creation? | Is required? | Is allowed for update? |
---|---|---|---|---|---|---|---|---|---|---|---|
actualCost | DOUBLE | X | X | X | X | ||||||
alias | STRING | X | X | X | X | X | 2 | 20 | X | ||
category | ENUM | X | X | X | X | ||||||
companyId | LONG | X | X | X | X | X | X | ||||
companyName | STRING | X | X | X | X | ||||||
complexity | ENUM | X | X | X | X | X | |||||
condDescription | STRING | X | X | ||||||||
condition | ENUM | X | X | X | X | ||||||
customFields | CUSTOMFIELD_CONTAINER | X | |||||||||
description | STRING | X | X | X | X | ||||||
dueDate | DATETIME | X | X | X | X | ||||||
estCost | DOUBLE | X | X | X | X | X | |||||
guide | STRING | X | |||||||||
health | ENUM | X | X | X | |||||||
id | LONG | X | X | X | X | X | |||||
myDeliverables | FIXED_FILTER | X | |||||||||
name | STRING | X | X | X | X | X | 3 | 120 | X | X | |
priority | ENUM | X | X | X | X | ||||||
process | MULTIVAL | X | |||||||||
progress | DOUBLE | X | X | X | X | ||||||
projectId | LONG | X | X | X | X | ||||||
projectName | STRING | X | X | X | X | ||||||
responsibleId | LONG | X | X | X | X | X | |||||
responsibleName | STRING | X | X | X | X | ||||||
responsiblerEmail | STRING | X | X | ||||||||
riskExposure | DOUBLE | X | X | X | X | ||||||
riskImpact | ENUM | X | X | ||||||||
riskProbability | DOUBLE | X | 0 | 100 | X | ||||||
riskVulnerability | DOUBLE | X | 0 | 100 | X | ||||||
shared | BOOLEAN | X | X | X | X | ||||||
stateId | LONG | X | X | X | X | ||||||
stateName | STRING | X | X | X | X | ||||||
tagGroups | CUSTOMFIELD_CONTAINER | X | |||||||||
tags | MULTIVAL_STRING | X | X | ||||||||
templateId | LONG | X | X | X | X | X | |||||
templateName | STRING | X | X | X | X | X | |||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
category | ScopeWpCategoryEnum |
|
complexity | ComplexityEnum |
|
condition | ConditionTypeEnum |
|
health | HealthEnum |
|
priority | PriorityEnum |
|
riskImpact | RiskImpactEnum |
|
deliverables
curl 'https://api.hydra.cloud/v1/deliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/deliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 81473,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9742,
"projectName": "PROYECTO DE INGENIERÍA",
"name": "Nuevo Entregable1",
"alias": "REQ-00001",
"templateId": 43632,
"templateName": "Requerimiento",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32305,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
},
{
"id": 81048,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9742,
"projectName": "PROYECTO DE INGENIERÍA",
"name": "Nuevo Entregable2",
"alias": "REQ-00002",
"templateId": 43632,
"templateName": "Requerimiento",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32305,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
}
]
<list>
<com.etask.api.dto.resources.Deliverable>
<id>81473</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9742</projectId>
<projectName>PROYECTO DE INGENIERÍA</projectName>
<name>Nuevo Entregable1</name>
<alias>REQ-00001</alias>
<templateId>43632</templateId>
<templateName>Requerimiento</templateName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32305</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
<com.etask.api.dto.resources.Deliverable>
<id>81048</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9742</projectId>
<projectName>PROYECTO DE INGENIERÍA</projectName>
<name>Nuevo Entregable2</name>
<alias>REQ-00002</alias>
<templateId>43632</templateId>
<templateName>Requerimiento</templateName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32305</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
</list>
Returns a list of deliverables. If a User Id or myDeliverables filter is specified as a header, the list is filter by responsible. By default this service retrieves requirements and custom artifacts.
HTTP Request
GET/v1/deliverables
Returns
List of Deliverables.
count
curl 'https://api.hydra.cloud/v1/deliverables/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/deliverables/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
2
<long>2</long>
Retrieves the number of results that would be returned by the find service. The result can be customized through etask-request headers.
HTTP Request
GET/v1/deliverables/count
Returns
Response Type | Description |
---|---|
int | number of matching deliverables. |
myDeliverables
curl 'https://api.hydra.cloud/v1/deliverables/myDeliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/deliverables/myDeliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 81475,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Nuevo Entregable2",
"alias": "REQ-00002",
"templateId": 43620,
"templateName": "Requerimiento",
"responsibleId": 10559,
"responsibleName": "LUIS MONTAÑO CASTAÑEDA",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32296,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
},
{
"id": 81474,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "mi Entregable",
"alias": "REQ-00001",
"templateId": 43620,
"templateName": "Requerimiento",
"responsibleId": 10559,
"responsibleName": "LUIS MONTAÑO CASTAÑEDA",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32296,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
}
]
<list>
<com.etask.api.dto.resources.Deliverable>
<id>81475</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Nuevo Entregable2</name>
<alias>REQ-00002</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<responsibleId>10559</responsibleId>
<responsibleName>LUIS MONTAÑO CASTAÑEDA</responsibleName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
<com.etask.api.dto.resources.Deliverable>
<id>81474</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>mi Entregable</name>
<alias>REQ-00001</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<responsibleId>10559</responsibleId>
<responsibleName>LUIS MONTAÑO CASTAÑEDA</responsibleName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
</list>
Provides the list of deliverables assigned to the logged user.
HTTP Request
GET/v1/deliverables/myDeliverables
Returns
List of Deliverables.
find
curl 'https://api.hydra.cloud/v1/deliverables/{deliverableID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/deliverables/{deliverableID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 81475,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Nuevo Entregable2",
"alias": "REQ-00002",
"templateId": 43620,
"templateName": "Requerimiento",
"responsibleId": 10559,
"responsibleName": "LUIS MONTAÑO CASTAÑEDA",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32296,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
}
<com.etask.api.dto.resources.Deliverable>
<id>81475</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Nuevo Entregable2</name>
<alias>REQ-00002</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<responsibleId>10559</responsibleId>
<responsibleName>LUIS MONTAÑO CASTAÑEDA</responsibleName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
Retrieves a deliverable details for the Id specified in URL.
HTTP Request
GET/v1/deliverables/{deliverableID}
Request Input
Name | Description | Param Type |
---|---|---|
Long deliverableID | identifier of the deliverable. | Path (Mandatory) |
Returns
states
curl 'https://api.hydra.cloud/v1/deliverables/{stateID}/states'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/deliverables/{stateID}/states'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 24489,
"name": "Designing",
"templateId": 32296,
"templateName": "Requirement Copy",
"defState": true,
"order": 0
},
{
"id": 24490,
"name": "Implementing",
"templateId": 32296,
"templateName": "Requirement Copy",
"defState": false,
"order": 0
},
{
"id": 24491,
"name": "Testing",
"templateId": 32296,
"templateName": "Requirement Copy",
"defState": false,
"order": 0
}
]
<list>
<com.etask.api.mapper.DeliverableState>
<id>24489</id>
<name>Designing</name>
<templateId>32296</templateId>
<templateName>Requirement Copy</templateName>
<defState>true</defState>
<order>0</order>
</com.etask.api.mapper.DeliverableState>
<com.etask.api.mapper.DeliverableState>
<id>24490</id>
<name>Implementing</name>
<templateId>32296</templateId>
<templateName>Requirement Copy</templateName>
<defState>false</defState>
<order>0</order>
</com.etask.api.mapper.DeliverableState>
<com.etask.api.mapper.DeliverableState>
<id>24491</id>
<name>Testing</name>
<templateId>32296</templateId>
<templateName>Requirement Copy</templateName>
<defState>false</defState>
<order>0</order>
</com.etask.api.mapper.DeliverableState>
</list>
Provides the list of states for the Deliverable Template Id specified in URL.
HTTP Request
GET/v1/deliverables/{stateID}/states
Request Input
Name | Description | Param Type |
---|---|---|
Long stateID | identifier of the state. | Path (Mandatory) |
Returns
List of DeliverableState.
create
curl 'https://api.hydra.cloud/v1/deliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-x POST
-d '{
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API",
"templateId": 43620,
"templateName": "Requerimiento",
"condition": "NOT_REPORTED",
"health": "GRAY",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"actualCost": 0
}'
curl 'https://api.hydra.cloud/v1/deliverables'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-x POST
-d '<com.etask.api.dto.resources.Deliverable>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API</name>
<alias>REQ-00005</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 81517,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API",
"templateId": 43620,
"templateName": "Requerimiento",
"userCreatorEmail": "luis.montano@hydra.com",
"condition": "NOT_REPORTED",
"health": "GRAY",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
}
<com.etask.api.dto.resources.Deliverable>
<id>81515</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API</name>
<alias>REQ-00005</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<userCreatorEmail>luis.montano@hydra.com</userCreatorEmail>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
Allows to create a deliverable.
HTTP Request
POST/v1/deliverables
Request Input
Name | Description | Param Type |
---|---|---|
Deliverable deliverable | deliverable object | RequestBody |
Returns
update
curl 'https://api.hydra.cloud/v1/deliverables/{deliverableID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-x PUT
-d '{
"id": 81475,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API_UPDATE",
"alias": "REQ-00002",
"templateId": 43620,
"templateName": "Requerimiento",
"responsibleId": 10559,
"responsibleName": "LUIS MONTAÑO CASTAÑEDA",
"condition": "NOT_REPORTED",
"health": "GRAY",
"stateId": 32296,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"actualCost": 0
}'
curl 'https://api.hydra.cloud/v1/deliverables/{deliverableID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-x PUT
-d '<com.etask.api.dto.resources.Deliverable>
<id>81475</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API_UPDATE</name>
<alias>REQ-00002</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<responsibleId>10559</responsibleId>
<responsibleName>LUIS MONTAÑO CASTAÑEDA</responsibleName>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 81475,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API",
"alias": "REQ-00002",
"templateId": 43620,
"templateName": "Requerimiento",
"responsibleId": 10559,
"responsibleName": "LUIS MONTAÑO CASTAÑEDA",
"condition": "NOT_REPORTED",
"condDescription": "",
"health": "GRAY",
"stateId": 32296,
"stateName": "Diseño",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"acftualCost": 0
}
<com.etask.api.dto.resources.Deliverable>
<id>81475</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API_UPDATE</name>
<alias>REQ-00002</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<responsibleId>10559</responsibleId>
<responsibleName>LUIS MONTAÑO CASTAÑEDA</responsibleName>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
Updates the deliverable with the given id.
HTTP Request
PUT/v1/deliverables/{deliverableID}
Request Input
Name | Description | Param Type |
---|---|---|
Long deliverableID | identifier of the deliverable. | Path (Mandatory) |
Deliverable deliverable | deliverable object | RequestBody |
Returns
Deliverable updated.
bulk batch processing
curl 'https://api.hydra.cloud/v1/deliverables/bulk'
-H 'etask-company:company'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type: application/json;charset=utf-8'
-x POST
-d '[
{
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API1",
"templateId": 43620,
"templateName": "Requerimiento",
"condition": "NOT_REPORTED",
"health": "GRAY",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"actualCost": 0
},
{
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "API2",
"templateId": 43620,
"templateName": "Requerimiento",
"condition": "NOT_REPORTED",
"health": "GRAY",
"progress": 0,
"category": "REQ_SCOPE_WP",
"priority": "UNASSIGNED",
"complexity": "UNASSIGNED",
"shared": false,
"estCost": 0,
"riskExposure": 0,
"actualCost": 0
}
]'
curl 'https://api.hydra.cloud/v1/deliverables/bulk'
-H 'etask-company:company'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-x POST
-d '<com.etask.api.dto.resources.Deliverable-array>
<com.etask.api.dto.resources.Deliverable>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API1</name>
<alias>REQ-00012</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
<com.etask.api.dto.resources.Deliverable>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>API2</name>
<alias>REQ-00012</alias>
<templateId>43620</templateId>
<templateName>Requerimiento</templateName>
<condition>NOT_REPORTED</condition>
<health>GRAY</health>
<stateId>32296</stateId>
<stateName>Diseño</stateName>
<progress>0.00</progress>
<category>REQ_SCOPE_WP</category>
<priority>UNASSIGNED</priority>
<complexity>UNASSIGNED</complexity>
<shared>false</shared>
<estCost>0.0000</estCost>
<actualCost>0.0000</actualCost>
<riskExposure>0.0</riskExposure>
<riskProbability>0.0</riskProbability>
<riskVulnerability>0.0</riskVulnerability>
</com.etask.api.dto.resources.Deliverable>
</com.etask.api.dto.resources.Deliverable-array>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 611,
"companyId": 282,
"status": "QUEUED",
"batchCount": 0,
"executionMode": "SEQUENTIAL"
}
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>613</id>
<companyId>282</companyId>
<status>QUEUED</status>
<batchCount>0</batchCount>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
Creates all the requested deliverables using the bulk batch processing.
HTTP Request
POST/v1/deliverables/bulk
Request Input
Name | Description | Param Type |
---|---|---|
Deliverable Array deliverables | list of deliverable objects | RequestBody |
Returns
The assigned bulkjob for processing the creation of the requested deliverables
Documents
Document object
This catalog defines the supported fields for a Document object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
alias | LONG | X | X | X | X | |
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
content | STRING | X | X | X | X | |
contentType | STRING | X | X | X | X | |
data | STRING | X | ||||
description | STRING | X | X | X | ||
folder | BOOLEAN | X | X | X | X | |
id | LONG | X | X | X | X | X |
name | STRING | X | X | X | X | X |
parent | LONG | X | X | X | X | |
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
size | LONG | X | X | X | X | |
status | ENUM | X | X | X | X | |
type | ENUM | X | X | X | X | |
urlLink | STRING | X | X | X | X | |
userId | LONG | X | X | X | X | |
version | STRING | X | X | X | X |
Field | Enumeration | Values |
---|---|---|
status | StatusEnum |
|
type | DocumentTypeEnum |
|
find
curl 'https://api.hydra.cloud/v1/documents/{documentID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/documents/{documentID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 202262,
"companyId": 282,
"companyName": "HYDRA",
"name": "PROY-001 - Trabajo.zip",
"alias": "DOC-002",
"description": "Timesheets Report",
"type": "OFFLINE",
"status": "ENABLED",
"size": 168205,
"contentType": "application/pdf",
"folder": false
}
<com.etask.api.dto.resources.Document>
<id>202262</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<name>PROY-001 - Trabajo.zip</name>
<alias>DOC-002</alias>
<description>Timesheets Report</description>
<type>OFFLINE</type>
<status>ENABLED</status>
<size>168205</size>
<contentType>application/pdf</contentType>
<folder>false</folder>
</com.etask.api.dto.resources.Document>
Retrieves a document details for the Id specified in URL.
HTTP Request
GET/v1/documents/{documentID}
Request Input
Name | Description | Param Type |
---|---|---|
Long documentID | identifier of the document. | Path (Mandatory) |
Returns
download
curl 'https://api.hydra.cloud/v1/documents/{documentID}/download'
-H 'etask-user:user'
-H 'etask-auth-token: token'
curl 'https://api.hydra.cloud/v1/documents/{documentID}/download'
-H 'etask-user:user'
-H 'etask-auth-token: token'
HTTP/1.1 200 OK
content-type:application/pdf
The above command returns a document like this:
response.pdf
response.pdf
Downloads a document for the Id specified in URL.
HTTP Request
GET/v1/documents/{documentID}/download
Request Input
Name | Description | Param Type |
---|---|---|
Long documentID | identifier of the document. | Path (Mandatory) |
Returns
void.
Metadata
Metadata object
Field Definition for Metadata related operations. This class has all catalog attributes(type,name..) of a field that belongs to an object(Project,Task,Deliverable…) The catalog which describes the defined fields for this resource is shown below:
This catalog defines the supported fields for a Field definition object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Required? | Could not be null for creation? | Could be updated? |
---|---|---|---|---|---|---|---|---|---|---|---|
basic | BOOLEAN | X | X | X | |||||||
childFields | MULTIVAL | X | X | X | |||||||
companyId | LONG | X | |||||||||
companyName | STRING | X | X | X | X | ||||||
creation | BOOLEAN | X | X | X | |||||||
default | BOOLEAN | X | X | X | |||||||
filter | BOOLEAN | X | X | X | |||||||
id | LONG | X | X | X | X | X | |||||
maxDateValue | DATE | X | X | X | |||||||
maxIntegerValue | LONG | X | X | X | |||||||
maxStringValue | LONG | X | X | X | |||||||
minDateValue | DATE | X | X | X | |||||||
minIntegerValue | LONG | X | X | X | |||||||
minStringValue | LONG | X | X | X | |||||||
name | STRING | X | X | X | X | ||||||
orderer | BOOLEAN | X | X | X | |||||||
projectId | LONG | X | |||||||||
projectName | STRING | X | X | X | X | ||||||
required | BOOLEAN | X | X | X | |||||||
templateId | LONG | X | |||||||||
type | STRING | X | X | X | |||||||
update | BOOLEAN | X | X | X | |||||||
userId | LONG | X | X | X | X | ||||||
values | MULTIVAL | X | X | X |
get object’s metadata
curl 'https://api.hydra.cloud/v1/metadata/{businessObject}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/metadata/{businessObject}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"name": "capacity",
"type": "MULTIVAL",
"field": true,
"filter": false,
"orderer": false,
"basic": false,
"default": false
},
{
"name": "companyAccessLevel",
"type": "ENUM",
"field": true,
"filter": true,
"orderer": true,
"basic": false,
"default": true,
"values": [
"ADMINISTRATOR",
"DIRECTOR",
"COMPANY_END_CUSTOMER",
"COMPANY_STAKEHOLDER",
"PROJECT_MANAGER",
"RESOURCE",
"EXTERNAL_RESOURCE",
"STAKEHOLDER"
]
},
{
"name": "companyCalendar",
"type": "STRING",
"field": true,
"filter": false,
"orderer": false,
"basic": false,
"default": false
}
]
<list>
<com.etask.api.dto.resources.metadata.FieldDefiniton>
<item>
<name>capacity</name>
<type>MULTIVAL</type>
<field>true</field>
<filter>false</filter>
<orderer>false</orderer>
<basic>false</basic>
<def>false</def>
</item>
</com.etask.api.dto.resources.metadata.FieldDefiniton>
<com.etask.api.dto.resources.metadata.FieldDefiniton>
<item>
<name>companyAccessLevel</name>
<type>ENUM</type>
<field>true</field>
<filter>true</filter>
<orderer>true</orderer>
<basic>false</basic>
<def>true</def>
<enumClass>com.etask.securityguard.enums.SecurityLicenseTypeEnum</enumClass>
</item>
<values>
<string>ADMINISTRATOR</string>
<string>DIRECTOR</string>
<string>COMPANY_END_CUSTOMER</string>
<string>COMPANY_STAKEHOLDER</string>
<string>PROJECT_MANAGER</string>
<string>RESOURCE</string>
<string>EXTERNAL_RESOURCE</string>
<string>STAKEHOLDER</string>
</values>
</com.etask.api.dto.resources.metadata.FieldDefiniton>
<com.etask.api.dto.resources.metadata.FieldDefiniton>
<item>
<name>companyCalendar</name>
<type>STRING</type>
<field>true</field>
<filter>false</filter>
<orderer>false</orderer>
<basic>false</basic>
<def>false</def>
</item>
</com.etask.api.dto.resources.metadata.FieldDefiniton>
</list>
Returns field definitions for provided {businesObject}
HTTP Request
GET/v1/metadata/{businessObject}
HTTP Params
Param | Values |
---|---|
businesObject |
|
Returns
List of Field Definitions.
get field’s metadata
curl 'https://api.hydra.cloud/v1/metadata/{businessObject}/{field}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/metadata/{businessObject}/{field}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"name": "companyCalendar",
"type": "STRING",
"field": true,
"filter": false,
"orderer": false,
"basic": false,
"default": false
}
<com.etask.api.dto.resources.metadata.FieldDefiniton>
<item>
<name>companyCalendar</name>
<type>STRING</type>
<field>true</field>
<filter>false</filter>
<orderer>false</orderer>
<basic>false</basic>
<def>false</def>
</item>
</com.etask.api.dto.resources.metadata.FieldDefiniton>
Returns field definition for provided {businesObject} and {field}
HTTP Request
GET/v1/metadata/{businessObject}/{field}
HTTP Params
Param | Values |
---|---|
businesObject |
|
Returns
MyTimesheets
My Timesheet object
A timesheet shows the amount of time spent by a worker on each task and allows the creation of new time logs. It also includes time spent on administrative times (see the AdminTime resource). You can tell whether a line in the timesheet corresponds to a task or an administrative time via the item_type field.
This catalog defines the supported fields for a TimeSheet object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
actual_effort | DOUBLE | X | ||||
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
deliverableId | LONG | X | X | |||
deliverableAlias | STRING | X | X | |||
deliverableName | STRING | X | ||||
end_date | DATE | X | X | X | ||
id | LONG | X | X | X | X | X |
item_id | LONG | X | X | X | X | X |
item_icon | STRING | X | X | X | ||
item_name | STRING | X | X | X | X | X |
item_type | ENUM | X | X | X | X | |
nonProjectTask | BOOLEAN | X | ||||
progress | DOUBLE | X | X | |||
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
project_advance_mode | ENUM | |||||
remainingTime | DOUBLE | X | X | |||
resource | LONG | X | X | X | X | |
start_date | DATE | X | X | X | ||
task_cond | LONG | X | X | X | X | |
task_duedate | LONG | X | X | X | X | |
task_health | ENUM | X | X | |||
task_status | ENUM | X | X | |||
time_logged | DOUBLE | X | X | |||
time_logs | MULTIVAL | X | ||||
timesheet_status | ENUM | |||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
item_type | MyTimesheetTypeEnum |
|
project_advance_mode | PrjAdvanceTrackingModeEnum |
|
task_health | HealthEnum |
|
task_status | TskStatusEnum |
|
timesheet_status | TimesheetStatusEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/myTimesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTimesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"projectId": 9886,
"projectName": "Crear Proyecto 10255",
"itemId": 2223084,
"itemName": "Tarea nueva",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-03-30T17:00:00",
"startDate": "2017-05-08T00:00:00",
"taskRemainingTime": 0,
"tskStatus": "IN_PROGRESS",
"taskProgress": 1,
"resId": 93645,
"totalTimeLogged": 0,
"status": "OPEN",
"trackingMode": "REMAINING_TIME",
"nonProjectTask": false,
"tskCondition": "NOT_REPORTED"
},
{
"projectId": 9869,
"projectName": "Proyecto 1025",
"itemId": 2222484,
"itemName": "Tarea 2",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-04-11T17:00:00",
"startDate": "2017-05-08T00:00:00",
"taskRemainingTime": 2880,
"tskStatus": "IN_PROGRESS",
"taskProgress": 0,
"resId": 93516,
"totalTimeLogged": 0,
"status": "OPEN",
"trackingMode": "PERCENTAGE",
"nonProjectTask": false,
"tskCondition": "NOT_REPORTED"
}
]
<list>
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9886</projectId>
<projectName>Crear Proyecto 10255</projectName>
<itemId>2223084</itemId>
<itemName>Tarea nueva</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-03-30 23:00:00.0</taskDueDate>
<startDate>2017-05-08 06:00:00.0 UTC</startDate>
<taskRemainingTime>0</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>1.00</taskProgress>
<resId>93645</resId>
<totalTimeLogged>0</totalTimeLogged>
<status>OPEN</status>
<trackingMode>REMAINING_TIME</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>NOT_REPORTED</tskCondition>
</com.etask.api.dto.resources.MyTimesheet>
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9869</projectId>
<projectName>Proyecto 1025</projectName>
<itemId>2222484</itemId>
<itemName>Tarea 2</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-04-11 23:00:00.0</taskDueDate>
<startDate reference="../../com.etask.api.dto.resources.MyTimesheet/startDate"/>
<taskRemainingTime>2880</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>0.00</taskProgress>
<resId>93516</resId>
<totalTimeLogged>0</totalTimeLogged>
<status>OPEN</status>
<trackingMode>PERCENTAGE</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>NOT_REPORTED</tskCondition>
</com.etask.api.dto.resources.MyTimesheet>
</list>
Returns a user’s timesheet information: all available times logged by the user.
HTTP Request
GET/v1/myTimesheets
Returns
List of TimeSheets.
type
curl 'https://api.hydra.cloud/v1/myTimesheets/{type}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTimesheets/{type}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"projectId": 9886,
"projectName": "Crear Proyecto 10255",
"itemId": 2223084,
"itemName": "Tarea nueva",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-03-30T17:00:00",
"startDate": "2017-05-11T00:00:00",
"taskRemainingTime": 0,
"tskStatus": "IN_PROGRESS",
"taskProgress": 1,
"resId": 93645,
"totalTimeLogged": 0,
"status": "OPEN",
"trackingMode": "REMAINING_TIME",
"nonProjectTask": false,
"tskCondition": "NOT_REPORTED"
},
{
"projectId": 9869,
"projectName": "Proyecto 1025",
"itemId": 2222484,
"itemName": "Tarea 2",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "BLUE",
"taskDueDate": "2017-04-11T17:00:00",
"startDate": "2017-05-11T00:00:00",
"taskRemainingTime": 0,
"tskStatus": "CLOSED",
"taskProgress": 1,
"resId": 93516,
"totalTimeLogged": 0,
"status": "OPEN",
"trackingMode": "PERCENTAGE",
"nonProjectTask": false,
"tskCondition": "NOT_REPORTED"
}
]
<list>
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9886</projectId>
<projectName>Crear Proyecto 10255</projectName>
<itemId>2223084</itemId>
<itemName>Tarea nueva</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-03-30 23:00:00.0</taskDueDate>
<startDate>2017-05-11 06:00:00.0 UTC</startDate>
<taskRemainingTime>0</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>1.00</taskProgress>
<resId>93645</resId>
<totalTimeLogged>0</totalTimeLogged>
<status>OPEN</status>
<trackingMode>REMAINING_TIME</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>NOT_REPORTED</tskCondition>
</com.etask.api.dto.resources.MyTimesheet>
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9869</projectId>
<projectName>Proyecto 1025</projectName>
<itemId>2222484</itemId>
<itemName>Tarea 2</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>BLUE</taskHealth>
<taskDueDate class="sql-timestamp">2017-04-11 23:00:00.0</taskDueDate>
<startDate reference="../../com.etask.api.dto.resources.MyTimesheet/startDate"/>
<taskRemainingTime>0</taskRemainingTime>
<tskStatus>CLOSED</tskStatus>
<taskProgress>1.00</taskProgress>
<resId>93516</resId>
<totalTimeLogged>0</totalTimeLogged>
<status>OPEN</status>
<trackingMode>PERCENTAGE</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>NOT_REPORTED</tskCondition>
</com.etask.api.dto.resources.MyTimesheet>
</list>
Returns a user’s list of timesheets for a given type: task or administrative.
HTTP Request
GET/v1/myTimesheets/{type}
Request Input
Name | Description | Param Type |
---|---|---|
String type | taskItems or adminItems | Path (Mandatory) |
Returns
List of Timesheets.
ranges
curl 'https://api.hydra.cloud/v1/myTimesheets/ranges'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/myTimesheets/ranges'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"date": "2017-05-11T00:00:00",
"hoursLogged": 480
},
{
"date": "2017-05-10T00:00:00",
"hoursLogged": 0
}
]
<list>
<com.etask.api.dto.resources.TimesheetDateRanges>
<date>2017-05-11 06:00:00.0 UTC</date>
<hoursLogged>480</hoursLogged>
</com.etask.api.dto.resources.TimesheetDateRanges>
<com.etask.api.dto.resources.TimesheetDateRanges>
<date>2017-05-10 06:00:00.0 UTC</date>
<hoursLogged>0</hoursLogged>
</com.etask.api.dto.resources.TimesheetDateRanges>
</list>
Allows to get the date range where the current user has registered time logs.
HTTP Request
GET/v1/myTimesheets/ranges
Returns
The date range where the logged user has time logs.
find
curl 'https://api.hydra.cloud/v1/myTimesheets/{type}/{timesheetID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/myTimesheets/{type}/{timesheetID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"projectId": 9855,
"projectName": "Custom Sample",
"itemId": 2220956,
"itemName": "Realizar reunión de lecciones aprendidas",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-03-26T09:00:00",
"startDate": "2017-05-15T00:00:00",
"taskRemainingTime": 360,
"tskStatus": "IN_PROGRESS",
"taskProgress": 0.63,
"resId": 93193,
"totalTimeLogged": 300,
"status": "OPEN",
"trackingMode": "REMAINING_TIME",
"nonProjectTask": false,
"tskCondition": "RUNNING_SMOOTHLY",
"values": "{\"2017-05-15T00:00:00\":[{\"time\":0,\"timeTypeId\":829,\"timeTypeName\":\"Estándar\"},{\"date\":\"2017-05-15T00:00:00\",\"time\":300,\"timeTypeId\":830,\"timeTypeName\":\"Festivo\"},{\"time\":0,\"timeTypeId\":831,\"timeTypeName\":\"Nocturno\"}]}"
}
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9855</projectId>
<projectName>Custom Sample</projectName>
<itemId>2220956</itemId>
<itemName>Realizar reunión de lecciones aprendidas</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-03-26 15:00:00.0</taskDueDate>
<startDate>2017-05-15 06:00:00.0 UTC</startDate>
<taskRemainingTime>360</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>0.63</taskProgress>
<resId>93193</resId>
<totalTimeLogged>300</totalTimeLogged>
<status>OPEN</status>
<trackingMode>REMAINING_TIME</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>RUNNING_SMOOTHLY</tskCondition>
<values class="linked-hash-map">
<entry>
<sql-date>2017-05-15</sql-date>
<list>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>829</timeTypeId>
<timeTypeName>Estándar</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<date class="sql-date" reference="../../../sql-date"/>
<time>300</time>
<timeTypeId>830</timeTypeId>
<timeTypeName>Festivo</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>831</timeTypeId>
<timeTypeName>Nocturno</timeTypeName>
</com.etask.api.dto.resources.Timelog>
</list>
</entry>
</values>
</com.etask.api.dto.resources.MyTimesheet>
Returns a user’s timesheet information for a given task or administrative time ID according to the specified URI’s type: all time logs that have been registered by the current user.
HTTP Request
GET/v1/myTimesheets/{type}/{timesheetID}
Request Input
Name | Description | Param Type |
---|---|---|
String type | taskItems or adminItems | Path (Mandatory) |
Long timesheetID | identifier of the timesheet. | Path (Mandatory) |
Returns
MyTimesheet. for the given ID.
update
curl 'https://api.hydra.cloud/v1/myTimesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '{
"projectId": 9855,
"projectName": "Custom Sample",
"itemId": 2220956,
"itemName": "Realizar reunión de lecciones aprendidas",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-03-26T09:00:00",
"startDate": "2017-05-15T00:00:00",
"taskRemainingTime": 360,
"tskStatus": "IN_PROGRESS",
"taskProgress": 0.63,
"resId": 93193,
"totalTimeLogged": 300,
"status": "OPEN",
"trackingMode": "REMAINING_TIME",
"nonProjectTask": false,
"tskCondition": "RUNNING_SMOOTHLY",
"values": "{\"2017-05-15T00:00:00\":[{\"time\":0,\"timeTypeId\":829,\"timeTypeName\":\"Estándar\"},{\"date\":\"2017-05-15T00:00:00\",\"time\":300,\"timeTypeId\":830,\"timeTypeName\":\"Festivo\"},{\"time\":0,\"timeTypeId\":831,\"timeTypeName\":\"Nocturno\"}]}"
}'
curl 'https://api.hydra.cloud/v1/myTimesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '<com.etask.api.dto.resources.MyTimesheet>
<projectId>9855</projectId>
<projectName>Custom Sample</projectName>
<itemId>2220956</itemId>
<itemName>Realizar reunión de lecciones aprendidas</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-03-26 15:00:00.0</taskDueDate>
<startDate>2017-05-15 06:00:00.0 UTC</startDate>
<taskRemainingTime>360</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>0.63</taskProgress>
<resId>93193</resId>
<totalTimeLogged>300</totalTimeLogged>
<status>OPEN</status>
<trackingMode>REMAINING_TIME</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>RUNNING_SMOOTHLY</tskCondition>
<values class="linked-hash-map">
<entry>
<sql-date>2017-05-15</sql-date>
<list>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>829</timeTypeId>
<timeTypeName>Estándar</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<date class="sql-date" reference="../../../sql-date"/>
<time>300</time>
<timeTypeId>830</timeTypeId>
<timeTypeName>Festivo</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>831</timeTypeId>
<timeTypeName>Nocturno</timeTypeName>
</com.etask.api.dto.resources.Timelog>
</list>
</entry>
</values>
</com.etask.api.dto.resources.MyTimesheet>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"projectId": 9855,
"projectName": "Custom Sample",
"itemId": 2220956,
"itemName": "Realizar reunión de lecciones aprendidas",
"itemType": "TASK",
"icon": "icon-task",
"taskHealth": "RED",
"taskDueDate": "2017-03-26T09:00:00",
"startDate": "2017-05-15T00:00:00",
"taskRemainingTime": 360,
"tskStatus": "IN_PROGRESS",
"taskProgress": 0.64,
"resId": 93193,
"totalTimeLogged": 300,
"status": "OPEN",
"trackingMode": "REMAINING_TIME",
"nonProjectTask": false,
"tskCondition": "RUNNING_SMOOTHLY",
"values": "{\"2017-05-15T00:00:00\":[{\"time\":0,\"timeTypeId\":829,\"timeTypeName\":\"Estándar\"},{\"date\":\"2017-05-15T00:00:00\",\"time\":300,\"timeTypeId\":830,\"timeTypeName\":\"Festivo\"},{\"time\":0,\"timeTypeId\":831,\"timeTypeName\":\"Nocturno\"}]}"
}
<com.etask.api.dto.resources.MyTimesheet>
<projectId>9855</projectId>
<projectName>Custom Sample</projectName>
<itemId>2220956</itemId>
<itemName>Realizar reunión de lecciones aprendidas</itemName>
<itemType>TASK</itemType>
<icon>icon-task</icon>
<taskHealth>RED</taskHealth>
<taskDueDate class="sql-timestamp">2017-03-26 15:00:00.0</taskDueDate>
<startDate>2017-05-15 06:00:00.0 UTC</startDate>
<taskRemainingTime>346</taskRemainingTime>
<tskStatus>IN_PROGRESS</tskStatus>
<taskProgress>0.64</taskProgress>
<resId>93193</resId>
<totalTimeLogged>0</totalTimeLogged>
<status>OPEN</status>
<trackingMode>REMAINING_TIME</trackingMode>
<nonProjectTask>false</nonProjectTask>
<tskCondition>RUNNING_SMOOTHLY</tskCondition>
<values class="linked-hash-map">
<entry>
<date>2017-05-15 06:00:00.0 UTC</date>
<list>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>829</timeTypeId>
<timeTypeName>Estándar</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>830</timeTypeId>
<timeTypeName>Festivo</timeTypeName>
</com.etask.api.dto.resources.Timelog>
<com.etask.api.dto.resources.Timelog>
<time>0</time>
<timeTypeId>831</timeTypeId>
<timeTypeName>Nocturno</timeTypeName>
</com.etask.api.dto.resources.Timelog>
</list>
</entry>
</values>
</com.etask.api.dto.resources.MyTimesheet>
Updates the logged user’s timesheet information.
HTTP Request
PUT/v1/myTimesheets
Returns
The updated timesheet.
Projects
Project object
In project management, a project is defined as a unique, transient endeavour, undertaken to achieve planned objectives, which could be defined in terms of outputs, outcomes or benefits.
This catalog defines the supported fields for a Project object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Is allowed for creation? | Is required? | Is allowed for update? |
---|---|---|---|---|---|---|---|---|---|---|---|
ac | DOUBLE | X | |||||||||
actualEffort | DOUBLE | X | |||||||||
actualFinish | DATE | X | X | X | X | ||||||
actualProgress | DOUBLE | X | |||||||||
actualRevenue | DOUBLE | X | |||||||||
actualStart | DATE | X | X | X | X | ||||||
advanceTrackingMode | ENUM | X | X | X | |||||||
alias | STRING | X | X | X | X | X | 3 | 21 | X | ||
bac | DOUBLE | X | |||||||||
billingModel | ENUM | X | X | X | |||||||
blueprintId | LONG | X | X | X | X | X | |||||
blueprintName | STRING | X | X | X | X | ||||||
companyId | LONG | X | X | X | X | ||||||
companyName | STRING | X | X | X | X | ||||||
condDescription | STRING | X | X | X | X | ||||||
condition | ENUM | X | X | X | X | ||||||
costBudget | DOUBLE | X | X | X | X | ||||||
costs_included | FIXED_FILTER | X | |||||||||
cpi | DOUBLE | X | |||||||||
currency | ENUM | X | X | ||||||||
customFields | CUSTOMFIELD_CONTAINER | X | |||||||||
description | STRING | X | X | X | X | ||||||
eac | DOUBLE | X | |||||||||
earnedEffort | DOUBLE | X | |||||||||
earnedValue | DOUBLE | X | X | ||||||||
estFinish | DATE | X | X | X | X | X | X | ||||
estRevenue | DOUBLE | X | |||||||||
estStart | DATE | X | X | X | X | X | X | ||||
etc | DOUBLE | X | |||||||||
ev | DOUBLE | X | |||||||||
fixedRevenue | BOOLEAN | X | X | X | X | ||||||
health | ENUM | X | X | ||||||||
id | LONG | X | X | X | X | X | |||||
name | STRING | X | X | X | X | X | 3 | 120 | X | X | |
orgUnits | MULTIVAL_STRING | X | X | ||||||||
plannedEffort | DOUBLE | X | |||||||||
plannedProgress | DOUBLE | X | |||||||||
plannedToDateRevenue | DOUBLE | X | |||||||||
plannedValue | DOUBLE | X | |||||||||
progress_included | FIXED_FILTER | X | |||||||||
projSponsorId | STRING | X | X | X | X | ||||||
projSponsorName | STRING | X | X | X | X | ||||||
projectId | LONG | X | X | X | X | ||||||
projectManagerEmail | STRING | X | X | ||||||||
projectManagerId | LONG | X | X | X | X | X | |||||
projectManagerName | STRING | X | X | X | X | ||||||
pv | DOUBLE | X | |||||||||
remainingPlanned | DOUBLE | X | |||||||||
revenueBudget | DOUBLE | X | X | X | X | ||||||
revenue_included | FIXED_FILTER | X | |||||||||
schedule_included | FIXED_FILTER | X | |||||||||
spi | DOUBLE | X | |||||||||
status | ENUM | X | X | X | X | ||||||
tagGroups | CUSTOMFIELD_CONTAINER | X | |||||||||
tags | MULTIVAL_STRING | X | X | ||||||||
template | BOOLEAN | X | X | X | X | ||||||
useTimelogs | BOOLEAN | X | X | X | X | ||||||
userCreatorEmail | STRING | X | X | ||||||||
userId | LONG | X | X | X | X | ||||||
variance | DOUBLE | X | |||||||||
workRequired | DOUBLE | X | |||||||||
fixedRevenue | BOOLEAN | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
advanceTrackingMode | PrjAdvanceTrackingModeEnum |
|
billingModel | BillingModelEnum |
|
condition | ConditionTypeEnum |
|
currency | EtaskCurrencyEnum |
|
health | HealthEnum |
|
status | StatusEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 9910,
"companyId": 280,
"name": "Crear Proyecto 2312",
"status": "DRAFT",
"health": "GRAY",
"alias": "PROY-021",
"estStart": "2017-04-18T00:00:00",
"estFinish": "2017-04-30T23:59:59",
"actualStart": "2017-04-21T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7667,
"blueprintName": "Blueprint dia 4",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": false,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": false
},
{
"id": 9909,
"companyId": 280,
"name": "Crear Proyectoasd",
"status": "DRAFT",
"health": "GRAY",
"alias": "PROY-020",
"estStart": "2017-04-18T00:00:00",
"estFinish": "2017-04-30T23:59:59",
"actualStart": "2017-04-21T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7667,
"blueprintName": "Blueprint dia 4",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": false,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": false
}
]
<list>
<com.etask.api.dto.resources.Project>
<id>9910</id>
<companyId>280</companyId>
<name>Crear Proyecto 2312</name>
<status>DRAFT</status>
<health>GRAY</health>
<alias>PROY-021</alias>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<actualStart class="sql-timestamp">2017-04-21 22:00:00.0</actualStart>
<projectManagerId>10488</projectManagerId>
<projectManagerName>Miguel Montañez</projectManagerName>
<blueprintId>7667</blueprintId>
<blueprintName>Blueprint dia 4</blueprintName>
<condition>NOT_REPORTED</condition>
<costBudget>0.0000</costBudget>
<revenueBudget>0.0000</revenueBudget>
<useTimelogs>false</useTimelogs>
<advanceTrackingMode>PERCENTAGE</advanceTrackingMode>
<template>false</template>
<fixedRevenue>false</fixedRevenue>
</com.etask.api.dto.resources.Project>
<com.etask.api.dto.resources.Project>
<id>9909</id>
<companyId>280</companyId>
<name>Crear Proyectoasd</name>
<status>DRAFT</status>
<health>GRAY</health>
<alias>PROY-020</alias>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<actualStart class="sql-timestamp">2017-04-21 22:00:00.0</actualStart>
<projectManagerId>10488</projectManagerId>
<projectManagerName>Miguel Montañez</projectManagerName>
<blueprintId>7667</blueprintId>
<blueprintName>Blueprint dia 4</blueprintName>
<condition>NOT_REPORTED</condition>
<costBudget>0.0000</costBudget>
<revenueBudget>0.0000</revenueBudget>
<useTimelogs>false</useTimelogs>
<advanceTrackingMode>PERCENTAGE</advanceTrackingMode>
<template>false</template>
<fixedRevenue>false</fixedRevenue>
</com.etask.api.dto.resources.Project>
</list>
Finds all projects the user has granted access. The result can be customized through etask-request headers.
HTTP Request
GET/v1/projects
Returns
List of matching Projects.
stream
curl 'https://api.hydra.cloud/v1/projects/stream'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns a JSON Object structured like this:
[
{
"id": 9889,
"companyId": 280,
"name": "Crear Proyecto",
"status": "DRAFT",
"health": "GRAY",
"alias": "PROY-018",
"estStart": "2017-04-03T00:00:00",
"estFinish": "2018-04-22T23:59:59",
"actualStart": "2017-04-03T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7744,
"blueprintName": "Crear Proyecto",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": true,
"advanceTrackingMode": "REMAINING_TIME",
"template": false,
"fixedRevenue": false
},
{
"id": 9887,
"companyId": 280,
"name": "Crear Proyecto 1025",
"status": "ENABLED",
"health": "RED",
"alias": "PROY-017",
"estStart": "2017-03-30T00:00:00",
"estFinish": "2018-03-28T23:59:59",
"actualStart": "2017-06-22T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7742,
"blueprintName": "Crear Proyecto 1025",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": false,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": false
},
{
"id": 9886,
"companyId": 280,
"name": "Crear Proyecto 10255",
"status": "ENABLED",
"health": "RED",
"alias": "PROY-015",
"estStart": "2017-03-30T00:00:00",
"estFinish": "2018-02-28T23:59:59",
"actualStart": "2017-04-12T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7741,
"blueprintName": "Crear Proyecto 10255",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": true,
"advanceTrackingMode": "REMAINING_TIME",
"template": false,
"fixedRevenue": false
},
{
"id": 9869,
"companyId": 280,
"name": "Proyecto 1025",
"status": "ENABLED",
"health": "RED",
"alias": "PROY-016",
"estStart": "2017-03-27T00:00:00",
"estFinish": "2018-01-27T23:59:59",
"actualStart": "2017-04-11T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7733,
"blueprintName": "Proyecto 1025",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": true,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": false
},
{
"id": 9775,
"companyId": 280,
"name": "Proyecto de preventa",
"status": "ENABLED",
"health": "RED",
"alias": "PROY-011",
"estStart": "2017-02-13T00:00:00",
"estFinish": "2017-02-23T23:59:59",
"actualStart": "2017-02-16T17:00:00",
"projectManagerId": 10523,
"projectManagerName": "Gerente Ingeniería",
"blueprintId": 7667,
"blueprintName": "Blueprint dia 4",
"condition": "NOT_REPORTED",
"costBudget": 1000000,
"revenueBudget": 1500000,
"useTimelogs": true,
"advanceTrackingMode": "REMAINING_TIME",
"template": false,
"fixedRevenue": false
},
{
"id": 9679,
"companyId": 280,
"name": "Proyecto training - project, ash",
"status": "ENABLED",
"health": "RED",
"alias": "PROY-002",
"estStart": "2017-02-02T00:00:00",
"estFinish": "2017-12-16T23:59:59",
"actualStart": "2015-07-08T10:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7600,
"blueprintName": "Proyecto training - project, ash",
"condition": "MAJOR_ROADBLOCKS",
"condDescription": "",
"costBudget": 111110,
"revenueBudget": 0,
"useTimelogs": false,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": true
}
]
Finds all projects the user has granted access. The result can be customized through etask-request headers.
HTTP Request
GET/v1/projects/stream
Returns
List of matching Projects.
find
curl 'https://api.hydra.cloud/v1/projects/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/projects/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 9909,
"companyId": 280,
"name": "Crear Proyectoasd",
"status": "DRAFT",
"health": "GRAY",
"alias": "PROY-020",
"estStart": "2017-04-18T00:00:00",
"estFinish": "2017-04-30T23:59:59",
"actualStart": "2017-04-21T17:00:00",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez",
"blueprintId": 7667,
"blueprintName": "Blueprint dia 4",
"condition": "NOT_REPORTED",
"costBudget": 0,
"revenueBudget": 0,
"useTimelogs": false,
"advanceTrackingMode": "PERCENTAGE",
"template": false,
"fixedRevenue": false
}
<com.etask.api.dto.resources.Project>
<id>9909</id>
<companyId>280</companyId>
<name>Crear Proyectoasd</name>
<status>DRAFT</status>
<health>GRAY</health>
<alias>PROY-020</alias>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<actualStart class="sql-timestamp">2017-04-21 22:00:00.0</actualStart>
<projectManagerId>10488</projectManagerId>
<projectManagerName>Miguel Montañez</projectManagerName>
<blueprintId>7667</blueprintId>
<blueprintName>Blueprint dia 4</blueprintName>
<condition>NOT_REPORTED</condition>
<costBudget>0.0000</costBudget>
<revenueBudget>0.0000</revenueBudget>
<useTimelogs>false</useTimelogs>
<advanceTrackingMode>PERCENTAGE</advanceTrackingMode>
<template>false</template>
<fixedRevenue>false</fixedRevenue>
</com.etask.api.dto.resources.Project>
Returns a project’s details, given its id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/projects/{id}
Returns
The project’s details.
count
curl 'https://api.hydra.cloud/v1/projects/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/projects/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<long>3</long>
Retrieves the number of projects matching the etask-request header parameters.
HTTP Request
GET/v1/projects/count
Returns
Response Type | Description |
---|---|
long | number of matching projects. |
create
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
-d '{
"name":"Projec API",
"estStart": "2017-04-18T00:00:00",
"estFinish": "2017-04-30T23:59:59",
"companyId":280,
"projectManagerEmail": "miguelm@mail.com",
"customFields":{
"Cantidad":12
}
}'
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-d '<com.etask.api.dto.resources.Project>
<companyId>280</companyId>
<name>Project API</name>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<projectManagerEmail>miguelm@mail.com</projectManagerEmail>
<customFields>
<dynamicFieldValues>
<entry>
<string>Cantidad</string>
<int>12</int>
</entry>
</dynamicFieldValues>
</customFields>
</com.etask.api.dto.resources.Project>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 9919,
"companyId": 280,
"name": "Projec API",
"estStart": "2017-04-18T00:00:00",
"estFinish": "2017-04-30T23:59:59",
"projectManagerId": 10488,
"projectManagerEmail": "miguelm@mail.com",
"userCreatorEmail": "miguelm@mail.com",
"customFields": {
"Cantidad": 12
}
}
<com.etask.api.dto.resources.Project>
<id>9918</id>
<companyId>280</companyId>
<name>Project API</name>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<projectManagerId>10488</projectManagerId>
<projectManagerEmail>miguelm@mail.com</projectManagerEmail>
<userCreatorEmail>miguelm@mail.com</userCreatorEmail>
<customFields>
<dynamicFieldValues>
<entry>
<string>Cantidad</string>
<int>12</int>
</entry>
</dynamicFieldValues>
</customFields>
</com.etask.api.dto.resources.Project>
Allows the creation of a simple project. Only available for user with the necessary permissions.
HTTP Request
POST/v1/projects
Request Input
Name | Description | Param Type |
---|---|---|
Project project | Project object | RequestBody |
Returns
Project materialized.
update
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X PUT
-d '{
"id": 9919,
"companyId": 280,
"status": "DRAFT",
"health": "GRAY",
"condition": "NOT_REPORTED",
"name":"Name updated for API"
}'
curl 'https://api.hydra.cloud/v1/projects'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
-d '<com.etask.api.dto.resources.Project>
<id>9909</id>
<companyId>280</companyId>
<name>Crear Proyectoasd</name>
<status>DRAFT</status>
<health>GRAY</health>
<condition>NOT_REPORTED</condition>
</com.etask.api.dto.resources.Project>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 9919,
"companyId": 280,
"name": "Name updated for API",
"status": "DRAFT",
"health": "GRAY",
"condition": "NOT_REPORTED"
}
<com.etask.api.dto.resources.Project>
<id>9909</id>
<companyId>280</companyId>
<name>Crear Proyectoasd</name>
<status>DRAFT</status>
<health>GRAY</health>
<condition>NOT_REPORTED</condition>
</com.etask.api.dto.resources.Project>
Updates a project’s details. Only available for user with the necessary permissions.
HTTP Request
PUT/v1/projects
Request Input
Name | Description | Param Type |
---|---|---|
Project project | Project object | RequestBody |
Returns
A project’s basic information.
close
curl 'https://api.hydra.cloud/v1/projects/{id}/close?closeOpenWbs=1'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/projects/{id}/close?closeOpenWbs=1'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
"60ff1072-25fe-4755-b79a-b0795684078e"
<string>60ff1072-25fe-4755-b79a-b0795684078e</string>
Close a project. Only available for user with the necessary permissions.
HTTP Request
PUT/v1/projects/{id}/close
Query String Parameters
Parameter | TYPE | Description | Default value |
---|---|---|---|
closeOpenWbs | BOOLEAN | Close all opened schedules related to related project. | false |
releaseUsers | BOOLEAN | Release users with a valid allocation to related project. | false |
inactivateUserAccess | BOOLEAN | Deactivate user access to related project. | false |
Returns
If any of string parameters was ‘true’, it returns an ID to track batch process from Find Batch Service. Otherwise returns an empty string.
bulk creation
curl 'https://api.hydra.cloud/v1/projects/bulk'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
-d '[
{
"companyId": 280,
"name": "Bulk Project 1",
"estStart": "2017-04-03T00:00:00",
"projectManagerEmail": "miguelm@mail.com",
"estFinish": "2018-04-22T23:59:59"
},
{
"companyId": 280,
"name": "Bulk Project 2",
"estStart": "2017-04-03T00:00:00",
"projectManagerEmail": "miguelm@mail.com",
"estFinish": "2018-04-22T23:59:59"
}
]'
curl 'https://api.hydra.cloud/v1/projects/bulk'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-d '<com.etask.api.dto.resources.Project-array>
<com.etask.api.dto.resources.Project>
<companyId>280</companyId>
<name>Bulk Project 1</name>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<projectManagerEmail>miguelm@mail.com</projectManagerEmail>
</com.etask.api.dto.resources.Project>
<com.etask.api.dto.resources.Project>
<companyId>280</companyId>
<name>Bulk Project 2</name>
<estStart class="sql-timestamp">2017-04-18 05:00:00.0</estStart>
<estFinish class="sql-timestamp">2017-05-01 04:59:59.0</estFinish>
<projectManagerEmail>miguelm@mail.com</projectManagerEmail>
</com.etask.api.dto.resources.Project>
</com.etask.api.dto.resources.Project-array>
'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 604,
"companyId": 280,
"status": "QUEUED",
"batchCount": 0,
"executionMode": "SEQUENTIAL"
}
<com.etask.api.dto.resources.bulk.APIBulkJob>
<id>605</id>
<companyId>280</companyId>
<status>QUEUED</status>
<batchCount>0</batchCount>
<executionMode>SEQUENTIAL</executionMode>
</com.etask.api.dto.resources.bulk.APIBulkJob>
Allows the creation all provided projects using the bulk-batch processing mechanism.
HTTP Request
POST/v1/projects/bulk
Request Input
Name | Description | Param Type |
---|---|---|
List of Project projects | Project object | RequestBody |
Returns
The assigned bulk-batch ID which is in charge of creating the project by the batch infrastructure.
Task
Task object
In project management, a task is an activity that needs to be accomplished within a defined period of time or by a deadline to work towards work-related goals. A task can be broken down into assignments which should also have a defined start and end date or a deadline for completion. One or more assignments on a task puts the task under execution. Completion of all assignments on a specific task normally renders the task completed. Tasks can be linked together to create dependencies.
This catalog defines the supported fields for a Task object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
actualDuration | DOUBLE | X | X | X | X | |
actualEffort | DOUBLE | X | X | |||
actualFinish | DATE | X | X | X | X | |
actualStart | DATE | X | X | X | X | |
adhoc | BOOLEAN | X | X | |||
approvalEnabled | BOOLEAN | X | X | |||
assigned | FIXED_FILTER | |||||
attachments | MULTIVAL | |||||
checklist | MULTIVAL | |||||
children | MULTIVAL | |||||
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
condDescription | STRING | X | X | |||
condition | ENUM | X | X | X | X | |
costAc | DOUBLE | X | X | X | ||
costBac | DOUBLE | X | X | X | ||
costPv | DOUBLE | X | X | X | ||
customFIelds | CUSTOMFIELD_CONTAINER | X | ||||
deliverableId | LONG | X | X | X | X | |
deliverableAlias | STRING | X | X | X | X | |
deliverableName | STRING | X | X | X | X | |
description | STRING | X | X | |||
durationUnit | ENUM | X | X | X | X | |
effortPv | DOUBLE | X | X | X | ||
endDate | DATE | X | X | X | X | |
ganttId | LONG | X | X | X | ||
ganttName | STRING | X | X | X | ||
guide | STRING | X | ||||
health | ENUM | X | X | X | ||
id | LONG | X | X | X | X | X |
name | STRING | X | X | X | X | X |
nonProjectTask | BOOLEAN | X | X | X | X | |
parentId | LONG | X | X | X | X | |
parentName | LONG | X | X | X | ||
pending | FIXED_FILTER | |||||
plannedDuration | DOUBLE | X | X | X | X | |
plannedEffort | DOUBLE | X | X | |||
predecessors | MULTIVAL | |||||
progress | DOUBLE | X | X | X | X | |
projectId | LONG | X | X | X | X | |
projectManagerId | STRING | X | X | X | ||
projectManagerName | STRING | X | X | X | ||
projectName | STRING | X | X | X | X | |
skills | MULTIVAL_STRING | X | X | |||
startDate | DATE | X | X | X | X | |
status | ENUM | X | X | X | X | |
successors | MULTIVAL | |||||
tagGroups | CUSTOMFIELD_CONTAINER | X | ||||
tags | MULTIVAL_STRING | X | X | |||
team | MULTIVAL | |||||
teamTimeAssignments | MULTIVAL | |||||
this_month | FIXED_FILTER | |||||
this_week | FIXED_FILTER | |||||
type | ENUM | X | X | X | ||
updates | MULTIVAL | |||||
userId | LONG | X | X | X | X | |
usingTimelogs | BOOLEAN | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
condition | ConditionTypeEnum |
|
durationUnit | TimeUnitEnum |
|
health | HealthEnum |
|
status | TskStatusEnum |
|
type | TskTypeEnum |
|
myTasks
curl 'https://api.hydra.cloud/v1/myTasks'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTasks'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 2217225,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9807,
"projectName": "TAREAN",
"name": "TAREAN",
"health": "RED",
"type": "TASK",
"status": "IN_PROGRESS",
"condition": "NOT_REPORTED",
"condDescription": "",
"startDate": "2017-03-06T08:00:00",
"endDate": "2017-03-16T08:00:00",
"actualStart": "2017-02-27T13:12:29",
"plannedDuration": 8,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0.5,
"plannedEffort": 4320,
"actualEffort": 2160,
"adhoc": true,
"approvalEnabled": false,
"usingTimelogs": false,
"nonProjectTask": true
},
{
"id": 2228658,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9928,
"projectName": "TAREA 1",
"name": "TAREA 1",
"health": "GRAY",
"type": "TASK",
"status": "PLANNED",
"startDate": "2017-05-10T08:00:00",
"endDate": "2017-05-23T08:00:00",
"plannedDuration": 9,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 4860,
"actualEffort": 0,
"adhoc": true,
"approvalEnabled": false,
"usingTimelogs": true,
"nonProjectTask": true
}
]
<list>
<com.etask.api.dto.resources.Task>
<id>2217225</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9807</projectId>
<projectName>TAREAN</projectName>
<name>TAREAN</name>
<health>RED</health>
<type>TASK</type>
<status>IN_PROGRESS</status>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<startDate class="sql-timestamp">2017-03-06 14:00:00.0</startDate>
<endDate class="sql-timestamp">2017-03-16 14:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-02-27 19:12:29.0</actualStart>
<plannedDuration>8.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.50</progress>
<plannedEffort>4320</plannedEffort>
<actualEffort>2160</actualEffort>
<adhoc>true</adhoc>
<approvalEnabled>false</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>true</nonProjectTask>
</com.etask.api.dto.resources.Task>
<com.etask.api.dto.resources.Task>
<id>2228658</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9928</projectId>
<projectName>TAREA 1</projectName>
<name>TAREA 1</name>
<health>GRAY</health>
<type>TASK</type>
<status>PLANNED</status>
<startDate class="sql-timestamp">2017-05-10 14:00:00.0</startDate>
<endDate class="sql-timestamp">2017-05-23 14:00:00.0</endDate>
<plannedDuration>9.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.00</progress>
<plannedEffort>4860</plannedEffort>
<actualEffort>0</actualEffort>
<adhoc>true</adhoc>
<approvalEnabled>false</approvalEnabled>
<usingTimelogs>true</usingTimelogs>
<nonProjectTask>true</nonProjectTask>
</com.etask.api.dto.resources.Task>
</list>
Returns tasks assigned to the current user matching the parameters set in the etask-request headers. If no parameters are set, returns the first page of tasks assigned to the current user.
HTTP Request
GET/v1/myTasks
Returns
List of Tasks.
count
curl 'https://api.hydra.cloud/v1/myTasks/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/myTasks/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<long>3</long>
Retrieves the number of task matching the etask-request header parameters. If no parameters are set, returns the number of tasks assigned to the current user.
HTTP Request
GET/v1/myTasks/count
Returns
Response Type | Description |
---|---|
long | number of matching tasks. |
find
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2217225,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9807,
"projectName": "TAREAN",
"name": "TAREAN",
"health": "RED",
"type": "TASK",
"status": "IN_PROGRESS",
"condition": "NOT_REPORTED",
"condDescription": "",
"startDate": "2017-03-06T08:00:00",
"endDate": "2017-03-16T08:00:00",
"actualStart": "2017-02-27T13:12:29",
"plannedDuration": 8,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0.5,
"plannedEffort": 4320,
"actualEffort": 2160,
"adhoc": true,
"approvalEnabled": false,
"usingTimelogs": false,
"nonProjectTask": true
}
<com.etask.api.dto.resources.Task>
<id>2217225</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9807</projectId>
<projectName>TAREAN</projectName>
<name>TAREAN</name>
<health>RED</health>
<type>TASK</type>
<status>IN_PROGRESS</status>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<startDate class="sql-timestamp">2017-03-06 14:00:00.0</startDate>
<endDate class="sql-timestamp">2017-03-16 14:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-02-27 19:12:29.0</actualStart>
<plannedDuration>8.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.50</progress>
<plannedEffort>4320</plannedEffort>
<actualEffort>2160</actualEffort>
<adhoc>true</adhoc>
<approvalEnabled>false</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>true</nonProjectTask>
</com.etask.api.dto.resources.Task>
Returns the details of the Task with the received Id. If no etask-request header parameters are set, the default fields are returned.
HTTP Request
GET/v1/myTasks/{taskID}
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
A Tasks, that belongs to a schedule (WBS - Work Breakdown Structure) on a project, and can or not be assigned to one or more users.
Ask Approval
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/askApproval'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/askApproval'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"name": "TAREA WBS 1",
"status": "WAITING_APPROVAL"
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<name>TAREA WBS 1</name>
<status>WAITING_APPROVAL</status>
</com.etask.api.dto.resources.Task>
Asks approval for a Task. The Task must be in IN_PROGRESS status and the current user must be the task responsible or the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/askApproval
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks object with the new status.
Cancel
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/cancel'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/cancel'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"name": "TAREA WBS 1",
"status": "CANCELLED"
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<name>TAREA WBS 1</name>
<status>CANCELLED</status>
</com.etask.api.dto.resources.Task>
Cancels a Task. The Task must be in PLANNED or IN_PROGRESS status, and the current user must be the task responsible or the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/cancel
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks object with the new status.
Checklist
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/checklist'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/checklist'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 265512,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Check 1",
"description": "description check 1",
"group": false,
"place": 0,
"checked": false,
"mandatory": false
},
{
"id": 265513,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Check 2",
"description": "description check 2",
"group": false,
"place": 1,
"checked": false,
"mandatory": true
}
]
<list>
<com.etask.api.dto.resources.ChecklistItem>
<id>265512</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Check 1</name>
<description>description check 1</description>
<group>false</group>
<place>0</place>
<checked>false</checked>
<mandatory>false</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
<com.etask.api.dto.resources.ChecklistItem>
<id>265513</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Check 2</name>
<description>description check 2</description>
<group>false</group>
<place>1</place>
<checked>false</checked>
<mandatory>true</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
</list>
Retrieves the checklist of the Task with the given Id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/myTasks/{taskID}/checklist
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
The task’s list of Checklist items.
find Checklist
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/checklist/{checklistItemId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/checklist/{checklistItemId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 265512,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Check 1",
"description": "description check 1",
"group": false,
"place": 0,
"checked": false,
"mandatory": false
}
<com.etask.api.dto.resources.ChecklistItem>
<id>265512</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Check 1</name>
<description>description check 1</description>
<group>false</group>
<place>0</place>
<checked>false</checked>
<mandatory>false</mandatory>
</com.etask.api.dto.resources.ChecklistItem>
Gets the detail of the checklist item with the given id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/myTasks/{taskID}/checklist/{checklistItemId}
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Long checklistItemId | identifier of the checklist Item. | Path (Mandatory) |
Returns
Detail of the item with the given id.
Description of the CheckList object
Children
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/children'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/children'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 2228662,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 2",
"health": "GREEN",
"type": "TASK",
"status": "WAITING_APPROVAL",
"condition": "NOT_REPORTED",
"condDescription": "",
"startDate": "2017-05-05T07:00:00",
"endDate": "2017-05-31T17:00:00",
"actualStart": "2017-05-05T15:07:36",
"actualFinish": "2017-05-05T17:00:40",
"plannedDuration": 19,
"actualDuration": 1,
"durationUnit": "DAY",
"progress": 1,
"plannedEffort": 10320,
"actualEffort": 10320,
"adhoc": true,
"parentId": 2213005,
"parentName": "PROYECTO DE PRODUCCIÓN",
"approvalEnabled": true,
"usingTimelogs": true,
"nonProjectTask": false
},
{
"id": 2228657,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 1",
"health": "GREEN",
"type": "TASK",
"status": "WAITING_APPROVAL",
"condition": "NOT_REPORTED",
"condDescription": "",
"startDate": "2017-05-11T07:00:00",
"endDate": "2017-06-06T17:00:00",
"actualStart": "2017-05-05T15:26:27",
"actualFinish": "2017-05-05T16:58:52",
"plannedDuration": 19,
"actualDuration": 1,
"durationUnit": "DAY",
"progress": 1,
"plannedEffort": 10260,
"actualEffort": 10320,
"adhoc": true,
"parentId": 2213005,
"parentName": "PROYECTO DE PRODUCCIÓN",
"approvalEnabled": true,
"usingTimelogs": true,
"nonProjectTask": false
}
]
<list>
<com.etask.api.dto.resources.Task>
<id>2228662</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 2</name>
<health>GREEN</health>
<type>TASK</type>
<status>WAITING_APPROVAL</status>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<startDate class="sql-timestamp">2017-05-05 13:00:00.0</startDate>
<endDate class="sql-timestamp">2017-05-31 23:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-05-05 21:07:36.0</actualStart>
<actualFinish class="sql-timestamp">2017-05-05 23:00:40.0</actualFinish>
<plannedDuration>19.00</plannedDuration>
<actualDuration>1.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>1.00</progress>
<plannedEffort>10320</plannedEffort>
<actualEffort>10320</actualEffort>
<adhoc>true</adhoc>
<parentId>2213005</parentId>
<parentName>PROYECTO DE PRODUCCIÓN</parentName>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>true</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 1</name>
<health>GREEN</health>
<type>TASK</type>
<status>WAITING_APPROVAL</status>
<condition>NOT_REPORTED</condition>
<condDescription></condDescription>
<startDate class="sql-timestamp">2017-05-11 13:00:00.0</startDate>
<endDate class="sql-timestamp">2017-06-06 23:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-05-05 21:26:27.0</actualStart>
<actualFinish class="sql-timestamp">2017-05-05 22:58:52.0</actualFinish>
<plannedDuration>19.00</plannedDuration>
<actualDuration>1.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>1.00</progress>
<plannedEffort>10260</plannedEffort>
<actualEffort>10320</actualEffort>
<adhoc>true</adhoc>
<parentId>2213005</parentId>
<parentName>PROYECTO DE PRODUCCIÓN</parentName>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>true</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
</list>
Retrieves the child Tasks of the Task with the given Id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/myTasks/{taskID}/children
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
List of children Tasks.
Complete
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/complete'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/complete'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"name": "TAREA WBS 1",
"status": "CLOSED"
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<name>TAREA WBS 1</name>
<status>CLOSED</status>
</com.etask.api.dto.resources.Task>
Completes a Task. The Task must be in IN_PROGRESS status and the current user must be the task responsible or the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/complete
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks object with the new status.
Reopen
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/reopen'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/reopen'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"name": "TAREA WBS 1",
"status": "IN_PROGRESS"
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<name>TAREA WBS 1</name>
<status>IN_PROGRESS</status>
</com.etask.api.dto.resources.Task>
Re-opens a Task. The Task must be in CLOSED status and the current user must be the task responsible or the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/reopen
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks object with the new status.
Start
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/start'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X PUT
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/start'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X PUT
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"name": "TAREA WBS 1",
"status": "IN_PROGRESS"
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<name>TAREA WBS 1</name>
<status>IN_PROGRESS</status>
</com.etask.api.dto.resources.Task>
Starts a Task. The Task must be in PLANNED status and the current user must be assigned to the task or be the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/start
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks object with the new status.
Update Condition
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updateCondition'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '{
"condition": "condition_ENUM",
"condDescription": "description"
}'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updateCondition'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '<com.etask.api.dto.resources.Task>
<condition>condition_ENUM</condition>
<condDescription>description</condDescription>
</com.etask.api.dto.resources.Task>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 1",
"health": "GREEN",
"type": "TASK",
"status": "IN_PROGRESS",
"condition": "condition_ENUM",
"condDescription": "description",
"startDate": "2017-05-11T07:00:00",
"endDate": "2017-06-06T17:00:00",
"actualStart": "2017-05-05T15:26:27",
"plannedDuration": 19,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 1,
"plannedEffort": 10260,
"actualEffort": 10260,
"adhoc": true,
"parentId": 2213005,
"parentName": "PROYECTO DE PRODUCCIÓN",
"approvalEnabled": true,
"usingTimelogs": false,
"nonProjectTask": false
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 1</name>
<health>GREEN</health>
<type>TASK</type>
<status>IN_PROGRESS</status>
<condition>condition_ENUM</condition>
<condDescription>description</condDescription>
<startDate class="sql-timestamp">2017-05-11 13:00:00.0</startDate>
<endDate class="sql-timestamp">2017-06-06 23:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-05-05 21:26:27.0</actualStart>
<plannedDuration>19.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>1.00</progress>
<plannedEffort>10260</plannedEffort>
<actualEffort>10260</actualEffort>
<adhoc>true</adhoc>
<parentId>2213005</parentId>
<parentName>PROYECTO DE PRODUCCIÓN</parentName>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
Updates the Task’s condition. The Task must be in IN_PROGRESS status and the current user must be the task responsible or the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/updateCondition
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Task task | task object | RequestBody |
Returns
Tasks object with the new condition.
Update Progress
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updateProgress'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '{
"progress": newProgress
}'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updateProgress'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-X PUT
-d '<com.etask.api.dto.resources.Task>
<progress>newProgress</progress>
</com.etask.api.dto.resources.Task>'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2228657,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "TAREA WBS 1",
"health": "GREEN",
"type": "TASK",
"status": "IN_PROGRESS",
"condition": "SOME_CONCERNS",
"condDescription": "hola mundo",
"startDate": "2017-05-11T07:00:00",
"endDate": "2017-06-06T17:00:00",
"actualStart": "2017-05-05T15:26:27",
"plannedDuration": 19,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": newProgress,
"plannedEffort": 10260,
"actualEffort": 10260,
"adhoc": true,
"parentId": 2213005,
"parentName": "PROYECTO DE PRODUCCIÓN",
"approvalEnabled": true,
"usingTimelogs": false,
"nonProjectTask": false
}
<com.etask.api.dto.resources.Task>
<id>2228657</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>TAREA WBS 1</name>
<health>GREEN</health>
<type>TASK</type>
<status>IN_PROGRESS</status>
<condition>SOME_CONCERNS</condition>
<condDescription>des</condDescription>
<startDate class="sql-timestamp">2017-05-11 13:00:00.0</startDate>
<endDate class="sql-timestamp">2017-06-06 23:00:00.0</endDate>
<actualStart class="sql-timestamp">2017-05-05 21:26:27.0</actualStart>
<plannedDuration>19.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>newProgress</progress>
<plannedEffort>10260</plannedEffort>
<actualEffort>10260</actualEffort>
<adhoc>true</adhoc>
<parentId>2213005</parentId>
<parentName>PROYECTO DE PRODUCCIÓN</parentName>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
Updates the Task’s progress. The Task must be in IN_PROGRESS or PLANNED status and the current user must be assigned to the task or be the Project Manager.
HTTP Request
PUT/v1/myTasks/{taskID}/updateProgress
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Task task | task object | RequestBody |
Returns
Tasks object with the new progress.
Updates
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 1494617898833,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"parent": 1494617898833,
"dateCreated": "2017-05-12T13:38:19",
"objectId": 2228662,
"objectType": "TASK",
"objectName": "TAREA WBS 2",
"userCreatorId": 11055,
"userCreatorName": "LUIS MONTAÑO CASTAÑEDA",
"comment": "comment one",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": false
},
{
"id": 1494617885981,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"parent": 1494617885981,
"dateCreated": "2017-05-12T13:38:06",
"objectId": 2228662,
"objectType": "TASK",
"objectName": "TAREA WBS 2",
"userCreatorId": 11055,
"userCreatorName": "LUIS MONTAÑO CASTAÑEDA",
"comment": "comment two",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": false
}
]
<list>
<com.etask.api.dto.resources.Update>
<id>1494617898833</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<parent>1494617898833</parent>
<dateCreated class="sql-timestamp">2017-05-12 19:38:19.0</dateCreated>
<objectId>2228662</objectId>
<objectType>TASK</objectType>
<objectName>TAREA WBS 2</objectName>
<userCreatorId>11055</userCreatorId>
<userCreatorName>LUIS MONTAÑO CASTAÑEDA</userCreatorName>
<comment>comment one</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
<com.etask.api.dto.resources.Update>
<id>1494617885981</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<parent>1494617885981</parent>
<dateCreated class="sql-timestamp">2017-05-12 19:38:06.0</dateCreated>
<objectId>2228662</objectId>
<objectType>TASK</objectType>
<objectName>TAREA WBS 2</objectName>
<userCreatorId>11055</userCreatorId>
<userCreatorName>LUIS MONTAÑO CASTAÑEDA</userCreatorName>
<comment>comment two</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
</list>
Gets updates related to the Task with the given Id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/myTasks/{taskID}/updates
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Tasks of related updates.
find Update
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updates/{updateId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/myTasks/{taskID}/updates/{updateId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 1494617898833,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"parent": 1494617898833,
"dateCreated": "2017-05-12T13:38:19",
"objectId": 2228662,
"objectType": "TASK",
"objectName": "TAREA WBS 2",
"userCreatorId": 11055,
"userCreatorName": "LUIS MONTAÑO CASTAÑEDA",
"comment": "hola mundo",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
}
<com.etask.api.dto.resources.Update>
<id>1494617898833</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<parent>1494617898833</parent>
<dateCreated class="sql-timestamp">2017-05-12 19:38:19.0</dateCreated>
<objectId>2228662</objectId>
<objectType>TASK</objectType>
<objectName>TAREA WBS 2</objectName>
<userCreatorId>11055</userCreatorId>
<userCreatorName>LUIS MONTAÑO CASTAÑEDA</userCreatorName>
<comment>hola mundo</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
Gets updates related to the Task with the given Id. The result can be customized through etask-request headers.
HTTP Request
GET/v1/myTasks/{taskID}/updates/{updateId}
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Long updateId | identifier of the update. | Path (Mandatory) |
Returns
Detail of related Update with the given id.
company tasks
curl 'https://api.hydra.cloud/v1/tasks'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/tasks'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 2221007,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Mi Tarea3",
"health": "GRAY",
"type": "TASK",
"status": "BACKLOG",
"condition": "NOT_REPORTED",
"plannedDuration": 1,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 480,
"actualEffort": 0,
"adhoc": true,
"approvalEnabled": true,
"usingTimelogs": true,
"nonProjectTask": false
},
{
"id": 2221008,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9740,
"projectName": "PROYECTO COMERCIAL",
"name": "Nuevo RiesgoMi",
"health": "GRAY",
"type": "ACTIVITY",
"status": "BACKLOG",
"condition": "NOT_REPORTED",
"plannedDuration": 1,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 0,
"actualEffort": 0,
"adhoc": false,
"deliverableId": 80793,
"deliverableName": "Nuevo RiesgoMi",
"deliverableAlias": "RIESGO-00001",
"approvalEnabled": false,
"usingTimelogs": false,
"nonProjectTask": false
}
]
<list>
<com.etask.api.dto.resources.Task>
<id>2221007</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Mi Tarea3</name>
<health>GRAY</health>
<type>TASK</type>
<status>BACKLOG</status>
<condition>NOT_REPORTED</condition>
<plannedDuration>1.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.00</progress>
<plannedEffort>480</plannedEffort>
<actualEffort>0</actualEffort>
<adhoc>true</adhoc>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>true</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
<com.etask.api.dto.resources.Task>
<id>2221008</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9740</projectId>
<projectName>PROYECTO COMERCIAL</projectName>
<name>Nuevo RiesgoMi</name>
<health>GRAY</health>
<type>ACTIVITY</type>
<status>BACKLOG</status>
<condition>NOT_REPORTED</condition>
<plannedDuration>1.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.00</progress>
<plannedEffort>0</plannedEffort>
<actualEffort>0</actualEffort>
<adhoc>false</adhoc>
<deliverableId>80793</deliverableId>
<deliverableName>Nuevo RiesgoMi</deliverableName>
<deliverableAlias>RIESGO-00001</deliverableAlias>
<approvalEnabled>false</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
</list>
Returns the registered tasks which belong to the company for the logged user. The result can be customized using the etask-request headers.
HTTP Request
GET/v1/tasks
Returns
A list with the requested tasks.
stream
curl 'https://api.hydra.cloud/v1/tasks/stream'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-stream-linedelimited: true or false'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns a JSON Object structured like this:
[
{
"id": 2221007,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Mi Tarea3",
"health": "GRAY",
"type": "TASK",
"status": "BACKLOG",
"condition": "NOT_REPORTED",
"plannedDuration": 1,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 480,
"actualEffort": 0,
"adhoc": true,
"approvalEnabled": true,
"usingTimelogs": true,
"nonProjectTask": false
},
{
"id": 2221008,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9740,
"projectName": "PROYECTO COMERCIAL",
"name": "Nuevo RiesgoMi",
"health": "GRAY",
"type": "ACTIVITY",
"status": "BACKLOG",
"condition": "NOT_REPORTED",
"plannedDuration": 1,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 0,
"actualEffort": 0,
"adhoc": false,
"deliverableId": 80793,
"deliverableName": "Nuevo RiesgoMi",
"deliverableAlias": "RIESGO-00001",
"approvalEnabled": false,
"usingTimelogs": false,
"nonProjectTask": false
}
]
Returns the registered tasks which belong to the company for the logged user. The result can be customized using the etask-request headers. The response of this service is an array of JSON objects with Transfer-Encoding:chunked. If you want to receive Line delimited JSON(newline characters “\r\n” are used as a delimiter) provide a header etask-request-stream-linedelimited with true as value.
HTTP Request
GET/v1/tasks/stream
Returns
A list with the requested tasks.
count matching tasks
curl 'https://api.hydra.cloud/v1/tasks/count'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/tasks/count'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<int>3</int>
Retrieves the number of results matching the etask-request headers received.
HTTP Request
GET/v1/tasks/count
Returns
Response Type | Description |
---|---|
int | number of matching tasks. |
find Company task
curl 'https://api.hydra.cloud/v1/tasks/{taskID}'
-H 'etask-auth-token: token'
-H 'etask-company:companyID'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/tasks/{taskID}'
-H 'etask-auth-token: token'
-H 'etask-company:companyID'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 2221007,
"companyId": 282,
"companyName": "HYDRA",
"projectId": 9739,
"projectName": "PROYECTO DE PRODUCCIÓN",
"name": "Mi Tarea3",
"health": "GRAY",
"type": "TASK",
"status": "BACKLOG",
"condition": "NOT_REPORTED",
"plannedDuration": 1,
"actualDuration": 0,
"durationUnit": "DAY",
"progress": 0,
"plannedEffort": 480,
"actualEffort": 0,
"adhoc": true,
"approvalEnabled": true,
"usingTimelogs": false,
"nonProjectTask": false
}
<com.etask.api.dto.resources.Task>
<id>2221007</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<projectId>9739</projectId>
<projectName>PROYECTO DE PRODUCCIÓN</projectName>
<name>Mi Tarea3</name>
<health>GRAY</health>
<type>TASK</type>
<status>BACKLOG</status>
<condition>NOT_REPORTED</condition>
<plannedDuration>1.00</plannedDuration>
<actualDuration>0.00</actualDuration>
<durationUnit>DAY</durationUnit>
<progress>0.00</progress>
<plannedEffort>480</plannedEffort>
<actualEffort>0</actualEffort>
<adhoc>true</adhoc>
<approvalEnabled>true</approvalEnabled>
<usingTimelogs>false</usingTimelogs>
<nonProjectTask>false</nonProjectTask>
</com.etask.api.dto.resources.Task>
Returns task information to the client for task Id specified in URL.
HTTP Request
GET/v1/tasks/{taskID}
Request Input
Name | Description | Param Type |
---|---|---|
Long taskID | identifier of the task. | Path (Mandatory) |
Returns
Task.
Team
Team Member object
Represents a member of any type of team: company, project or task.
This catalog defines the supported fields for a Team Member object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
capacity | MULTIVAL | X | ||||
companyAccessLevel | ENUM | X | X | X | X | |
companyCalendar | STRING | X | ||||
companyCalendarId | LONG | X | ||||
companyId | LONG | X | X | X | X | |
companyMemberBillingRate | DOUBLE | X | X | X | ||
companyMemberCost | DOUBLE | X | X | X | ||
companyMemberId | LONG | X | X | |||
companyName | STRING | X | X | X | X | |
companyProfile | STRING | X | X | X | ||
companyProfileId | LONG | X | X | |||
companyStatus | ENUM | X | X | X | X | |
id | LONG | X | X | X | X | X |
name | STRING | X | X | X | X | X |
orgUnits | MULTIVAL_STRING | X | X | |||
projectAccessLevel | ENUM | X | X | X | X | |
projectEndDate | DATE | X | X | |||
projectId | LONG | X | X | X | X | |
projectMemberBillingRate | DOUBLE | X | ||||
projectMemberCost | DOUBLE | X | ||||
projectMemberId | LONG | X | X | |||
projectName | STRING | X | X | X | X | |
projectProfile | STRING | X | X | X | ||
projectProfileId | LONG | X | X | |||
projectStartDate | DATE | X | X | |||
projectStatus | ENUM | X | X | X | X | |
projects | MULTIVAL | |||||
skills | MULTIVAL_STRING | X | X | |||
tagGroups | CUSTOMFIELD_CONTAINER | X | ||||
tags | STRING | X | X | |||
taskId | LONG | X | X | X | ||
taskMemberId | LONG | X | X | |||
taskName | STRING | X | X | X | ||
taskResponsible | BOOLEAN | X | X | X | ||
tasks | MULTIVAL | |||||
userId | LONG | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
companyAccessLevel | SecurityLicenseTypeEnum |
|
companyStatus | UserCompanyStatusEnum |
|
projectAccessLevel | SecurityLicenseTypeEnum |
|
projectStatus | StatusEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/team'
-H 'etask-user:user'
-H 'etask-company:companyID'
-H 'etask-auth-token: APItoken'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/team'
-H 'etask-user:user'
-H 'etask-company:companyID'
-H 'etask-auth-token: APItoken'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 10559,
"companyId": 282,
"companyName": "HYDRA",
"userId": 11055,
"name": "LUIS MONTAÑO CASTAÑEDA",
"companyStatus": "ACTIVE",
"companyProfileName": "Administrador del Sistema",
"companyAccessType": "ADMINISTRATOR"
},
{
"id": 10560,
"companyId": 282,
"companyName": "HYDRA",
"userId": 11056,
"name": "OSCAR MORENO",
"companyStatus": "INACTIVE",
"companyProfileName": "Administrador del Sistema",
"companyAccessType": "ADMINISTRATOR"
}
]
<list>
<com.etask.api.dto.resources.TeamMember>
<id>10559</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<userId>11055</userId>
<transportMap>
<entry>
<string>companyId</string>
<long>282</long>
</entry>
</transportMap>
<name>LUIS MONTAÑO CASTAÑEDA</name>
<companyStatus>ACTIVE</companyStatus>
<companyProfileName>Administrador del Sistema</companyProfileName>
<companyAccessType>ADMINISTRATOR</companyAccessType>
</com.etask.api.dto.resources.TeamMember>
<com.etask.api.dto.resources.TeamMember>
<id>10560</id>
<companyId>282</companyId>
<companyName>HYDRA</companyName>
<userId>11056</userId>
<transportMap>
<entry>
<string>companyId</string>
<long>282</long>
</entry>
</transportMap>
<name>OSCAR MORENO</name>
<companyStatus>INACTIVE</companyStatus>
<companyProfileName>Administrador del Sistema</companyProfileName>
<companyAccessType>ADMINISTRATOR</companyAccessType>
</com.etask.api.dto.resources.TeamMember>
</list>
Returns team member information. Can be used to find:
HTTP Request
GET/v1/team
Returns
List of Team Members.
stream
curl 'https://api.hydra.cloud/v1/team/stream'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns a JSON Object structured like this:
[
{
"id": 10559,
"companyId": 282,
"companyName": "HYDRA",
"userId": 11055,
"name": "LUIS MONTAÑO CASTAÑEDA",
"companyStatus": "ACTIVE",
"companyProfileName": "Administrador del Sistema",
"companyAccessType": "ADMINISTRATOR"
},
{
"id": 10560,
"companyId": 282,
"companyName": "HYDRA",
"userId": 11056,
"name": "OSCAR MORENO",
"companyStatus": "INACTIVE",
"companyProfileName": "Administrador del Sistema",
"companyAccessType": "ADMINISTRATOR"
}
]
Returns team member information. Can be used to find.
HTTP Request
GET/v1/team/stream
Returns
List of Team Members.
findAll by type
curl 'https://api.hydra.cloud/v1/team/{type}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/team/{type}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 10531,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"userId": 10990,
"name": "Usuario Comercial 1",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE"
},
{
"id": 10532,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"userId": 10991,
"name": "Usuario Comercial 2",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE"
},
{
"id": 10533,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"userId": 10992,
"name": "Usuario Comercial 3",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE"
}
]
<list>
<com.etask.api.dto.resources.TeamMember>
<id>10531</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<userId>10990</userId>
<transportMap>
<entry>
<string>companyId</string>
<long>280</long>
</entry>
</transportMap>
<name>Usuario Comercial 1</name>
<companyStatus>ACTIVE</companyStatus>
<companyProfileName>Usuario Interno</companyProfileName>
<companyAccessType>RESOURCE</companyAccessType>
</com.etask.api.dto.resources.TeamMember>
<com.etask.api.dto.resources.TeamMember>
<id>10532</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<userId>10991</userId>
<transportMap>
<entry>
<string>companyId</string>
<long>280</long>
</entry>
</transportMap>
<name>Usuario Comercial 2</name>
<companyStatus>ACTIVE</companyStatus>
<companyProfileName>Usuario Interno</companyProfileName>
<companyAccessType>RESOURCE</companyAccessType>
</com.etask.api.dto.resources.TeamMember>
<com.etask.api.dto.resources.TeamMember>
<id>10533</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<userId>10992</userId>
<transportMap>
<entry>
<string>companyId</string>
<long>280</long>
</entry>
</transportMap>
<name>Usuario Comercial 3</name>
<companyStatus>ACTIVE</companyStatus>
<companyProfileName>Usuario Interno</companyProfileName>
<companyAccessType>RESOURCE</companyAccessType>
</com.etask.api.dto.resources.TeamMember>
</list>
Returns team member information. Can be used to find.
HTTP Request
GET/v1/team/{type}
HTTP Params
Param | Values |
---|---|
type |
|
Returns
List of Team Members.
stream by type
curl 'https://api.hydra.cloud/v1/team/{type}/stream'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns a JSON Object structured like this:
[
{
"id": 92473,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"name": "Gerente",
"projectStatus": "DRAFT",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92474,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"name": "Tester",
"projectStatus": "DRAFT",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92475,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"name": "Analista",
"projectStatus": "DRAFT",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92476,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"name": "Desarrollador",
"projectStatus": "DRAFT",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92477,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 11028,
"name": "Gerente Ingeniería",
"companyStatus": "ACTIVE",
"companyProfileName": "Gerente de Proyecto",
"companyAccessType": "PROJECT_MANAGER",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Gerente de Proyecto",
"projectAccessType": "PROJECT_MANAGER"
},
{
"id": 92478,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 10991,
"name": "Usuario Comercial 2",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92479,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 10992,
"name": "Usuario Comercial 3",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92480,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 10993,
"name": "Usuario Comercial 4",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92481,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 10994,
"name": "Usuario Comercial 5",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
},
{
"id": 92482,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 11066,
"name": "Rog Ingenieria",
"companyStatus": "ACTIVE",
"companyProfileName": "Usuario Interno",
"companyAccessType": "RESOURCE",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Usuario Interno",
"projectAccessType": "RESOURCE"
}
]
Returns team member information. Can be used to find.
HTTP Request
GET/v1/team/{type}/stream
HTTP Params
Param | Values |
---|---|
type |
|
Returns
List of Team Members.
count
curl 'https://api.hydra.cloud/v1/team/{type}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/team/{type}/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<long>3</long>
Returns a team’s member count given the team type and matching the etask-request headers specified.
HTTP Request
GET/v1/team/{type}/count
HTTP Params
Param | Values |
---|---|
type |
|
Returns
Response Type | Description |
---|---|
long | number of matching Team Members. |
find
curl 'https://api.hydra.cloud/v1/team/{type}/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/team/{type}/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 92477,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9775,
"projectName": "Proyecto de preventa",
"userId": 11028,
"name": "Gerente Ingeniería",
"companyStatus": "ACTIVE",
"companyProfileName": "Gerente de Proyecto",
"companyAccessType": "PROJECT_MANAGER",
"startDate": "2017-02-13T00:00:00",
"endDate": "2017-02-23T23:59:59",
"projectStatus": "ENABLED",
"projectProfileName": "Gerente de Proyecto",
"projectAccessType": "PROJECT_MANAGER"
}
<com.etask.api.dto.resources.TeamMember>
<id>92477</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9775</projectId>
<projectName>Proyecto de preventa</projectName>
<userId>11028</userId>
<transportMap>
<entry>
<string>projectMemberId</string>
<long>92477</long>
</entry>
<entry>
<string>companyId</string>
<long>280</long>
</entry>
<entry>
<string>projectId</string>
<long>9775</long>
</entry>
</transportMap>
<name>Gerente Ingeniería</name>
<companyStatus>ACTIVE</companyStatus>
<companyProfileName>Gerente de Proyecto</companyProfileName>
<companyAccessType>PROJECT_MANAGER</companyAccessType>
<startDate class="sql-timestamp">2017-02-13 06:00:00.0</startDate>
<endDate class="sql-timestamp">2017-02-24 05:59:59.0</endDate>
<projectStatus>ENABLED</projectStatus>
<projectProfileName>Gerente de Proyecto</projectProfileName>
<projectAccessType>PROJECT_MANAGER</projectAccessType>
</com.etask.api.dto.resources.TeamMember>
Returns a team member’s details for the team type and id specified in the URL. The result can be customized through etask-request headers.
HTTP Request
GET/v1/team/{type}/{id}
HTTP Params
Param | Values |
---|---|
type |
|
Returns
Team Member with given id.
Timesheets
Timesheet object
This catalog defines the supported fields for a timesheet object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? |
---|---|---|---|---|---|
id | LONG | X | X | ||
date | DATE | X | X | X | X |
resName | STRING | X | |||
resAlias | STRING | X | |||
budgetCategory | STRING | X | |||
costCenter | STRING | X | |||
timeTypeDescription | STRING | X | |||
comment | STRING | X | X | ||
internalComment | STRING | X | |||
hour | STRING | X | X | ||
timeType | STRING | X | X | ||
resId | LONG | X | |||
tskId | LONG | X | |||
tskName | STRING | X | |||
submittedDate | ISO_8601_DATE | X | X | X | X |
modifiedDate | ISO_8601_DATE | X | X | X | X |
modifiedBy | STRING | X | |||
approvalState | ENUM | X | |||
approvedBy | STRING | X | |||
rate | STRING | X | |||
cost | STRING | X | |||
genericUser | BOOLEAN | X | |||
resourceProfile | STRING | X | |||
taskPath | STRING | X | |||
projectName | STRING | X | |||
projectId | LONG | X | |||
projectAlias | STRING | X | |||
pmName | STRING | X | |||
pmId | LONG | X | |||
customFields | CUSTOMFIELD_CONTAINER | X | |||
scheduleType | ENUM | X | X | ||
unscheduledEventType | STRING | X | |||
unscheduledEventDescription | STRING | X | |||
removegenericUser | BOOLEAN | X | |||
modifiedApprovalDate | ISO_8601_DATE | X | X | X | X |
billable | BOOLEAN | X | X | ||
createdApprovalDate | ISO_8601_DATE | X | X | X | X |
The allowed values for enumerations are described in the following table:
Field | Values |
---|---|
scheduleType |
|
costCenter |
|
approvalState |
|
get timelogs
curl 'https://api.hydra.cloud/v1/timesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/timesheets'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 31988,
"scheduleType": "PLANNED",
"budgetCategory": "Capacitación",
"costCenter": "SAME_AS_EST_REV",
"internalComment": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac vulputate massa. Nam et ligula tortor. Sed at libero augue. Aliquam egestas ",
"hours": "221",
"timeType": "Estándar",
"timeTypeDescription": "Tipo de tiempo estándar para la compañía",
"date": "2017-02-16",
"submittedDate": "2017-02-16T19:41:32.000Z",
"modifiedDate": "2017-05-09T18:42:05.543Z",
"modifiedBy": "REC-011",
"rate": 11050000,
"cost": 6630000,
"genericUser": false,
"billable": false,
"resource": {
"id": 10531,
"name": "Usuario Comercial 1",
"alias": "REC-011",
"profile": "Usuario Interno"
},
"task": {
"id": 2213336,
"name": "Capacitación",
"path": null
},
"approval": {
"id": null,
"state": "APPROVED",
"approvedBy": "REC-011",
"date": "2017-05-09T18:42:05.543Z",
"modified": "2017-02-16T19:41:32.000Z",
"created": "2017-02-16T19:41:32.000Z"
},
"project": {
"id": 9752,
"projectName": "Capacitación",
"alias": "CTAR-001",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez"
}
}
]
<list>
<com.etask.api.dto.resources.Timesheet>
<id>31988</id>
<scheduleType>PLANNED</scheduleType>
<budgetCategory>Capacitación</budgetCategory>
<costCenter>SAME_AS_EST_REV</costCenter>
<internalComment>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac vulputate massa. Nam et ligula tortor. Sed at libero augue. Aliquam egestas </internalComment>
<hours>221</hours>
<timeType>Estándar</timeType>
<timeTypeDescription>Tipo de tiempo estándar para la compañía</timeTypeDescription>
<date class="sql-date">2017-02-16</date>
<submittedDate class="sql-timestamp">2017-02-16 19:41:32.0</submittedDate>
<modifiedDate>2017-05-09 18:52:02.876 UTC</modifiedDate>
<modifiedBy>REC-011</modifiedBy>
<rate>11050000.0000</rate>
<cost>6630000.0000</cost>
<genericUser>false</genericUser>
<billable>false</billable>
<resource>
<id>10531</id>
<name>Usuario Comercial 1</name>
<alias>REC-011</alias>
<profile>Usuario Interno</profile>
</resource>
<task>
<id>2213336</id>
<name>Capacitación</name>
</task>
<approval>
<state>APPROVED</state>
<approvedBy>REC-011</approvedBy>
<date>2017-05-09 18:52:02.876 UTC</date>
<modified class="sql-timestamp">2017-02-16 19:41:32.0</modified>
<created class="sql-timestamp">2017-02-16 19:41:32.0</created>
</approval>
<project>
<id>9752</id>
<projectName>Capacitación</projectName>
<alias>CTAR-001</alias>
<projectManagerId>10488</projectManagerId>
<projectManagerName>Miguel Montañez</projectManagerName>
</project>
</com.etask.api.dto.resources.Timesheet>
</list>
Returns the information of timelogs given a startDate or createdApprovalDate.
HTTP Request
GET/v1/timesheets
Required filters
For this endpoint at least one of the following filters is required:
Field | Description |
---|---|
modifiedDate | must be ISO 8601 compliant |
modifiedAppovalDate | must be ISO 8601 compliant |
date | must be ISO 8601 compliant |
Returns
List of all timesheets created according to the filter.
get timelogs stream
curl 'https://api.hydra.cloud/v1/timesheets/stream'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns a JSON Object structured like this:
[
...
{
"id": 31988,
"scheduleType": "PLANNED",
"budgetCategory": "Capacitación",
"costCenter": "SAME_AS_EST_REV",
"internalComment": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac vulputate massa. Nam et ligula tortor. Sed at libero augue. Aliquam egestas ",
"hours": "221",
"timeType": "Estándar",
"timeTypeDescription": "Tipo de tiempo estándar para la compañía",
"date": "2017-02-16",
"submittedDate": "2017-02-16T19:41:32.000Z",
"modifiedDate": "2017-05-09T18:42:05.543Z",
"modifiedBy": "REC-011",
"rate": 11050000,
"cost": 6630000,
"genericUser": false,
"billable": false,
"resource": {
"id": 10531,
"name": "Usuario Comercial 1",
"alias": "REC-011",
"profile": "Usuario Interno"
},
"task": {
"id": 2213336,
"name": "Capacitación",
"path": null
},
"approval": {
"id": null,
"state": "APPROVED",
"approvedBy": "REC-011",
"date": "2017-05-09T18:42:05.543Z",
"modified": "2017-02-16T19:41:32.000Z",
"created": "2017-02-16T19:41:32.000Z"
},
"project": {
"id": 9752,
"projectName": "Capacitación",
"alias": "CTAR-001",
"projectManagerId": 10488,
"projectManagerName": "Miguel Montañez"
}
}
...
]
Returns the information of timelogs given a startDate or createdApprovalDate.
HTTP Request
GET/v1/timesheets/stream
Required filters
For this endpoint at least one of the following filters is required:
Field | Description |
---|---|
modifiedDate | must be ISO 8601 compliant |
modifiedAppovalDate | must be ISO 8601 compliant |
date | must be ISO 8601 compliant |
Returns
List of all timesheets created according to the filter.
Get Deleted Timelogs
curl 'https://api.hydra.cloud/v1/timesheets/deleted/'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/timesheets/deleted/'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 93,
"state": "DELETED",
"approvedBy": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA",
"alias": "REC-001"
},
"modified": "2017-05-30T21:47:33.000Z",
"created": "2017-05-30T21:46:56.000Z",
"timeLogId": 33478
},
{
"id": 90,
"state": "DELETED",
"approvedBy": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA",
"alias": "REC-001"
},
"modified": "2017-05-30T21:45:16.000Z",
"created": "2017-05-30T21:43:40.000Z",
"timeLogId": 33479
}
]
<list>
<com.etask.api.dto.resources.TimesheetApprovalDTO>
<id>93</id>
<state>DELETED</state>
<approvedBy>
<id>10559</id>
<name>LUIS MONTAÑO CASTAÑEDA</name>
<alias>REC-001</alias>
</approvedBy>
<modified class="sql-timestamp">2017-05-30 21:47:33.0</modified>
<created class="sql-timestamp">2017-05-30 21:46:56.0</created>
<timeLogId>33478</timeLogId>
</com.etask.api.dto.resources.TimesheetApprovalDTO>
<com.etask.api.dto.resources.TimesheetApprovalDTO>
<id>90</id>
<state>DELETED</state>
<approvedBy>
<id>10559</id>
<name>LUIS MONTAÑO CASTAÑEDA</name>
<alias>REC-001</alias>
</approvedBy>
<modified class="sql-timestamp">2017-05-30 21:45:16.0</modified>
<created class="sql-timestamp">2017-05-30 21:43:40.0</created>
<timeLogId>33479</timeLogId>
</com.etask.api.dto.resources.TimesheetApprovalDTO>
</list>
Returns the approval of every deleted timelog given a modifiedApprovalDate.
HTTP Request
GETv1/timesheets/deleted/
Returns
List of Approvals.
Get Deleted Timelogs Stream
curl 'https://api.hydra.cloud/v1/timesheets/deleted/stream'
-H 'etask-company:companyID'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 93,
"state": "DELETED",
"approvedBy": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA",
"alias": "REC-001"
},
"modified": "2017-05-30T21:47:33.000Z",
"created": "2017-05-30T21:46:56.000Z",
"timeLogId": 33478
},
{
"id": 90,
"state": "DELETED",
"approvedBy": {
"id": 10559,
"name": "LUIS MONTAÑO CASTAÑEDA",
"alias": "REC-001"
},
"modified": "2017-05-30T21:45:16.000Z",
"created": "2017-05-30T21:43:40.000Z",
"timeLogId": 33479
}
]
Returns the approval of every deleted timelog given a modifiedApprovalDate. Returns all the results in a single, persistent HTTP connection.
HTTP Request
GETv1/timesheets/deleted/stream
Returns
List of Approvals.
Time Logs Bulk Creation
curl -X POST
'https://api.hydra.cloud/v1/timesheets/bulk'
-H 'Content-Type: application/json;charset=utf-8'
-H 'etask-auth-token: token'
-H 'etask-company: companyId'
-d '{
[
{
"type":"ADMIN_TIME",
"genericResourceName":"Generic Resource Name 1",
"adminTimeName":"ISolutions",
"projectAlias":"PROY-011",
"values":{
"2021-03-16T00:00:00.000Z":[
{
"time":60,
"internalComment":"unscheduledEventAndGenericResourceTest",
"description":"description"
},
{
"time":60,
"internalComment":"unscheduledEventAndGenericResourceTest",
"description":"description"
}
],
"2021-03-17T00:00:00.000Z":[
{
"time":60,
"internalComment":"unscheduledEventAndGenericResourceTest",
"description":"description"
},
{
"time":60,
"internalComment":"unscheduledEventAndGenericResourceTest",
"description":"description"
}
]
}
},
{
"type":"TASK",
"resourceMail":"recurso2pruebabulk@mail.com",
"taskId":3138236,
"values":{
"2021-03-16T00:00:00":[
{
"time":60,
"description":"realResourceAndProjectTask",
"internalComment":"realResourceAndProjectTask"
}
]
}
},
{
"type":"TASK",
"resourceAlias":"REC-004",
"taskAlias":"CTAR-002",
"values":{
"2021-03-16T00:00:00":[
{
"time":60,
"timeTypeName":"Estándar",
"description":"realResourceAndCompanyTaskAndTimeTypeName",
"internalComment":"realResourceAndCompanyTaskAndTimeTypeName"
}
]
}
},
{
"type":"ADMIN_TIME",
"resourceAlias":"REC-002",
"adminTimeName":"TiempoAdministrativoFacturable",
"values":{
"2021-03-16T00:00:00":[
{
"time":60,
"description":"realResourceAndAdminTime",
"internalComment":"realResourceAndAdminTime"
}
]
}
},
{
"type":"TASK",
"resourceMail":"recurso1@mail.com",
"taskId":3137877,
"values":{
"2021-02-25T00:00:00":[
{
"time":60,
"description":"invalidStatusTest",
"internalComment":"invalidStatusTest"
}
]
}
}
]
}'
HTTP/1.1 200 OK
The above command returns an Object structured like this, where there is an invalid record:
{
"createdRecords": [
{
"type": "ADMIN_TIME",
"genericResourceName": "Generic Resource Name 1",
"adminTimeName": "ISolutions",
"projectAlias": "PROY-011",
"values": {
"2021-03-16T00:00:00": [
{
"id": 75512,
"time": 60,
"description": "description",
"internalComment": "unscheduledEventAndGenericResourceTest"
},
{
"id": 75513,
"time": 60,
"description": "description",
"internalComment": "unscheduledEventAndGenericResourceTest"
}
],
"2021-03-17T00:00:00": [
{
"id": 75514,
"time": 60,
"description": "description",
"internalComment": "unscheduledEventAndGenericResourceTest"
},
{
"id": 75515,
"time": 60,
"description": "description",
"internalComment": "unscheduledEventAndGenericResourceTest"
}
]
}
},
{
"type": "TASK",
"resourceMail": "recurso2pruebabulk@mail.com",
"taskId": 3138236,
"values": {
"2021-03-16T00:00:00": [
{
"id": 75510,
"time": 60,
"description": "realResourceAndProjectTask",
"internalComment": "realResourceAndProjectTask"
}
]
}
},
{
"type": "TASK",
"resourceAlias": "REC-004",
"taskAlias": "CTAR-002",
"values": {
"2021-03-16T00:00:00": [
{
"id": 75511,
"time": 60,
"timeTypeName": "Estándar",
"description": "realResourceAndCompanyTaskAndTimeTypeName",
"internalComment": "realResourceAndCompanyTaskAndTimeTypeName"
}
]
}
},
{
"type": "ADMIN_TIME",
"resourceAlias": "REC-002",
"adminTimeName": "TiempoAdministrativoFacturable",
"values": {
"2021-03-16T00:00:00": [
{
"id": 75516,
"time": 60,
"description": "realResourceAndAdminTime",
"internalComment": "realResourceAndAdminTime"
}
]
}
}
],
"failedRecords": [
{
"cause": {
"code": "TSBULK_CREATION_SCHEDULE_STATUS",
"message": "It is not possible to create time logs due to the schedule status"
},
"record": {
"type": "TASK",
"resourceMail": "recurso1@mail.com",
"taskId": 3137877,
"values": {
"2021-02-25T00:00:00": [
{
"time": 60,
"description": "invalidStatusTest",
"internalComment": "invalidStatusTest"
}
]
}
}
}
]
}
TThis service allows you to create many time logs in one request. Receives a list of records to create. You can create time logs using real ,and generic resources, for project and company tasks, unscheduled events, and administrative times.
Time Logs Bulk Creation Request
Each record has to include at least one parameter to identify the resource and the target object for creating the time logs. According to the next considerations.
Field | Field | Description |
---|---|---|
String | type | The time log type: “TASK” for project and company tasks and “ADMIN_TIME” for administrative times or unscheduled events |
String | resourceMail | Real resource mail |
String | resourceAlias | Real resource alias |
String | genericResourceName | Generic resource name |
Long | taskId | Project or company task id |
String | taskAlias | Task alias only for company tasks |
String | adminTimeName | Administrative time or Unscheduled event name |
Long | projectId | Project id |
String | projectAlias | Project alias |
Map | values | List of time logs to create by date |
Values Map
The values map specifies time logs to create. The key is the date and the value is the list of time logs. You can customize the time logs using the following fields.
Field | Field | Description |
---|---|---|
Date | date | Key of the map, time log date |
BigDecimal | time | Time log time in minutes |
String | timeTypeName | Time type name |
String | description | Time log description |
String | internalComment | Time log internal comment |
Time Logs Creation
For creating log times for unscheduled events you should specify a parameter to identify the project: projectId or projectAlias. For generic resources, admin times, and unscheduled events if there are many objects with the same name, the time logs will be created for the first object founded. If the time type name is no specified default time type is used.
HTTP Request
POST/v1/timesheets/bulk
Time Logs Bulk Creation Response
Returns a list of created records with the time log ids and a list of failed records with the invalid message for each record.
Cause Code | Cause Message |
---|---|
TSBULK_CREATION_EMPTY_TYPE | Ensure the type was included |
TSBULK_CREATION_EMPTY_RES | Ensure the resource mail or resource alias or generic resource name was included |
TSBULK_CREATION_EMPTY_TASK | Ensure the task id or task alias was included |
TSBULK_CREATION_EMPTY_ADMIN_TIME | Ensure the admin time name was included |
TSBULK_CREATION_EMPTY_TIME_LOGS | Ensure the time logs were included |
TSBULK_CREATION_EMPTY_DATE | Ensure the date was included |
TSBULK_CREATION_FUTURE_DATE | You can not create time logs in the future |
TSBULK_CREATION_INVALID_TIME | Ensure the time logs have valid hours |
TSBULK_CREATION_INVALID_TIME_MAX_HOURS | Max hours for time logs are 24 h |
TSBULK_CREATION_RESOURCE_NOT_FOUND | The resource was not found |
TSBULK_CREATION_GENERIC_RESOURCE_NOT_FOUND | The generic resource was not found |
TSBULK_CREATION_RESOURCE_NOT_FOUND_FOR_PROJ | The resource was not found for the project |
TSBULK_CREATION_ADMIN_TIME_NOT_FOUND | The admin time was not found |
TSBULK_CREATION_UNSCHEDULED_EVENT_NOT_FOUND | The unscheduled event was not found |
TSBULK_CREATION_TASK_NOT_FOUND | The task was not found |
TSBULK_CREATION_TASK_STATUS | It is not possible to create time logs due to the task status |
TSBULK_CREATION_RESOURCE_NOT_FOUND_FOR_TASK | The resource was not found for the task |
TSBULK_CREATION_SCHEDULE_STATUS | It is not possible to create time logs due to the schedule status |
TSBULK_CREATION_PROJ_STATUS | It is not possible to create time logs due to the project status |
TSBULK_CREATION_PROJ_NOT_ENABLED_LOG_TIMES | The project does not log times |
TSBULK_CREATION_TIMESHEET_ALREADY_CLOSED | Timesheet already closed |
TSBULK_CREATION_TIME_TYPE_NOT_FOUND_FOR_RES | The time type was not found for res |
Time Types
Time Types object
Time Types help differentiate the cost and rate applicable to resources at a given moment.
This catalog defines the supported fields for a Update Subscription object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? | Minimum Value | Maximum Value | Is used for creation? | Could not be null for creation? | Is used for update? | Could not be null for update? |
---|---|---|---|---|---|---|---|---|---|---|---|---|
companyId | LONG | X | X | X | X | |||||||
companyName | STRING | X | X | X | X | |||||||
description | STRING | X | X | X | ||||||||
id | LONG | X | X | X | X | X | ||||||
name | STRING | X | X | X | X | X | ||||||
projectId | LONG | X | X | X | X | |||||||
projectName | STRING | X | X | X | X | |||||||
standard | BOOLEAN | X | ||||||||||
userId | LONG | X | X | X | X |
findAll
curl 'https://api.hydra.cloud/v1/timeTypes'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/timeTypes'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 889,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectName": "",
"name": "Estándar",
"description": "Tipo de tiempo estándar para la compañía"
},
{
"id": 890,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectName": "",
"name": "Festivo",
"description": "Para definir costos y tarifas en días festivos."
},
{
"id": 891,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectName": "",
"name": "Nocturno",
"description": "Para definir costos y tarifas en horario nocturno."
}
]
<list>
<com.etask.api.dto.resources.TimeType>
<id>889</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectName></projectName>
<name>Estándar</name>
<description>Tipo de tiempo estándar para la compañía</description>
<standard>false</standard>
</com.etask.api.dto.resources.TimeType>
<com.etask.api.dto.resources.TimeType>
<id>890</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectName></projectName>
<name>Festivo</name>
<description>Para definir costos y tarifas en días festivos.</description>
<standard>false</standard>
</com.etask.api.dto.resources.TimeType>
<com.etask.api.dto.resources.TimeType>
<id>891</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectName></projectName>
<name>Nocturno</name>
<description>Para definir costos y tarifas en horario nocturno.</description>
<standard>false</standard>
</com.etask.api.dto.resources.TimeType>
</list>
Retrieves the list of time types for the company’s user.
HTTP Request
GET/v1/timeTypes
Returns
List of TimeTypes.
count
curl 'https://api.hydra.cloud/v1/timeTypes/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/timeTypes/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
3
<int>3</int>
Retrieves the number of TimeTypes.
HTTP Request
GET/v1/timeTypes/count
Returns
Response Type | Description |
---|---|
int | number of matching TimeTypes. |
find
curl 'https://api.hydra.cloud/v1/timeTypes/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/timeTypes/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 889,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectName": "",
"name": "Estándar",
"description": "Tipo de tiempo estándar para la compañía"
}
<com.etask.api.dto.resources.TimeType>
<id>889</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectName></projectName>
<name>Estándar</name>
<description>Tipo de tiempo estándar para la compañía</description>
<standard>false</standard>
</com.etask.api.dto.resources.TimeType>
Retrieves a TimeType with the given id in URL
HTTP Request
GET/v1/timeTypes/{id}
Returns
A TimeType with the given id.
Updates
Update object
An update represents a comment or an association made by an user to any system object.
This catalog defines the supported fields for an Update object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
comment | STRING | X | X | |||
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
dateClosed | DATETIME | X | X | X | X | |
dateCreated | DATETIME | X | X | X | X | X |
dateRemoved | DATETIME | X | X | X | X | |
id | LONG | X | X | X | X | X |
objectId | LONG | X | X | X | X | |
objectName | STRING | X | X | |||
objectType | STRING | X | X | X | X | |
parent | LONG | X | X | X | X | X |
privy | BOOLEAN | X | X | X | X | |
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
replies | FIXED_FILTER | X | ||||
roots | FIXED_FILTER | X | ||||
subObjectId | LONG | X | X | X | ||
threadType | ENUM | X | X | X | ||
totalComments | INTEGER | X | X | |||
totalUnreadComments | INTEGER | X | X | |||
type | ENUM | X | X | X | X | |
userCreatorAvatar | STRING | X | X | |||
userCreatorId | LONG | X | X | X | X | |
userCreatorName | STRING | X | X | X | X | |
userId | LONG | X | X | X | X | |
viewed | BOOLEAN | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
threadType | PostThreadTypeEnum |
|
type | PostTypeEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 1491504862879,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1491504862879,
"dateCreated": "2017-04-06T12:54:23",
"objectId": 2208404,
"objectType": "TASK",
"objectName": "Business plan identifying project opportunity",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "",
"type": "LINK_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
},
{
"id": 1491504852709,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1491504852709,
"dateCreated": "2017-04-06T12:54:13",
"objectId": 2208404,
"objectType": "TASK",
"objectName": "Business plan identifying project opportunity",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "",
"type": "LINK_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
}
]
<list>
<com.etask.api.dto.resources.Update>
<id>1491504862879</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1491504862879</parent>
<dateCreated class="sql-timestamp">2017-04-06 18:54:23.0</dateCreated>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<objectName>Business plan identifying project opportunity</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment></comment>
<type>LINK_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
<com.etask.api.dto.resources.Update>
<id>1491504852709</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1491504852709</parent>
<dateCreated class="sql-timestamp">2017-04-06 18:54:13.0</dateCreated>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<objectName>Business plan identifying project opportunity</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment></comment>
<type>LINK_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
</list>
Provides the last updates of the user logged in the system. By default 10 updates are returned, but you can change this value using the header etask-request-limit. Only includes updates of the objects that the logged user is following in the system. You can use the userId filter to retrieve updates about different users. Accepts additional filters.
HTTP Request
GET/v1/updates
Returns
List of Updates.
create
curl 'https://api.hydra.cloud/v1/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
-d '{
"parent": 1491504862879,
"objectId": 2208404,
"objectType": "TASK",
"comment": "Good idea"
}'
curl 'https://api.hydra.cloud/v1/updates'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-d '<com.etask.api.dto.resources.Update>
<parent>1491504862879</parent>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<comment>Good idea</comment>
</com.etask.api.dto.resources.Update>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 1494277423649,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1491504862879,
"dateCreated": "2017-05-08T15:03:44",
"objectId": 2208404,
"objectType": "TASK",
"objectName": "Business plan identifying project opportunity",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "Good idea",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": false
}
<com.etask.api.dto.resources.Update>
<id>1494277264154</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1491504862879</parent>
<dateCreated class="sql-timestamp">2017-05-08 21:01:04.0</dateCreated>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<objectName>Business plan identifying project opportunity</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>Good idea</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>false</viewed>
</com.etask.api.dto.resources.Update>
Adds a new update or reply in the system.
HTTP Request
POST/v1/updates
Request Input
Name | Description | Param Type |
---|---|---|
Update update | update object | RequestBody |
Returns
Update materialized.
count
curl 'https://api.hydra.cloud/v1/updates/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/updates/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
4
<int>4</int>
Retrieves the number of results matching the etask-request headers received.
HTTP Request
GET/v1/updates/count
Returns
Response Type | Description |
---|---|
int | number of matching Updates. |
find
curl 'https://api.hydra.cloud/v1/updates/{updateID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/updates/{updateID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 1490101229213,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9859,
"projectName": "Blueprint changelog1",
"parent": 1490101229213,
"dateCreated": "2017-03-21T08:00:29",
"objectId": 7728,
"objectType": "BLUEPRINT",
"objectName": "Blueprint changelog1",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "asdasd",
"type": "LINK_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
}
<com.etask.api.dto.resources.Update>
<id>1490101229213</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9859</projectId>
<projectName>Blueprint changelog1</projectName>
<parent>1490101229213</parent>
<dateCreated class="sql-timestamp">2017-03-21 14:00:29.0</dateCreated>
<objectId>7728</objectId>
<objectType>BLUEPRINT</objectType>
<objectName>Blueprint changelog1</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>asdasd</comment>
<type>LINK_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
Retrieves the update details given its ID in the URL.
HTTP Request
GET/v1/updates/{updateID}
Returns
An Update with the given ID.
delete
curl 'https://api.hydra.cloud/v1/updates/{updateID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-X DELETE
curl 'https://api.hydra.cloud/v1/updates/{updateID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-X DELETE
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 1490101229213,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9859,
"projectName": "Blueprint changelog1",
"parent": 1490101229213,
"dateCreated": "2017-03-21T08:00:29",
"objectId": 7728,
"objectType": "BLUEPRINT",
"objectName": "Blueprint changelog1",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "asdasd",
"type": "LINK_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"dateRemoved": "2017-05-08T15:18:41",
"privy": false,
"viewed": true
}
<com.etask.api.dto.resources.Update>
<id>1490101229213</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9859</projectId>
<projectName>Blueprint changelog1</projectName>
<parent>1490101229213</parent>
<dateCreated class="sql-timestamp">2017-03-21 14:00:29.0</dateCreated>
<objectId>7728</objectId>
<objectType>BLUEPRINT</objectType>
<objectName>Blueprint changelog1</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>asdasd</comment>
<type>LINK_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<dateRemoved>2017-05-08 21:17:01.614 UTC</dateRemoved>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
Removes an update from the system.
HTTP Request
DELETE/v1/updates/{updateID}
Returns
Update removed.
replies
curl 'https://api.hydra.cloud/v1/updates/{updateID}/replies'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/updates/{updateID}/replies'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 1494279035178,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1488318714168,
"dateCreated": "2017-05-08T15:30:35",
"objectId": 9679,
"objectType": "PROJECT",
"objectName": "Proyecto training - project, ash",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "Replying to this comment",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
},
{
"id": 1494278924756,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1488318714168,
"dateCreated": "2017-05-08T15:28:45",
"objectId": 9679,
"objectType": "PROJECT",
"objectName": "Proyecto training - project, ash",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "prueba11",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
}
]
<list>
<com.etask.api.dto.resources.Update>
<id>1494279035178</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1488318714168</parent>
<dateCreated class="sql-timestamp">2017-05-08 21:30:35.0</dateCreated>
<objectId>9679</objectId>
<objectType>PROJECT</objectType>
<objectName>Proyecto training - project, ash</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>Replying to this comment</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
<com.etask.api.dto.resources.Update>
<id>1494278924756</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1488318714168</parent>
<dateCreated class="sql-timestamp">2017-05-08 21:28:45.0</dateCreated>
<objectId>9679</objectId>
<objectType>PROJECT</objectType>
<objectName>Proyecto training - project, ash</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>prueba11</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
</list>
Provides the list of replies for a Parent Update Id specified in URL.
HTTP Request
GET/v1/updates/{updateID}/replies
Returns
List of Updates.
updates objectType
curl 'https://api.hydra.cloud/v1/updates/{objectType}/{objectId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/updates/{objectType}/{objectId}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 1494279207628,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1494279207628,
"dateCreated": "2017-05-08T15:33:28",
"objectId": 9679,
"objectType": "PROJECT",
"objectName": "Proyecto training - project, ash",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "adasdasda",
"type": "UPDATE_POST",
"totalComments": 0,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
},
{
"id": 1488318714168,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"parent": 1488318714168,
"dateCreated": "2017-02-28T16:51:54",
"objectId": 9679,
"objectType": "PROJECT",
"objectName": "Proyecto training - project, ash",
"userCreatorId": 11023,
"userCreatorName": "Miguel Montañez",
"comment": "<img onload=\"alert('hola')\" alt=\"migue\">",
"type": "UPDATE_POST",
"totalComments": 2,
"totalUnreadComments": 0,
"privy": false,
"viewed": true
}
]
<list>
<com.etask.api.dto.resources.Update>
<id>1494279207628</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1494279207628</parent>
<dateCreated class="sql-timestamp">2017-05-08 21:33:28.0</dateCreated>
<objectId>9679</objectId>
<objectType>PROJECT</objectType>
<objectName>Proyecto training - project, ash</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment>adasdasda</comment>
<type>UPDATE_POST</type>
<totalComments>0</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
<com.etask.api.dto.resources.Update>
<id>1488318714168</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<parent>1488318714168</parent>
<dateCreated class="sql-timestamp">2017-02-28 22:51:54.0</dateCreated>
<objectId>9679</objectId>
<objectType>PROJECT</objectType>
<objectName>Proyecto training - project, ash</objectName>
<userCreatorId>11023</userCreatorId>
<userCreatorName>Miguel Montañez</userCreatorName>
<comment><img onload="alert('hola')" alt="migue"></comment>
<type>UPDATE_POST</type>
<totalComments>2</totalComments>
<totalUnreadComments>0</totalUnreadComments>
<privy>false</privy>
<viewed>true</viewed>
</com.etask.api.dto.resources.Update>
</list>
Provides a list of updates for a Object Id specified in URL. The object type is case insensitive.
HTTP Request
GET/v1/updates/{objectType}/{objectId}
Object Type
Field | Values |
---|---|
objectType |
|
Returns
List of Updates.
Update Subscription
Update Subscription object
Information of a user’s subscription to the defined updates on a system object.
This catalog defines the supported fields for a Update Subscription object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
companyId | LONG | X | X | |||
companyName | STRING | X | X | |||
id | LONG | X | X | X | X | X |
objectId | LONG | X | X | X | X | X |
objectName | STRING | X | X | X | ||
objectType | ENUM | X | X | X | X | |
projectId | LONG | X | X | |||
projectName | STRING | X | X | |||
userId | LONG | X | X | X | X | |
userName | STRING | X | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
objectType | ObjectTypeEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/updatesSubscription'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/updatesSubscription'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 17622192,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"userId": 11023,
"userName": "Miguel Montañez",
"objectId": 2208404,
"objectType": "TASK",
"objectName": "Business plan identifying project opportunity"
},
{
"id": 17622187,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9887,
"projectName": "Crear Proyecto 1025",
"userId": 11023,
"userName": "Miguel Montañez",
"objectId": 2223947,
"objectType": "TASK",
"objectName": "asdas"
}
]
<list>
<com.etask.api.dto.resources.UpdateSubscription>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<id>17622192</id>
<userId>11023</userId>
<userName>Miguel Montañez</userName>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<objectName>Business plan identifying project opportunity</objectName>
</com.etask.api.dto.resources.UpdateSubscription>
<com.etask.api.dto.resources.UpdateSubscription>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9887</projectId>
<projectName>Crear Proyecto 1025</projectName>
<id>17622187</id>
<userId>11023</userId>
<userName>Miguel Montañez</userName>
<objectId>2223947</objectId>
<objectType>TASK</objectType>
<objectName>asdas</objectName>
</com.etask.api.dto.resources.UpdateSubscription>
</list>
Provides the list of objects the logged user is following.
HTTP Request
GET/v1/updatesSubscription
Returns
List of UpdateSubscriptions.
create
curl 'https://api.hydra.cloud/v1/updatesSubscription'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'Content-Type:application/json;charset=utf-8'
-X POST
-d '{
"userId": 11023,
"objectId": 2208404,
"objectType": "TASK"
}'
curl 'https://api.hydra.cloud/v1/updatesSubscription'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Content-Type:application/xml;charset=utf-8'
-H 'Accept: application/xml;charset=utf-8'
-X POST
-d '<com.etask.api.dto.resources.UpdateSubscription>
<userId>11023</userId>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
</com.etask.api.dto.resources.UpdateSubscription>'
HTTP/1.1 201 Created
The above command returns an Object structured like this:
{
"id": 17622426
}
<com.etask.api.dto.resources.UpdateSubscription>
<id>17622426</id>
</com.etask.api.dto.resources.UpdateSubscription>
Creates a new subscription to updates of a system object for the logged user.
HTTP Request
POST/v1/updatesSubscription
Request Input
Name | Description | Param Type |
---|---|---|
UpdateSubscription update | UpdateSubscription object | RequestBody |
Returns
UpdateSubscription materialized.
count
curl 'https://api.hydra.cloud/v1/updatesSubscription/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
curl 'https://api.hydra.cloud/v1/updatesSubscription/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
20
<int>20</int>
Retrieves the number of objects followed by the user.
HTTP Request
GET/v1/updatesSubscription/count
Returns
Response Type | Description |
---|---|
int | number of objects followed by the user. |
find
curl 'https://api.hydra.cloud/v1/updatesSubscription/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/updatesSubscription/{id}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 17622426,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"userId": 11023,
"userName": "Miguel Montañez",
"objectId": 2208404,
"objectType": "TASK",
"objectName": "Business plan identifying project opportunity"
}
<com.etask.api.dto.resources.UpdateSubscription>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<id>17622426</id>
<userId>11023</userId>
<userName>Miguel Montañez</userName>
<objectId>2208404</objectId>
<objectType>TASK</objectType>
<objectName>Business plan identifying project opportunity</objectName>
</com.etask.api.dto.resources.UpdateSubscription>
Retrieves a subscription’s details given the Id specified in URL.
HTTP Request
GET/v1/updatesSubscription/{id}
Returns
UpdateSubscription found.
Users
User object
This catalog defines the supported fields for an User object and their properties like selectable, filterable, sortable, if it is a custom or basic field. The way to use a filter is describe in Filters
Field Name | Type | Is selectable? | Is a filter? | Is sortable? | Is a basic field? | Is a default field? |
---|---|---|---|---|---|---|
address | STRING | X | ||||
aolAccount | STRING | X | ||||
city | STRING | X | X | X | ||
companyAccessLevel | ENUM | X | X | X | X | |
companyId | LONG | X | X | X | X | |
companyName | STRING | X | X | X | X | |
companyProfile | STRING | X | X | X | ||
companyProfileId | LONG | X | X | X | ||
country | ENUM | X | X | X | ||
description | STRING | X | ||||
STRING | X | X | X | X | X | |
facebookAccount | STRING | X | ||||
fax | STRING | X | ||||
id | LONG | X | X | X | X | X |
language | ENUM | X | ||||
lastName | STRING | X | X | X | X | X |
mobile | STRING | X | ||||
msnAccount | STRING | X | ||||
name | STRING | X | X | X | X | X |
orgUnits | STRING | X | X | |||
photo | STRING | X | X | |||
projectAccessLevel | ENUM | X | X | X | ||
projectId | LONG | X | X | X | X | |
projectName | STRING | X | X | X | X | |
projectProfile | STRING | X | X | |||
projectProfileId | LONG | X | X | |||
projectStatus | ENUM | X | X | X | ||
skypeAccount | STRING | X | ||||
state | STRING | X | X | X | ||
status | ENUM | X | X | X | X | X |
tags | STRING | X | X | |||
telephone | STRING | X | ||||
title | ENUM | X | X | |||
twitterAccount | STRING | X | ||||
userId | LONG | X | X | X | X | |
zip | STRING | X | X | X |
The allowed values for the required enumerations are described in the following table:
Field | Enumeration | Values |
---|---|---|
companyAccessLevel | SecurityLicenseTypeEnum |
|
country | CountryEnum |
|
language | LanguageEnum |
|
projectAccessLevel | SecurityLicenseTypeEnum |
|
projectStatus | StatusEnum |
|
status | UserCompanyStatusEnum |
|
title | TitleEnum |
|
findAll
curl 'https://api.hydra.cloud/v1/users'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
curl 'https://api.hydra.cloud/v1/users'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-limit: limit'
-H 'etask-request-offset: offset'
-H 'etask-request-fields: field names delimited by ,'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'etask-request-order-#: fieldName|ASC or DESC'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
[
{
"id": 11027,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"name": "Gerente",
"lastName": "Comercial",
"title": "MR",
"status": "ACTIVE",
"email": "gerente.comercial@hydra-capacitacion.com",
"companyProfileId": 36214,
"companyProfileName": "Gerente de Proyecto",
"companyAccessType": "PROJECT_MANAGER"
},
{
"id": 11029,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"projectId": 9679,
"projectName": "Proyecto training - project, ash",
"name": "Gerente",
"lastName": "Producción",
"title": "MR",
"status": "ACTIVE",
"email": "gerente.produccion@hydra-capacitacion.com",
"companyProfileId": 36214,
"companyProfileName": "Gerente de Proyecto",
"companyAccessType": "PROJECT_MANAGER"
}
]
<list>
<com.etask.api.dto.resources.User>
<id>11027</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<name>Gerente</name>
<lastName>Comercial</lastName>
<title>MR</title>
<status>ACTIVE</status>
<email>gerente.comercial@hydra-capacitacion.com</email>
<companyProfileId>36214</companyProfileId>
<companyProfileName>Gerente de Proyecto</companyProfileName>
<companyAccessType>PROJECT_MANAGER</companyAccessType>
</com.etask.api.dto.resources.User>
<com.etask.api.dto.resources.User>
<id>11029</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<projectId>9679</projectId>
<projectName>Proyecto training - project, ash</projectName>
<name>Gerente</name>
<lastName>Producción</lastName>
<title>MR</title>
<status>ACTIVE</status>
<email>gerente.produccion@hydra-capacitacion.com</email>
<companyProfileId>36214</companyProfileId>
<companyProfileName>Gerente de Proyecto</companyProfileName>
<companyAccessType>PROJECT_MANAGER</companyAccessType>
</com.etask.api.dto.resources.User>
</list>
Returns a list of users matching the etask-request headers specified, depending on the following parameters.
HTTP Request
GET/v1/users
HTTP params
- If user is logged on using /login, (email and password)
Filter | Description |
---|---|
projectId | etask-request-filter-1: projectId |
companyId | etask-request-filter-2: companyId |
Neither companyId nor projectId | The user’s personal information on any companies he/she has access to. |
- If user is logged on using /auth, (company Id and API Key)
Filter | Description |
---|---|
projectId | etask-request-filter-1: projectId |
No filter | The company’s user list |
Returns
List of Users.
count
curl 'https://api.hydra.cloud/v1/users/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'Accept: application/json;charset=utf-8'
curl 'https://api.hydra.cloud/v1/users/count'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'etask-request-filter-#: fieldName|OPERATION|value1,value2...'
-H 'Accept: application/xml;charset=utf-8'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
2
<long>2</long>
Returns the number of users matching the etask-request headers specified, depending on the following parameters.
HTTP Request
GET/v1/users/count
HTTP params
- If user is logged on using /login, (email and password)
Filter | Description |
---|---|
projectId | etask-request-filter-1: projectId |
companyId | etask-request-filter-2: companyId |
Neither companyId nor projectId | The user’s personal information on any companies he/she has access to. |
- If user is logged on using /auth, (company Id and API Key)
Filter | Description |
---|---|
projectId | etask-request-filter-1: projectId |
No filter | The company’s user list |
Returns
Response Type | Description |
---|---|
long | number of matching Users. |
find
curl 'https://api.hydra.cloud/v1/users/{userID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/json;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
curl 'https://api.hydra.cloud/v1/users/{userID}'
-H 'etask-user:user'
-H 'etask-auth-token: token'
-H 'Accept: application/xml;charset=utf-8'
-H 'etask-request-fields: field names delimited by ,'
HTTP/1.1 200 OK
The above command returns an Object structured like this:
{
"id": 11023,
"companyId": 280,
"companyName": "Training Hydra Miguel",
"name": "Miguel",
"lastName": "Montañez",
"title": "MR",
"status": "ACTIVE",
"email": "miguelm@mail.com",
"companyProfileId": 36212,
"companyProfileName": "Administrador del Sistema",
"companyAccessType": "ADMINISTRATOR"
}
<com.etask.api.dto.resources.User>
<id>11023</id>
<companyId>280</companyId>
<companyName>Training Hydra Miguel</companyName>
<name>Miguel</name>
<lastName>Montañez</lastName>
<title>MR</title>
<status>ACTIVE</status>
<email>miguelm@mail.com</email>
<companyProfileId>36212</companyProfileId>
<companyProfileName>Administrador del Sistema</companyProfileName>
<companyAccessType>ADMINISTRATOR</companyAccessType>
</com.etask.api.dto.resources.User>
Returns a User’s details given the Id specified in the URL.
HTTP Request
GET/v1/users/{userID}
Returns
An User with the given ID.
Errors
General Errors
When issuing requests to the Hydra REST API you can get a series of errors. We worked hard to make the error messages useful. You’ll find the first 3 numbers reflect the HTTP status code associated. Here’s the errors list:
Code | Error Message | Description |
---|---|---|
40001 | The requested URI does not represent any resource or action on the server: | An invalid URI was specified. Check the API Documentation. |
40020 | Invalid request configuration for the resource. | Invalid etask-request headers were sent, such as filter, ordering or operation. |
40021 | Invalid ‘limit’ value. | The value for the etask-request-limit header must be an integer. |
40022 | Invalid ‘offset’ value. | The value for the etask-request-offset header must be an integer. |
40023 | Invalid filter. Format: ‘||’. | An etask-request-filter header has syntax errors. Check the examples of use. |
40024 | Invalid filter operation. | The operation specified in an etask-request-filter header is not allowed for the field, given its data type. |
40025 | Invalid ordering. Format: ‘|[ASC|DESC]. | An etask-request-order header has syntax errors. Check the examples of use. |
40026 | Invalid ordering type. Valid options: ASC, DESC. | An etask-request-order header has specified an invalid ordering type. Check the examples of use. |
40027 | The requested URI cannot be configured through 'etask-request’ headers: | Etask-request headers can only be specified with HTTP GET requests, unless indicated in the API Documentation. |
40028 | An specific filter is required. Format: | fffff | . | For the defined custom filter, verify the correct format: [fieldName] | [logicalOperator] | [value]. For more information, please see the API documentation. |
40029 | The request is missing required parameters: | The fields must be specified through etask-request-filter headers. |
40030 | Invalid ‘objectType’ value. | Some URLs must specify the API resource type to work with. Check the API Documentation. |
40031 | The following fields are required: | Some fields must be specified in the objects of the request body. |
40032 | The following fields exceeded their max size: | The specified fields are larger than the maximum size. Check the object’s field catalog in the API Documentation. |
40033 | There is a closed timesheet for the selected date. Please try for another date. | For the specified date range the referenced timesheet is closed. Please try to change the defined date range. |
40034 | Parameter object not found: | The value specified for a field in the request body is invalid. Check the object’s field catalogue in the API Documentation. |
40035 | Invalid Header. | The specified HTTP header is not allowed. Please verify the defined HTTP headers on your request, |
40036 | Validation Failed, check details. | There are some errors on the defined business validations for the referenced service. Please check the appended error tokens for more information. |
40101 | Unauthorized: Authentication required. Visit /login first. | You must login into the Hydra PSA API before doing any request. Be sure to include values for the etask-user and etask-auth-token headers. |
40102 | Unauthorized: Authentication token is invalid or it has expired. | The specified token is invalid. Check the received token on login, or log in again into the Hydra PSA API. |
40103 | Unauthorized: The user and auth token don’t match. | The specified token is invalid for the specified etask-user header. |
40104 | Unauthorized: Invalid client machine. | The specified host is not accessible. Please check it out and try again. |
40105 | User credentials verification failed. Authentication Rejected. | The user-password combination do not match. Check your login credentials. |
40106 | General error validating user credentials. Authentication Failed. | The authentication process failed. Please, retry later. |
40107 | Company credentials verification failed. Authentication Rejected. | The defined company credentials were rejected by the server. Please verify them. |
40108 | Company doesn’t have an API Key , Please generate it on company preferences tab in company administration section. | The defined company does not have a defined API key. Please contact your company administrator for generate it. |
40109 | The maximum creation count has been reached: | You have reached the maximum number of allowed objects for creation. The maximum number of allowed objects for creation is 200. |
40301 | Access to the resource is not granted. | You do not have access to the requested object(s). Check the Ids of the objects you are trying to retrieve. |
40302 | Insufficient permissions for operation. | According to your Hydra PSA user profile, you do not have access to the requested operation. Check with your company/project administrator. |
40303 | The operation failed: The operation failed. | Follow the instructions in the additional message, or check with your company/project administrator. |
40401 | The requested resource was not found. | The requested object does not exist. Check the Id of the object you are trying to retrieve. |
50001 | An unexpected error has been detected. | An unexpected error has happened on server. Please try again. If the error persists, please contact the Hydra’s Support team. |
50101 | The requested method has not been implemented yet. | The requested HTTP method has not been implemented yet. Check the API Documentation. |
50102 | An error has occurred downloading a document. | Retry the process. If it still fails, please contact support. |
Detailed Errors
Moreover, when some of the previous errors appear to the user, these ones could bring more details about the related causes. Those details are denominated as the error tokens, which are appended to the main error message, and generally are related when the request data is not accomplishing some defined business rules on the system. The following table shows the defined error tokens on the API application:
Code | Error Message | Description |
---|---|---|
FL_0001 | Field XXX is required. | The referenced field is mandatory. It cannot have a null/empty value. |
FL_0002 | Data type conversion error for field XXX. The expected type was YYY but ZZZ was provided. | The data type is incorrect for the sent value. Please check the value and try again. |
FL_0003 | The size of field XXX must be between YYY and ZZZ. You provided AAA. | The value does not accomplish the allowed maximum/minimum length for the referenced field. |
DELIV_1002 | Project “XXX” was not found. | The specified project does not exist and was not found on the system. |
DELIV_1003 | Project “XXX” is closed. | he specified project is closed. Please change its status or try to reference another project. |
DELIV_1004 | Resource “XXX” has no access to project “YYY”. | The specified resource has not enough privileges for accessing to the selected project. Try changing the specified resource or contact the company administrator. |
DELIV_1006 | Deliverable Type “XXX” not found. | The specified deliverable template does not exist and was not found on the system. |
DELIV_1007 | Deliverable Type “XXX” is incomplete. | The specified deliverable template is not complete. Please try with a completed deliverable template. |
DELIV_1009 | The assigned cost “XXX” must be a positive value. | It is not possible to assign a negative value for the referenced field. |
DELIV_1013 | Resource “XXX” can’t be assigned as responsible for the deliverable. Possibly, the Resource doesn’t exist or isn’t assigned to the project. | The specified resource cannot be assigned to the project. Try changing the specified resource. Verify if the resource is not assigned to the project. |
DELIV_1015 | The Project ID or Alias are required. | The project ID or alias is not defined. Please verify the defined values for the project ID and project alias fields. |
DELIV_1016 | Deliverable Type ID or Deliverable Type Name are required. | Please specify an ID or a name for the deliverable type. |
CF_2000 | The custom field name cannot be null or empty. | Please specify a name for the custom field. |
CF_2001 | The custom field named “XXX” doesn’t exist. | Verify the custom field name. |
CF_2002 | The XXX custom field is mandatory, please include a value for : | Please specify a value for the referenced custom field. |
CF_2003 | The custom field named “XXX” is required, please include a value for it. | Please specify a value for the referenced custom field. |
CF_2004 | The value for field “XXX” must be of a YYY type. | Please check the defined data type for the referenced custom field. |
CF_2005 | The minimum value for the field “XXX” is YYY. | Please check the value for the referenced custom field. The defined value is exceeding the allowed minimum value constraint. |
CF_2006 | The maximum value for the field “XXX” is YYY. | Please check the value for the referenced custom field. The defined value is exceeding the allowed maximum value constraint. |
CF_2007 | The date “XXX” as a value for the “YYY” field is invalid. | The assigned date value is incorrect. Please change it. |
CF_2008 | The minimum date for the field “XXX” is YYY. | Please check the date value for the referenced custom field. The defined value is not satisfying the allowed minimum value constraint. |
CF_2009 | The maximum date for the field “XXX” is YYY. | Please check the value for the referenced custom field. The defined value is not satisfying the allowed maximum value constraint. |
CF_2010 | “XXX” is not a valid value for the “YYY” field. | Please check the defined value for the referenced custom field. It is not valid. |
CF_2011 | The minimum value length for the “XXX” field is YYY. | Please check the value length for the referenced custom field. The defined value is not satisfying the allowed minimum value constraint. |
CF_2012 | The maximum value length for the “XXX” field is YYY. | Please check the value length for the referenced custom field. The defined value is not satisfying the allowed maximum value constraint. |
TAG_3001 | Tag “XXX” was not found. | Please check the defined tag value. It was not found on the system. |
PROJ_7001 | Resource XXX is not allowed to be a Project Manager. | The defined resource does not have enough privileges to be assigned as a project manager. Please try to change it or contact the company administrator. |
PROJ_7002 | Resource XXX selected as Project Manager doesn’t exist. | The defined project manager does not exist and was not found on the system. Please try with another. |
PROJ_7003 | The Blueprint XXX doesn’t exist or is not a company blueprint | The defined blueprint does not exist and was not found on the system. Please try with another. |
PROJ_7003 | Resource XXX doesn’t have permission to create a Project. | The defined resource does not have enough permissions for creating a new project. Please try to change it or contact to your company administrator. |
PROJ_7004 | A Project with the selected name already exists. | The defined name for the project is already registered on the system. It is not possible to create a new project with an existing name on the system. Please try to change it. |
PROJ_7005 | The project date range is not valid. | The defined dates for the project are not valid. Please verify them and try to change them. |
PROJ_7006 | The provided project requires a bulk process, use /bulk endpoint to create it. | It was not possible to create a project using this service. It is necessary to create it using a bulk process. Please check the API documentation in the section related to how to create a project using a Blueprint. |
BULK_8001 | The batch with id XXX doesn’t have a file associated. | The defined batch ID does not have an associated file. Please check it out and try to change it. |
BULK_8002 | The company doesn’t have a flat file schema for object type XXX. | The defined company does not have a defined schema for supporting the defined object type on the flat file. |
BULK_8003 | The batch with id XXX doesn’t have a file associated | The defined batch ID does not have an associated file. Please check it out and try to change it. |
BULK_8004 | An identical file was already uploaded. | This file was already uploaded to the system. Please check it out and try to change it. |
BULK_8005 | Record limit exceeded, a file can’t have more than XXX lines. | The record limit was already reached in the defined file. Please check it out and try to change it. |
BULK_8103 | The job doesn’t have any associated batches. At least one batch per job is required. | The defined job does not have any associated batch. Please check it out and try to change it. |
BULK_8104 | A job cant have more than XXX batches. | The batch limit has been reached. Please verify the defined batches for the referenced job. |
BULK_8105 | There is already a job running. | The API application only supports sequential job execution, so in the moment when a job is executing it is not possible to execute another one. |
BULK_8106 | The job must be in ON_CONFIG status to update it. | For updating a job, it must be in ON_CONFIG status. Please verify the status for the referenced job and try again. |
BULK_8107 | The job’s status can only be changed to QUEUE status. | For updating the job status the only allowed value is QUEUE. Please verify the specified status value in the request body. |