Поля аппаратных ключей:
- 'dongleid' — идентификатор аппаратного ключа (выгравирован на корпусе);
- 'model' — модель аппаратного ключа (возможные значения: UNKNOWN - 0, DL - 1, SIGN - 2, TIME - 3, CODE - 4, CODE_TIME - 5);
- 'publiccode' — числовое значение публичного кода доступа вендора;
- 'typeflags' — поле Type аппаратного ключа, которые определяет его свойства (поддержку алгоритмов, сетевого функционала и т.п.);
- 'netresource' — сетевой ресурс аппаратного ключа.
Получение списка аппаратных ключей
Авторизация требуется. Входных параметров нет.
GET /v1.0/dongles
Для запроса доступна сортировка по id ключа и пагинация. Значения параметров сортировки и пагинации по умолчанию: sortby=default&direction=asc&offset=0&limit=100.
Возвращает массив dongles:
"dongles": [
{
"dongleid": 991846791,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 0
}
]
Обновление полей аппаратного ключа
Авторизация требуется. Входные параметры RAW JSON:
{
"driverType": 2
}
Возможные значение поля driverType:
- 0 — драйвер Guardant;
- 2 — HID режим;
- 16 — winusb-драйвер (установлен по умолчанию).
PUT /v1.0/dongles/{dongleid}
Возвращает элемент dongle:
"dongle": {
"dongleid": 991846791,
"drivertype": 2,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 0
}
Добавление аппаратного ключа к заказу
Авторизация требуется. Заказ должен быть в статусе Подтвержден (Submit). Входные параметры RAW JSON:
{
"dongleId": 991846791,
"dongleModel": 2,
"publicCode": 1368487351,
"typeFlags": 0,
"netResource": 0
}
Добавление аппаратного ключа с dongleId, который совпадает с ранее добавленным в заказ — запрещено.
POST /v1.0/orders/{id}/dongles
Возвращает элемент dongle:
"dongle": {
"dongleid": 991846791,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 0
}
При добавление аппаратного ключа к заказу могут получены следующие дополнительные ошибки:
- ключ не поддерживает ограниченные по времени компонент (код ошибки 10172);
- ключ не поддерживает сетевой компонент (код ошибки 10173);
- общее количество сетевых компонентов превышает сетевой ресурс ключа (код ошибки 10174).
При получении ошибок 10172 и 10173 в ответе на запрос помимо описания ошибки также будут следующе поля: ID аппаратного ключа, номер компонента, номер продукта, номер заказа. Например:
{
"conflictedDongleId":999392418,
"conflictedFeatureNumber":16,
"conflictedOrderNumber":94,
"conflictedProductNumber":12350,
"status":{"code":10172,"description":"Dongle does not support time limited features","message":"Bad Request","status":400}
}
При получении ошибки 10174 в ответе на запрос помимо описания ошибки будет только значение ID аппаратного ключа.
Добавление нескольких аппаратных ключей к заказу
Авторизация требуется. Заказ должен быть в статусе Подтвержден (Submit). Входные параметры RAW JSON:
{
"dongles":
[
{
"dongleId": 995644599,
"dongleModel": 2,
"netResource": 0,
"publicCode": 1368487351,
"typeFlags": 442
},
{
"dongleId": 995644499,
"dongleModel": 2,
"netResource": 0,
"publicCode": 1368487351,
"typeFlags": 442
},
{
"dongleId": 995644399,
"dongleModel": 2,
"netResource": 0,
"publicCode": 1368487351,
"typeFlags": 442
}
]
}
Добавление аппаратного ключа с dongleId, который совпадает с ранее добавленным в заказ — запрещено.
POST /v1.0/orders/{id}/multipledongles
Возвращает массив dongles:
{
"dongles": [
{
"dongleid": 995644599,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 442,
"retcode":"10168"
},
{
"dongleid": 995644499,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 442,
"retcode":"0"
},
{
"dongleid": 995644399,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 442,
"retcode":"0"
}
]
}
При добавление аппаратного ключа к заказу могут получены следующие дополнительные ошибки:
- ключ не поддерживает ограниченные по времени компонент (код ошибки 10172);
- ключ не поддерживает сетевой компонент (код ошибки 10173);
- общее количество сетевых компонентов превышает сетевой ресурс ключа (код ошибки 10174).
При получении ошибок 10172 и 10173 в ответе на запрос помимо описания ошибки также будут следующе поля: ID аппаратного ключа, номер компонента, номер продукта, номер заказа. Например:
{
"conflictedDongleId":999392418,
"conflictedFeatureNumber":16,
"conflictedOrderNumber":94,
"conflictedProductNumber":12350,
"status":{"code":10172,"description":"Dongle does not support time limited features","message":"Bad Request","status":400}
}
При получении ошибки 10174 в ответе на запрос помимо описания ошибки будет только значение ID аппаратного ключа.
Удаление аппаратного ключа из заказа
Авторизация требуется. Входных параметров нет.
DELETE /v1.0/orders/{id}/dongles/{did}
Получение информации о последней записи ключа (с учетом заказа)
Авторизация требуется. Входных параметров нет.
Данный необходим для получения статус-кода результат прошивки ключа из базы. Алгоритм действий при прошивке ключа такой: если "Guardant Control Center" возвращает для dongleId статус-код, отличный от 0 (Success), то необходимо выполнить данный запрос. В поле actionResult вернется один из следующих кодов ошибок:
enum ActionResultCode : int
{Success = 0, // successful operation
VendorHasNoActivationTransactionsAvailable = 2, // vendor's service transaction limit is over
VendorHasNoServiceSubscription = 5, // vendor's service subscription is over
PrepareLicenseError = 13, // internal error that can be raised during license container generation
NotEhoughMemoryInLicense = 14, // internal error that can be raised during license container generation if not enough memory for saving all features
NoFeatureFound = 15, // no balance associated feature found in master
DongleBurnFailed = 201, // internal error that can be raised during dongle burn
DongleNotFound = 202, // dongle has disappeared after its burn starting
UnknownError = 666
};GET /v1.0/orders/{orderid}/dongles/{dongleid}/getlastburninfo
Возвращает значение lastburninfo:
{
"lastburninfo": {
"_id": 56,
"action": 1,
"actiondate": 1569974400,
"actionresult": 0,
"activationsconsumed": 1,
"activationscountcurrent": 300,
"netlicensesconsumed": 3,
"netlicensesremains": 997
}
}
Получение истории прошивок/обновлений аппаратного ключа
Авторизация требуется.
GET /v1.0/getdonglehistory/{dongle_id}
Для запроса доступна сортировка по actionDate и пагинация. Значения параметров сортировки и пагинации по умолчанию: direction=asc&offset=0&limit=100.
В данном запросе возможно указать:
- параметр actiondatebegin=значение_времени (например, 1550149997). Будут отобраны все события с совпадающим или более поздним временем.
- параметр actiondateend=значение_времени (например, 1550149999). Будут отобраны все события с совпадающим или более ранним временем.
- оба параметра actiondatebegin и actiondateend одновременно. Будут отобраны событие из отрезка времени [actiondatebegin, actiondateend].
- параметр actionresult=value1[,value2,value3,...]. Например, actionresult=0,2,13. Будут отобраны только события, у которых actionResult совпадает с одним из перечисленных значений.
Возвращает массив history:
{
"history": [
{
"_id": 57,
"actiondate": 1570191207,
"actionresult": 0,
"activationsconsumed": 1,
"activationscountcurrent": 20,
"netlicensesconsumed": 3,
"netlicensesremains": 997,
"customer": {
"_id": 10,
"archivationdate": 0,
"archived": false,
"companyname": "baskin&robings",
"crmid": "",
"description": "",
"email": "dfgsfg@dfg-df.ru",
"lastname": "cream",
"name": "ice",
"phone": "+349534534534",
"refid": "",
"status": 0
},
"dongle": {
"dongleid": 991846791,
"model": 2,
"netresource": 0,
"publiccode": 1368487351,
"typeflags": 442
},
"order": {
"_id": 244,
"activationbirthdate": 1568193700,
"activationdeathdate": 0,
"activationlimit": 0,
"archivationdate": 0,
"archived": false,
"canoverwritecontainer": false,
"crmid": "",
"customer": {
"_id": 10,
"archivationdate": 0,
"archived": false,
"companyname": "baskin&robings",
"crmid": "",
"description": "",
"email": "dfgsfg@dfg-df.ru",
"lastname": "cream",
"name": "ice",
"phone": "+349534534534",
"refid": "",
"status": 0
},
"customerrequired": false,
"date": 1568193433,
"description": "",
"isdemo": true,
"ishardwarelicense": true,
"number": 30,
"quantity": 1,
"refid": "",
"status": 1,
"submitdate": 1568196767,
"type": 0
}
}
]
}
Проверка, что аппаратный ключ может быть добавлен к заказу
Авторизация требуется. Заказ должен быть в статусе Подтвержден (Submit). Входные параметры RAW JSON:
{
"dongleId": 991846791,
"dongleModel": 2,
"publicCode": 1368487351,
"typeFlags": 0,
"netResource": 0
}
Если аппаратный ключ уже был ранее добавлен к заказу, то в ответе вернется OK.
Данный запрос для заказа на обновление вернет ошибку.
POST /v1.0/canadddongle/orders/{id}
Возвращает OK (200), если ключ может быть добавлен к заказу и соответствующую ошибку, если нет.
Могут получены следующие дополнительные ошибки:
- ключ не поддерживает ограниченные по времени компонент (код ошибки 10172);
- ключ не поддерживает сетевой компонент (код ошибки 10173);
- общее количество сетевых компонентов превышает сетевой ресурс ключа (код ошибки 10174).
При получении ошибок 10172 и 10173 в ответе на запрос помимо описания ошибки также будут следующе поля: ID аппаратного ключа, номер компонента, номер продукта, номер заказа. Например:
{
"conflictedDongleId":999392418,
"conflictedFeatureNumber":16,
"conflictedOrderNumber":94,
"conflictedProductNumber":12350,
"status":{"code":10172,"description":"Dongle does not support time limited features","message":"Bad Request","status":400}
}
При получении ошибки 10174 в ответе на запрос помимо описания ошибки будет только значение ID аппаратного ключа.
Получение списка заказов аппаратного ключа
Авторизация требуется.
GET /v1.0/dongles/{id}/orders
Для запроса доступна сортировка по номеру заказа ("number"), дате подтверждения заказа ("submitdate"), дате начала срока действия заказа ("startdate") и пагинация. Значения параметров сортировки и пагинации по умолчанию: direction=asc&offset=0&limit=100.
Возвращает массив orders:
{
"orders": [
{
"_id": 471,
"activationbirthdate": 1571130180,
"activationdeathdate": 0,
"activationlimit": 0,
"archivationdate": 0,
"archived": false,
"canoverwritecontainer": false,
"crmid": "",
"customer": {
"_id": 10,
"archivationdate": 0,
"archived": false,
"companyname": "baskin&robings",
"crmid": "",
"description": "",
"email": "dfgsfg@dfg-df.ru",
"lastname": "cream",
"name": "ice",
"phone": "+349534534534",
"refid": "",
"status": 0
},
"customerrequired": false,
"date": 1571130686,
"description": "",
"isdemo": true,
"ishardwarelicense": true,
"number": 70,
"quantity": 1,
"refid": "",
"status": 1,
"submitdate": 1571130723,
"type": 1
},
{
"_id": 469,
"activationbirthdate": 1571130000,
"activationdeathdate": 0,
"activationlimit": 0,
"archivationdate": 0,
"archived": false,
"canoverwritecontainer": false,
"crmid": "",
"customer": {
"_id": 10,
"archivationdate": 0,
"archived": false,
"companyname": "baskin&robings",
"crmid": "",
"description": "",
"email": "dfgsfg@dfg-df.ru",
"lastname": "cream",
"name": "ice",
"phone": "+349534534534",
"refid": "",
"status": 0
},
"customerrequired": false,
"date": 1571130069,
"description": "",
"isdemo": true,
"ishardwarelicense": true,
"number": 68,
"quantity": 1,
"refid": "",
"status": 1,
"submitdate": 1571130251,
"type": 1
},
{
"_id": 244,
"activationbirthdate": 1568193700,
"activationdeathdate": 0,
"activationlimit": 0,
"archivationdate": 0,
"archived": false,
"canoverwritecontainer": false,
"crmid": "",
"customer": {
"_id": 10,
"archivationdate": 0,
"archived": false,
"companyname": "baskin&robings",
"crmid": "",
"description": "",
"email": "dfgsfg@dfg-df.ru",
"lastname": "cream",
"name": "ice",
"phone": "+349534534534",
"refid": "",
"status": 0
},
"customerrequired": false,
"date": 1568193433,
"description": "",
"isdemo": true,
"ishardwarelicense": true,
"number": 30,
"quantity": 1,
"refid": "",
"status": 1,
"submitdate": 1568196767,
"type": 0
}
]
}