## Using this Adapter

The `adapter.js` file contains the calls the adapter makes available to the rest of the Itential Platform. The API detailed for these calls should be available through JSDOC. The following is a brief summary of the calls.

### Generic Adapter Calls

These are adapter methods that IAP or you might use. There are some other methods not shown here that might be used for internal adapter functionality.

<table border="1" class="bordered-table">
  <tr>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
  </tr>
  <tr>
    <td style="padding:15px">connect()</td>
    <td style="padding:15px">This call is run when the Adapter is first loaded by he Itential Platform. It validates the properties have been provided correctly.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">healthCheck(callback)</td>
    <td style="padding:15px">This call ensures that the adapter can communicate with Confluence_cloud. The actual call that is used is defined in the adapter properties and .system entities action.json file.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">refreshProperties(properties)</td>
    <td style="padding:15px">This call provides the adapter the ability to accept property changes without having to restart the adapter.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">encryptProperty(property, technique, callback)</td>
    <td style="padding:15px">This call will take the provided property and technique, and return the property encrypted with the technique. This allows the property to be used in the adapterProps section for the credential password so that the password does not have to be in clear text. The adapter will decrypt the property as needed for communications with Confluence_cloud.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, callback)</td>
    <td style="padding:15px">This call provides the ability to update the adapter configuration from IAP - includes actions, schema, mockdata and other configurations.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapFindAdapterPath(apiPath, callback)</td>
    <td style="padding:15px">This call provides the ability to see if a particular API path is supported by the adapter.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapSuspendAdapter(mode, callback)</td>
    <td style="padding:15px">This call provides the ability to suspend the adapter and either have requests rejected or put into a queue to be processed after the adapter is resumed.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapUnsuspendAdapter(callback)</td>
    <td style="padding:15px">This call provides the ability to resume a suspended adapter. Any requests in queue will be processed before new requests.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapGetAdapterQueue(callback)</td>
    <td style="padding:15px">This call will return the requests that are waiting in the queue if throttling is enabled.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapTroubleshootAdapter(props, persistFlag, adapter, callback)</td>
    <td style="padding:15px">This call can be used to check on the performance of the adapter - it checks connectivity, healthcheck and basic get calls.</td>
    <td style="padding:15px">Yes</td>
  </tr>

  <tr>
    <td style="padding:15px">iapRunAdapterHealthcheck(adapter, callback)</td>
    <td style="padding:15px">This call will return the results of a healthcheck.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapRunAdapterConnectivity(callback)</td>
    <td style="padding:15px">This call will return the results of a connectivity check.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapRunAdapterBasicGet(callback)</td>
    <td style="padding:15px">This call will return the results of running basic get API calls.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapMoveAdapterEntitiesToDB(callback)</td>
    <td style="padding:15px">This call will push the adapter configuration from the entities directory into the Adapter or IAP Database.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">genericAdapterRequest(uriPath, restMethod, queryData, requestBody, addlHeaders, callback)</td>
    <td style="padding:15px">This call allows you to provide the path to have the adapter call. It is an easy way to incorporate paths that have not been built into the adapter yet.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">genericAdapterRequestNoBasePath(uriPath, restMethod, queryData, requestBody, addlHeaders, callback)</td>
    <td style="padding:15px">This call is the same as the genericAdapterRequest only it does not add a base_path or version to the call.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapHasAdapterEntity(entityType, entityId, callback)</td>
    <td style="padding:15px">This call verifies the adapter has the specific entity.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">iapVerifyAdapterCapability(entityType, actionType, entityId, callback)</td>
    <td style="padding:15px">This call verifies the adapter can perform the provided action on the specific entity.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">iapUpdateAdapterEntityCache()</td>
    <td style="padding:15px">This call will update the entity cache.</td>
    <td style="padding:15px">No</td>
  </tr>
</table>
<br>

### Adapter Broker Calls

These are adapter methods that are used to integrate to IAP Brokers. This adapter currently supports the following broker calls.

<table border="1" class="bordered-table">
  <tr>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
  </tr>
  <tr>
    <td style="padding:15px">hasEntities(entityType, entityList, callback)</td>
    <td style="padding:15px">This call is utilized by the IAP Device Broker to determine if the adapter has a specific entity and item of the entity.</td>
    <td style="padding:15px">No</td>
  </tr>
  <tr>
    <td style="padding:15px">getDevice(deviceName, callback)</td>
    <td style="padding:15px">This call returns the details of the requested device.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getDevicesFiltered(options, callback)</td>
    <td style="padding:15px">This call returns the list of devices that match the criteria provided in the options filter.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">isAlive(deviceName, callback)</td>
    <td style="padding:15px">This call returns whether the device status is active</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getConfig(deviceName, format, callback)</td>
    <td style="padding:15px">This call returns the configuration for the selected device.</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">iapGetDeviceCount(callback)</td>
    <td style="padding:15px">This call returns the count of devices.</td>
    <td style="padding:15px">Yes</td>
  </tr>
</table>
<br>


### Specific Adapter Calls

Specific adapter calls are built based on the API of the Confluence_cloud. The Adapter Builder creates the proper method comments for generating JS-DOC for the adapter. This is the best way to get information on the calls.

<table border="1" class="bordered-table">
  <tr>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Path</span></th>
    <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
  </tr>
  <tr>
    <td style="padding:15px">getAuditRecords(startDate, endDate, searchString, start, limit, callback)</td>
    <td style="padding:15px">Get audit records</td>
    <td style="padding:15px">{base_path}/{version}/audit?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createAuditRecord(body, callback)</td>
    <td style="padding:15px">Create audit record</td>
    <td style="padding:15px">{base_path}/{version}/audit?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">exportAuditRecords(startDate, endDate, searchString, format = 'csv', callback)</td>
    <td style="padding:15px">Export audit records</td>
    <td style="padding:15px">{base_path}/{version}/audit/export?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getRetentionPeriod(callback)</td>
    <td style="padding:15px">Get retention period</td>
    <td style="padding:15px">{base_path}/{version}/audit/retention?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">setRetentionPeriod(body, callback)</td>
    <td style="padding:15px">Set retention period</td>
    <td style="padding:15px">{base_path}/{version}/audit/retention?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAuditRecordsForTimePeriod(number, units = 'NANOS', searchString, start, limit, callback)</td>
    <td style="padding:15px">Get audit records for time period</td>
    <td style="padding:15px">{base_path}/{version}/audit/since?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContent(type, spaceKey, title, status = 'current', postingDay, expand, trigger = 'viewed', orderby, start, limit, callback)</td>
    <td style="padding:15px">Get content</td>
    <td style="padding:15px">{base_path}/{version}/content?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createContent(status, expand, body, callback)</td>
    <td style="padding:15px">Create content</td>
    <td style="padding:15px">{base_path}/{version}/content?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">archivePages(body, callback)</td>
    <td style="padding:15px">Archive pages</td>
    <td style="padding:15px">{base_path}/{version}/content/archive?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">publishSharedDraft(draftId, status, expand, body, callback)</td>
    <td style="padding:15px">Publish shared draft</td>
    <td style="padding:15px">{base_path}/{version}/content/blueprint/instance/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">publishLegacyDraft(draftId, status, expand, body, callback)</td>
    <td style="padding:15px">Publish legacy draft</td>
    <td style="padding:15px">{base_path}/{version}/content/blueprint/instance/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">searchContentByCQL(cql, cqlcontext, expand, cursor, limit, callback)</td>
    <td style="padding:15px">Search content by CQL</td>
    <td style="padding:15px">{base_path}/{version}/content/search?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentById(id, status = 'current', version, embeddedContentRender = 'current', expand, trigger = 'viewed', callback)</td>
    <td style="padding:15px">Get content by ID</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateContent(id, status = 'current', conflictPolicy = 'abort', body, callback)</td>
    <td style="padding:15px">Update content</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteContent(id, status, callback)</td>
    <td style="padding:15px">Delete content</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getHistoryForContent(id, expand, callback)</td>
    <td style="padding:15px">Get content history</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/history?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deletePageTree(id, callback)</td>
    <td style="padding:15px">Delete page tree</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/pageTree?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getLabelsForSpace(spaceKey, prefix = 'global', start, limit, callback)</td>
    <td style="padding:15px">Get Space Labels</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addLabelsToSpace(spaceKey, body, callback)</td>
    <td style="padding:15px">Add labels to a space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteLabelFromSpace(spaceKey, name, prefix, callback)</td>
    <td style="padding:15px">Remove label from a space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentChildren(id, expand, parentVersion, callback)</td>
    <td style="padding:15px">Get content children</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">movePage(pageId, position = 'before', targetId, callback)</td>
    <td style="padding:15px">Move a page to a new location relative to a target page</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/move/{pathv2}/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentChildrenByType(id, type, expand, parentVersion, start, limit, callback)</td>
    <td style="padding:15px">Get content children by type</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentDescendants(id, expand, callback)</td>
    <td style="padding:15px">Get content descendants</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/descendant?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getDescendantsOfType(id, type = 'page', depth = 'all', expand, start, limit, callback)</td>
    <td style="padding:15px">Get content descendants by type</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/descendant/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">copyPageHierarchy(id, body, callback)</td>
    <td style="padding:15px">Copy page hierarchy</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/pagehierarchy/copy?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">copyPage(id, expand, body, callback)</td>
    <td style="padding:15px">Copy single page</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/copy?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAttachments(id, expand, start, limit, filename, mediaType, callback)</td>
    <td style="padding:15px">Get attachments</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createOrUpdateAttachments(id, status = 'current', bodyFormData, callback)</td>
    <td style="padding:15px">Create or update attachment</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createAttachment(id, status = 'current', bodyFormData, callback)</td>
    <td style="padding:15px">Create attachment</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateAttachmentProperties(id, attachmentId, body, callback)</td>
    <td style="padding:15px">Update attachment properties</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateAttachmentData(id, attachmentId, bodyFormData, callback)</td>
    <td style="padding:15px">Update attachment data</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment/{pathv2}/data?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">downloadAttatchment(id, attachmentId, version, callback)</td>
    <td style="padding:15px">Get URI to download attachment</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/attachment/{pathv2}/download?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentComments(id, expand, parentVersion, start, limit, location = 'inline', depth, callback)</td>
    <td style="padding:15px">Get content comments</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/child/comment?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getMacroBodyByMacroId(id, version, macroId, callback)</td>
    <td style="padding:15px">Get macro body by macro ID</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/history/{pathv2}/macro/id/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAndConvertMacroBodyByMacroId(id, version, macroId, to, expand, spaceKeyContext, embeddedContentRender = 'current', callback)</td>
    <td style="padding:15px">Get macro body by macro ID and convert the representation synchronously</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/history/{pathv2}/macro/id/{pathv3}/convert/{pathv4}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAndAsyncConvertMacroBodyByMacroId(id, version, macroId, to = 'export_view', expand, allowCache, spaceKeyContext, embeddedContentRender = 'current', callback)</td>
    <td style="padding:15px">Get macro body by macro ID and convert representation Asynchronously</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/history/{pathv2}/macro/id/{pathv3}/convert/async/{pathv4}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getLabelsForContent(id, prefix = 'global', start, limit, callback)</td>
    <td style="padding:15px">Get labels for content</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addLabelsToContent(id, body, callback)</td>
    <td style="padding:15px">Add labels to content</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeLabelFromContentUsingQueryParameter(id, name, callback)</td>
    <td style="padding:15px">Remove label from content using query parameter</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeLabelFromContent(id, label, callback)</td>
    <td style="padding:15px">Remove label from content</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/label/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getWatchesForPage(id, start, limit, callback)</td>
    <td style="padding:15px">Get watches for page</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/notification/child-created?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getWatchesForSpace(id, start, limit, callback)</td>
    <td style="padding:15px">Get watches for space</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/notification/created?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getWatchersForSpace(spaceKey, start, limit, callback)</td>
    <td style="padding:15px">Get space watchers</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/watch?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentWatchStatus(contentId, key, username, accountId, callback)</td>
    <td style="padding:15px">Get content watch status</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addContentWatcher(contentId, key, username, accountId, callback)</td>
    <td style="padding:15px">Add content watcher</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeContentWatcher(contentId, key, username, accountId, callback)</td>
    <td style="padding:15px">Remove content watcher</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/content/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">isWatchingLabel(labelName, key, username, accountId, callback)</td>
    <td style="padding:15px">Get label watch status</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/label/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addLabelWatcher(labelName, key, username, accountId, callback)</td>
    <td style="padding:15px">Add label watcher</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/label/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeLabelWatcher(labelName, key, username, accountId, callback)</td>
    <td style="padding:15px">Remove label watcher</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/label/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">isWatchingSpace(spaceKey, key, username, accountId, callback)</td>
    <td style="padding:15px">Get space watch status</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addSpaceWatcher(spaceKey, key, username, accountId, callback)</td>
    <td style="padding:15px">Add space watcher</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeSpaceWatch(spaceKey, key, username, accountId, callback)</td>
    <td style="padding:15px">Remove space watch</td>
    <td style="padding:15px">{base_path}/{version}/user/watch/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">checkContentPermission(id, body, callback)</td>
    <td style="padding:15px">Check content permissions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/permission/check?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentProperties(id, key, expand, start, limit, callback)</td>
    <td style="padding:15px">Get content properties</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createContentProperty(id, body, callback)</td>
    <td style="padding:15px">Create content property</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentProperty(id, key, expand, status = 'any', callback)</td>
    <td style="padding:15px">Get content property</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateContentProperty(id, key, body, callback)</td>
    <td style="padding:15px">Update content property</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createContentPropertyForKey(id, key, body, callback)</td>
    <td style="padding:15px">Create content property for key</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteContentProperty(id, key, callback)</td>
    <td style="padding:15px">Delete content property</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getRestrictions(id, expand, start, limit, callback)</td>
    <td style="padding:15px">Get restrictions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateRestrictions(id, expand, body, callback)</td>
    <td style="padding:15px">Update restrictions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addRestrictions(id, expand, body, callback)</td>
    <td style="padding:15px">Add restrictions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteRestrictions(id, expand, callback)</td>
    <td style="padding:15px">Delete restrictions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getRestrictionsByOperation(id, expand, callback)</td>
    <td style="padding:15px">Get restrictions by operation</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getRestrictionsForOperation(id, operationKey = 'read', expand, start, limit, callback)</td>
    <td style="padding:15px">Get restrictions for operation</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentRestrictionStatusForGroup(id, operationKey = 'read', groupName, callback)</td>
    <td style="padding:15px">Get content restriction status for group</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/group/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addGroupToContentRestriction(id, operationKey = 'read', groupName, callback)</td>
    <td style="padding:15px">Add group to content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/group/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeGroupFromContentRestrictionById(id, operationKey = 'read', groupName, callback)</td>
    <td style="padding:15px">Remove group from content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/group/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getIndividualGroupRestrictionStatusByGroupId(id, operationKey = 'read', groupId, callback)</td>
    <td style="padding:15px">Get content restriction status for group</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/byGroupId/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addGroupToContentRestrictionByGroupId(id, operationKey = 'read', groupId, callback)</td>
    <td style="padding:15px">Add group to content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/byGroupId/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeGroupFromContentRestriction(id, operationKey = 'read', groupId, callback)</td>
    <td style="padding:15px">Remove group from content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/byGroupId/{pathv3}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentRestrictionStatusForUser(id, operationKey, key, username, accountId, callback)</td>
    <td style="padding:15px">Get content restriction status for user</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addUserToContentRestriction(id, operationKey, key, username, accountId, callback)</td>
    <td style="padding:15px">Add user to content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeUserFromContentRestriction(id, operationKey = 'read', key, username, accountId, callback)</td>
    <td style="padding:15px">Remove user from content restriction</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/restriction/byOperation/{pathv2}/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentState(id, status = 'current', callback)</td>
    <td style="padding:15px">Get content state</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/state?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">setContentState(id, status = 'current', body, callback)</td>
    <td style="padding:15px">Set the content state of a content and publishes a new version of the content.</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/state?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeContentState(id, status = 'current', callback)</td>
    <td style="padding:15px">Removes the content state of a content and publishes a new version.</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/state?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAvailableContentStates(id, callback)</td>
    <td style="padding:15px">Gets available content states for content.</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/state/available?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">bulkSetContentStates(status = 'current', body, callback)</td>
    <td style="padding:15px">Bulk set content state of many contents</td>
    <td style="padding:15px">{base_path}/{version}/content-states?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getCustomContentStates(callback)</td>
    <td style="padding:15px">Get Custom Content States</td>
    <td style="padding:15px">{base_path}/{version}/content-states?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">bulkRemoveContentStates(status = 'current', body, callback)</td>
    <td style="padding:15px">Bulk remove content states from content</td>
    <td style="padding:15px">{base_path}/{version}/content-states/delete?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getTaskUpdate(taskId, callback)</td>
    <td style="padding:15px">Get update on long running task for setting of content state.</td>
    <td style="padding:15px">{base_path}/{version}/content-states/task/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaceContentStates(spaceKey, callback)</td>
    <td style="padding:15px">Get space suggested content states</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/state?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentStateSettings(spaceKey, callback)</td>
    <td style="padding:15px">Get content state settings for space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/state/settings?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentsWithState(spaceKey, stateId, expand, limit, start, callback)</td>
    <td style="padding:15px">Get content in space with given content state</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/state/content?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentVersions(id, start, limit, expand, callback)</td>
    <td style="padding:15px">Get content versions</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/version?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">restoreContentVersion(id, expand, body, callback)</td>
    <td style="padding:15px">Restore content version</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/version?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentVersion(id, versionNumber, expand, callback)</td>
    <td style="padding:15px">Get content version</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/version/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteContentVersion(id, versionNumber, callback)</td>
    <td style="padding:15px">Delete content version</td>
    <td style="padding:15px">{base_path}/{version}/content/{pathv1}/version/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">convertContentBody(to, spaceKeyContext, contentIdContext, embeddedContentRender = 'current', expand, body, callback)</td>
    <td style="padding:15px">Convert content body</td>
    <td style="padding:15px">{base_path}/{version}/contentbody/convert/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">asyncConvertContentBodyRequest(to = 'export_view', expand, spaceKeyContext, contentIdContext, allowCache, embeddedContentRender = 'current', body, callback)</td>
    <td style="padding:15px">Asynchronously convert content body</td>
    <td style="padding:15px">{base_path}/{version}/contentbody/convert/async/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">asyncConvertContentBodyResponse(id, callback)</td>
    <td style="padding:15px">Get asynchronously converted content body from the id or the current status of the task.</td>
    <td style="padding:15px">{base_path}/{version}/contentbody/convert/async/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">searchTasks(start, limit, spaceKey, pageId, assignee, creator, completedUser, duedateFrom, duedateTo, createdateFrom, createdateTo, completedateFrom, completedateTo, status = 'complete', callback)</td>
    <td style="padding:15px">Get inline tasks based on search parameters</td>
    <td style="padding:15px">{base_path}/{version}/inlinetasks/search?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getTaskById(inlineTaskId, callback)</td>
    <td style="padding:15px">Get inline task based on global ID</td>
    <td style="padding:15px">{base_path}/{version}/inlinetasks/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateTaskById(inlineTaskId, body, callback)</td>
    <td style="padding:15px">Update inline task given global ID</td>
    <td style="padding:15px">{base_path}/{version}/inlinetasks/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAllLabelContent(name, type = 'page', start, limit, callback)</td>
    <td style="padding:15px">Get label information</td>
    <td style="padding:15px">{base_path}/{version}/label?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroups(start, limit, accessType = 'user', callback)</td>
    <td style="padding:15px">Get groups</td>
    <td style="padding:15px">{base_path}/{version}/group?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createGroup(body, callback)</td>
    <td style="padding:15px">Create new user group</td>
    <td style="padding:15px">{base_path}/{version}/group?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeGroup(name, callback)</td>
    <td style="padding:15px">Delete user group</td>
    <td style="padding:15px">{base_path}/{version}/group?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupByQueryParam(name, callback)</td>
    <td style="padding:15px">Get group</td>
    <td style="padding:15px">{base_path}/{version}/group/by-name?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupByGroupId(id, callback)</td>
    <td style="padding:15px">Get group</td>
    <td style="padding:15px">{base_path}/{version}/group/by-id?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeGroupById(id, callback)</td>
    <td style="padding:15px">Delete user group</td>
    <td style="padding:15px">{base_path}/{version}/group/by-id?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupByName(groupName, callback)</td>
    <td style="padding:15px">Get group</td>
    <td style="padding:15px">{base_path}/{version}/group/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getMembersByQueryParam(name, start, limit, shouldReturnTotalSize, callback)</td>
    <td style="padding:15px">Get group members</td>
    <td style="padding:15px">{base_path}/{version}/group/member?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupMembers(groupName, start, limit, callback)</td>
    <td style="padding:15px">Get group members</td>
    <td style="padding:15px">{base_path}/{version}/group/{pathv1}/member?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">searchGroups(query, start, limit, shouldReturnTotalSize, callback)</td>
    <td style="padding:15px">Search groups by partial query</td>
    <td style="padding:15px">{base_path}/{version}/group/picker?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addUserToGroupByGroupId(groupId, body, callback)</td>
    <td style="padding:15px">Add member to group by groupId</td>
    <td style="padding:15px">{base_path}/{version}/group/userByGroupId?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeMemberFromGroupByGroupId(groupId, key, username, accountId, callback)</td>
    <td style="padding:15px">Remove member from group using group id</td>
    <td style="padding:15px">{base_path}/{version}/group/userByGroupId?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupMembersByGroupId(groupId, start, limit, shouldReturnTotalSize, callback)</td>
    <td style="padding:15px">Get group members</td>
    <td style="padding:15px">{base_path}/{version}/group/{pathv1}/membersByGroupId?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addUserToGroup(name, body, callback)</td>
    <td style="padding:15px">Add member to group</td>
    <td style="padding:15px">{base_path}/{version}/group/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeMemberFromGroup(name, key, username, accountId, callback)</td>
    <td style="padding:15px">Remove member from group</td>
    <td style="padding:15px">{base_path}/{version}/group/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getTasks(start, limit, callback)</td>
    <td style="padding:15px">Get long-running tasks</td>
    <td style="padding:15px">{base_path}/{version}/longtask?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getTask(id, callback)</td>
    <td style="padding:15px">Get long-running task</td>
    <td style="padding:15px">{base_path}/{version}/longtask/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">findTargetFromSource(relationName, sourceType = 'user', sourceKey, targetType = 'user', sourceStatus, targetStatus, sourceVersion, targetVersion, expand, start, limit, callback)</td>
    <td style="padding:15px">Find target entities related to a source entity</td>
    <td style="padding:15px">{base_path}/{version}/relation/{pathv1}/from/{pathv2}/{pathv3}/to/{pathv4}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getRelationship(relationName, sourceType = 'user', sourceKey, targetType = 'user', targetKey, sourceStatus, targetStatus, sourceVersion, targetVersion, expand, callback)</td>
    <td style="padding:15px">Find relationship from source to target</td>
    <td style="padding:15px">{base_path}/{version}/relation/{pathv1}/from/{pathv2}/{pathv3}/to/{pathv4}/{pathv5}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createRelationship(relationName, sourceType = 'user', sourceKey, targetType = 'user', targetKey, sourceStatus, targetStatus, sourceVersion, targetVersion, callback)</td>
    <td style="padding:15px">Create relationship</td>
    <td style="padding:15px">{base_path}/{version}/relation/{pathv1}/from/{pathv2}/{pathv3}/to/{pathv4}/{pathv5}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteRelationship(relationName, sourceType = 'user', sourceKey, targetType = 'user', targetKey, sourceStatus, targetStatus, sourceVersion, targetVersion, callback)</td>
    <td style="padding:15px">Delete relationship</td>
    <td style="padding:15px">{base_path}/{version}/relation/{pathv1}/from/{pathv2}/{pathv3}/to/{pathv4}/{pathv5}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">findSourcesForTarget(relationName, sourceType = 'user', targetType = 'user', targetKey, sourceStatus, targetStatus, sourceVersion, targetVersion, expand, start, limit, callback)</td>
    <td style="padding:15px">Find source entities related to a target entity</td>
    <td style="padding:15px">{base_path}/{version}/relation/{pathv1}/to/{pathv2}/{pathv3}/from/{pathv4}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">searchByCQL(cql, cqlcontext, cursor, next, prev, limit, start, includeArchivedSpaces, excludeCurrentSpaces, excerpt = 'highlight', sitePermissionTypeFilter = 'all', number, expand, callback)</td>
    <td style="padding:15px">Search content</td>
    <td style="padding:15px">{base_path}/{version}/search?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">searchUser(cql, start, limit, expand, callback)</td>
    <td style="padding:15px">Search users</td>
    <td style="padding:15px">{base_path}/{version}/search/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getLookAndFeelSettings(spaceKey, callback)</td>
    <td style="padding:15px">Get look and feel settings</td>
    <td style="padding:15px">{base_path}/{version}/settings/lookandfeel?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateLookAndFeel(body, callback)</td>
    <td style="padding:15px">Select look and feel settings</td>
    <td style="padding:15px">{base_path}/{version}/settings/lookandfeel?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateLookAndFeelSettings(spaceKey, body, callback)</td>
    <td style="padding:15px">Update look and feel settings</td>
    <td style="padding:15px">{base_path}/{version}/settings/lookandfeel/custom?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">resetLookAndFeelSettings(spaceKey, callback)</td>
    <td style="padding:15px">Reset look and feel settings</td>
    <td style="padding:15px">{base_path}/{version}/settings/lookandfeel/custom?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">setLookAndFeelSettings(spaceKey, body, callback)</td>
    <td style="padding:15px">Set look and feel settings</td>
    <td style="padding:15px">{base_path}/{version}/settings/lookandfeel/selected?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSystemInfo(callback)</td>
    <td style="padding:15px">Get system info</td>
    <td style="padding:15px">{base_path}/{version}/settings/systemInfo?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getThemes(start, limit, callback)</td>
    <td style="padding:15px">Get themes</td>
    <td style="padding:15px">{base_path}/{version}/settings/theme?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGlobalTheme(callback)</td>
    <td style="padding:15px">Get global theme</td>
    <td style="padding:15px">{base_path}/{version}/settings/theme/selected?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getTheme(themeKey, callback)</td>
    <td style="padding:15px">Get theme</td>
    <td style="padding:15px">{base_path}/{version}/settings/theme/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaceTheme(spaceKey, callback)</td>
    <td style="padding:15px">Get space theme</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/theme?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">setSpaceTheme(spaceKey, body, callback)</td>
    <td style="padding:15px">Set space theme</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/theme?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">resetSpaceTheme(spaceKey, callback)</td>
    <td style="padding:15px">Reset space theme</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/theme?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaces(spaceKey, spaceId, type = 'global', status = 'current', label, favourite, favouriteUserKey, expand, start, limit, callback)</td>
    <td style="padding:15px">Get spaces</td>
    <td style="padding:15px">{base_path}/{version}/space?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createSpace(body, callback)</td>
    <td style="padding:15px">Create space</td>
    <td style="padding:15px">{base_path}/{version}/space?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createPrivateSpace(body, callback)</td>
    <td style="padding:15px">Create private space</td>
    <td style="padding:15px">{base_path}/{version}/space/_private?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpace(spaceKey, expand, callback)</td>
    <td style="padding:15px">Get space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateSpace(spaceKey, body, callback)</td>
    <td style="padding:15px">Update space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteSpace(spaceKey, callback)</td>
    <td style="padding:15px">Delete space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentForSpace(spaceKey, depth = 'all', expand, start, limit, callback)</td>
    <td style="padding:15px">Get content for space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/content?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentByTypeForSpace(spaceKey, type, depth = 'all', expand, start, limit, callback)</td>
    <td style="padding:15px">Get content by type for space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/content/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addPermissionToSpace(spaceKey, body, callback)</td>
    <td style="padding:15px">Add new permission to space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/permission?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">addCustomContentPermissions(spaceKey, body, callback)</td>
    <td style="padding:15px">Add new custom content permission to space</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/permission/custom-content?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removePermission(spaceKey, id, callback)</td>
    <td style="padding:15px">Remove a space permission</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/permission/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaceProperties(spaceKey, expand, start, limit, callback)</td>
    <td style="padding:15px">Get space properties</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createSpaceProperty(spaceKey, body, callback)</td>
    <td style="padding:15px">Create space property</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaceProperty(spaceKey, key, expand, callback)</td>
    <td style="padding:15px">Get space property</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateSpaceProperty(spaceKey, key, body, callback)</td>
    <td style="padding:15px">Update space property</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createSpacePropertyForKey(spaceKey, key, body, callback)</td>
    <td style="padding:15px">Create space property for key</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteSpaceProperty(spaceKey, key, callback)</td>
    <td style="padding:15px">Delete space property</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getSpaceSettings(spaceKey, callback)</td>
    <td style="padding:15px">Get space settings</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/settings?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateSpaceSettings(spaceKey, body, callback)</td>
    <td style="padding:15px">Update space settings</td>
    <td style="padding:15px">{base_path}/{version}/space/{pathv1}/settings?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateContentTemplate(body, callback)</td>
    <td style="padding:15px">Update content template</td>
    <td style="padding:15px">{base_path}/{version}/template?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createContentTemplate(body, callback)</td>
    <td style="padding:15px">Create content template</td>
    <td style="padding:15px">{base_path}/{version}/template?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getBlueprintTemplates(spaceKey, start, limit, expand, callback)</td>
    <td style="padding:15px">Get blueprint templates</td>
    <td style="padding:15px">{base_path}/{version}/template/blueprint?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentTemplates(spaceKey, start, limit, expand, callback)</td>
    <td style="padding:15px">Get content templates</td>
    <td style="padding:15px">{base_path}/{version}/template/page?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getContentTemplate(contentTemplateId, callback)</td>
    <td style="padding:15px">Get content template</td>
    <td style="padding:15px">{base_path}/{version}/template/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeTemplate(contentTemplateId, callback)</td>
    <td style="padding:15px">Remove template</td>
    <td style="padding:15px">{base_path}/{version}/template/{pathv1}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getUser(accountId, expand, callback)</td>
    <td style="padding:15px">Get user</td>
    <td style="padding:15px">{base_path}/{version}/user?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getAnonymousUser(expand, callback)</td>
    <td style="padding:15px">Get anonymous user</td>
    <td style="padding:15px">{base_path}/{version}/user/anonymous?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getCurrentUser(expand, callback)</td>
    <td style="padding:15px">Get current user</td>
    <td style="padding:15px">{base_path}/{version}/user/current?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getGroupMembershipsForUser(accountId, start, limit, callback)</td>
    <td style="padding:15px">Get group memberships for user</td>
    <td style="padding:15px">{base_path}/{version}/user/memberof?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getBulkUserLookup(accountId, expand, limit, callback)</td>
    <td style="padding:15px">Get multiple users using ids</td>
    <td style="padding:15px">{base_path}/{version}/user/bulk?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getPrivacyUnsafeUserEmail(accountId, callback)</td>
    <td style="padding:15px">Get user email address</td>
    <td style="padding:15px">{base_path}/{version}/user/email?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getPrivacyUnsafeUserEmailBulk(accountId, callback)</td>
    <td style="padding:15px">Get user email addresses in batch</td>
    <td style="padding:15px">{base_path}/{version}/user/email/bulk?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getModules(callback)</td>
    <td style="padding:15px">Get modules</td>
    <td style="padding:15px">{base_path}/{version}/atlassian-connect/1/app/module/dynamic?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">registerModules(body, callback)</td>
    <td style="padding:15px">Register modules</td>
    <td style="padding:15px">{base_path}/{version}/atlassian-connect/1/app/module/dynamic?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">removeModules(moduleKey, callback)</td>
    <td style="padding:15px">Remove modules</td>
    <td style="padding:15px">{base_path}/{version}/atlassian-connect/1/app/module/dynamic?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getViews(contentId, fromDate, callback)</td>
    <td style="padding:15px">Get views</td>
    <td style="padding:15px">{base_path}/{version}/analytics/content/{pathv1}/views?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getViewers(contentId, fromDate, callback)</td>
    <td style="padding:15px">Get viewers</td>
    <td style="padding:15px">{base_path}/{version}/analytics/content/{pathv1}/viewers?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getUserProperties(userId, start, limit, callback)</td>
    <td style="padding:15px">Get user properties</td>
    <td style="padding:15px">{base_path}/{version}/user/{pathv1}/property?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">getUserProperty(userId, key, callback)</td>
    <td style="padding:15px">Get user property</td>
    <td style="padding:15px">{base_path}/{version}/user/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">updateUserProperty(userId, key, body, callback)</td>
    <td style="padding:15px">Update user property</td>
    <td style="padding:15px">{base_path}/{version}/user/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">createUserProperty(userId, key, body, callback)</td>
    <td style="padding:15px">Create user property by key</td>
    <td style="padding:15px">{base_path}/{version}/user/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
  <tr>
    <td style="padding:15px">deleteUserProperty(userId, key, callback)</td>
    <td style="padding:15px">Delete user property</td>
    <td style="padding:15px">{base_path}/{version}/user/{pathv1}/property/{pathv2}?{query}</td>
    <td style="padding:15px">Yes</td>
  </tr>
</table>
<br>
