IT Project Management APIs
This article describes the ReST APIs available in the IT Project Management (ITPM) module. Integration developers can use these APIs to integrate Serviceaide Intelligent Service Management with external applications.
You use the APIs to execute the following actions within Intelligent Service Management through an external application:
- Query the ITPM module for a list of projects and tasks that are related to a specific project.
- Mark projects as favorite.
- Create a project and tasks within that project from an external system.
- Update project properties and add team members.
- Update project tasks to assign owners, close the task, and modify estimates and time spent.
- Block or unblock tasks.
- Delete projects or the tasks within a project.
- Create and modify lanes on the task board.
Each API consists of the following structure:
- URL: The application URL specific to your slice
- Header: The basic identifiers for your slice and logged in user
- Payload: The script for executing an action
You can substitute the variables in this script with actual values while executing the API. For some APIs, you do not need a payload. You can directly send the values in the URL field for such APIs.
Note: All date values are UTC Milliseconds.
The header for each API call requires (mandatory) headers. The following table describes the mandatory headers and their corresponding values:
Header | Value | Mandatory for |
---|---|---|
Cookie | Valid CSM Session | All API calls |
Content-type | application/json | POST, PUT |
Accept | application/json | POST.PUT, DELETE, GET |
The ITPM module includes the following APIs:
Project APIs
You can use the following APIs to execute actions on a project. While you are working with an existing project, include the project ID in the URL as follows:
http://<application URL>/itpm/Project('project ID')
Get by Id
Retrieve a project using a project ID.
URL
http://<application URL>/itpm/Project('project ID')
Payload
NA
Method
GET
Response
NA
Create
Create a project.
URL
http://<application URL>/itpm/Project
Payload
{ "projectName": "Project Name", "description": "Project Description", "startDate": 0, "endDate": 1, "plannedCost": 1000, "actualCost": 1000 }
Method
POST
Response
NA
Update
Update a project.
URL
http://<application URL>/itpm/Project('project ID')
Payload
{ "projectName": "Project Name updated" }
Method
POST
Response
NA
Deactivate
Deactivate a project.
URL
http://<application URL>/itpm/Project('project ID')
Payload
NA
Method
DELETE
Response
NA
Get All
Retrieve a list of all projects that you own.
URL
http://<application URL>/itpm/Project
Payload
NA
Method
GET
Response
NA
Mark or Unmark as Favorite
Mark a project as your favorite.
URL
http://<application URL>/itpm/Project('project ID')
Payload
{ "favorite": true }
Method
POST
Response
NA
Change Project Owner
Change the owner of a project.
URL
http://<application URL>/itpm/Project('project ID')/$links/ownedBy
Payload
{ "url": "/itpm/Contact(1)" }
Method
PUT
Response
NA
Change Project Organization
NA
Allocation APIs
Use these APIs to assign members to a project.
Allocate User
Assign a user to a project.
URL
http://<application URL>/itpm/Allocation?$expand=project, user
Payload
{ "project": { "__metadata": { "uri": "/itpm/Project('831ab858-4ae3-4a01-b151-5dba7b3a6445')", "type": "odata.Project" } }, "user": { "__metadata": { "uri": "/itpm/User(1)", "type": "odata.User" } } }
Method
POST
Response
NA
Deallocate User
Remove a user from the project membership.
URL
http://<application url>/itpm/Allocation('allocation ID')
Payload
NA
Method
DELETE
Response
NA
Change Allocation
Remove or provide the Edit permissions to a user.
URL
http://<application url>/itpm/Allocation('allocation ID')
Payload
{ "editPermission": true }
Method
POST
Response
NA
Get Allocations
Retrieve the list of the members of a project.
URL
http://<application URL>/itpm/Project('project ID')/allocations
Payload
NA
Method
GET
Response
NA
Lane APIs
Use these APIs to create and modify the lanes on a project taskboard.
Add Lane
Create a lane on the taskboard.
URL
http://<application URL>/itpm/Lane
Payload
{ "name": "name of the lane", "position": 1000, "project": { "__metadata": { "uri": "/itpm/Project('project ID')", "type": "odata.Project" } } }
Method
POST
Response
NA
Update Lane
Modify a lane on the taskboard.
URL
http://<application URL>/itpm/Lane('project ID')
Payload
{ "name": "name of the lane" }
Method
POST
Response
NA
Delete Lane
Remove a lane from the taskborad of a project.
URL
http://<application URL>/itpm/Lane('Lane ID')
Payload
NA
Method
DELETE
Response
NA
Get Lanes
Retrieve the list of all lanes in a project taskboard.
URL
http://<application URL>/itpm/Project('project ID')/lanes
Payload
NA
Method
GET
Response
NA
Task APIs
Use these APIs to create and modify tasks within a project.
Create
Create a task.
URL
http://<application URL>/itpm/Task
Payload
{ "taskName": "name of the task", "position": 2232, "description": "test", "dueDate": 12, "priority": "CRITICAL", "lane": { "__metadata": { "uri": "/itpm/Lane('Lane ID') "type": "odata.Lane" } }, "taskType": "TASK" }
Method
POST
Response
NA
Get All Tasks by Project
Retrieve all the tasks in a project.
URL
http://<application URL>/itpm/Project('project ID')/tasks?$filter=
Payload
NA
Method
GET
Response
NA
Get All Tasks by Lane
Retrieve all the tasks in a particular lane.
URL
http://<application URL>/itpm/Lane('lane ID')/tasks
Payload
NA
Method
GET
Response
NA
Delete Task
Remove a task from the project.
URL
http://<application URL>/itpm/Task('task ID')
Payload
NA
Method
DELETE
Response
NA
Update
Modify a task.
URL
http://localhost:9000/itpm/Task('task ID')
Payload
{ "taskName": "task name", "position": 22, "description": "test", "dueDate": 12, "priority": "HIGH", "lane": { "__metadata": { "uri": "/itpm/Lane('5757f538-4cbe-44c3-96de-eba243467ad5')", "type": "odata.Lane" } } }
Method
POST
Response
NA
Task Checklist APIs
You can create checklist items for a task.
Create Checklist
URL
http://<application URL>/itpm/CheckListItem
Method
POST
Payload
{ "description":"Item 1 to be finished", "position":2232, "done":false, "task":{ "__metadata":{ "uri":"/itpm/Task('6e87bc52-0aad-4faa-b633-cec827858c04')", "type":"odata.Task" } } }
Response
NA
Update Checklist
URL
http://<application URL>/itpm/CheckListItem('checklistItemId')
Method
POST
Payload
{ "description":"Item 1 to be finished updated", "position":2236, "done":true, "task":{ "__metadata":{ "uri":"/itpm/Task('6e87bc52-0aad-4faa-b633-cec827858c04')", "type":"odata.Task" } } }
Response
NA
Get All Checklist Items
URL
http://<application URL>/itpm/Task('taskId')
Method
GET
Response
NA
Get All Completed Checklist Items of a Task
URL
http://<application URL>/itpm/Task('taskId')/checklistItems?$filter=done eq true
Method
GET
Response
NA
Delete Checklist
URL
http://<application URL>/itpm/CheckListItem('checkListItemId')
Method
DELETE
Response
NA
Delete All
URL
http://<application URL>/itpm/Task('taskId')/$links/checklistItems
Method
DELETE
Response
NA
Ticket APIs
You can import multiple tickets.
URL
http://<application URL>/ImportTickets?$expand=importResults/task/ticket
Method
POST
Payload
{ "lane":{ "__metadata":{ "uri":"/itpm/Lane('872586ad-b903-466e-a498-dc5b73a4f91e')", "type":"odata.Lane" } }, "ticketIds":[7,8,9] }
Response
NA
Login Authorization API
The following API allows you to authenticate a user in the application based on a username and password.
URL
http:/<context_url>/odata/login?$format=JSON
Method
POST
Headers
application/x-www-form-urlencoded
Form Parameters
Username: <user_login>
Password: <password>
Response
The response contains the following parameters in JSON format.
- Status
- primary_org_logo_idb
- external_slice
- external_user_id
- maintenance_notice
Note: The response also contains the cookie, " LOTUSSESSION="1389265934:080c19ee-e95c-4dce-bfda-09d2ff4dd87d:abb769cf-b153-4052-aa0c-b807434e3191:1945ad38cf8891e3cec4e9d6e33267b417a6c2cb"; Version=1; Path=/"
© 2019 Serviceaide 1-650-206-8988 http://www.serviceaide.com info@serviceaide.com