License Models
What Is a License Model?
A license model is a combination of various attributes that define how and when a product
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:
>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 RMS Enforcement - License Models
> 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 an entity 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 features. For details, see License Models.
> 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.
Important
The following are the points to remember while copying a license model:
>Duplicate license models cannot be created for Sentinel EMS.
> Special characters (/ \ $ ! @ # *) and internationalized characters (such as Japanese, German, Chinese font set) are not supported for cloud-served licenses.
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. 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.
You can add dynamic information to string-type license model attributes that are used when activating a license by implementing dynamic substitution. You can also select the Base64 encode option to encode the dynamic expression in Base64 format. See Dynamic Substitution of License Model Attributes for more information.
NOTE
> For all trial license models, only the value of one of the fields, Trial Duration Hours or Trial Duration Days (under Limits), can be set to "No Limit".
> Trial Duration Days cannot be updated for an entitlement that is marked as completed.
> If your Sentinel EMS instance and the license model that you are copying both include support for specifying a unique license file name for a license model, you can specify it here. The source license model must have been created using the Sentinel EMS REST API Guide.
> You can optionally add support for specifying a unique license file name for a license model. You do this by first creating the license model using the Sentinel EMS REST API. For details, see Sentinel EMS REST API Guide.
Learn how to define the license file name format for a specific 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 |
>Alphanumeric >1 to 255 characters |
Enforcement Type | The enforcement type and version, for example |
Required | Read-only |
Description | Additional information about the license model. | Optional |
>Alphanumeric >0 to 500 characters |
For descriptions of license-model-specific attributes, see the relevant section in:
> Sentinel RMS Enforcement - License Models
> Sentinel LDK Enforcement - License Models
> Sentinel Fit Enforcement - License Models
> Supported Services License Models
Dynamic Substitution of License Model Attributes
You can dynamically modify 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 created only for string-type license attributes.
>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.
>The Base64 encode option can be used to encode the dynamic expression in Base64 format.
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
${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 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)!} ensures 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}| |
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
>Fingerprints in entitlements
>Downloads
Character Substitution in Dynamic Expressions
When using a dynamic expression, an evaluated value may include non-supported characters. Using such characters in your dynamic expression may generate an error. Sentinel EMS provides RMS Substitution Key Value Pair and Fit Substitution Key Value Pair in Administration Console to handle character substitution. If the Base64 encode option is used then the RMS Substitution Key Value Pair and Fit Substitution Key Value Pair properties will be ignored. For more information on these properties, see Administration Console.
Actions for License Models
The following table lists the actions available for license models:
Action | Description | |
---|---|---|
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 |
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 |
Deletes a license model. You can delete a license model only if it is not associated with any feature. |
|
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. |