API System Concepts¶
To understand the API, it’s important to understand two basic concepts
- Models
- Hierarchy
“Model” describes the types of JSON objects fulfilling purposes such as defining data structures, containing data, defining GUI forms, mapping data from devices or other models.
The system employs the following types of models:
- Data Models
- Device Models
- Domain Models
- Relations
- Views
Data in the system is represented using Data models and Device models.
Device models are generated from the application API of entities that are provisioned on devices.
Domain models, relations and views wrap the Data or Device models by means of references to them.
Data models can be created and are stored in the database. Data models contain a JSON schema/metadata for the entities exposed by the underlying database. The schemas for the data models are stored in the database and represent the structure that instances of the data model conforms to.
Device models interface with devices and services on the system. For example:
- Unified CM device models interface with the Call Manager’s AXL SOAP API.
- CUC device models interface with Unity Connection’s RESTful API.
The ability to rapidly develop and deploy new device interfaces provides an extensible mechanism to add support for additional provisioning tasks or additional southbound integration into other business systems. Domain models act as “containers” of other data-, device- and domain models along with provisioning workflows to represent the management of a created feature.
Relations do not store data on the system. Instead, they relate groups of resource types such as device models, data models or other domain models.
Views provide a mechanism to define an arbitrary schema, which can be used to define a user input screen.