Код | Описание |
|---|
Структура Identity |
typedef i32 ItemId
| Идентификатор элемента в событии |
enum IdentityItemType {
kPerson,
kWorkstation,
kDevice,
kResource,
}
| Вид элемента идентификации |
struct Attribute {
1: required string name,
2: required string value
}
| Отдельный атрибут любой сущности события (самого события, идентификации, потока данных): - контакт;
- метаинформация о контакте
|
struct ContactWithMeta {
1: required Attribute contact,
2: optional string meta
} | Контакты идентификации с метаинформацией: - контакт;
- метаинформация о контакте
|
struct Identity {
1: required ItemId identity_id,
2: required IdentityItemType identity_type,
3: required list<Attribute> identity_contacts,
4: optional list<Attribute> identity_attributes, 5: optional list<ContactWithMeta> identity_contacts_with_meta
}
| Идентификация получателя или отправителя объекта: - уникальный номер идентификации внутри объекта, используется для ссылок на идентификацию;
- вид элемента идентификации;
- набор контактов идентификации;
- не обязательный набор атрибутов идентификации;
- набор контактов идентификации c метаинформацией
|
struct EventData {
1: required ItemId data_id,
2: optional list<Attribute> data_attributes
}
| Описание потока данных события: - уникальный идентификатор потока данных внутри события, используется для ссылок на поток;
- необязательный набор атрибутов потока данных
|
struct ChatMessage {
1: required ItemId sender_id,
2: required string sent_time,
3: required string utf8_text,
4: optional ItemId mes_data_id
}
| Описание одного сообщения класса "Беседа": - ссылка на идентификацию, которая является отправителем сообщения;
- локальное время передачи сообщения в формате ГГГГ-ММ-ДДTЧЧ:ММ:СС+ЧЧ:ММ (ISO 8601 c форматированием yyyy-MM-ddTHH:mm:sszzz);
- текст сообщения в кодировке UTF-8;
- идентификатор данных объекта, в которых будет передано содержимое сообщения, если utf8_text пустой
|
typedef string LinkNameType
struct ItemLink {
1: required ItemId id,
2: required ItemId link_to_id,
3: required LinkNameType link_name
}
| Описание связи между различными сущностями события: - идентификатор сущности события, от которой идёт связь;
- идентификатор сущности события, к которой идёт связь;
- имя (тип) связи
|
const LinkNameType link_name_ws = "workstation_link" | Список имён поддерживаемых связей между сущностями:- имя для задания связи идентификаций типа "Персона" и "Рабочая станция"
|
struct Event {
1: required EventClass evt_class,
2: required TmServiceType evt_service,
3: optional list<Attribute> evt_attributes,
4: required list<Identity> evt_senders,
5: required list<Identity> evt_receivers,
6: required list<EventData> evt_data,
7: optional list<ChatMessage> evt_messages,
8: optional list<ItemLink> evt_links,
9: optional Identity evt_source,
10: optional Identity evt_destination
}
| Описание события, которое нужно передать в Traffic Monitor: - класс события;
- сервис события;
- атрибуты события;
- отправители события;
- получатели события;
- данные события;
- сообщения события для класса "Беседа";
- связи между сущностями в событии;
- источник события;
- приемник события
|
struct Credentials {
1: required string company_name,
2: required string token
}
| Структура, описывающая параметры доступа к Traffic Monitor: - название клиента (или компании в нашем случае). Этот параметр связывает плагин внешнего разработчика с лицензией;
- токен авторизации. Эта строка является «секретом», который знают плагин и Traffic Monitor. Так реализована авторизация источника данных
|
typedef i64 EventId
| Идентификатор загружаемого события |
typedef i64 StreamId
| Идентификатор загружаемого потока данных события |
typedef i32 InterfaceVersion const InterfaceVersion pushapi_version = 1
| Версия PushAPI интерфейса |
enum EventClass {
kChat,
kEmail,
kMfp,
kWeb,
kFileExchange,
kPhoto,
kMultimedia,
kVoiceTalk
} | Поддерживаемые "классы" событий в PushAPI: - Беседа
- Почта
- Печать, копирование и сканирование
- Интернет-активность
- Обмен файлами
- Фотосъемка
- Запись мультимедиа
- Звонок
|