Data Model


The Data Model Reference lists all API data model types. Yet, it may be beneficial for the developer to understand the objects the resources are made of.

The data types the API uses can be divided into three categories:

  • Scalar data types, i.e. strings or integers.

  • Xelion objects, i.e. persons or phone numbers.

  • Container objects that holds one or more objects of these three categories.

Scalars

Name Description Example

String

A text string of maximum 4000 character, UTF-8 encoded1

"Xelion"

Number

An integer or a float number

42

Boolean

A boolean value: true or false.

true

Date

A date in UTC time, in the format: yyyy-MM-dd HH:mm:ss

2016-10-23 14:02:59

Binary String

A base64 encoded string2

YmFzZTY0IHN0cmluZw==

null

Null (no) value.

null

1) the text is converted to Windows 1252 encoding
2) the maximum size before encoding is currently 10 MB

Xelion object model

The Xelion object model is an object oriented data model, where real world entities are modeled by generalization, aggregation and relations.

The root object of all Xelion objects is XelionObject. This object holds three attributes:

XelionObject attributes
oid

An unique ID of this object. The ID forms the last part of the resource URL of the object, for example: https:/…​/master/communication/1234

objectType

The object type. The type is important when a resource may return objects of various types.

changeType

Object modification flag. This attribute is required when the client modifies, creates or removes an object.

Another important base object is Entity. This is the root object of all toplevel objects. The toplevel resources, like communication and addressable return subclasses of Entity. Entity adds, among other things, access rights to the object.

The following sections list the objects a client will probably use.

Addressables

Addressables are items in the the addressbook. Addressable resources start with URL <base-url>/addressables. Some of the user’s lists, for example: the favorites list, contain addressable objects as well.

Addressable

The base object of the addressbook.

Person

A person. A person object includes both private and employment information.

Organisation

An organisation.

Object

An object in the addressbook other than a person or an organisation. For example: (the telephone number of) a meeting room.

Unknown Addressable

Xelion creates this object when a phone call is received from an unknown phone number. This object is removed when a user adds this phone number to a contact or creates a new contact.

Communication

Communication

The base object of all communication events.

Call Log

The log of a phone call.

User Chat

A chat message.

SMS Message

An SMS message.

Email Message

An email message.

Containers

Resources are often not a scalar or a XelionObject but an aggregation of various types.
For example: the resource /me/info contains two objects: the Person associated with the user and the Presence information of the user.

Most of the resources return REST information in addition to the resource data, namely HATEOAS information. (HATEOAS data contains links to associated resources to the current resource). In order to accomodate the REST data, most responses are wrapped in a Response Object or in a Response List.