https://github.com/ibm/node-igc-rest
Re-usable functions for interacting with IBM Information Governance Catalog's REST API
https://github.com/ibm/node-igc-rest
igc information-server metadata node-js node-module rest-api
Last synced: 12 months ago
JSON representation
Re-usable functions for interacting with IBM Information Governance Catalog's REST API
- Host: GitHub
- URL: https://github.com/ibm/node-igc-rest
- Owner: IBM
- License: apache-2.0
- Archived: true
- Created: 2018-05-11T11:40:35.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-01-08T09:16:23.000Z (over 7 years ago)
- Last Synced: 2025-04-24T21:57:04.855Z (12 months ago)
- Topics: igc, information-server, metadata, node-js, node-module, rest-api
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/ibm-igc-rest
- Size: 578 KB
- Stars: 3
- Watchers: 8
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# README
Objective of this module is to provide re-usable functionality and utilities for interacting with the IBM Information Governance Catalog through its REST API, using NodeJS.
# Utilities
## findAssets.js
Run a query for IGC assets and (optionally) take action against the results. Usage:
```shell
node ./findAssets.js
-f
[-a ]
[-p ]
```
Searches IGC based on the query conditions defined in the provided file; and if there is also an action section it will apply that action to each of the query results. The provided file is expected to contain at least a "query" key, under which a set of IGC query conditions is specified; and optionally an action key [`update` or `delete`].
By default (if not specified using the optional `-a` parameter), the utility will look for environment details in `~/.infosvrauth` and will prompt the user for a password.
The authorisation file can be generated using the module. Refer to the `createInfoSvrAuthFile.js` utility there for more details.
##### Examples:
Using this input file `queryAndUpdate.json`:
```json
{
"query":
{
"properties": ["name"],
"types": ["database_table"],
"where":
{
"operator": "and",
"conditions": [
{
"property": "name",
"operator": "=",
"value": "MY_DB_TABLE"
}
]
}
},
"update":
{
"value":
{
"assigned_to_terms": ["6662c0f2.e1b1ec6c.svu583pvk.3sr7b7n.mq748u.ru37pccq07437ncqvhvjs"]
}
}
}
```
the following command will find all database tables whose name is `MY_DB_TABLE`, and update the tables so that they are assigned to the term with RID `6662c0f2.e1b1ec6c.svu583pvk.3sr7b7n.mq748u.ru37pccq07437ncqvhvjs`.
```shell
node ./findAssets.js
-f queryAndUpdate.json
```
## generateIGCRESTDocumentation.js
Create documentation on the various types (and their properties) available within the Information Governance Catalog REST API. Usage:
```shell
node ./generateIGCRESTDocumentation.js
-f
[-t ]
[-a ]
[-p ]
```
Creates a markdown file in the location provided by the file parameter, by default using GitHub-style markdown (unless overridden through the type parameter).
By default (if not specified using the optional `-a` parameter), the utility will look for environment details in `~/.infosvrauth` and will prompt the user for a password.
The authorisation file can be generated using the module. Refer to the `createInfoSvrAuthFile.js` utility there for more details.
Example output of running this against various versions of vanilla (uncustomised) Information Server environments can be found under the [`doc/`](https://github.com/IBM/node-igc-rest/tree/master/doc) directory of this GitHub repository. Note that because these are vanilla (uncustomised) environments, they will not contain any details about custom attributes or OpenIGC objects that you may have in your own environment -- to see those details, run this utility against your own environment.
##### Examples:
```shell
node ./generateIGCRESTDocumentation.js
-f IGC_REST.md
```
Creates markdown documentation in `IGC_REST.md` covering all of the data types and their properties that are available for use in the IGC REST API.
# API
## ibm-igc-rest
Re-usable functions for interacting with IBM Information Governance Catalog's REST API
**Examples**
```javascript
// retrieves all of the "types" from IGC's REST API
var igcrest = require('ibm-igc-rest');
var commons = require('ibm-iis-commons');
var restConnect = new commons.RestConnection("isadmin", "isadmin", "hostname", "9445");
igcrest.setConnection(restConnect);
igcrest.getTypes(function(err, resTypes) {
// do something with the types within resTypes object
});
```
**Meta**
- **license**: Apache-2.0
## setConnection
Set the connection for the REST API
**Parameters**
- `restConnect` **RestConnection** RestConnection object, from ibm-iis-commons
## openSession
- **See: module:ibm-igc-rest.setConnection**
- **See: module:ibm-igc-rest.closeSession**
Setup a re-usable session against the IGC REST API -- a connection must first
be setup
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the opened sessionId
## closeSession
- **See: module:ibm-igc-rest.setConnection**
- **See: module:ibm-igc-rest.openSession**
Logout of (close) a re-usable session against the IGC REST API
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved will have logged out / closed the session
## replaceQueryVars
Replace any variables (text that starts with `$`) that show up in a query
**Parameters**
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the query (as a JSON object)
- `variables` **Dict** a dictionary indexed by variable name
Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
## replaceRelatedUpdateVars
Replace `$relatedObjectRID` in the query with the provided RID
**Parameters**
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the query (as a JSON object)
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID to inject into the query
Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
## verifySingleItem
Verify that one and only one item was returned by a query
**Parameters**
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the data returned from a query (as a JSON object)
- Throws **any** will throw an error if either no item or multiple items are found
Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the single item returned
## getSingleItem
Retrieve the first item returned by a query
**Parameters**
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the data returned from a query (as a JSON object)
- Throws **any** will throw an error if no items are found
Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
## logUpdateResults
Log to the console the results of an update
**Parameters**
- `results` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the data returned from an update (as a JSON object)
## compareObjectsForSorting
Compare two objects for sorting purposes
**Parameters**
- `a`
- `b`
Returns **integer** \-1 (a<b), 0 (a=b), 1 (a>b)
## getAssetContainerId
Retrieve the RID of the container of an asset (for example, the database table of a database column)
**Parameters**
- `assetObj` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the asset object, as returned from REST API
Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of assetObj's container
## getContainerIdentity
Get an identity object for the provided asset's container
**Parameters**
- `assetCtx` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the context object for the asset
- `containerId` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the RID of the asset's container
- `callback` **[identityCallback](#identitycallback)** callback that handles the response, since further requests may be needed
## getAssetIdentity
Get an identity object for the provided asset
**Parameters**
- `assetObj` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the asset for which to get an identity object
- `containerIdentities` **Dict** a dict cache of container identities
Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the identity of this object
## getItemIdentityString
Constructs an asset identity string provide a REST API item (which must include `_context`)
**Parameters**
- `restItem` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** a single entry from the `items` array of a REST API response, including `_context` member
- `delimiter` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** a delimiter to use for separating the components of the identity (default: `::`)
Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
## getRIDFromItem
Retrieves an asset's RID based on its `_context` and name (ie. in a different environment)
**Parameters**
- `restItem` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** a single entry from an `items` array of a REST API response, including `_context` member
- `replacements` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** a dict keyed by REST type whose value should be the replacement value for the corresponding type in the `_context` provided
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the RID of the asset
## getContextForItem
Retrieves an asset's `_context` based on its RID and type
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the IGC RID of the asset
- `type` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the IGC REST type of the asset
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the `_context` of the asset
## addRelationshipToAsset
Adds a relationship to the provided asset
**Parameters**
- `fromAsset` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the IGC asset (as REST item response) to which to add the relationship
- `toAssetRIDs` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>** the IGC RIDs of the assets to which to relate
- `relnProperty` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the property of the fromAssetRID against which to add the relationship
- `mode` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** how to add the relationship [ APPEND, REPLACE_ALL, REPLACE_SOME ]
- `replaceType` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** the IGC REST type of object relationships to replace (for REPLACE_SOME)
- `conditions` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)>?** array of conditions objects (property, operator, value) defining what relationships to replace (for REPLACE_SOME)
- `batch` **integer?** how many relationships to retrieve at a time (default = 100)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the result of the relationship processing
## makeRequest
- **See: module:ibm-igc-rest.setServer**
- **See: module:ibm-igc-rest.setAuth**
Make a request against IGC's REST API
**Parameters**
- `method` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** type of request, one of [`GET`, `PUT`, `POST`, `DELETE`]
- `path` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the path to the end-point (e.g. `/ibm/iis/igc-rest/v1/...`)
- `input` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** any input for the request, i.e. for PUT, POST
- `contentType` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** the type of content, e.g. `application/json` or `application/xml`
- `drillDown` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** the key into which to drill-down within the response
- `callback` **[requestCallback](#requestcallback)** callback that handles the response
- Throws **any** will throw an error if connectivity details are incomplete or there is a fatal error during the request
## create
Create an asset
**Parameters**
- `type` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the type of asset to create
- `value` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the set of values with which to create the asset
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (if not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the RID of the created asset
## update
Update a RID with a specific set of data
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the asset to update
- `value` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the set of data with which to update the asset
- `callback` **[requestCallback](#requestcallback)?** optional callback to handles the response (if not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the update
## search
Search IGC
**Parameters**
- `query` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the search to run against IGC (as a JSON object)
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (if not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the search
## getTypes
Get a list of all of the IGC asset types
**Parameters**
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (if not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the IGC types
## getAssetTypeNamesToIds
Get a mapping of all asset types from display name to unique type id
**Parameters**
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises), with an object keyed by display name and each value the unique type id for that display name
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains an object keyed by display name and each value the unique type id for that display name
## getOther
Make a general GET request against IGC's REST API
**Parameters**
- `path` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the path to the end-point (e.g. `/ibm/iis/igc-rest/v1/...`)
- `successCode` **integer** the HTTP response code that indicates success for this operation
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the response body from the request
## deleteAssetById
Delete a specific asset from IGC
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the asset to delete
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the result of the deletion
## detectLineageForJob
Request IGC to detect lineage for a specific job (requires v11.5.0.1 GOVRUP3 or higher)
- Actual status comes from the "message" within the callback results: starts with SUCCESS, WARNING or FAILURE
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the job for which to detect lineage
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains results of the lineage detection
## uploadLineageFlow
Create new lineage flow as defined by a flow XML document
**Parameters**
- `xml` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the flow document XML containing the lineage to upload
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the lineage flow upload
## getBundles
Get list of bundles (asset type definitions) already deployed
**Parameters**
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains a String\[] of bundle names
## createBundle
Create a new Open IGC bundle (asset type definition)
**Parameters**
- `zipFile` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the location of the zip file from which to create the bundle
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the bundle upload
## updateBundle
Update an existing Open IGC bundle (asset type definition)
**Parameters**
- `zipFile` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the location of the zip file from which to create the bundle
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the bundle upload
## createBundleAssets
Create instances of assets defined by an Open IGC bundle
**Parameters**
- `xml` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the flow document XML containing the asset instance definitions
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the asset instantiations
## createCustomAttribute
Create a new Custom Attribute (available in v11.7 onwards only)
**Parameters**
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the JSON object which describes the custom attribute
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the custom attribute creation
## updateCustomAttribute
Update a new Custom Attribute (available in v11.7 onwards only)
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the custom attribute to update
- `json` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the JSON object which describes the custom attribute
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the results of the custom attribute update
## getCustomAttributes
Get list of custom attributes already deployed
**Parameters**
- `maxItems` **integer** maximum number of custom attributes to retrieve
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains an array of objects with custom attribute definitions: "id", "name", "attributeType", and "appliesTo"\[]
## getAssetsInCollection
Get a listing of all of the assets in a collection
**Parameters**
- `collectionName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `maxItems` **integer** maximum number of items to retrieve
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the list of assets in the collection
## getAssetById
- **See: module:ibm-igc-rest.getAssetPropertiesById**
Request all details of an asset
NOTE: this function should be used with caution -- it will build a large object and
can be measurably slower (> 5x) than explicitly defining the properties and searching
using `getAssetPropertiesById` instead
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the asset
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains all of the asset's details
## getAssetPropertyById
Retrieve only the single specified property of an asset
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the asset
- `property` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the property of the asset to retrieve (e.g. `name`)
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the specified property of the asset
## getAssetPropertiesById
- **See: module:ibm-igc-rest.getTypes**
Retrieve only the specified details of an asset
**Parameters**
- `rid` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the RID of the asset
- `type` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the type of the asset
- `properties` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>** array of properties to retrieve for the asset
- `maxItems` **integer** maximum number of detailed properties
- `bIncludeContext` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** whether to include contextual information (true) or drill-down just to the resulting properties (false)
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the specified properties of the asset
## getNextPage
- **See: module:ibm-igc-rest.search**
Retrieve the next page of information
**Parameters**
- `paging` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the `paging` sub-object of a results object
- `callback` **[requestCallback](#requestcallback)?** optional callback that handles the response (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the next page of results
## getAllPages
- **See: module:ibm-igc-rest.search**
- **See: module:ibm-igc-rest.getNextPage**
Retrieve all remaining pages of information
**Parameters**
- `items` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the `items` sub-object of a results object
- `paging` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the `paging` sub-object of a results object
- `callback` **[itemSetCallback](#itemsetcallback)?** optional callback that provides the list of all items from all pages (when not using Promises)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** when resolved contains the list of all items from all pages of results
## isDataContainer
**Parameters**
- `type`
Returns **any** true if the provided type is a data container
## getDataContainerChildTypes
**Parameters**
- `type`
Returns **any** the data type name for the child object of the provided container type
## requestCallback
This callback is invoked as the result of an IGC REST API call, providing the response of that request.
Type: [Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)
**Parameters**
- `errorMessage` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** any error message, or null if no errors
- `responseObject` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the JSON object containing the response
## itemSetCallback
This callback is invoked as the result of obtaining a set of items, providing an array of items.
Type: [Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)
**Parameters**
- `errorMessage` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** any error message, or null if no errors
- `itemArray` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)>** an array of JSON objects, each being an item
## identityCallback
This callback is invoked as the result of obtaining an object's identity, providing the response of that request.
Type: [Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)
**Parameters**
- `errorMessage` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** any error message, or null if no errors
- `identityObject` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the JSON object containing the identity
## Conversion
Conversion class -- for encapsulating mapping / transformation information between REST concepts and other representations
### getRESTTypeFromSchemaType
Retrieves the IGC REST type equivalent for the provided schema type
**Parameters**
- `schemaType` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the xmeta schema type (eg. 'ASCLModel.DatabaseField')
Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the REST type (eg. 'database_column')
### getSchemaTypeFromRESTType
Retrieves the xmeta schema type equivalent for the provided REST type
**Parameters**
- `restType` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the REST type (eg. 'database_column')
Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the xmeta schema type (eg. 'ASCLModel.DatabaseField')