Define Products
You can define new products by mixing and matching features. For this tutorial, you will define a product with the name Printer-Scanner that will include two features, Print and Scan, created earlier. You will use these products in an entitlement later.
NOTE In Sentinel LDK, in addition to features, you can also associate memory files with a product. Association of both features and memory files is optional for Sentinel LDK products. For the purpose of this guide, you will associate the TestFile memory file (created earlier) with the product.
You can create products by using the following API endpoint:
POST /ems/api/v5/products
Set the following parameters in the input:
Element |
Value |
Meaning |
---|---|---|
Namespace | ||
name |
|
Name of the namespace (created earlier) to which the feature belongs. NOTE for Sentinel LDK Change the namespace |
Product | ||
name |
|
Name of the product. |
version |
|
Version of the product. |
state |
|
Represents active products. In this state, you can create entitlements for the product. NOTE Only products in the ENABLE state can be included in an entitlement. |
Associated Features | ||
name |
|
Name of the features associated with the product. |
version | Version of the features associated with the product. |
NOTE for Sentinel LDK
You also need to add additional objects, isLDKEnforcement
and extnLDK
, for Sentinel LDK. You can also include parameters related to the memory file if you want to associate a memory file with the product.
Sample Input
Use the following JSON sample to create a product, Printer-Scanner:
{
"product": {
"namespace": {
"name": "Zone-A"
},
"nameVersion": {
"name": "Printer-Scanner",
"version": "1"
},
"state": "ENABLE",
"productFeatures": {
"productFeature": [
{
"feature": {
"nameVersion": {
"name": "Print",
"version": ""
}
}
},
{
"feature": {
"nameVersion": {
"name": "Scan",
"version": ""
}
}
}
]
}
}
}
If you are creating a Sentinel LDK product, you also need to set or modify the following input parameters :
>Change the namespace name
to the vendor-specific batch code.
>Set isLDKEnforcement
to true
.
>Include the extnLDK
object.
>To associate the TestFile memory file (created earlier) with the product:
•In the extnLDK
> prdMemoryReferences
object, add the memoryFile
object.
•Set filename
to TestFile
.
Example
{ "product": { "namespace": { "name": "DEMOMA" }, "extnLDK": { "prdMemoryReferences": { "memoryFile": [ { "fileName": "TestFile" } ] } }, "nameVersion": { "name": "Printer-Scanner", "version": "1" }, "state": "ENABLE", "isLDKEnforcement": true, "productFeatures": { "productFeature": [ { "feature": { "nameVersion": { "name": "Print" } } } ] } } }
Sample Response (Success)
Response Body
{
"product": {
"namespace": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Zone-A"
},
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"externalId": "",
"nameVersion": {
"name": "Printer-Scanner",
"version": "1"
},
"deployed": "false",
"description": "",
"state": "ENABLE",
"refId1": "",
"refId2": "",
"family": {
"familyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"familyName": "Default"
},
"activationMethod": "SAOT",
"productType": "DEFAULT",
"fixedQuantity": "0",
"productAttributes": "",
"productFeatures": {
"productFeature": [
{
"feature": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"externalId": "",
"identifier": "",
"nameVersion": {
"name": "Print",
"version": ""
}
},
"state": "Optional_DefaultOn",
"defaultLicenseModel": {
"enforcement": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Sentinel RMS",
"version": "9.2"
},
"licenseModel": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Trial Standalone"
},
"isFixed": "false"
}
},
{
"feature": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"externalId": "",
"identifier": "",
"nameVersion": {
"name": "Scan",
"version": ""
}
},
"state": "Optional_DefaultOn",
"defaultLicenseModel": {
"enforcement": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Sentinel RMS",
"version": "9.2"
},
"licenseModel": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Trial Standalone"
},
"isFixed": "false"
}
}
]
}
}
}
NOTE For Sentinel LDK, the response object contains different parameters and values. Refer to NOTE for Sentinel LDK for more information.
HTTPS Status Code
201 (Created)
Response Header
The auto-generated unique identifier (id) of the new product is returned in the response header. For example:
location: /api/v5/products/a5e8c301-3990-4592-9f80-c77003c3078d