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.
<5.5Preview>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 RMS Enforcement - License Models
License Model Status
A license model can be enabled or disabled. Only enabled license models are available for use. The Status of a license model can be:
>Enabled: License model is available for inclusion in features.
>Disabled: License model is disabled and is not available for inclusion in features.
Associating a License Model with a Feature <5.5Preview>
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.
Prerequisites for Copying a License Model
To create a new license model, you copy an existing license model and modify its attributes. Following are the prerequisites for copying a license model:
>Catalog permissions to copy a license model.
>A predefined license model.
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 Add License Model page appears.
3. In the Add 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.
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
Dynamic Substitution of License Model Attributes
You can now dynamically modify string-type license model attributes that are used when activating a license by implementing dynamic substitution. This helps software vendors add business critical payload to their licenses with just a few clicks without having to involve Thales Professional Services. This also eliminates the need for custom payload implementations. Users with appropriate permissions can add dynamic information to licensing attributes of a license model. A dynamic expression is information that changes and can be customized as required. This information is added to licensing attributes of a license model.
Some important points about a dynamic expression are as follows:
>Dynamic expressions are evaluated at the time of activation to generate the license strings.
>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.
>A dynamic expression is the information that changes and can be customized as required.
>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 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. The dynamic expression is evaluated during activation to generate the license string. 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, 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 lists some examples of how to build 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 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 a dynamic expression 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 licence models.
>productKey: The object node for the line item that is being activated.
>product: The object node that contains information about products, which contain feature information and subsequently license models.
> productSuite: The object node that contains information about product suites* (which contain product information).
>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 have certain 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 | ||||
---|---|---|---|---|---|
|
Copies the information of an existing license model to create a new one that you can modify. For information, see Copying a License Model. | ||||
|
Updates information for an existing license model. Note: >Only 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. |
||||
|
Deletes a license model. You can delete a license model only if it is not associated with any feature. |
||||
|
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. |