You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Продукт позволяет объединить несколько компонентов и задать для них начальные лицензионные условия. Также продукт позволяет установить дополнительные параметры защиты целиком на приложение. По сути продукт определяет формат будущей лицензии целиком на приложение.

Жизненный цикл продукта (статус продукта):

  • Draft (0) Черновик. Присваивается в момент создания продукта. В этом статусе продукт разрешено редактировать.
  • OnSale (1) В продаже. Присваивается в момент подтверждения заказа. В этом статусе продукт редактировать запрещено.

Для каждой добавляемой в продукт фичи необходимо назначить начальные лицензионные условия в объекте 'defaultLicense':

  • 'canexclude' разрешить возможность исключить фичу из заказа.
  • 'canmodify'   разрешить изменять лицензионные условия фичи в заказе.
  • 'rentbegindate'   дата начала аренды ПО.
  • 'rentenddate'   дата конца аренды ПО.
  • 'rentdayscount'   количество дней работы ПО.
  • 'netlicensesCount' количество сетевых лицензий для ПО.
  • 'runcounter'  количество запусков ПО.
  • 'consumptionmode' тип учёта лицензий в сети, "0" по рабочим станциям, "1" по подключениям, "2" по копиям программы
  • 'flags' набор дополнительных флагов (0x04 запрещает работу фичи в виртуальной машине, 0x100 запрещает работу более одной копии приложения в режиме удаленного рабочего стола)
  • 'licensingmodel' модель лицензирования компонента
  • 'isremote' признак сетевой фичи

Нельзя одновременно выбрать аренду ПО и количество дней работы ПО. Должно быть задано поле 'rentdayscount', либо поля 'rentbegindate' и 'rentenddate'. Лицензионные условия для компонента могут быть изменены в момент создания заказа, если значение поля 'canmodify' равно 1. Компонент может быть полностью исключен из заказа, если значение поля 'canexclude' равно 1.

Тип лицензииУсловиеЗначения по умолчанию
Сетевая лицензияnetlicensesCount=0

netlicensesCount= "10"
consumptionmode= "0","1" или "2"

Локальная лицензияnetlicensesCount<>0

netlicensesCount= "0"
consumptionmode= "0","1" или "2"

Модель лицензированияУсловиеЗначения по умолчанию
Без ограниченийне указаны значения параметров rentbegindate, rentenddate и rentdayscountrentbegindate = ""
rentenddate = ""
rentdayscount= ""
Период времениуказаны значения параметров rentbegindate и rentenddaterentbegindate = "[текущая дата]"
rentenddate = "[текущая дата + 365 дней]"
rentdayscount = ""
Количество дней

указаны значения параметра rentdayscount

rentbegindate = ""
rentenddate = ""
rentdayscount = "365"

Получение списка продуктов

Авторизация требуется. Входных параметров нет. 

GET /v1.0/products

Для запроса доступна сортировка и пагинация. Доступные поля сортировки: number, name, archivationdate. Значения параметров сортировки и пагинации по умолчанию: sortby=number&direction=asc&offset=0&limit=100.

В данном запросе возможно указать параметр status=draft (status=onsale) для выборки только продуктов в статусе draft (onsale). Если параметр не указан или не совпадает с одним из {draft, onsale}, тогда будут выбраны все продукты, независимо от их статуса.

В запросе имеется опциональный параметр archived=false (archived=true) - для вывода не архивных записей (архивных записей . По умолчанию в запросе выводятся все записи - и архивные и не архивные.

В запросе имеется опциональный параметр licensetype=x,y,.. для фильтрации записей по типу носителя лицензии: программная лицензия (1), аппаратный ключ (2), программная лицензия и аппаратный ключ одновременно (0). В запросе будут выбраны только продукты, предназначенные только для указанных типов носителей лицензии.

В запросе имеется опциональный параметр accesscodesid=some_number (где some_number - id кодов доступа), который позволяет получить только список продуктов с определенным набором кодов доступа вендора.

Возвращает массив products:

"products": [{
  "_id": 10020,
  "accesscode_id": 1,
  "description": "TEST6",
  "modification": 10,
  "name": "TEST",
  "archived": false,
  "archivationdate": 0
  "productnumber": 1,
  "flags": 0,
  "status": 1,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2},
 "licensetype": 0,
 "crmid": "",
 "refid": "",
  "memoryitems": []
},
{
  "_id": 10038,
  "accesscode_id": 1,
  "description": "for testing purpose",
  "modification": 0,
  "name": "NEW_CALC",
  "archived": false,
  "archivationdate": 0
  "productnumber": 2,
  "flags": 0,
  "status": 1,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
 "licensetype": 0,
 "crmid": "",
 "refid": "",
 "memoryitems": []
} ]}

'_id' идентификатор продукта БД

'accesscode_id' идентификатор кодов доступа БД

'description' текстового описание назначения продукта (задаётся пользователем).

'modification' - целочисленное число номер модификация продукта (задаётся пользователем). Пространство номеров индивидуально для каждого вендора.

'name' краткое текстовое название продукта (задаётся пользователем).

'productnumber' - целочисленное число номер продукта (задаётся пользователем). Пространство номеров индивидуально для каждого вендора. Возможные значения: [1;255].

'flags' глобальные флаги защиты для всего приложения (задаётся пользователем).

'status' текущий жизненный статус продукта.

'hardwareBindingScheme' схема привязки продукта к оборудованию. 0 привязка по умолчанию (привязка к CPU, HDD, Motherboard, MAC); 1 привязка к только HDD, Motherboard; 2 пользовательская привязка, задается через id пользовательской привязки в параметре 'bindingSchemeId'.

'bindingSchemeId' id пользовательской схемы привязки, задается только если hardwareBindingScheme = 2.

'licensetype' значение этого поля определяет, в какую лицензию/заказ можно поместить данный продукт (0 в программную и аппаратную лицензию, 1 только в программную, 2 только в аппаратную)

Создание нового продукта

Авторизация требуется.  Входные параметры RAW JSON:

{
  "productNumber" : 5,
  "createModification" : false, // создавать модификацию продукта? по умолчанию - false
  "accessCodeId" : 1,
  "productName" : "PostMan",
  "productDescription" : "Created by postman",
  "productFlags" : 0,
  "archived": false,
  "hardwareBindingScheme": 2,
  "bindingSchemeId": 2,
  "licenseType": 0, // по умолчанию значение равно 0
  "crmId": "",
  "refId": ""
}

'hardwareBindingScheme' схема привязки продукта к оборудованию. 0 привязка по умолчанию (привязка к CPU, HDD, Motherboard, MAC); 1 привязка к только HDD, Motherboard; 2 пользовательская привязка, задается через id пользовательской привязки в параметре 'bindingSchemeId'.

'bindingSchemeId' id пользовательской схемы привязки, задается только если hardwareBindingScheme = 2.

Создание продукта с уже существующим номером и модификацией запрещено.

POST /v1.0/products

Возвращает элемент product:

{
  "product": {
  "_id": 10039,
  "accesscode_id": 1,
  "description": "Created by postman",
  "modification": 5,
  "name": "PostMan",
  "archived": false,
  "archivationdate": 0
  "productnumber": 5,
  "flags": 0,
  "status": 0,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
 "licensetype": 0,
 "crmid": "",
 "refid": "",
 "memoryitems": []
}

Создание нового продукта с исходным списком компонентов и назначение начальных лицензионных условий

Авторизация требуется.  Входные параметры RAW JSON:

{
"productNumber" : 5,
"createModification" : false, // создавать модификацию продукта? по умолчанию - false
"accessCodeId" : 1,
"productName" : "PostMan",
"productDescription" : "Created by postman",
"productFlags" : 0, 
"archived": false,
"hardwareBindingScheme": 2,
"bindingSchemeId": 2,
"licenseType": 0,
"crmId": "",
"refId": ""

"features":
  [{
     "_id": 10029,
     "defaultLicense": {
     "canexclude": true,
     "canmodify": true,
     "consumptionmode": 0,
     "flags": 0,
     "netlicensescount": 0,
     "rentbegindate": 0,
     "rentdayscount": 10,
     "rentenddate": 0,
     "runcounter": 0,
     "licensingmodel": 4,
     "isRemote": false,
     "crmId": "",
     "refId": ""
}},
{
    "_id": 10030,
    "defaultLicense": {
    "canexclude": true,
    "canmodify": true,
    "consumptionmode": 0,
    "flags": 0,
    "netlicensescount": 0,
    "rentbegindate": 0,
    "rentdayscount": 10,
    "rentenddate": 0,
    "runcounter": 0,
    "licensingmodel": 4,
    "isRemote": false,
     "crmId": "",
     "refId": ""
}}
]}

'hardwareBindingScheme' схема привязки продукта к оборудованию. 0 привязка по умолчанию (привязка к CPU, HDD, Motherboard, MAC); 1 привязка к только HDD, Motherboard; 2 пользовательская привязка, задается через id пользовательской привязки в параметре 'bindingSchemeId'.

'bindingSchemeId' id пользовательской схемы привязки, задается только если hardwareBindingScheme = 2.

POST /v1.0/products/features

Возвращает элемент product:

{
  "product": {
  "_id": 10039,
  "accesscode_id": 1,
  "description": "Created by postman",
  "modification": 5,
  "name": "PostMan",
  "archived": false,
  "archivationdate": 0
  "productnumber": 5,
  "flags": 0,
  "status": 0,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
 "licensetype": 0,
 "crmid": "",
 "refid": "",
 "memoryitems": []
}

Изменение продукта

Авторизация требуется.  Входные параметры RAW JSON:

{
  "productName" : "PostMan By PostMan",
  "productDescription" : "Created by postman",
  "productFlags" : 0,
  "accessCodeId" : 1,
  "archived": false,
  "hardwareBindingScheme": 2,
  "bindingSchemeId": 2,
  "licenseType": 0,
  "crmId": "",
  "refId": ""
}

PUT /v1.0/products/{id}

Возвращает элемент product:

{
  "product": {
  "_id": 10039,
  "accesscode_id": 1,
  "description": "Created by postman",
  "modification": 5,
  "name": "PostMan By PostMan",
  "archived": false,
  "archivationdate": 0
  "productnumber": 5,
  "flags": 0,
  "status": 0,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
 "licensetype": 0,
 "crmid": "",
 "refid": "",
 "memoryitems": []
}
}

Удаление продукта

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/products/{id}

Получение продукта по идентификатору

Авторизация требуется.  Входных параметров нет.

GET /v1.0/products/{id}

Возвращает элемент product:

{
  "product": {
  "_id": 10039,
  "accesscode_id": 1,
  "description": "Created by postman",
  "modification": 5,
  "name": "PostMan By PostMan",
  "archived": false,
  "archivationdate": 0
  "productnumber": 5,
  "flags": 0,
  "status": 0,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
  "binding_maxhardwarechangenumber": 0,
  "hardwarebindingscheme": 2,
  "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
  "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
  "licensetype": 0,
  "crmid": "",
  "refid": "",
  "memoryitems": []
}
}

Перемещение продукта в архив и обратно

Авторизация требуется.  Входные параметры RAW JSON:

{
  "archived": true
}

PUT /v1.0/products/{id}/changearchivestatus


Возвращает элемент product:

{
  "product": {
  "_id": 10039,
  "accesscode_id": 1,
  "description": "Created by postman",
  "modification": 5,
  "name": "PostMan By PostMan",
  "archived": false,
  "archivationdate": 0
  "productnumber": 5,
  "flags": 0,
  "status": 0,
  "binding":
     {
                "CAN_REPLACE_CPU": false,
                "CAN_REPLACE_DVD": false,
                "CAN_REPLACE_HDD": false,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": false,
                "CPU": true,
                "DVD": false,
                "HDD": true,
                "MAC": true,
                "MOTHERBOARD": true,
                "OS": false
     },
 "binding_maxhardwarechangenumber": 0,
 "hardwarebindingscheme": 2,
 "binding_customschemeid": 34,           // посылается опционально, если   hardwarebindingscheme = 2
 "binding_customschemename": "myscheme", // посылается опционально, если   hardwarebindingscheme = 2,
 "licensetype": 0,
 "crmid": "",
 "refid": "",
 "memoryitems": []
}
}

 

Добавление компонента в продукт и назначение начальных лицензионных условий

Авторизация требуется. Входные параметры RAW JSON:

{
"defaultLicense": {
  "canexclude" : true,
  "canmodify" : true,
  "rentbegindate" : 0,
  "rentenddate" : 0,
  "rentdayscount" : 10,
  "netlicensescount" : 5,
  "consumptionmode" : 0,
  "flags" : 0,
  "licensingmodel": 4,
  "isRemote": true
}

POST /v1.0/products/{id}/features/{fid}

Возвращает элемент defaultLicense:

{
  "defaultLicense": {
  "canexclude": true,
  "canmodify": true,
  "consumptionmode": 0,
  "flags": 0,
  "netlicensescount": 5,
  "rentbegindate": 0,
  "rentdayscount": 10,
  "rentenddate": 0,
  "runcounter": 0,
  "licensingmodel": 4,
  "isremote": true
}
}

Изменение начальных лицензионных условий для компонента в продукте

Авторизация требуется. Входные параметры RAW JSON:

{
"defaultLicense": {
  "canexclude" : 1,
  "canmodify" : 1,
  "rentbegindate" : 0,
  "rentenddate" : 0,
  "rentdayscount" : 20,
  "netlicensescount" : 5,
  "consumptionmode" : 0
  "flags : 0,
  "licensingmodel": 4,
  "isRemote": true
}

PUT /v1.0/products/{id}/features/{fid}

Возвращает элемент defaultLicense:

{
  "defaultLicense": {
  "canexclude": true,
  "canmodify": true,
  "consumptionmode": 0,

  "flags": 0,
  "netlicensescount": 5,
  "rentbegindate": 0,
  "rentdayscount": 20,
  "rentenddate": 0,
  "runcounter": 0,
  "licensingmodel": 4,
  "isremote": true
}
}

Удаление компонента из продукта

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/products/{id}/features/{fid}

Получение всех компонентов, ассоциированных с продуктом

Авторизация требуется.  Входных параметров нет.

GET /v1.0/products/{id}/features

Возвращает массив feature включая лицензионные условия по умолчанию:

"features": [
{
  "_id": 10029,
  "defaultLicense": {
    "canexclude": true,
    "canmodify": true,
    "consumptionmode": 0,

    "flags": 0,
    "netlicensescount": 0,
    "rentbegindate": 0,
    "rentdayscount": 10,
    "rentenddate": 0,
    "runcounter": 0,
    "licensingmodel": 4,
    "isremote": false
  },
  "description": "My test feature",
  "featurenumber": 1,
  "name": "Feature 1",
  "pubkey":"11 45 0A B6 77 EC AA 9F 63 79 32 C1 82 8A 14 EC 6B 52 54 BC 80 45 7D 49 BB 73 1E 56 6B 52 54 BC 80 45 7D 34 56 BB AA 99",
  "crmid": "",
  "refid": ""
},
{
  "_id": 10030,
  "defaultLicense": {
    "canexclude": true,
    "canmodify": true,
    "consumptionmode": 0,

    "flags": 0,
    "netlicensescount": 10,
    "rentbegindate": 0,
    "rentdayscount": 0,
    "rentenddate": 0,
    "runcounter": 0,
    "licensingmodel": 4,
    "isremote": true
},
  "description": "Feature2",
  "featurenumber": 2,
  "name": "Feature2",
  "pubkey":"F9 E5 EC 6B 52 54 BC 80 45 7D 49 BB F0 61 F9 F2 EC AA 9F 63 79 32 0A B6 77 44 8A E7 16 AC C1 82 8A 14 73 1E 56 B6 EF 53",
  "crmid": "",
  "refid": ""
}]

Получение компонента продукта по идентификатору

Авторизация требуется.  Входных параметров нет.

GET /v1.0/products/{id}/features/{fid}

Возвращает элемент feature включая лицензионные условия по умолчанию:

{
  "feature": {
  "_id": 10033,
  "defaultLicense": {
    "canexclude": true,
    "canmodify": true,
    "consumptionmode": 0,

    "flags": 0,
    "netlicensescount": 5,
    "rentbegindate": 0,
    "rentdayscount": 10,
    "rentenddate": 0,
    "runcounter": 0,
    "licensingmodel": 4,
    "isremote": true
  },
"description": "Created by postMan",
"featurenumber": 5,
"name": "PostMan",
"pubkey":"F9 E5 EC 6B 52 54 BC 80 45 7D 49 BB F0 61 F9 F2 EC AA 9F 63 79 32 0A B6 77 44 8A E7 16 AC C1 82 8A 14 73 1E 56 B6 EF 53",
"crmid": "",
"refid": ""
}
}

Создание пользовательской схемы привязки

Авторизация требуется.  Входные параметры RAW JSON:

{
	"name":"myscheme3",
	"maxChangeNumber": 3,
	"cpuBinding": true,
	"canReplaceCpu": true,
	"hddBinding": true,
	"canReplaceHdd": true,
	"dvdBinding": true,
	"canReplaceDvd": true,
	"osBinding": true,
	"canReplaceOs": true,
	"mbBinding": true,
	"canReplaceMb": false,
	"macBinding": false,
	"canReplaceMac": false
}

POST /v1.0/customhardwarebindings

Возвращает элемент custombinding:

{
    "custombinding": {
        "_id": 3,
        "bindmask": {
            "CAN_REPLACE_CPU": true,
            "CAN_REPLACE_DVD": true,
            "CAN_REPLACE_HDD": true,
            "CAN_REPLACE_MAC": false,
            "CAN_REPLACE_MOTHERBOARD": false,
            "CAN_REPLACE_OS": true,
            "CPU": true,
            "DVD": true,
            "HDD": true,
            "MAC": false,
            "MOTHERBOARD": true,
            "OS": true
        },
        "maxchangenumber": 3,
        "name": "myscheme3"
    }
}

Получение списка пользовательских привязок

Авторизация требуется. Входных параметров нет. 

GET /v1.0/customhardwarebindings

Возвращает массив custombindings:

{
    "custombindings": [
        {
            "_id": 1,
            "bindmask": {
                "CAN_REPLACE_CPU": true,
                "CAN_REPLACE_DVD": true,
                "CAN_REPLACE_HDD": true,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": true,
                "CPU": true,
                "DVD": true,
                "HDD": true,
                "MAC": false,
                "MOTHERBOARD": true,
                "OS": true
            },
            "maxchangenumber": 3,
            "name": "myscheme1"
        },
        {
            "_id": 2,
            "bindmask": {
                "CAN_REPLACE_CPU": true,
                "CAN_REPLACE_DVD": true,
                "CAN_REPLACE_HDD": true,
                "CAN_REPLACE_MAC": false,
                "CAN_REPLACE_MOTHERBOARD": false,
                "CAN_REPLACE_OS": true,
                "CPU": true,
                "DVD": true,
                "HDD": true,
                "MAC": false,
                "MOTHERBOARD": true,
                "OS": true
            },
            "maxchangenumber": 3,
            "name": "myscheme2"
        }
    ]
}

Получение значения следующего номера продукта (использовать при добавлении нового продукта)

Авторизация требуется.  Входных параметров нет.

GET /v1.0/getnextproductnumber

Возвращает:

{
    "nextproductnumber": 889
}

Добавление ячейки памяти к продукту

Авторизация требуется.  Входных параметров нет.

POST /v1.0/products/{id}/memoryitems/{mid}

Редактирование ячейки памяти в продукте

Авторизация требуется.  Входные параметры RAW JSON:

{
	"editAllowed": true,
	"data": "ZXWFlg=="
}

PUT /v1.0/products/{id}/memoryitems/{mid}/params/{paramid}

Возвращает элемент param:

{
    "param": {
        "_id": 3,
        "data": "ZXWFlg==",
        "description": "param1",
        "editallowed": true,
        "name": "param1",
        "offset": 20,
        "size": 10
    }
}

Удаление ячейки памяти из продукта

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/products/{id}/memoryitems/{mid}

  • No labels