NAV Navbar
shell xml

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:

The authentication URIs are:

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.

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:

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
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED

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

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
  • TASK
  • DELIVERABLE
  • DOC
criteriaFilter TaskViewsEnum
  • ALL_TASK
  • TASKS_DUE_TODAY
  • TASKS_DUE_TOMORROW
  • TASK_DUE_TODAY_TOMOROW
  • TASK_DUE_THIS_WEEK
  • TASK_DUE_NEXT_WEEK
  • TASK_DUE_THIS_MONTH
  • TASK_DUE_TODAY_OVERDUE
  • ALL_OVERDUE_TASK
  • ALL_PENDING_TASK
  • TASK_COMPLETE_THIS_WEEK
  • TASK_COMPLETE_LAST_WEEK
  • TASK_COMPLETE_TODAY
  • TASK_DEASSIGNED
deadlineUnit TimePeriodicityEnum
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
expiration_rule ApprovalExpirationRuleEnum
  • AUTO_APPROVAL
  • SEND_REMINDER
  • NOTIFY_PROJECT_MANAGER
health HealthEnum
  • GRAY
  • GREEN
  • YELLOW
  • RED
  • BLUE
status ResApprovalStatusEnum
  • PENDING
  • STARTED
  • APPROVED
  • SKIPPED
  • REJECTED
type ApprovalTypeEnum
  • TASK
  • DELIVERABLE
  • DOC

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
  • EN
  • ES
Status StatusEnum
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED

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
  • COMPLETED
  • STARTING
  • STARTED
  • STOPPING
  • STOPPED
  • FAILED
  • ABANDONED
  • UNKNOWN

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
  • QUEUED
  • INPROGRESS
  • COMPLETED_SUCCESS
  • FAILED
  • NOT_PROCESSED
  • COMPLETED_ERRORS
  • ON_CONFIG

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
  • QUEUED
  • INPROGRESS
  • COMPLETED_SUCCESS
  • FAILED
  • NOT_PROCESSED
  • COMPLETED_ERRORS
  • ON_CONFIG
type BulkBatchType
  • LOAD_DELIVERABLES_FILE
  • LOAD_DELIVERABLES_OBJECTS
  • LOAD_PROJECTS_OBJECTS
  • LOAD_PROJECTS_FILE

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
  • QUEUED
  • INPROGRESS
  • COMPLETED_SUCCESS
  • FAILED
  • NOT_PROCESSED
  • COMPLETED_ERRORS
  • ON_CONFIG
type BulkRecordType
  • CVS_ROW
  • JSON_OBJ
  • XML_RECORD
  • JAVA_OBJ

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>{&quot;companyId&quot;:280,&quot;name&quot;:&quot;Bulk Project 1&quot;,&quot;estStart&quot;:&quot;2017-04-03T00:00:00&quot;,&quot;estFinish&quot;:&quot;2018-04-22T23:59:59&quot;,&quot;projectManagerEmail&quot;:&quot;miguelm@mail.com&quot;,&quot;userCreatorEmail&quot;:&quot;miguelm@mail.com&quot;}</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>{&quot;companyId&quot;:280,&quot;name&quot;:&quot;Bulk Project 2&quot;,&quot;estStart&quot;:&quot;2017-04-03T00:00:00&quot;,&quot;estFinish&quot;:&quot;2018-04-22T23:59:59&quot;,&quot;projectManagerEmail&quot;:&quot;miguelm@mail.com&quot;,&quot;userCreatorEmail&quot;:&quot;miguelm@mail.com&quot;}</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>{&quot;companyId&quot;:280,&quot;name&quot;:&quot;Bulk Project 1&quot;,&quot;estStart&quot;:&quot;2017-04-03T00:00:00&quot;,&quot;estFinish&quot;:&quot;2018-04-22T23:59:59&quot;,&quot;projectManagerEmail&quot;:&quot;miguelm@mail.com&quot;,&quot;userCreatorEmail&quot;:&quot;miguelm@mail.com&quot;}</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>{&quot;companyId&quot;:280,&quot;name&quot;:&quot;Bulk Project 2&quot;,&quot;estStart&quot;:&quot;2017-04-03T00:00:00&quot;,&quot;estFinish&quot;:&quot;2018-04-22T23:59:59&quot;,&quot;projectManagerEmail&quot;:&quot;miguelm@mail.com&quot;,&quot;userCreatorEmail&quot;:&quot;miguelm@mail.com&quot;}</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>{&quot;companyId&quot;:280,&quot;name&quot;:&quot;Bulk Project 1&quot;,&quot;estStart&quot;:&quot;2017-04-03T00:00:00&quot;,&quot;estFinish&quot;:&quot;2018-04-22T23:59:59&quot;,&quot;projectManagerEmail&quot;:&quot;miguelm@mail.com&quot;,&quot;userCreatorEmail&quot;:&quot;miguelm@mail.com&quot;}</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
  • MC_TASK
  • TASK

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
  • TASK

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
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED

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

Customer.

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
  • REQ_SCOPE_WP
  • RISK_SCOPE_WP
  • ISSUE_SCOPE_WP
  • CUSTOM_SCOPE_WP
complexity ComplexityEnum
  • VERY_DIFFICULT
  • DIFFICULT
  • MEDIUM
  • EASY
  • UNASSIGNED
condition ConditionTypeEnum
  • RUNNING_SMOOTHLY
  • SOME_CONCERNS
  • MAJOR_ROADBLOCKS
  • NOT_REPORTED
health HealthEnum
  • GRAY
  • GREEN
  • YELLOW
  • RED
  • BLUE
priority PriorityEnum
  • HIGH
  • MEDIUM
  • LOW
  • UNASSIGNED
riskImpact RiskImpactEnum
  • Catastrophic
  • Critical
  • Severe
  • Important
  • Moderate
  • Minor

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

Deliverable.

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

Deliverable.

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
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED
type DocumentTypeEnum
  • ONLINE
  • OFFLINE
  • EXTERNAL

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

Document.

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
  • admintime
  • approval
  • blueprint
  • bulkbatch
  • bulkjob
  • bulkrecord
  • checklist
  • customer
  • deliverable
  • document
  • timesheet
  • project
  • task
  • taskmember
  • timetype
  • update
  • updatesubscription
  • user
  • teammember
  • taskmember
  • companymember
  • projectmember
  • TimesheetCatalog
  • meta

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
  • admintime
  • approval
  • blueprint
  • bulkbatch
  • bulkjob
  • bulkrecord
  • checklist
  • customer
  • deliverable
  • document
  • timesheet
  • project
  • task
  • taskmember
  • timetype
  • update
  • updatesubscription
  • user
  • teammember
  • taskmember
  • companymember
  • projectmember
  • TimesheetCatalog
  • meta

Returns

A Field Definition.

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
  • TASK
  • ADMIN_TIME
project_advance_mode PrjAdvanceTrackingModeEnum
  • PERCENTAGE
  • REMAINING_TIME
  • BOTH
task_health HealthEnum
  • GRAY
  • GREEN
  • YELLOW
  • RED
  • BLUE
task_status TskStatusEnum
  • BACKLOG
  • PLANNED
  • ALLOCATED
  • IN_PROGRESS
  • CANCELLED
  • PAUSED
  • WAITING_APPROVAL
  • CLOSED
timesheet_status TimesheetStatusEnum
  • OPEN
  • CLOSED
  • PARTIALLY_CLOSED

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
  • PERCENTAGE
  • REMAINING_TIME
  • BOTH
billingModel BillingModelEnum
  • FIXED_COST
  • TIME_AND_MATERIALS
  • RECURRENT_FIXED_RATE
condition ConditionTypeEnum
  • RUNNING_SMOOTHLY
  • SOME_CONCERNS
  • MAJOR_ROADBLOCKS
  • NOT_REPORTED
currency EtaskCurrencyEnum
  • USD
  • GBP
  • EUR
  • COP
  • ZAR
  • MXN
  • PEN
  • AUD
  • NZD
health HealthEnum
  • GRAY
  • GREEN
  • YELLOW
  • RED
  • BLUE
status StatusEnum
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED

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
  • RUNNING_SMOOTHLY
  • SOME_CONCERNS
  • MAJOR_ROADBLOCKS
  • NOT_REPORTED
durationUnit TimeUnitEnum
  • DAY
  • HOUR
  • MILLI
  • MINUTE
  • MONTH
  • QUARTER
  • SECOND
  • WEEK
  • YEAR
health HealthEnum
  • GRAY
  • GREEN
  • YELLOW
  • RED
  • BLUE
status TskStatusEnum
  • BACKLOG
  • PLANNED
  • ALLOCATED
  • IN_PROGRESS
  • CANCELLED
  • PAUSED
  • WAITING_APPROVAL
  • CLOSED
type TskTypeEnum
  • TASK
  • ACTIVITY
  • CHECKPOINT
  • MILESTONE

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
  • ADMINISTRATOR
  • DIRECTOR
  • COMPANY_END_CUSTOMER
  • COMPANY_STAKEHOLDER
  • PROJECT_MANAGER
  • RESOURCE
  • EXTERNAL_RESOURCE
  • STAKEHOLDER
companyStatus UserCompanyStatusEnum
  • ACTIVE
  • INACTIVE
projectAccessLevel SecurityLicenseTypeEnum
  • ADMINISTRATOR
  • DIRECTOR
  • COMPANY_END_CUSTOMER
  • COMPANY_STAKEHOLDER
  • PROJECT_MANAGER
  • RESOURCE
  • EXTERNAL_RESOURCE
  • STAKEHOLDER
projectStatus StatusEnum
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED

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
  • companyMembers: companyId filter must be specified in etask-request-filter.
  • projectMembers: projectId filter must be specified in etask-request-filter.
  • taskMembers: taskId filter must be specified in etask-request-filter.

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
  • companyMembers: companyId filter must be specified in etask-request-filter.
  • projectMembers: projectId filter must be specified in etask-request-filter.
  • taskMembers: taskId filter must be specified in etask-request-filter.

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
  • companyMembers
  • projectMembers
  • taskMembers

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
  • companyMembers
  • projectMembers
  • taskMembers

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
  • PLANNED
  • NOT_PLANNED
costCenter
  • NOT_BILLABLE
  • FIXED_INCOME
  • SAME_AS_EST_REV
approvalState
  • APPROVED
  • UNAPPROVED
  • DELETED

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
  • UNASSIGNED
  • APPROVALS
  • CONDITION
  • TSK_GUIDE
  • ARTIFACT_GUIDE
  • POC_WARNING
type PostTypeEnum
  • ATTACHMENT_POST
  • CHANGE_LOG_POST
  • LINK_POST
  • UPDATE_POST

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>&lt;img onload=&quot;alert(&apos;hola&apos;)&quot; alt=&quot;migue&quot;&gt;</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
  • OPERATIONAL_PLATFORM
  • COMPANY
  • CONTRACT
  • SOFTWARE_PRODUCT
  • HARDWARE_PRODUCT
  • PROJECT_SERVICE
  • SUPPORT_SERVICE
  • PROJECT
  • INVOICE
  • CUSTOMER
  • PROVIDER
  • RESOURCE
  • DOCUMENTS_FOLDER
  • DOCUMENT
  • CODE_REPOSITORY
  • METHOD_WORK_PRODUCT_SELECTED
  • PROJECT_LIFE_CYCLE
  • PROJECT_CHARTER
  • SCOPE_WORK_PRODUCT_SELECTED
  • SUPPORT_WORK_ITEM
  • COMPANY_WORK_ITEM
  • DEVICE
  • SUPPORT_WORK_ITEM_SELECTED
  • SCOPE_WORK_PRODUCT
  • PORTAL_PROJECT
  • LIBRARY
  • METHOD_WORK_PRODUCT
  • TASK
  • PORTAL_RELATIONSHIP
  • BLUEPRINT
  • PERSONAL_ASSIGNMENT
  • MILESTONE
  • PHYSICAL_RESOURCE
  • SUBPROJECT
  • NON_PLANNED_TASK
  • SUPPORT_REQUEST
  • REPORT_TEMPLATE
  • WP_REPORT_TEMPLATE
  • RES_REPORT_TEMPLATE
  • PROD_REPORT_TEMPLATE
  • ETASK_PRODUCT
  • TS_REPORT_CONFIG

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
  • OPERATIONAL_PLATFORM
  • COMPANY
  • CONTRACT
  • SOFTWARE_PRODUCT
  • HARDWARE_PRODUCT
  • PROJECT_SERVICE
  • SUPPORT_SERVICE
  • PROJECT
  • INVOICE
  • CUSTOMER
  • PROVIDER
  • RESOURCE
  • DOCUMENTS_FOLDER
  • DOCUMENT
  • CODE_REPOSITORY
  • METHOD_WORK_PRODUCT_SELECTED
  • PROJECT_LIFE_CYCLE
  • PROJECT_CHARTER
  • SCOPE_WORK_PRODUCT_SELECTED
  • SUPPORT_WORK_ITEM
  • COMPANY_WORK_ITEM
  • DEVICE
  • SUPPORT_WORK_ITEM_SELECTED
  • SCOPE_WORK_PRODUCT
  • PORTAL_PROJECT
  • LIBRARY
  • METHOD_WORK_PRODUCT
  • TASK
  • PORTAL_RELATIONSHIP
  • BLUEPRINT
  • PERSONAL_ASSIGNMENT
  • MILESTONE
  • PHYSICAL_RESOURCE
  • SUBPROJECT
  • NON_PLANNED_TASK
  • SUPPORT_REQUEST
  • REPORT_TEMPLATE
  • WP_REPORT_TEMPLATE
  • RES_REPORT_TEMPLATE
  • PROD_REPORT_TEMPLATE
  • ETASK_PRODUCT
  • TS_REPORT_CONFIG

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
email 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
  • ADMINISTRATOR
  • DIRECTOR
  • COMPANY_END_CUSTOMER
  • COMPANY_STAKEHOLDER
  • PROJECT_MANAGER
  • RESOURCE
  • EXTERNAL_RESOURCE
  • STAKEHOLDER
country CountryEnum
  • AFGHANISTAN
  • ALBANIA
  • ALGERIA
  • AMERICAN_SAMOA
  • ANDORRA
  • ANGOLA
  • ANGUILLA
  • ANTARCTICA
  • ANTIGUA_AND_BARBUDA
  • ARGENTINA
  • ARMENIA
  • ARUBA
  • ASHMORE_AND_CARTIER
  • AUSTRALIA
  • AUSTRIA
  • AZERBAIJAN
  • THE_BAHAMAS
  • BAHRAIN
  • BAKER_ISLAND
  • BANGLADESH
  • BARBADOS
  • BASSAS_DA_INDIA
  • BELARUS
  • BELGIUM
  • BELIZE
  • BENIN
  • BERMUDA
  • BHUTAN
  • BOLIVIA
  • BOSNIA_AND_HERZEGOVINA
  • BOTSWANA
  • BOUVET_ISLAND
  • BRAZIL
  • BRITISH_INDIAN_OCEAN_TERRITORY
  • BRITISH_VIRGIN_ISLANDS
  • BRUNEI_DARUSSALAM
  • BULGARIA
  • BURKINA_FASO
  • BURMA
  • BURUNDI
  • CAMBODIA
  • CAMEROON
  • CANADA
  • CAPE_VERDE
  • CAYMAN_ISLANDS
  • CENTRAL_AFRICAN_REPUBLIC
  • CHAD
  • CHILE
  • CHINA
  • CHRISTMAS_ISLAND
  • CLIPPERTON_ISLAND
  • COCOS_ISLANDS
  • COLOMBIA
  • COMOROS
  • CONGO_DEMOCRATIC_REPUBLIC_OF_THE
  • CONGO_REPUBLIC_OF_THE
  • COOK_ISLANDS
  • CORAL_SEA_ISLANDS
  • COSTA_RICA
  • COTE_DIVOIRE
  • CROATIA
  • CUBA
  • CYPRUS
  • CZECH_REPUBLIC
  • DENMARK
  • DJIBOUTI
  • DOMINICA
  • DOMINICAN_REPUBLIC
  • EAST_TIMOR
  • ECUADOR
  • EGYPT
  • EL_SALVADOR
  • EQUATORIAL_GUINEA
  • ERITREA
  • ESTONIA
  • ETHIOPIA
  • EUROPA_ISLAND
  • FALKLAND_ISLANDS
  • FAROE_ISLANDS
  • FIJI
  • FINLAND
  • FRANCE
  • FRANCE_METROPOLITAN
  • FRENCH_GUIANA
  • FRENCH_POLYNESIA
  • FRENCH_SOUTHERN_AND_ANTARCTIC_LANDS
  • GABON
  • THE_GAMBIA
  • GAZA_STRIP
  • GEORGIA
  • GERMANY
  • GHANA
  • GIBRALTAR
  • GLORIOSO_ISLANDS
  • GREECE
  • GREENLAND
  • GRENADA
  • GUADELOUPE
  • GUAM
  • GUATEMALA
  • GUERNSEY
  • GUINEA
  • GUINEA_BISSAU
  • GUYANA
  • HAITI
  • HEARD_ISLAND_AND_MCDONALD_ISLANDS
  • HOLY_SEE
  • HONDURAS
  • HONG_KONG
  • HOWLAND_ISLAND
  • HUNGARY
  • ICELAND
  • INDIA
  • INDONESIA
  • IRAN
  • IRAQ
  • IRELAND
  • ISRAEL
  • ITALY
  • JAMAICA
  • JAN_MAYEN
  • JAPAN
  • JARVIS_ISLAND
  • JERSEY
  • JOHNSTON_ATOLL
  • JORDAN
  • JUAN_DE_NOVA_ISLAND
  • KAZAKHSTAN
  • KENYA
  • KINGMAN_REEF
  • KIRIBATI
  • NORTH_KOREA
  • SOUTH_KOREA
  • KUWAIT
  • KYRGYZSTAN
  • LAOS
  • LATVIA
  • LEBANON
  • LESOTHO
  • LIBERIA
  • LIBYA
  • LIECHTENSTEIN
  • LITHUANIA
  • LUXEMBOURG
  • MACAO
  • MACEDONIA_THE_FORMER_YUGOSLAV_REPUBLIC_OF
  • MADAGASCAR
  • MALAWI
  • MALAYSIA
  • MALDIVES
  • MALI
  • MALTA
  • ISLE_OF_MAN
  • MARSHALL_ISLANDS
  • MARTINIQUE
  • MAURITANIA
  • MAURITIUS
  • MAYOTTE
  • MEXICO
  • MICRONESIA_FEDERATED_STATES_OF
  • MIDWAY_ISLANDS
  • MISCELLANEOUS_FRENCH
  • MOLDOVA
  • MONACO
  • MONGOLIA
  • MONTENEGRO
  • MONTSERRAT
  • MOROCCO
  • MOZAMBIQUE
  • MYANMAR
  • NAMIBIA
  • NAURU
  • NAVASSA_ISLAND
  • NEPAL
  • NETHERLANDS
  • NETHERLANDS_ANTILLES
  • NEW_CALEDONIA
  • NEW_ZEALAND
  • NICARAGUA
  • NIGER
  • NIGERIA
  • NIUE
  • NORFOLK_ISLAND
  • NORTHERN_MARIANA_ISLANDS
  • NORWAY
  • OMAN
  • PAKISTAN
  • PALAU
  • PALMYRA_ATOLL
  • PANAMA
  • PAPUA_NEW_GUINEA
  • PARACEL_ISLANDS
  • PARAGUAY
  • PERU
  • PHILIPPINES
  • PITCAIRN_ISLANDS
  • POLAND
  • PORTUGAL
  • PUERTO_RICO
  • QATAR
  • REUNION
  • ROMANIA
  • RUSSIA
  • RWANDA
  • SAINT_HELENA
  • SAINT_KITTS_AND_NEVIS
  • SAINT_LUCIA
  • SAINT_PIERRE_AND_MIQUELON
  • SAINT_VINCENT_AND_THE_GRENADINES
  • SAMOA
  • SAN_MARINO
  • SAO_TOME_AND_PRINCIPE
  • SAUDI_ARABIA
  • SENEGAL
  • SERBIA
  • SERBIA_AND_MONTENEGRO
  • SEYCHELLES
  • SIERRA_LEONE
  • SINGAPORE
  • SLOVAKIA
  • SLOVENIA
  • SOLOMON_ISLANDS
  • SOMALIA
  • SOUTH_AFRICA
  • SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS
  • SPAIN
  • SPRATLY_ISLANDS
  • SRI_LANKA
  • SUDAN
  • SURINAME
  • SVALBARD
  • SWAZILAND
  • SWEDEN
  • SWITZERLAND
  • SYRIA
  • TAIWAN
  • TAJIKISTAN
  • TANZANIA
  • THAILAND
  • TOGO
  • TOKELAU
  • TONGA
  • TRINIDAD_AND_TOBAGO
  • TROMELIN_ISLAND
  • TUNISIA
  • TURKEY
  • TURKMENISTAN
  • TURKS_AND_CAICOS_ISLANDS
  • TUVALU
  • UGANDA
  • UKRAINE
  • UNITED_ARAB_EMIRATES
  • UNITED_KINGDOM
  • UNITED_STATES
  • UNITED_STATES_MINOR_OUTLYING_ISLANDS
  • URUGUAY
  • UZBEKISTAN
  • VANUATU
  • VENEZUELA
  • VIETNAM
  • VIRGIN_ISLANDS
  • VIRGIN_ISLANDS_UK
  • VIRGIN_ISLANDS_US
  • WAKE_ISLAND
  • WALLIS_AND_FUTUNA
  • WEST_BANK
  • WESTERN_SAHARA
  • WESTERN_SAMOA
  • WORLD
  • YEMEN
  • YUGOSLAVIA
  • ZAIRE
  • ZAMBIA
  • ZIMBABWE
  • PALESTINIAN_TERRITORY_OCCUPIED
language LanguageEnum
  • EN
  • ES
projectAccessLevel SecurityLicenseTypeEnum
  • ADMINISTRATOR
  • DIRECTOR
  • COMPANY_END_CUSTOMER
  • COMPANY_STAKEHOLDER
  • PROJECT_MANAGER
  • RESOURCE
  • EXTERNAL_RESOURCE
  • STAKEHOLDER
projectStatus StatusEnum
  • ENABLED
  • DISABLED
  • UNAVAILABLE
  • DRAFT
  • CLOSED
status UserCompanyStatusEnum
  • ACTIVE
  • INACTIVE
title TitleEnum
  • MR
  • MRS
  • MISS
  • MS

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

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.
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

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.
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.