Subsections of Bulk provisioning
Classic bulk provisioning
Introduction
The bulk function enables the provisioning of a list of entities or tickets in a single operation, in either synchronous or asynchronous mode.
Bulk Object Structure
Bulk requests and responses can be formatted in four different ways, which can be selected through the Content-Type HTTP header. The default format is JSON, but the other formats are also available:
- CSV format
- XLS Excel format
- XLSX Excel format
Attaching Files as Multipart
The Async API enables the creation of multipart files. In this instance, the Content-Type HTTP header will be multipart/form-data, and the file type will be indicated in the attached content.
HTTP Header Options
The API enables the indication of the format in which the request content is to be sent, either JSON or CSV, via the HTTP header option “Content-Type”. Similarly, the API allows the indication of the format in which the response content is to be received, either JSON or CSV, via the HTTP header option “Accept”.
It is possible to send a request and receive a response in different formats. For example, a request sent in JSON format can be received in CSV format.
Content-type header
The bulk input can be provided in different formats, depending on the file type. The Content-Type header should indicate the format of the input data. The following formats are supported for both synchronous and asynchronous operations:
application/json: jsontext/plain: csvapplication/vnd.ms-excel: xlsapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet: xlsx
Accept Header
Please be advised that the bulk processing results will be created in the format indicated in the ACCEPT header of the POST call, for both synchronous and asynchronous operations. To achieve the desired result with the GET call, it is essential to ensure that the ACCEPT header is identical to that used in the POST call.
In the event that the POST is not completed with the correct MIME type in the ACCEPT header, an error message will be displayed. Similarly, if the GET is not completed with the correct MIME type in the ACCEPT header, the same error message will be displayed.
Comprehensive API actions
Synchronous bulk
Creating a synchronous bulk for entities
The Synchronous Bulk Creation process allows you to create multiple entities in a single request. This bulk operation applies to the following entities:
- Assets
- Devices
- Subscriptions
- Subscribers
Creating a synchronous bulk for tickets
The Synchronous Bulk Creation process for tickets allows you to create multiple ticket records in a single request.
Asynchronous bulk
Creating an Asynchronous bulk for entities
In the case of asynchronous calls, the POST method will return an empty body and the URL of the created bulk process in the Location header. To monitor the progress and outcome, a GET request should be made to the URL returned by the POST method.
Asynchronous searching
A comprehensive search is being conducted across all previously created bulk processes, whether completed or still in progress.
API specification
Provision functions for bulk provisioning
Limited access API
Limited access
Please note that the provision API of this feature is only available to the root profile. Similarly, the execution API (plan or bulk) of this feature is only available to the following profiles: root, admin, admin_domain, advanced and super_admin_domain. In contrast, the searching API is accessible to all users. Should you require further information, please consult your administrator.
Introduction
This API enables users to perform bulk provisioning using Provision Processors. These processors allow users to define their own Excel formatting using a JavaScript script, which adapts the formatting to align with the OpenGate APIs.
Provision Processor object structure
A Provision Processor will include a JSON object with a script field, which contains the JavaScript code responsible for processing inbound data and determining the appropriate actions for provisioning the relevant entities, such as JSON objects, devices, subscriptions and subscribers. When creating or updating a Provision Processor, only minimal parsing of the script will be performed.
Comprehensive API actions
Provision processors
Creating a provision processor
Please note that the Accept field should be set to application/JSON.
Updating a provision processor
All actions are based on application/JSON data formats.
Searching provision processors
Please search for all completed and ongoing bulk processes.
Executing provision processors
Executing plan from selected provision processor
- As with the Bulk creation process, files will be attached as multipart, with only XLS and XLSX formats permitted.
- In this instance, the Accept header must be set to application/JSON.
Rather than creating a bulk process, it would be more efficient to return the provision process planning for specified entries. This is a synchronisation process that does not result in changes to the database.
Executing bulk from selected provision processor
- Files used for bulk processing will be attached to the request as multipart.
- The attached file must contain a specific Content-Type property to indicate the format of the file.
- Only XLS and XLSX formats are permitted.
- The Accept header must match the attached file’s Content-Type.
Reading the bulk summary
Please note that the Accept field should be set to application/JSON.
Reading the bulk details from selected bulk
Please note that the Accept field should be the same used in the bulk creation request.
API specification
Subsections of Provision functions for bulk provisioning
JavaScript API
Introduction to provision processors
This API’s purpose is to facilitate the development of Provision Processors in the simplest possible way.
The API is divided into several modules/scripts:
Provision_Processor/provision_processor.js: This is the entry point from Java. It defines a template for Provision Processor execution.Entities_Utils/provision_entity_utils.js: Utility class to facilitate the entities building.Action_Utils/provision_actions_utils.js: Utility functions to create the actions to be returned to Java process.V8_Api/provision_JavaV8_api.js: Functions used to invoke Java V8 methods.V8_Utils/provision_JavaV8_utils.js: Some generic functions to useV8_API. When developing a new Provision Processor, instead of calling directlyV8_Apifunctions is better to use the methods defined here.Error_Api: Facility class to manage and transform caught OpenGate provision error.
Provision Processor
One Provision Processor is a script that, using Provision Javascript API, implements the business logic to transform inbound data into several actions to be done by Java to do correct provisioning actions.
How to Implement Provision Processor
When implementing a Provision Processor it is mandatory to implement two specific functions. These functions are called from Provision_Processor.processRow function:
normalizeRowMap(rawObject): This function receives a map with the data to be processed. For example, a map with the data read from an excel file. It takes the inbound parameter and transforms it into an object to be used to calculate and build the actions for this row. In this function, values validation and transformation should be done.- Input parameter: JSON object with raw keys and values.
- Output: JSON object with the desired structure.
actionsPlanning(normalizedObject): Takes the result fromnormalizeRowMapfunction and calculates the actions to be done in Java.- Input parameter: Normalized object.
- Output: Array of Actions.
It is possible to define extra functions to manage and transform provision errors. This function will be called from Main_Module.transformErrorMessage:
customErrorTransformer(errorManager): This function will be called when some provision error is caught (for example: duplicated entity). The goal is to create a customized error message for the Excel row update. This function is not mandatory, and if it is not defined, a default message will be returned byMain_Module.transformErrorMessage.- Input parameter: Object with error information (caught exception, failed action specification, and default message) and useful methods to manage this information.
- Output: This function must return a String with the customized message.
Example of Provision Processor for creating devices and assets with some fields. It uses the functions and classes defined in Provision Javascript API.
Important tips when writing a Provision Processor script
To add the script to Provision Processor JSON, it is necessary to take into these rules:
- For strings, use single quotes (’) instead of double quotes (")
- Use block comments (/**/) instead of line comments (//)
- Format the script in a unique line script.
Action format
actionsPlanning returns an array of objects specifying the action to be done. Actions must be built with the functions defined in Action_Utils. Just to see the output format and following the previous example:
Error management
Sometimes, it could be necessary to stop processing and abort all provision processes. For example, because some validation is not passed. In that case, an error must be thrown with a descriptive message. For example:
Main Module
Main Module
Main Script: Defines Provision Processor template to be called from Java
Main_Module~globalParams
Global parameter with a received map of params from the java process.
This parameter is set at the beginning of processRow and it can be used in any function in the script.
Kind: inner property of Main_Module
Main_Module~processRow(rawObject, processorParamsMap)
This is the function that will be called from the Java process.
To work correctly this function, it is mandatory to implement in the provision processor script the following functions:
normalizeRowMap(rawObject): This function will read and transform inboundrawObjectand transform tonormalizedObjectobject that will be used inactionsPlanning()function.actionsPlanning(normalizedObject): This function has to apply business rules and calculate the actions array to be done by the Java process.
Kind: inner method of Main_Module
Returns: String - Json with following properties:
scriptDirectResult: OK or descriptive error text,actionsToDo: Array with the list of Actions to be done in Java Process. This array can be empty.
| Param | Type | Description |
|---|---|---|
| rawObject | Object | Json with excel row data |
| processorParamsMap | Object | Processor extra params map: can contain necessary parameters for odm api calls (key, organization) or useful parameters to define specific behaviors |
Return Example
Main_Module~_testTemplateImplementation()
Auxiliary function to check if main functions are implemented.
Kind: inner method of Main_Module
Throws:
- Error if the main methods (normalizeRawObject and actionsPlanning) are not correctly defined as functions
Entities Utils
Entities_Utils
This module contains Entity class specifications and other useful functions to convert processor script inbound data to ODM Entities.
-
readMapValueis the method to read values from inbound data. -
newEntityBuilderis the method to create a new Entity Builder from an existing Entity JSON. -
Entity class: Entity class definition. Used to build Entity Jsons.
-
Entities_Utils
Entity
Class used to build Entity Jsons. It contains the necessary properties and methods to build any entity JSON.
entityJson: this property contains the Entity JSON.addDatastream: this is the main method to be used to add or update desired datastreams to the EntitydeleteDatastream: this is the main method to be used to remove some datastream from EntitygetDatastream: this is the main method to be used get the value from specific datastream in the Entity- Other internal methods should not be necessary to call them.
Kind: inner class of Entities_Utils
Entity(entityIdentifier)
Init entityJson property with an entity identifier. Use new Entity(entityIdentifier) to create a new Entity.
| Param | Type | Description |
|---|---|---|
| entityIdentifier | String | identifier for current entity. |
Example of use:
entity.withPrefix(prefixToBeUsed)
Define the prefix of the datastreams to be used by addDatastream method.
Adding a new prefix will override the previously added one.
Use this method with an empty or undefined parameter to stop using any prefix.
Kind: instance method of Entity
Returns: Entity - Current Entity instance
| Param | Type | Description |
|---|---|---|
| prefixToBeUsed | String | The prefix that will be used in next addDatastream calls. If it is empty the prefix will be removed. |
Example of use:
entity.getDatastream(datastream, _index)
Search specified datastream and returns value. This function requires always complete datastream (ignores withPrefix functions calls).
Kind: instance method of Entity
Returns: * - Found datastream’s value, it can be complex. Null if not found.
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream complete flattened name. |
| _index | String | If datastream is an array, index should be provided, if not, first element will be returned. |
Example of use:
entity.deleteDatastream(datastream, _index)
Delete specified datastream. This function requires always complete datastream (ignores withPrefix functions calls).
Kind: instance method of Entity
Returns: * - Found datastream’s value, it can be complex. Null if not found.
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream complete flattened name. |
| _index | String | If datastream is an array, index should be provided, if not, first element will be returned. |
Example of use:
entity.addDatastream(datastream, value, _index)
Method to be used to add datastreams to current entity. Calling this method more than one time for the same datastream will have two different behaviors:
- If _index parameter is defined, a new value will be added or updated to the array.
- If _index parameter is not defined, the previous datastream will be overridden.
Kind: instance method of Entity
Returns: Entity - Current Entity instance
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream flattened name. |
| value | String | Value for the datastream. |
| _index | String | If provided, it will create special indexed datastream (for communicationModules[] datastreams). |
Example of use:
entity._addToEntity(datastream)
Internal method. Attach provided datastream to current Entity’s JSON.
Kind: instance method of Entity
Returns: Entity - Current Entity instance.
| Param | Type | Description |
|---|---|---|
| datastream | Object | Object to be attached to current Entity. |
Example of use:
entity._generateDatastreamJsonWithArray(datastream, valuesArray)
Internal method. Generates an object with datastream as field and provided array as value. This method is helpful for communicationModules[] datastreams.
Internally calls _cleanArray method to add good array.
Kind: instance method of Entity
Returns: Object - Json object with built datastream.
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream flattened name. |
| valuesArray | Array | Array of objects for the datastream. |
Example of use:
entity._generateDatastreamWithJson(datastream, value)
Internal method.
Generates an object with datastream as field and provided value.
In this case, value can be a plain value (for example, String) or a complex JSON
Internally calls _generateJsonCurrentValue to build basic json structure.
Kind: instance method of Entity
Returns: Object - Json object with built datastream.
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream flattened name. |
| value | Object | Json object with datastream value. |
Example of use:
entity._generateIndexedJson(index, value)
Internal method. Generates a json with provided index and value. This method will be used when creating datastreams with communicationModules[].
Kind: instance method of Entity
Returns: Object - Json object with indexed value structure.
| Param | Type | Description |
|---|---|---|
| index | String | Identifier for _index value. |
| value | * | It can be plain value (String,…) or complex Json. |
Example of use:
entity._generateJsonCurrentValue(value)
Internal method. Generates a JSON with basic structure datastream value.
Kind: instance method of Entity
Returns: Object - Json object with basic value structure.
| Param | Type | Description |
|---|---|---|
| value | * | It can be plain value (String,…) or complex Json |
Example of use:
Return example:
entity._cleanArray(valuesArray)
Internal method. Auxiliary method to clean empty ("", null, undefined) elements from provided array.
Kind: instance method of Entity
Returns: Array - New array without empty elements. null if the array is empty.
| Param | Type | Description |
|---|---|---|
| valuesArray | Array | Array to be checked. |
Example of use:
entity._generateDatastreamEntry(datastream, dsJson)
Internal method. Auxiliary method to build an object with datastream as field and provided JSON as value.
Kind: instance method of Entity
Returns: Object - Json object with built datastream.
| Param | Type | Description |
|---|---|---|
| datastream | String | Datastream flattened name. |
| dsJson | Object | Json value for the datastream. |
Example of use
Return examples:
or
readMapValue(map, headerName, defaultValue, headerColumn)
Auxiliary method to read values from the specified map.
A key will be created with headerName and headerColumn and the value for this key will be retrieved.
If there is no entry for this key or the value is empty or undefined, defaultValue will be returned.
If headerColumn is null, only headerName will be used as the key.
Kind: inner method of Entities_Utils
Returns: * - Obtained value for specified header name and column or at least defined default value.
| Param | Type | Description |
|---|---|---|
| map | Object | map from which to read values. |
| headerName | String | Header name for mapped row. |
| defaultValue | * | If no value is read or it is empty or undefined, default value will be returned. |
| headerColumn | String | Header column letter for mapped row (if null, only headerName will be used as key). |
Example of use:
newEntityBuilder(fromEntityJson)
Creates Entity class object with specified entity json.
Kind: inner method of Entities_Utils
Returns: Entity - Entity Class instance
| Param | Type | Description |
|---|---|---|
| fromEntityJson | Object | Json with Opengate flattened entity |
Example of use:
Actions Utils
Action_Utils
Functions for building ODM Actions.
Action structure example:
- Action_Utils
- CREATE_ASSET_ACTION(entityJson, description)
- UPDATE_ASSET_ACTION(entityJson, description)
- PATCH_ASSET_ACTION(entityJson, description)
- DELETE_ASSET_ACTION(entityJson, description)
- CREATE_DEVICE_ACTION(entityJson, description)
- UPDATE_DEVICE_ACTION(entityJson, description)
- PATCH_DEVICE_ACTION(entityJson, description)
- DELETE_DEVICE_ACTION(entityJson, full, description)
- CREATE_SUBSCRIPTION_ACTION(entityJson, description)
- UPDATE_SUBSCRIPTION_ACTION(entityJson, description)
- PATCH_SUBSCRIPTION_ACTION(entityJson, description)
- DELETE_SUBSCRIPTION_ACTION(entityJson, description)
- CREATE_SUBSCRIBER_ACTION(entityJson, description)
- UPDATE_SUBSCRIBER_ACTION(entityJson, description)
- PATCH_SUBSCRIBER_ACTION(entityJson, description)
- DELETE_SUBSCRIBER_ACTION(entityJson, description)
- _createAction(action, entityJson, entityType, full, description)
CREATE_ASSET_ACTION(entityJson, description)
Builds Create Asset action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Asset Entity Json to be created. |
| description | String | Action short description. |
Example of use:
UPDATE_ASSET_ACTION(entityJson, description)
Builds Update Asset action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Asset Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
PATCH_ASSET_ACTION(entityJson, description)
Builds Patch Asset action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Asset Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
DELETE_ASSET_ACTION(entityJson, description)
Builds Delete Asset action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Asset Entity Json to be deleted. |
| description | String | Action short description. |
Example of use:
CREATE_DEVICE_ACTION(entityJson, description)
Builds Create Device action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Device Entity Json to be created. |
| description | String | Action short description. |
Example of use:
UPDATE_DEVICE_ACTION(entityJson, description)
Builds Update Device action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Device Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
PATCH_DEVICE_ACTION(entityJson, description)
Builds Patch DEVICE action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Device Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
DELETE_DEVICE_ACTION(entityJson, full, description)
Builds Delete Device action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Device Entity Json to be deleted. |
| full | boolean | true to delete also related Subscriptions and Subscribers. |
| description | String | Action short description. |
Example of use:
CREATE_SUBSCRIPTION_ACTION(entityJson, description)
Builds Create Subscription action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscription Entity Json to be created. |
| description | String | Action short description. |
Example of use:
UPDATE_SUBSCRIPTION_ACTION(entityJson, description)
Builds Update Subscription action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscription Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
PATCH_SUBSCRIPTION_ACTION(entityJson, description)
Builds Patch Subscription action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscription Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
DELETE_SUBSCRIPTION_ACTION(entityJson, description)
Builds Delete Subscription action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscription Entity Json to be deleted. |
| description | String | Action short description. |
Example of use:
CREATE_SUBSCRIBER_ACTION(entityJson, description)
Builds Create Subscriber action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscriber Entity Json to be created. |
| description | String | Action short description. |
Example of use:
UPDATE_SUBSCRIBER_ACTION(entityJson, description)
Builds Update Subscriber action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscriber Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
PATCH_SUBSCRIBER_ACTION(entityJson, description)
Builds Patch Subscriber action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscriber Entity Json to be updated. |
| description | String | Action short description. |
Example of use:
DELETE_SUBSCRIBER_ACTION(entityJson, description)
Builds Delete Subscriber action with provided JSON.
Kind: inner method of Action_Utils
Returns: Object - Created action.
| Param | Type | Description |
|---|---|---|
| entityJson | Object | Subscriber Entity Json to be deleted. |
| description | String | Action short description. |
Example of use:
_createAction(action, entityJson, entityType, full, description)
Internal method. Builds an action object with specified parameters.
Kind: inner method of Action_Utils
Returns: Object - Action object with provided parameters.
| Param | Type | Description |
|---|---|---|
| action | String | Action to be done. |
| entityJson | Object | Entity JSON to be processed. |
| entityType | String | Entity type to be processed. |
| full | Boolean | Only for DELETE device. true to delete also related Subscriptions and Subscribers. |
| description | String | Action short description. |
Example of use:
V8 Utils API
V8_Api
Java V8 API: Functions encapsulate the logic for calling Java V8 Methods.
Java V8 Methods are defined in:
es.amplia.odm.frontend.ws.provision.bulk.bulkProcessor.jsEngine.ProvisionProcessorScriptExecutor
These are the methods defined:
printLogInternal(printLog): writes INFO log messages.- params:
- String msg: message to be printed.
- params:
getEntityInternal(getEntity): gets specific Entity for provided id.- params:
- String
provisionType: it should be always ‘ENTITY’. - String
resourceType: the entity type to be retrieved. - String
entityId: entity to be retrieved. - Map
javaParams: mandatory params to configure the query (api key, organization id…).
- String
- return:
- String: Entity json.
- params:
genericSearchInternal(genericSearch): searches entities with provided filter.- params:
- String
searchTypeValue: What kind of elements must be search. - String
searchQueryValue: Json format filter. - Map
javaParams: mandatory params to configure the query (api key, organization id…).
- String
- return:
- String: Json with found elements and page information.
- params:
printLog(msg)
Invokes Java V8 printLogInternal method.
Kind: inner method of V8_Api
| Param | Type | Description |
|---|---|---|
| msg | String | String to be printed in Java logs |
Example of use:
getEntity(entityId, resourceType, queryContextParams)
Invokes Java V8 getEntityInternal method.
Use queryContextParams parameter to specify query behavior. It is a JSON with next properties:
- utc: used to format datetime fields. Default value: false.
- flattened: used to specify if entity must be returned flattened or not. Default value: true.
Kind: inner method of V8_Api
Returns: Object - Entity Json. null if no entity is found
| Param | Type | Description |
|---|---|---|
| entityId | String | Id of the entity to be retrieved |
| resourceType | String | Parameter used to specify the entity type to be retrieved |
| queryContextParams | Object | Parameters for query. Not mandatory |
Example of use:
entitiesGenericSearch(searchFilter, queryContextParams)
Invokes Java V8 genericSearchInternal method for ENTITIES.
Use queryContextParams parameter to specify query behavior. It is a JSON with next properties:
- utc: used to format datetime fields. Default value: false.
- flattened: used to specify if entity must be returned flattened or not. Default value: true.
- defaultSorted: specifies if result must be sorted by default field. Default value: false.
Kind: inner method of V8_Api
Returns: Object - Search result json. null if no result is found.
| Param | Type | Description |
|---|---|---|
| searchFilter | String | json search filter |
| queryContextParams | Object | Parameters for query. Not mandatory |
Example of use:
_minJavaParams(queryContextParams)
Auxiliary method to build params maps for Java Queries
Kind: inner method of V8_Api
Returns: Object - Json object
| Param | Type | Description |
|---|---|---|
| queryContextParams | Object | parameters for query. Not mandatory. |
Example of use:
V8_Utils
Java V8 Utils: Some predefined functions for Java V8 calls. These functions internally call V8_Api functions.
checkAsset(id)
Check if an Asset exists for specified id.
Kind: inner method of V8_Utils
Returns: boolean - If the asset exists.
| Param | Type | Description |
|---|---|---|
| id | String | asset identifier. |
Example of use:
checkDevice(id)
Check if a Device exists for specified id.
Kind: inner method of V8_Utils
Returns: boolean - If the Device exists.
| Param | Type | Description |
|---|---|---|
| id | String | Device identifier. |
Example of use:
checkSubscription(id)
Check if a Subscription exists for specified id.
Kind: inner method of V8_Utils
Returns: boolean - If the Subscription exists.
| Param | Type | Description |
|---|---|---|
| id | String | Subscription identifier. |
Example of use:
checkSubscriber(id)
Check if a Subscriber exists for specified id.
Kind: inner method of V8_Utils
Returns: boolean - If the Subscriber exists.
| Param | Type | Description |
|---|---|---|
| id | String | Subscriber identifier. |
Example of use:
getAssetEntity(id)
Gets specific Asset for specified id.
Kind: inner method of V8_Utils
Returns: Object - Asset entity, null if the Asset does not exist.
| Param | Type | Description |
|---|---|---|
| id | String | Asset identifier. |
Example of use:
getDeviceEntity(id)
Gets specific Device for specified id.
Kind: inner method of V8_Utils
Returns: Object - Device entity, null if the Device does not exist.
| Param | Type | Description |
|---|---|---|
| id | String | Device identifier. |
Example of use:
getSubscriptionEntity(id)
Gets specific Subscription for specified id.
Kind: inner method of V8_Utils
Returns: Object - Subscription entity, null if the Subscription does not exist.
| Param | Type | Description |
|---|---|---|
| id | String | Subscription identifier. |
Example of use:
getSubscriberEntity(id)
Gets specific Subscriber for specified id.
Kind: inner method of V8_Utils
Returns: Object - Subscriber entity, null if the Subscriber does not exist.
| Param | Type | Description |
|---|---|---|
| id | String | Subscriber identifier. |
Example of use:
duplicatedDsInSubscriptions(currentSubscriptionId, …datastreamsToCheck)
Searches for duplicated datastreams in other Subscriptions (other than currentSubscriptionId).
Kind: inner method of V8_Utils
Returns: boolean - If some Subscription has been found with some of duplicated datastreams.
| Param | Type | Description |
|---|---|---|
| currentSubscriptionId | String | The Subscription id with the datastreams to be checked. |
| …datastreamsToCheck | Object | Datastreams to be checked if they are duplicated. Each datastream must be defined as {“datastreamId”: “datastreamValue”}. |
Example of use:
duplicatedDsInSubscribers(currentSubscriberId, …datastreamsToCheck)
Searches for duplicated datastreams in other Subscribers (other than currentSubscriberId).
Kind: inner method of V8_Utils
Returns: boolean - If some Subscriber has been found with some of duplicated datastreams
| Param | Type | Description |
|---|---|---|
| currentSubscriberId | String | The Subscriber id with the datastreams to be checked. |
| …datastreamsToCheck | Object | Datastreams to be checked if they are duplicated. Each datastream is defined as a pair {“datastreamId”: “datastreamValue”}. |
Example of use:
duplicatedDsInDevices(currentDeviceId, …datastreamsToCheck)
Searches for duplicated datastreams in other Devices (other than currentDeviceId).
Kind: inner method of V8_Utils
Returns: boolean - If some Device has been found with some of duplicated datastreams.
| Param | Type | Description |
|---|---|---|
| currentDeviceId | String | The Device id with the datastreams to be checked. |
| …datastreamsToCheck | Object | Datastreams to be checked if they are duplicated. Each datastream is defined as a pair {“datastreamId”: “datastreamValue”}. |
Example of use:
duplicatedDsInAssets(currentAssetId, …datastreamsToCheck)
Searches for duplicated datastreams in other Assets (other than currentAssetId).
Kind: inner method of V8_Utils
Returns: boolean - If some Asset has been found with some of duplicated datastreams.
| Param | Type | Description |
|---|---|---|
| currentAssetId | String | The Asset id with the datastreams to be checked. |
| …datastreamsToCheck | Object | Datastreams to be checked if they are duplicated. Each datastream is defined as a pair {“datastreamId”: “datastreamValue”}. |
Example of use:
_checkEntity(id, resourceType)
Internal method. Check if an ENTITY exists for the specified id and resource type.
Kind: inner method of V8_Utils
Returns: boolean - If the ENTITY exists.
| Param | Type | Description |
|---|---|---|
| id | String | Entity id to be checked. |
| resourceType | String | Entity type to be checked. |
Example of use:
_checkDuplicatedDS(currentEntityIdentifierDatastream, currentEntityIdentifierValue, …datastreamsToCheck)
Internal method. Searches for duplicated datastreams in other entities than the specified one.
Kind: inner method of V8_Utils
Returns: boolean - If duplicated Datasteams are found in other entities.
| Param | Type | Description |
|---|---|---|
| currentEntityIdentifierDatastream | String | Datastream used to specify the Entity id with the datastreams to be checked. |
| currentEntityIdentifierValue | String | Value for currentEntityIdentifierDatastream field. |
| …datastreamsToCheck | Object | Datastreams to be checked if they are duplicated. Each datastream is defined as a pair {“datastreamId”: “datastreamValue”}. |
Example of use:
Error API
Error_Api
This module contains ErrorManager class specification.
ErrorManager
Class used to manage and extract information from caught provision action exception. Internally contains following objects:
platformErrors: list ofApiPlatformErrorrepresentation.actionObject: OdmProvisionAction representation.defaultErrorMessage: default error message string.
Kind: inner class of Error_Api
ErrorManager(platformErrors, actionObject, defaultErrorMessage)
Initialize ErrorManager entity. Use new keyword to create an instance of ErrorManager.
| Param | Type | Description |
|---|---|---|
| platformErrors | Object | list of ApiPlatformError representation. |
| actionObject | Object | OdmProvisionAction representation. |
| defaultErrorMessage | String | default error message. |
Example of use:
errorManager.getDefaultMessage()
Kind: instance method of ErrorManager
Returns: string - initialized default message
Example of use:
errorManager.getFirstError()
Returns first error object.
Kind: instance method of ErrorManager
Returns: Object - first error. It can be undefined or null.
Example of use:
errorManager.getFirstErrorAsString()
Returns first error object as string
Kind: instance method of ErrorManager
Returns: string - first error as string. It can be undefined or null.
Example of use:
errorManager.getFirstErrorMessage()
Returns first error’s message property.
Kind: instance method of ErrorManager
Returns: String - message property value. It can be undefined or null.
Example of use:
errorManager.getFirstErrorCode()
Returns first error’s code property.
Kind: instance method of ErrorManager
Returns: String - code property value. It can be undefined or null.
Example of use:
errorManager.getFirstErrorContextArray()
Returns first error’s context property.
Kind: instance method of ErrorManager
Returns: array - context property value as array. It can be undefined or null.
Example of use:
errorManager.getFirstErrorContextArrayAsString()
Returns first error’s context property.
Kind: instance method of ErrorManager
Returns: string - context property value as string. It can be undefined or null.
Example of use:
errorManager.getFirstContextName()
Returns first error’s first context’s name property.
Kind: instance method of ErrorManager
Returns: string - context name property value. It can be undefined or null.
Example of use:
errorManager.getFirstContextValue()
Returns first error’s first context’s value property.
Kind: instance method of ErrorManager
Returns: string - context value property value. It can be undefined or null.
Example of use:
errorManager.getFirstContext()
Returns first error’s first context object.
Kind: instance method of ErrorManager
Returns: Object - context object. It can be undefined or null.
Example of use:
errorManager.getFirstContextAsString()
Returns first error’s first context object as string.
Kind: instance method of ErrorManager
Returns: string - context object as string. It can be undefined or null.
Example of use:
errorManager.getErrorsSize()
Returns number of errors contained.
Kind: instance method of ErrorManager
Returns: number - size of contained errors.
Example of use:
errorManager.getSpecificErrorObject(index)
Returns specific error object
Kind: instance method of ErrorManager
Returns: Object - error object. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificErrorObjectAsString(index)
Returns specific error object as a string
Kind: instance method of ErrorManager
Returns: string - error object as string. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificErrorMessage(index)
Returns specific error’s message
Kind: instance method of ErrorManager
Returns: String - message property value for specified error. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificErrorCode(index)
Returns specific error’s code
Kind: instance method of ErrorManager
Returns: String - code property value for specified error. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificErrorContextArray(index)
Returns specific error’s context property as array.
Kind: instance method of ErrorManager
Returns: array - context property value as array. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificErrorContextArrayAsString(index)
Returns specific error’s context property as string.
Kind: instance method of ErrorManager
Returns: string - context property value for specified error. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getSpecificContext(errorIndex, contextIndex)
Returns specific context in specific error.
Kind: instance method of ErrorManager
Returns: Object - context object. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| errorIndex | number | error index in errors list |
| contextIndex | number | context index in specified error |
Example of use:
errorManager.getSpecificContextAsString(errorIndex, contextIndex)
Returns specific context in specific error as string.
Kind: instance method of ErrorManager
Returns: string - context object. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| errorIndex | number | error index in errors list |
| contextIndex | number | context index in specified error |
Example of use:
errorManager.getSpecificContextName(errorIndex, contextIndex)
Returns specific context’s name in specific error.
Kind: instance method of ErrorManager
Returns: string - name property value for specified context. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| errorIndex | number | error index in errors list |
| contextIndex | number | context index in specified error |
Example of use:
errorManager.getSpecificContextValue(errorIndex, contextIndex)
Returns specific context’s value in specific error.
Kind: instance method of ErrorManager
Returns: string - value property value for specified context. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| errorIndex | number | error index in errors list |
| contextIndex | number | context index in specified error |
Example of use:
errorManager.getAdministrationIdentifier()
Returns entity administration identifier.
Kind: instance method of ErrorManager
Returns: string - It can be undefined or null.
Example of use:
errorManager.getDatastreamValue(index)
Returns from entity (in OdmProvisionAction) specific datastream value (datastream._value._current.value). It can be an object or plain string.
Kind: instance method of ErrorManager
Returns: Object - Object with specific datastream. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getDatastreamValueAsString(index)
Returns from entity (in OdmProvisionAction) specific datastream value (datastream._value._current.value). It can be a json string.
Kind: instance method of ErrorManager
Returns: string - String with specific datastream. It can be undefined or null.
| Param | Type | Description |
|---|---|---|
| index | number | error index in errors list |
Example of use:
errorManager.getAction()
Returns provision action type (POST, PUT, PATCH, DELETE) from OdmProvisionAction
Kind: instance method of ErrorManager
Returns: string - It can be undefined or null.
Example of use:
errorManager.isPost()
Kind: instance method of ErrorManager
Returns: boolean - true if provision action is POST.
Example of use:
errorManager.isPut()
Kind: instance method of ErrorManager
Returns: boolean - true if provision action is PUT.
Example of use:
errorManager.isPatch()
Kind: instance method of ErrorManager
Returns: boolean - true if provision action is PATCH.
Example of use:
errorManager.isDelete()
Kind: instance method of ErrorManager
Returns: boolean - true if provision action is DELETE.
Example of use:
errorManager.getEntityType()
Returns provision entity type (asset, device, subscription, subscriber) from OdmProvisionAction
Kind: instance method of ErrorManager
Returns: string - It can be undefined or null.
Example of use:
errorManager.isSubscription()
Kind: instance method of ErrorManager
Returns: boolean - true if provision entity is subscription.
Example of use:
errorManager.isSubscriber()
Kind: instance method of ErrorManager
Returns: boolean - true if provision entity is subscriber.
Example of use:
errorManager.isDevice()
Kind: instance method of ErrorManager
Returns: boolean - true if provision entity is device.
Example of use:
errorManager.isAsset()
Kind: instance method of ErrorManager
Returns: boolean - true if provision entity is asset.
Example of use: