# APIs Required for Each Feature

> **Note**: The mandatory APIs are required to integrate any system through SDK.

| Feature                            | APIs to be Implemented                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Basic Entity Sync                  | <p><strong>Entity APIs:</strong><br>\* Get<br>\* Create<br>\* Update<br>\* List</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Soft-Delete                        | <p><strong>Entity APIs:</strong><br>\* Soft-Delete</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Comment                            | <p><strong>Comment APIs:</strong><br>\* Add<br>\* Get<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for comments</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Attachment                         | <p><strong>Attachment APIs:</strong><br>\* Get<br>\* Create<br>\* Update<br>\* Delete<br><br>Entity Get and List APIs should also provide attachments<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for attachments</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Link                               | <p><strong>Link APIs:</strong><br>\* Create or Update<br>\* Delete<br><br>Entity Get and List APIs should also provide links<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for links</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| History                            | <p><strong>History APIs:</strong><br>\* List<br>\* Attachment<br>\* Comment<br>\* Link<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for history</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| User Mention                       | <p><strong>User APIs:</strong><br>\* List<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for userMention</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Inline Files / Images              | <p><strong>Attachment APIs:</strong><br>\* Get<br>\* Create<br>\* Update<br>\* Delete<br>\* File Name - Get<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for inlineFiles</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Remote Entity Link                 | <p><strong>Entity Type Get API:</strong><br>\* Provide metadata for entityWebUrl</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Comment with Attachment            | All the Comment and Attachment APIs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Link with Comment                  | <p>All the link APIs<br><br><strong>Entity Type Get API:</strong><br>\* Provide link comment field name in link field name info.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Criteria                           | <p><strong>Entity Type Get API:</strong><br>\* Provide details in searchEntityInfo</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Target lookup                      | <p><strong>Entity Type Get API:</strong><br>\* Provide details in searchEntityInfo</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Recovery                           | <p><strong>Entity Type Get API:</strong><br>\* Provide metadata for Recovery</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Workflow Transition                | <p>User need to configure workflow XML from mapping screen.<br><br>Depending on the workflow XML, OpsHub will calculate the path from one state to another and call the update API accordingly.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Comment Author Impersonation       | <p>Comments feature should be supported.<br><br><strong>Entity Type Get API:</strong><br>\* Provide metadata for createdUpdatedByFieldDataType</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Reference Field Synchronization    | <p>Reference entity type metadata should be provided.<br><br><strong>Entity Type Get API:</strong><br>\* In fields, provide input for referenceFieldMetadata<br>\* In fieldNameInfo, provide input for entityNameFieldName</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Entity Type and Project Movement   | <p><strong>Entity Types List API:</strong><br>\* Provide metadata for belongsToCategories and projectMovementSupported.<br><br><strong>Entity Type Get API:</strong><br>\* Provide the fields updateStepNumber for entityTypeFieldName and projectIdFieldName as "-3" and "-2" respectively if the end system has different API for the update of the entityType and project. Provide updateStepNumber as "-6" for both the fields if the end system has same API for update of entityType and project.<br><br>By default, if no updateStepNumber for entityTypeFieldName and projectIdFieldName is given, it will be treated as having different API for entityType and project change.<br><br><strong>Entity Get API:</strong><br>\* If entityTypeId or projectId is passed as "null", the API should return field values for the given entityId by searching it across the given scope without having the filtering on entityTypeId, projectId or both, depending on which one is "null".<br><br><strong>Entity-Update API:</strong><br>\* Handle the update for entityType and project in case the updateSubStepNumber received is either of "-2","-3" or "-6", depending on the fields metadata given in the Entity-Get fields metadata for entityTypeIdFieldName and projectIdFieldName.</p> |
| Get Entity Revisions using Utility | <p><strong>History – List API:</strong><br>\* Get history filtered for a specific entity.<br><br><strong>Getting history description instead of old and new values:</strong><br>\* If an end system returns complex history data and parsing the old and new field values is not feasible, the full history description can be returned instead. For more details, refer to the <a href="../../sdk-connector-apis/history-list#response-body">History – List API</a>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
