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

Zone-A for Sentinel RMS

Name of the namespace (created earlier) to which the feature belongs.

NOTE for Sentinel LDK

Change the namespace name to the vendor-specific batch code.

Product    

name

Printer-Scanner

Name of the product.

version

1

Version of the product.

state

ENABLE

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.
You can either create the product as ENABLE, or create it as DRAFT and ENABLE later.

Associated Features    
name

Print and

Scan

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": ""
            }
          }
        }
      ]
    }
  }
}

NOTE for Sentinel LDK

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