Skip to main content
Version: 2.2.0

API Guide

This document provides an overview of all available endpoints in the Resource Management and Tasking (RMT) API.

Health Check

The health check endpoint is used to check the status of the API.

GET /livez

The livez endpoint is used to check the status of the API.

GET /readyz

The readyz endpoint is used to check the status of the API.

Task

1. Create a new task

  • This endpoint is used to create a new task.

Endpoint

POST /v1/task

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body Fields

Task Fields
FieldTypeRequiredDescription
titlestringYesTitle of the task
descriptionstringYesDetailed description of the task
task_typestringYesType of task (e.g., "DevOps")
prioritystringYesTask priority
task_groupstringYesGroup the task belongs to
statusstringYesCurrent status of the task
parent_task_idstringNoUUID of the parent task (null if none)
access_groupstringYesGroup that has access to the task
plan_start_onstringNoPlanned start time of the task (ISO 8601 format)
plan_end_onstringNoPlanned end time of the task (ISO 8601 format)
start_onstringNoStart time of the task (ISO 8601 format)
end_onstringNoEnd time of the task (ISO 8601 format)
  • parent_task_id is optional, if provided, the task will be a sub-task of the parent task.
  • plan_start_on, plan_end_on, start_on, end_on are optional, if provided, end_on must be greater than start_on.
Attributes

Array of custom attributes associated with the task.

FieldTypeRequiredDescription
namestringYesName of the attribute
valuestring/number/booleanYesValue of the attribute
typestringNoData type of the value (defaults to "string")
Locations

Array of locations associated with the task.

FieldTypeRequiredDescription
namestringYesName of the location
type*stringYesType of location (e.g., "address", "current_location")
categorystringNoCategory of the location
statestringYesState of the location
geometry_typestringYesType of geometry (e.g., "point", "none")
propertiesobjectYesLocation-specific properties
  • For GIS integration, the location type should match with the environment variable GIS_INTEGRATION_LOCATION_TYPE (default is current_location). When the location type is current_location, the geometry_type is point and the properties is coordinates (longitude, latitude).
Location Properties

Properties vary based on the location type:

For address type:

FieldTypeRequiredDescription
addressstringYesStreet address
citystringYesCity name
postal_codestringYesPostal/ZIP code

For point type:

FieldTypeRequiredDescription
coordinatesnumber[]Yes[longitude, latitude] array

For polygon type:

FieldTypeRequiredDescription
coordinatesnumber[][]Yes[[longitude, latitude], [longitude, latitude], ...] array

Example Request

{
"title": "string",
"description": "string",
"task_type": "string",
"priority": "string",
"task_group": "string",
"status": "string",
"access_group": "string",
"parent_task_id": "string",
"plan_start_on": "2024-03-20T10:00:00Z",
"plan_end_on": "2024-03-20T10:00:00Z",
"start_on": "2024-03-20T10:00:00Z",
"end_on": "2024-03-20T10:00:00Z",
"attributes": [
{
"name": "string",
"value": "string|number|boolean",
"type": "string"
}
],
"locations": [
{
"name": "string",
"type": "address",
"category": "string",
"state": "string",
"geometry_type": "none",
"properties": {
"address": "string",
"city": "string",
"postal_code": "string"
}
},
{
"name": "string",
"type": "current_location",
"category": "string",
"state": "string",
"geometry_type": "point",
"properties": {
"coordinates": [103.8493269960454, 1.391235132350934]
}
}
]
}

Error Responses

Status CodeDescription
400Bad Request - Invalid input parameters
401Unauthorized - Invalid or missing token
500Internal Server Error

Response

Response Fields
FieldTypeDescription
dataobjectContains the response data
data.idstringUUID of the created task
sent_atstringTimestamp of when the response was sent (ISO 8601 format)

2. Get a task by ID

  • This endpoint is used to get a task by id.

Endpoint

GET /v1/task/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Response

Response Fields
FieldTypeDescription
dataobjectContains the task data
data.idstringUUID of the task
data.titlestringTitle of the task
data.descriptionstringDetailed description of the task
data.task_typestringType of task
data.prioritystringTask priority
data.task_groupstringGroup the task belongs to
data.statusstringCurrent status of the task
data.access_groupstringGroup that has access to the task
data.parent_task_idstringUUID of the parent task (null if none)
data.plan_start_onstringPlanned start time of the task (ISO 8601 format)
data.plan_end_onstringPlanned end time of the task (ISO 8601 format)
data.start_onstringStart time of the task (ISO 8601 format)
data.end_onstringEnd time of the task (ISO 8601 format)
data.created_atstringCreation timestamp (ISO 8601)
data.updated_atstringLast update timestamp (ISO 8601)
data.created_bystringUUID of the user who created the task
data.updated_bystringUUID of the user who last updated the task
data.tenant_idstringUUID of the tenant
data.attributesarrayArray of task attributes
data.locationsarrayArray of task locations
sent_atstringResponse timestamp (ISO 8601)
Attribute Fields
FieldTypeDescription
idstringUUID of the attribute
namestringName of the attribute
valuestringValue of the attribute
typestringData type of the value (e.g., "STRING")
Location Fields
FieldTypeDescription
idstringUUID of the location
namestringName of the location
typestringType of location (e.g., "address")
categorystringCategory of the location
statestringState of the location (e.g., "ACTIVE")
entity_idstringUUID of the associated task
entity_typestringType of entity (e.g., "task")
geometry_typestringType of geometry (e.g., "point", "none")
geo_jsonstringGeoJSON string containing location data
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
created_bystringUUID of the user who created the location
updated_bystringUUID of the user who last updated the location
tenant_idstringUUID of the tenant
Error Responses
Status CodeDescription
400Bad Request - Invalid task ID
404Not Found - Task not found
500Internal Server Error

3. Update a task

  • This endpoint is used to update a task by id, including task information, attributes and locations.

Endpoint

PATCH /v1/task/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Request Body Fields

All fields are optional for update operations. Only the fields that need to be updated should be included in the request.

Task Fields
FieldTypeRequiredDescription
titlestringNoTitle of the task
descriptionstringNoDetailed description of the task
task_typestringNoType of task
prioritystringNoTask priority
task_groupstringNoGroup the task belongs to
statusstringNoCurrent status of the task
access_groupstringNoGroup that has access to the task
parent_task_idstringNoUUID of the parent task (null if none)
plan_start_onstringNoPlanned start time of the task (ISO 8601 format)
plan_end_onstringNoPlanned end time of the task (ISO 8601 format)
start_onstringNoStart time of the task (ISO 8601 format)
end_onstringNoEnd time of the task (ISO 8601 format)
  • parent_task_id is optional, if provided, the task will be a sub-task of the parent task.
  • plan_start_on, plan_end_on, start_on, end_on are optional, if provided, end_on must be greater than start_on.
Attributes

Array of custom attributes associated with the task. If provided, it will replace all existing attributes.

FieldTypeRequiredDescription
namestringYes*Name of the attribute
valuestring/number/booleanYes*Value of the attribute
typestringNoData type of the value (defaults to "string")

* Required if attributes array is provided

If we need to add more attributes, need to keep the existing attributes and add the new ones.

Locations

Array of locations associated with the task. If provided, it will replace all existing locations.

FieldTypeRequiredDescription
namestringYes*Name of the location
typestringYes*Type of location (e.g., "address", "current_location")
categorystringNoCategory of the location
statestringYes*State of the location (e.g., "ACTIVE", "DEACTIVE")
geometry_typestringYes*Type of geometry (e.g., "point", "none")
propertiesobjectYes*Location-specific properties

* Required if locations array is provided

If we need to add more locations, need to keep the existing locations (with the same type and provide location_id) and add the new ones. If we need to change the location type, please add the new location with the new type without providing location_id.

Location Properties

Properties vary based on the location type:

For address type:

FieldTypeRequiredDescription
addressstringYes*Street address
citystringYes*City name
postal_codestringYes*Postal/ZIP code

For point type:

FieldTypeRequiredDescription
coordinatesnumber[]Yes*[longitude, latitude] array

* Required if the corresponding location type is used

Example Request
{
"title": "string",
"description": "string",
"task_type": "string",
"priority": "string",
"task_group": "string",
"status": "string",
"access_group": "string",
"parent_task_id": "string",
"plan_start_on": "2024-03-20T10:00:00Z",
"plan_end_on": "2024-03-20T10:00:00Z",
"start_on": "2024-03-20T10:00:00Z",
"end_on": "2024-03-20T10:00:00Z",
"attributes": [
{
"name": "string",
"value": "string|number|boolean",
"type": "string"
}
],
"locations": [
{
"name": "string",
"type": "address",
"category": "string",
"state": "string",
"geometry_type": "none",
"properties": {
"address": "string",
"city": "string",
"postal_code": "string"
}
},
{
"name": "string",
"type": "current_location",
"category": "string",
"state": "string",
"geometry_type": "point",
"properties": {
"coordinates": [103.8493269960454, 1.391235132350934]
}
}
]
}

Error Responses

Status CodeDescription
400Bad Request - Invalid task ID
500Internal Server Error

4. Get all tasks

  • This endpoint is used to get all tasks, with pagination and filter options.

Endpoint

GET /v1/task

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request parameters

Pagination Parameters
ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")
Filter Parameters
ParameterTypeRequiredDescription
titlestringNoFilter by task title (case-insensitive partial match)
typestringNoFilter by task type
prioritystringNoFilter by task priority
statusstringNoFilter by task status
Example Request
GET /v1/task?page=1&size=10&sort=created_at,desc&title=Sample&type=DevOps&priority=Medium&status=Open

Response

Response Fields
FieldTypeDescription
dataarrayArray of task objects
data[].idstringUUID of the task
data[].titlestringTitle of the task
data[].descriptionstringDetailed description of the task
data[].task_typestringType of task
data[].prioritystringTask priority
data[].task_groupstringGroup the task belongs to
data[].statusstringCurrent status of the task
data[].access_groupstringGroup that has access to the task
data[].parent_task_idstringUUID of the parent task (null if none)
data[].plan_start_onstringPlanned start time of the task (ISO 8601 format)
data[].plan_end_onstringPlanned end time of the task (ISO 8601 format)
data[].start_onstringStart time of the task (ISO 8601 format)
data[].end_onstringEnd time of the task (ISO 8601 format)
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
data[].created_bystringUUID of the user who created the task
data[].updated_bystringUUID of the user who last updated the task
data[].tenant_idstringUUID of the tenant
sent_atstringResponse timestamp (ISO 8601)
pageobjectPagination information
page.numbernumberCurrent page number
page.sizenumberNumber of items per page
page.total_recordsnumberTotal number of tasks matching the filter
page.countnumberNumber of tasks in current page
page.sortarrayArray of sort criteria
Error Responses
Status CodeDescription
400Bad Request - Invalid filter parameters
500Internal Server Error

5. Delete a task

  • This endpoint is used to delete a task by id, with ability to delete task's associated assignments, attributes and locations.

Endpoint

DELETE /v1/task/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Response

Error Responses

Status CodeDescription
400Bad Request - Invalid task ID
500Internal Server Error

Resource

1. Create a new resource

  • This endpoint is used to create a new resource, including resource information, attributes and locations.

Endpoint

POST /v1/resource

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token
Request Body Fields
Resource Fields
FieldTypeRequiredDescription
namestringYesName of the resource
descriptionstringYesDetailed description of the resource
resource_typestringYesType of resource (e.g., "personnel")
statusstringYesStatus of the resource (e.g., "active")
sub_categorystringNoSub-category of the resource
conditionstringNoCondition of the resource
access_groupstringNoGroup that has access to the resource
extensionobjectNoAdditional resource-specific data
Extension Fields
FieldTypeRequiredDescription
user_idstringNoUUID of the associated user
Attributes

Array of custom attributes associated with the resource.

FieldTypeRequiredDescription
namestringYesName of the attribute
valuestring/number/booleanYesValue of the attribute
typestringNoData type of the value (defaults to "string")
Locations

Array of locations associated with the resource.

FieldTypeRequiredDescription
namestringYesName of the location
type*stringYesType of location (e.g., "address", "current_location")
categorystringNoCategory of the location
statestringYesState of the location
geometry_typestringYesType of geometry (e.g., "Point", "none")
propertiesobjectYesLocation-specific properties
  • For GIS integration, the location type should match with the environment variable GIS_INTEGRATION_LOCATION_TYPE (default is current_location).
  • When the location type is current_location, the geometry_type is Point and the properties is coordinates (longitude, latitude).
Location Properties

Properties vary based on the location type:

For address type:

FieldTypeRequiredDescription
addressstringYesStreet address
citystringYesCity name
postal_codestringYesPostal/ZIP code

For point type:

FieldTypeRequiredDescription
coordinatesnumber[]Yes[longitude, latitude] array
Example Request
{
"name": "Sample Resource",
"description": "This is a sample resource description",
"resource_type": "personnel",
"status": "active",
"sub_category": "vm",
"condition": "healthy",
"access_group": "admin",
"attributes": [
{
"name": "source",
"value": "system"
},
{
"name": "validation",
"value": "false",
"type": "bool"
}
],
"extension": {
"user_id": "412643cd-4db4-4584-8ec2-edc3bc7509b1"
},
"locations": [
{
"name": "ST Engineering Vietnam",
"type": "address",
"category": "",
"state": "",
"properties": {
"address": "Number 67 Nguyen Thi Minh Khai Street",
"city": "Ho Chi Minh city",
"postal_code": ""
}
},
{
"name": "ST Engineering",
"type": "current_location",
"category": "",
"state": "ACTIVE",
"geometry_type": "Point",
"properties": {
"coordinates": [103.8493269960454, 1.391235132350934]
}
}
]
}

Response

Response Fields
FieldTypeDescription
dataobjectContains the response data
data.idstringUUID of the created resource
sent_atstringTimestamp of when the response was sent (ISO 8601 format)
Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
401Unauthorized - Invalid or missing token
500Internal Server Error

2. Get a resource by ID

  • This endpoint is used to get a resource by id, including resource information, attributes and locations.

Endpoint

GET /v1/resource/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Response

Response Fields
FieldTypeDescription
dataobjectContains the resource data
data.idstringUUID of the resource
data.namestringName of the resource
data.descriptionstringDetailed description of the resource
data.resource_typestringType of resource
data.statusstringStatus of the resource
data.access_groupstringGroup that has access to the resource
data.sub_categorystringSub-category of the resource
data.conditionstringCondition of the resource
data.created_atstringCreation timestamp (ISO 8601)
data.updated_atstringLast update timestamp (ISO 8601)
data.created_bystringUUID of the user who created the resource
data.updated_bystringUUID of the user who last updated the resource
data.tenant_idstringUUID of the tenant
data.attributesarrayArray of resource attributes
data.extensionobjectAdditional resource-specific data
data.locationsarrayArray of resource locations
sent_atstringResponse timestamp (ISO 8601)
Attribute Fields
FieldTypeDescription
idstringUUID of the attribute
namestringName of the attribute
valuestringValue of the attribute
typestringData type of the value (e.g., "STRING")
Extension Fields
FieldTypeDescription
user_idstringUUID of the associated user (null if none)
Location Fields
FieldTypeDescription
idstringUUID of the location
namestringName of the location
typestringType of location (e.g., "address")
categorystringCategory of the location
statestringState of the location
entity_idstringUUID of the associated resource
entity_typestringType of entity (e.g., "resource")
geometry_typestringType of geometry (e.g., "point", "none")
geo_jsonstringGeoJSON string containing location data
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
created_bystringUUID of the user who created the location
updated_bystringUUID of the user who last updated the location
tenant_idstringUUID of the tenant
Error Responses
Status CodeDescription
400Bad Request - Invalid resource ID
401Unauthorized - Invalid or missing token
404Not Found - Resource not found
500Internal Server Error

3. Update a resource

  • This endpoint is used to update a resource by id, including resource information, attributes and locations.

Endpoint

PATCH /v1/resource/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

All fields are optional for update operations. Only the fields that need to be updated should be included in the request.

Resource Fields
FieldTypeRequiredDescription
namestringYesName of the resource
descriptionstringYesDetailed description of the resource
resource_typestringYesType of resource (e.g., "personnel")
statusstringYesStatus of the resource (e.g., "active")
sub_categorystringNoSub-category of the resource
conditionstringNoCondition of the resource
access_groupstringNoGroup that has access to the resource
Attributes

Array of custom attributes associated with the resource. If provided, it will replace all existing attributes.

FieldTypeRequiredDescription
namestringYes*Name of the attribute
valuestring/number/booleanYes*Value of the attribute
typestringNoData type of the value (e.g., "int", "bool")

* Required if attributes array is provided

  • If we need to add more attributes, need to keep the existing attributes and add the new ones.
Extension Fields
FieldTypeRequiredDescription
user_idstringNoUUID of the associated user
Locations

Array of locations associated with the resource. If provided, it will replace all existing locations.

FieldTypeRequiredDescription
idstringNoUUID of the location (required for update)
namestringYes*Name of the location
typestringYes*Type of location (e.g., "address", "current_location")
categorystringNoCategory of the location
statestringYes*State of the location
geometry_typestringYes*Type of geometry (e.g., "Point", "none")
propertiesobjectYes*Location-specific properties

* Required if locations array is provided

  • For GIS integration, the location type should match with the environment variable GIS_INTEGRATION_LOCATION_TYPE in RMT (default is current_location). When the location type is current_location, the geometry_type is point and the properties is coordinates (longitude, latitude).
Location Properties

Properties vary based on the location type:

For address type:

FieldTypeRequiredDescription
addressstringYes*Street address
citystringYes*City name
postal_codestringNoPostal/ZIP code

For point type:

FieldTypeRequiredDescription
coordinatesnumber[]Yes*[longitude, latitude] array

* Required if the corresponding location type is used

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid resource ID or input parameters
404Not Found - Resource not found
500Internal Server Error
Example Request
{
"name": "Sample Resource 11111",
"description": "This is a sample resource description",
"resource_type": "personnel",
"status": "active",
"sub_category": "vm",
"condition": "healthy",
"access_group": "admin",
"created_by": "system",
"updated_by": "system",
"attributes": [
{
"name": "source",
"value": "system"
},
{
"name": "retry",
"value": "1",
"type": "int"
},
{
"name": "validation",
"value": "false",
"type": "bool"
}
],
"extension": {
"user_id": "412643cd-4db4-4584-8ec2-edc3bc7509b1"
},
"locations": [
{
"id": "ab270732-fb0b-4d23-b254-a1838b2bd772",
"name": "ST Engineering Vietnam (VCC)",
"type": "address",
"category": "",
"state": "",
"properties": {
"address": "Number 67 Nguyen Thi Minh Khai Street",
"city": "Ho Chi Minh city",
"postal_code": ""
}
},
{
"name": "ST Engineering",
"type": "current_location",
"category": "",
"state": "ACTIVE",
"geometry_type": "Point",
"properties": {
"coordinates": [
103.8493269960454,
1.391235132350934
]
}
}
]
}

4. Get all resources

This endpoint is used to get all resources, with pagination and filter options.

Endpoint

GET /v1/resource

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request parameters

Pagination Parameters
ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")
Filter Parameters
ParameterTypeRequiredDescription
namestringNoFilter by resource name
conditionstringNoFilter by resource condition
typestringNoFilter by resource type
statusstringNoFilter by resource status
Example Request
GET /v1/resource?page=1&size=10&sort=created_at,desc&name=Sample&condition=healthy&type=personnel&status=active

Response

Response Fields
FieldTypeDescription
dataobjectContains the response data
data.idstringUUID of the resource
data.namestringName of the resource
data.descriptionstringDescription of the resource
data.resource_typestringType of the resource
data.statusstringStatus of the resource
data.access_groupstringAccess group of the resource
data.sub_categorystringSub-category of the resource
data.conditionstringCondition of the resource
data.created_atstringCreation timestamp (ISO 8601)
data.updated_atstringLast update timestamp (ISO 8601)
data.created_bystringUUID of the user who created the resource
data.updated_bystringUUID of the user who last updated the resource
data.tenant_idstringUUID of the tenant
sent_atstringTimestamp of when the response was sent (ISO 8601 format)
pageobjectPagination information
page.numbernumberCurrent page number
page.sizenumberNumber of items per page
page.total_recordsnumberTotal number of records
page.countnumberNumber of items in the current page
page.sortarraySort order

Error Responses

Status CodeDescription
400Bad Request - Invalid input parameters
500Internal Server Error

5. Delete a resource

Endpoint

DELETE /v1/resource/:id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Error Responses

Status CodeDescription
400Bad Request - Invalid resource ID
500Internal Server Error

Task Assignment

1. Upsert task assignments

  • This endpoint is used to upsert task assignments.

Endpoint

POST /v1/task/:task_id/assignment

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Assignment Fields
FieldTypeRequiredDescription
assignmentsarrayYesArray of task assignments

Each assignment in the array contains:

FieldTypeRequiredDescription
resource_idstringYesUUID of the resource to be assigned
start_timestringNoStart time of the assignment (ISO 8601 format)
end_timestringNoEnd time of the assignment (ISO 8601 format)
assignment_typestringYesType of assignment (e.g., "PRIMARY")
statusstringYesStatus of the assignment (e.g., "ACTIVE")
prioritystringYesPriority of the assignment (e.g., "HIGH")
workloadnumberYesWorkload value (e.g., 1.0)
constraintsstringNoAdditional constraints for the assignment
  • If assignments are not provided, the task will be unassigned, means the task will be removed from the resource.
  • If we want to add new assignment, we can add the assignment to the array and keep the other assignments.
  • start_time and end_time are optional, if provided, end_time must be greater than start_time.
Example Request
{
"assignments": [
{
"resource_id": "412643cd-4db4-4584-8ec2-edc3bc7509b1",
"start_time": "2024-03-20T10:00:00Z",
"end_time": "2024-03-20T12:00:00Z",
"assignment_type": "PRIMARY",
"status": "ACTIVE",
"priority": "HIGH",
"workload": 1.0,
"constraints": "some constraints"
},
{
"resource_id": "8ce3ce23-9d79-4c65-8bdd-f829d11be536",
"start_time": "2024-03-20T10:00:00Z",
"assignment_type": "PRIMARY",
"status": "ACTIVE",
"priority": "HIGH",
"workload": 1.0,
"constraints": "some constraints"
}
]
}

Response

Response Fields
FieldTypeDescription
dataobjectContains the response data
data.idstringUUID of the task
sent_atstringTimestamp of when the response was sent (ISO 8601 format)
Error Responses
Status CodeDescription
400Bad Request - Invalid task ID or input parameters
404Not Found - Task not found
500Internal Server Error

2. Get task assignments

  • This endpoint is used to get all assignments of task, with pagination and filter options.

Endpoint

GET /v1/task/:task_id/assignment

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>
Pagination Parameters
ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")
Filter Parameters
ParameterTypeRequiredDescription
typestringNoFilter by assignment type (e.g., "PRIMARY")
statusstringNoFilter by assignment status (e.g., "ACTIVE")
prioritystringNoFilter by assignment priority (e.g., "HIGH")
workloadnumberNoFilter by assignment workload (e.g., 1.0)
constraintsstringNoFilter by assignment constraints (e.g., "some constraints")
Example Request
GET /v1/task/9332e057-3a43-4d4a-87bb-3406b60ca382/assignment?page=1&size=10&sort=created_at,desc&type=PRIMARY&status=ACTIVE&priority=HIGH&workload=1.0&constraints=some constraints

Response

Response Fields
FieldTypeDescription
dataarrayArray of task assignment objects
data[].idstringUUID of the assignment
data[].task_idstringUUID of the associated task
data[].resource_idstringUUID of the assigned resource
data[].start_timestringStart time of the assignment (ISO 8601)
data[].end_timestringEnd time of the assignment (ISO 8601)
data[].assignment_typestringType of assignment (e.g., "PRIMARY")
data[].statusstringStatus of the assignment (e.g., "ACTIVE")
data[].prioritystringPriority of the assignment (e.g., "HIGH")
data[].workloadnumberWorkload value
data[].constraintsstringAdditional constraints for the assignment
data[].created_bystringUUID of the user who created the assignment
data[].updated_bystringUUID of the user who last updated the assignment
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
sent_atstringResponse timestamp (ISO 8601)
pageobjectPagination information
page.numbernumberCurrent page number
page.sizenumberNumber of items per page
page.total_recordsnumberTotal number of assignments
page.countnumberNumber of assignments in current page
page.sortarrayArray of sort criteria
Error Responses
Status CodeDescription
400Bad Request - Invalid task ID or filter parameters
404Not Found - Task not found
500Internal Server Error

3. Delete task assignments

  • This endpoint is used to delete all assignments of a task.

Endpoint

DELETE /v1/task/:task_id/assignment

4. Get task assignments by resource

This endpoint is used to get all assignments of a resource, with pagination and filter options.

Endpoint

GET /v1/resource/:resource_id/assignment

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>
Pagination Parameters
ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")
Filter Parameters
ParameterTypeRequiredDescription
typestringNoFilter by assignment type (e.g., "PRIMARY")
statusstringNoFilter by assignment status (e.g., "ACTIVE")
prioritystringNoFilter by assignment priority (e.g., "HIGH")
workloadnumberNoFilter by assignment workload (e.g., 1.0)
constraintsstringNoFilter by assignment constraints (e.g., "some constraints")
Example Request
GET /v1/resource/412643cd-4db4-4584-8ec2-edc3bc7509b1/assignment?page=1&size=10&sort=created_at,desc&type=PRIMARY&status=ACTIVE&priority=HIGH&workload=1.0&constraints=some constraints

Response

The response is the same as the response of Get task assignments.

5. Get an assignment by id

This endpoint is used to get an assignment by id.

Endpoint

GET /v1/assignment/:assignment_id

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Response

Response Fields
FieldTypeDescription
dataobjectContains the assignment data
data.idstringUUID of the assignment
data.task_idstringUUID of the associated task
data.resource_idstringUUID of the assigned resource
data.start_timestringStart time of the assignment (ISO 8601)
data.end_timestringEnd time of the assignment (ISO 8601)
data.assignment_typestringType of assignment (e.g., "PRIMARY")
data.statusstringStatus of the assignment (e.g., "ACTIVE")
data.prioritystringPriority of the assignment (e.g., "HIGH")
data.workloadnumberWorkload value
data.constraintsstringAdditional constraints for the assignment
data.created_bystringUUID of the user who created the assignment
data.updated_bystringUUID of the user who last updated the assignment
data.created_atstringCreation timestamp (ISO 8601)
data.updated_atstringLast update timestamp (ISO 8601)
sent_atstringResponse timestamp (ISO 8601)
Error Responses
Status CodeDescription
400Bad Request - Invalid assignment ID
404Not Found - Assignment not found
500Internal Server Error

6. Update an assignment

Endpoint

PATCH /v1/assignment/:assignment_id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Body

Assignment Fields
FieldTypeRequiredDescription
start_timestringNoStart time of the assignment (ISO 8601 format)
end_timestringNoEnd time of the assignment (ISO 8601 format)
assignment_typestringNoType of assignment (e.g., "PRIMARY")
statusstringNoStatus of the assignment (e.g., "ACTIVE", "IN_PROGRESS")
prioritystringNoPriority of the assignment (e.g., "HIGH", "LOW")
workloadnumberNoWorkload value (e.g., 1.0, 0.75)
constraintsstringNoAdditional constraints for the assignment

All fields are optional for update operations. Only the fields that need to be updated should be included in the request.

Example Request
{
"start_time": "2024-03-20T10:00:00Z",
"status": "IN_PROGRESS",
"workload": 0.75,
"assignment_type": "PRIMARY",
"priority": "LOW"
}

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid assignment ID or input parameters
404Not Found - Assignment not found
500Internal Server Error

7. List all assignments

This endpoint is used to list all assignments, with pagination and filter options: support filter by task information and resource information.

Endpoint

GET /v1/assignment

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>
Pagination Parameters
ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")
Filter Parameters

| Parameter | Type | Required | Description | | type | string | No | Filter by assignment type (e.g., "PRIMARY") | | status | string | No | Filter by assignment status (e.g., "ACTIVE") | | priority | string | No | Filter by assignment priority (e.g., "HIGH") | | workload | number | No | Filter by assignment workload (e.g., 1.0) | | constraints | string | No | Filter by assignment constraints (e.g., "some constraints") | | resource_name | string | No | Filter by resource name | | resource_condition | string | No | Filter by resource condition | | resource_type | string | No | Filter by resource type | | resource_status | string | No | Filter by resource status | | task_title | string | No | Filter by task title | | task_type | string | No | Filter by task type | | task_priority | string | No | Filter by task priority | | task_status | string | No | Filter by task status |

Example Request
GET /v1/assignment?page=1&size=10&sort=created_at,desc&type=PRIMARY&status=ACTIVE&priority=HIGH&workload=1.0&constraints=some constraints&resource_name=resource1&resource_condition=condition1&resource_type=type1&resource_status=status1&task_title=task1&task_type=type1&task_priority=priority1&task_status=status1

Response

Response Fields
FieldTypeDescription
dataarrayArray of assignment objects
data[].idstringUUID of the assignment
data[].task_idstringUUID of the associated task
data[].resource_idstringUUID of the assigned resource
data[].start_timestringStart time of the assignment (ISO 8601)
data[].end_timestringEnd time of the assignment (ISO 8601)
data[].assignment_typestringType of assignment (e.g., "PRIMARY")
data[].statusstringStatus of the assignment (e.g., "ACTIVE", "IN_PROGRESS")
data[].prioritystringPriority of the assignment (e.g., "HIGH", "LOW")
data[].workloadnumberWorkload value (e.g., 1.0, 0.75)
data[].constraintsstringAdditional constraints for the assignment
data[].created_bystringUUID of the user who created the assignment
data[].updated_bystringUUID of the user who last updated the assignment
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
sent_atstringResponse timestamp (ISO 8601)
pageobjectPagination information
page.numbernumberCurrent page number
page.sizenumberNumber of items per page
page.total_recordsnumberTotal number of assignments
page.countnumberNumber of assignments in current page
page.sortarrayArray of sort criteria
Error Responses
Status CodeDescription
400Bad Request - Invalid filter parameters
500Internal Server Error

8. Delete assignments

This endpoint is used to delete assignments by ids.

Endpoint

DELETE /v1/assignment

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Body

Fields
FieldTypeRequiredDescription
idsarrayYesArray of assignment ids to delete
Example Request
{
"ids": [
"9707e608-f240-45fb-b9c0-02635508dc0f",
"9707e608-f240-45fb-b9c0-02635508dc01"
]
}

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid filter parameters
500Internal Server Error

Location

1. Get location by id

  • This endpoint is used to get a location by id.

Endpoint

GET /v1/location/:location_id

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Response

Response Fields
FieldTypeDescription
dataobjectContains the location data
data.idstringUUID of the location
data.namestringName of the location
data.typestringType of location (e.g., "current_location", "address")
data.categorystringCategory of the location
data.statestringState of the location (e.g., "ACTIVE")
data.entity_idstringUUID of the associated entity
data.entity_typestringType of entity (e.g., "task", "resource")
data.geometry_typestringType of geometry (e.g., "point", "none")
data.geo_jsonstringGeoJSON string containing location data
data.created_atstringCreation timestamp (ISO 8601)
data.updated_atstringLast update timestamp (ISO 8601)
data.created_bystringUUID of the user who created the location
data.updated_bystringUUID of the user who last updated the location
data.tenant_idstringUUID of the tenant
data.taskobjectAssociated task data (if entity_type is "task")
data.resourceobjectAssociated resource data (if entity_type is "resource")
sent_atstringResponse timestamp (ISO 8601)
Task Fields (when entity_type is "task")
FieldTypeDescription
idstringUUID of the task
titlestringTitle of the task
descriptionstringDescription of the task
task_typestringType of task (e.g., "DevOps")
prioritystringPriority of the task (e.g., "Medium")
task_groupstringGroup the task belongs to
statusstringStatus of the task (e.g., "Open")
access_groupstringGroup that has access to the task
parent_task_idstringUUID of the parent task (null if none)
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
created_bystringUUID of the user who created the task
updated_bystringUUID of the user who last updated the task
tenant_idstringUUID of the tenant
Resource Fields (when entity_type is "resource")
FieldTypeDescription
idstringUUID of the resource
namestringName of the resource
descriptionstringDescription of the resource
resource_typestringType of resource (e.g., "personnel")
statusstringStatus of the resource (e.g., "active")
access_groupstringGroup that has access to the resource
sub_categorystringSub-category of the resource
conditionstringCondition of the resource (e.g., "healthy")
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
created_bystringUUID of the user who created the resource
updated_bystringUUID of the user who last updated the resource
tenant_idstringUUID of the tenant
Error Responses
Status CodeDescription
400Bad Request - Invalid location ID
404Not Found - Location not found
500Internal Server Error

2. List all locations

  • This endpoint is used to get all locations, with pagination and filter options.

Endpoint

GET /v1/location

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Pagination Parameters

ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
sizenumberNoNumber of items per page (default: 10)
sortstringNoSort order (default: "created_at,desc")

Filter Parameters

ParameterTypeRequiredDescription
namestringNoFilter by name
typestringNoFilter by type
categorystringNoFilter by category
statestringNoFilter by state
entity_typestringNoFilter by entity type
addressstringNoFilter by address
geometry_typestringNoFilter by geometry type

Example Request

GET /v1/location?page=1&size=10&sort=created_at,desc&name=location1&type=current_location&category=category1&state=active&entity_type=task&address=123 Main St&geometry_type=point

Response

Response Fields
FieldTypeDescription
dataarrayArray of location objects
data[].idstringUUID of the location
data[].namestringName of the location
data[].typestringType of location (e.g., "current_location", "address")
data[].categorystringCategory of the location
data[].statestringState of the location (e.g., "ACTIVE")
data[].entity_idstringUUID of the associated entity
data[].entity_typestringType of entity (e.g., "task", "resource")
data[].geometry_typestringType of geometry (e.g., "point", "none")
data[].geo_jsonstringGeoJSON string containing location data
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
data[].created_bystringUUID of the user who created the location
data[].updated_bystringUUID of the user who last updated the location
data[].tenant_idstringUUID of the tenant
sent_atstringResponse timestamp (ISO 8601)
pageobjectPagination information
page.numbernumberCurrent page number
page.sizenumberNumber of items per page
page.total_recordsnumberTotal number of locations
page.countnumberNumber of locations in current page
page.sortarrayArray of sort criteria
Error Responses
Status CodeDescription
400Bad Request - Invalid filter parameters
500Internal Server Error

Task note

1. Upsert task notes

This endpoint is used to upsert task notes.

Endpoint

POST /v1/task/:task_id/note

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of task notes to upsert. Each note in the array can be either a new note or an update to an existing note.

Note Fields
FieldTypeRequiredDescription
idstringNoUUID of the note (required for updates)
notestringYesContent of the note
typestringYesType of the note (e.g., "task")
  • If id is provided, the note with that ID will be updated
  • If id is not provided, a new note will be created
  • Notes without id will be treated as new notes and created
  • Notes with existing id will be updated
Example Request
[
{
"note": "Note 1: ",
"type": "task"
},
{
"id": "defc3cc1-0779-4223-8862-9da873330bca",
"note": "Note 2: Update documentation",
"type": "task"
}
]

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
500Internal Server Error

2. Get task notes

This endpoint is used to get task notes.

Endpoint

GET /v1/task/:task_id/note

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Response

Response Fields
FieldTypeDescription
dataarrayArray of task notes
data[].idstringUUID of the note
data[].task_idstringUUID of the associated task
data[].task_note_typestringType of the note (e.g., "task")
data[].notestringContent of the note
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
data[].created_bystringUUID of the user who created the note
data[].updated_bystringUUID of the user who last updated the note
sent_atstringResponse timestamp (ISO 8601)
Error Responses
Status CodeDescription
400Bad Request - Invalid task ID
500Internal Server Error

3. Delete task notes

This endpoint is used to delete task notes.

Endpoint

DELETE /v1/task/:task_id/note

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of note IDs to delete.

Example Request
[
"3685c338-2f76-4d33-9db7-0fce8dc723fd",
"defc3cc1-0779-4223-8862-9da873330bca"
]

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
500Internal Server Error

Task checklist and checklist step

1. Upsert task checklist and checklist step

This endpoint is used to upsert task checklist and checklist steps.

Endpoint

POST /v1/task/:task_id/checklist

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of task checklists to upsert. Each checklist can be either a new checklist or an update to an existing checklist.

Checklist Fields
FieldTypeRequiredDescription
idstringNoUUID of the checklist (required for updates)
namestringYesName of the checklist
descriptionstringYesDescription of the checklist
mandatorybooleanYesWhether the checklist is mandatory
source_statusstringYesSource status of the checklist
target_statusstringYesTarget status of the checklist
completed_atstringNoCompletion timestamp (ISO 8601)
checklist_stepsarrayYesArray of checklist steps
Checklist Step Fields
FieldTypeRequiredDescription
idstringNoUUID of the step (required for updates)
namestringYesName of the step
contentstringYesContent/description of the step
response_typestringYesType of response (e.g., "PASS_FAIL")
optionstringYesOption type (e.g., "none")
mandatorybooleanYesWhether the step is mandatory
valuestringNoValue of the step response
  • If id is provided in checklist, the checklist with that ID will be updated
  • If id is not provided in checklist, a new checklist will be created
  • If id is provided in checklist step, the step with that ID will be updated
  • If id is not provided in checklist step, a new step will be created
  • Checklists without id will be treated as new checklists and created
  • Checklists with existing id will be updated
Example Request
[
{
"name": "Checklist 2",
"description": "This for tracking step",
"mandatory": false,
"source_status": "in_progress",
"target_status": "end",
"completed_at": "2025-05-21T08:19:00Z",
"checklist_steps": [
{
"name": "Step 1",
"content": "Do a migration",
"response_type": "PASS_FAIL",
"option": "none",
"mandatory": true,
"value": "123"
}
]
},
{
"id": "79063fe0-b9ec-47e5-851f-c3da9da198e0",
"name": "Trackpoint 4",
"description": "This for tracking step",
"mandatory": true,
"source_status": "in_progress",
"target_status": "end",
"completed_at": "2025-05-21T08:19:00Z",
"checklist_steps": [
{
"name": "Step 1",
"content": "Do a migration",
"response_type": "PASS_FAIL",
"option": "none",
"mandatory": true,
"value": "123"
}
]
}
]

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
500Internal Server Error

2. Get task checklist and checklist step

This endpoint is used to get task checklist and checklist steps.

Endpoint

GET /v1/task/:task_id/checklist

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Response

Response Fields
FieldTypeDescription
dataarrayArray of task checklists
data[].idstringUUID of the checklist
data[].namestringName of the checklist
data[].descriptionstringDescription of the checklist
data[].source_statusstringSource status of the checklist
data[].target_statusstringTarget status of the checklist
data[].mandatorybooleanWhether the checklist is mandatory
data[].task_idstringUUID of the associated task
data[].completed_atstringCompletion timestamp (ISO 8601)
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
data[].checklist_stepsarrayArray of checklist steps
sent_atstringResponse timestamp (ISO 8601)
Checklist Step Fields
FieldTypeDescription
idstringUUID of the step
namestringName of the step
valuestringValue of the step response
contentstringContent/description of the step
step_ordernumberOrder of the step in the checklist
mandatorybooleanWhether the step is mandatory
optionstringOption type (e.g., "none")
response_typestringType of response (e.g., "PASS_FAIL")
checklist_idstringUUID of the associated checklist
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
Error Responses
Status CodeDescription
400Bad Request - Invalid task ID
500Internal Server Error

3. Delete task checklist and checklist step

This endpoint is used to delete task checklist and checklist steps.

Endpoint

DELETE /v1/task/:task_id/checklist

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of checklist IDs to delete.

Example Request
[
"79063fe0-b9ec-47e5-851f-c3da9da198e0"
]

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
500Internal Server Error

Contact

1. Upsert contacts

  • This endpoint is used to upsert contacts of a resource

Endpoint

POST /v1/resource/:resource_id/contact

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of contacts to upsert. Each contact can be either a new contact or an update to an existing contact.

Contact Fields
FieldTypeRequiredDescription
idstringNoUUID of the contact (required for updates)
contact_typestringYesType of contact (e.g., "phone", "email")
valuestringYesContact value (e.g., phone number, email)
  • If id is provided, the contact with that ID will be updated
  • If id is not provided, a new contact will be created
  • Contacts without id will be treated as new contacts and created
  • Contacts with existing id will be updated
Example Request
[
{
"id": "7a52282f-431d-44dc-971d-399ac335b436",
"contact_type": "phone",
"value": "+987654321"
},
{
"contact_type": "email",
"value": "example@gmail.com"
}
]

Response

Error Responses
Status CodeDescription
400Bad Request - Invalid input parameters
404Not Found - Resource not found
500Internal Server Error

2. Get contacts

  • This endpoint is used to get contacts of a resource

Endpoint

GET /v1/resource/:resource_id/contact

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Response

Response Fields
FieldTypeDescription
dataarrayArray of contacts
data[].idstringUUID of the contact
data[].contact_typestringType of contact (e.g., "phone", "email")
data[].valuestringContact value (e.g., phone number, email)
data[].resource_idstringUUID of the associated resource
data[].created_atstringCreation timestamp (ISO 8601)
data[].updated_atstringLast update timestamp (ISO 8601)
sent_atstringResponse timestamp (ISO 8601)
Error Responses
Status CodeDescription
400Bad Request - Invalid resource ID
500Internal Server Error

3. Delete contacts

  • This endpoint is used to delete contacts of a resource

Endpoint

DELETE /v1/resource/:resource_id/contact

Request

Authentication

  • Type: Bearer Token
  • Header: Authorization: Bearer <token>

Request Headers

HeaderValueDescription
Content-Typeapplication/jsonSpecifies the request format
AuthorizationBearer tokenAuthentication token

Request Body

Array of contact IDs to delete.

Example Request
[
"79063fe0-b9ec-47e5-851f-c3da9da198e0"
]