License Models

>What Is a License Model?

>Prerequisites for Copying a License Model

>License Model Status

>Associating a License Model with a Feature

>Copying a License Model

>Dynamic Substitution of License Model Attributes

>Actions for License Models

>Sentinel LDK Enforcement - License Models

New to Sentinel EMS?
See How to Use Sentinel EMS?

What Is a License Model?

A license model is a combination of various attributes that define how and when a product is sold to an end user. Each license model defines the conditions that control the use of a feature in a product. Sentinel EMS provides you with the flexibility to associate multiple license models with the features in your products, so that you can secure the products and generate different types of licenses according to your requirements.

License models use attributes to define how hardware, software applications, or services are deployed. License models map these license attributes into logical groups known as attribute groups.

You apply license models by associating them with features. You can use existing license models, or you can create your own license models by copying existing license models and changing their attributes. Each license model includes:

>Enforcement Technology: Sentinel LDK.

>Attributes: The actual license model definitions including the name, data type, possible range, and other values. License model attributes define how hardware, software applications, or services are deployed.

>Attribute Groups: A collection of license model attributes.

Sentinel EMS is fully integrated with Sentinel LDK and is also designed to support other licensing systems. For a detailed list of license models supported in Sentinel EMS, their attributes, default values, and other details, see:

>Sentinel LDK Enforcement - License Models

Prerequisites for Copying a License Model

To create a new license model, you copy an existing license model and modify its attributes. You need:

> A role that includes the Add permission (at minimum) for:

License Model Management

The relevant namespace under Catalog (Namespace). (You cannot move license models from one namespace to another.)

For details, see Roles.

>A predefined license model that you can copy.

License Model Status

The Status attribute for a license model can be one of the following:

>Enabled: The license model can be included in features.

>Disabled: The license model cannot be included in features.

Associating a License Model with a Feature

You can associate license models with features while:

> creating products. For details, see Associate Features.

>defining entitlements. For details, see Creating Entitlements.

Copying a License Model

After you copy an existing license model, you must modify at least one of its attributes to create a new license model.

To create a new license model:

1.From the navigation pane, select Catalog > License Models. The License Models page displays the available license models that you can use to create a new license model. The existing license models provide a fixed set of attributes.

2.Scroll to the license model that you want to copy and, in the Actions column, click the Copy button Copy button. The Copy License Model page appears.

3. In the Copy License Model page, enter the license model Name and Description. For more information on these attributes, see Common License Model Attributes.

4.Click to expand the attribute groups and edit the values of the license model attributes as required. The available attribute groups are dependent on the license model.

5.Click Save.

Common License Model Attributes

The following table explains the common attributes that are used to define every license model.

Attribute Description Required/Optional Valid Values
Name Name of the new license model. Required

>1 to 255 characters

>Alphanumeric

Enforcement Type The enforcement type and version, for example Sentinel LDK 10.x. Required Read-only
Description Additional information about the license model. Optional

>0 to 500 characters

>Alphanumeric

For descriptions of license-model-specific attributes, see the relevant section in:

>Sentinel LDK Enforcement - License Models

Dynamic Substitution of License Model Attributes

You can dynamically modify some string-type license model attributes that are used when activating a license by using dynamic expressions. A dynamic expression is information that changes using dynamic substitution and can be customized as required.

Dynamic expressions help software vendors add business critical payload to their licenses with just a few clicks without having to involve Thales Professional Services. Using dynamic expressions also eliminates the need for custom payload implementations. Vendor users with appropriate permissions can add dynamic information to licensing attributes of a license model. This information is added to licensing attributes of a license model.

Some important points about dynamic expressions are as follows:

>A dynamic expression comprises variables whose values change. You can customize dynamic expressions as required.

>Dynamic expressions are evaluated at the time of activation to generate the license strings.

>The JSON response of the Sentinel EMS REST APIs is used to build a dynamic expression.

>A dynamic expression can be specified only for the following string-type license attributes:

Custom Info

>Dynamic substitution does not support traversing arrays, which means substitutions for lists in response JSONs cannot be performed. The only exception to this rule is custom attributes.

>Dynamic substitution expressions must not contain whitespace characters, such as spaces and newline characters.

Dynamic Expression Syntax

You can use the JSON response of the provisioning endpoints in the Sentinel EMS REST APIs to build a dynamic expression. Dynamic expressions are similar to variables that are assigned as a value of a licensing attribute. Dynamic expressions are evaluated during activation to generate the. The expression is enclosed in curly brackets and preceded by the $ symbol. The value on the left side of the = symbol is the license attribute to which the value of the dynamic expression is assigned. For example:

${name}

In the example above, the computed value of ${name} will be assigned to the license attribute.



Within the curly brackets, you can enclose the dynamic expression in parentheses followed by an ! symbol. This ensures that a null pointer exception is not thrown if the value for the variable is not found. For example:

${(name)!}

In the above example, if ${name} does not have a value, the use of ! (as shown in the syntax) ensures that an error is not thrown. Another example—if an entitlement does not have a customer, using ${(data.entitlement.customer.name)!} prevents an error during activation.


The JSON response of the Sentinel EMS REST APIs is stored in the data object. With the knowledge of Sentinel EMS REST API JSON response structures, the data object can be referenced to create dynamic expressions. For example:

${(data.entitlement.eId)!} 

In the example above, the dynamic expression is evaluated to display the value of the entitlement ID in an entitlement.

You can include market group information for an entity using the following:

${(data.marketGroup.name)!}  

 

The following table displays some examples for building dynamic expressions:

Dynamic Expression Details

${data.entitlement.externalId}

Evaluate the value inside an object node.

${data.entitlement.customer.id}

Evaluate the value inside an object node nested within another object node.

${(attributeValue("ATTRIBUTE_NAME", data.feature.customAttributes.customAttribute))}

Evaluate the value of a custom attribute by name.

${data.feature.nameVersion.version}|
${data.feature.identifier}|${data.feature.refId2}

Combination of dynamic expressions. You create these combinations by concatenating two or more of any of the examples specified above. Separators (; | , ) can also be used to combine dynamic expressions.

Dynamic Expressions Are Case-Sensitive

To ensure correct evaluation, the letter casing of data objects used in dynamic expressions must be exactly the same as specified in the REST API JSON response.

Incorrect: ${data.Customer.Name}

Correct: ${data.customer.name}

Object Nodes

Object nodes are entity-specific data objects in Sentinel EMS REST APIs that you can use to retrieve information to build your dynamic expression. Some data objects that you can use are:

>feature: The object node that contains information about features and their license models.

>product: The object node that contains information about products, which contain information about features and their associated license models.

>productSuite: The object node that contains information about product suites (which contain product information).

>productKey: The object node for the line item that is being activated.

>customer: The object node that contains information about the customer.

>entitlement: The object node that contains information about entitlements.

>activation: The object node that contains activation details.

You cannot use the following Sentinel EMS REST API data objects to build dynamic expressions:

>Channel partner lists in entitlements

>Downloads

Handling XML Control Characters in Custom Info

If the evaluated value of the Custom Info license model attribute includes XML content, the response of the Sentinel EMS REST APIs and the Sentinel Keys page displays escape character sequences for the XML control characters &, <, and > in the attribute value.

Actions for License Models

The following table lists the actions available for license models:

Action Description
Copy button Copy Duplicates an existing license model, enabling you to edit the copy and create a new license model. For more information, see Copying a License Model.
Edit button Edit

Updates information for an existing license model.

Note:

>Only vendor users with appropriate permissions can modify license model details. For information, see Roles.

>You can modify the name, description, and attribute list of a license model.

> You can modify a license model only if it is not included in any product or not set as the default license model if included in a product. 

Delete button

Delete

Deletes a license model. You can delete a license model only if it is not associated with any feature.

Disable button

Enable button

Disable

Enable

Disables or enables a license model.

Note:

>You can disable or enable license models irrespective of the deployment status of the feature in which they are used.

>Disabled license models are not available for new features.