Edit Product Properties

Edit the properties of a product. Consider the following points before editing:

>If a product is in 'Draft' mode, you can edit product properties such as Product Name, Ref IDs, Product ID, and Description.

>If a product is in 'Commit' mode, you can edit properties such as Product Name, Ref IDs, and Description only.

Method Type URI
POST v90/ws/product/{productId}.ws

URI Parameters

Parameter Description Type
productId Identifier of the Product as stored in the database. Integer

Sample Request

See Sample XML for Product Web Services. The XML element names are self-explanatory. However, some of the important elements are as follows:

NOTE   The XML must comply with the schema provided for Product. (See XSD for Product Web Services.)

XML Elements Description Type
baseProductId

(Required) The Product ID.

> For Modification and Cancellation Products, provide the productID of the Base Product.

>For Base Products, set the value to 0 or remove this tag.

String
productIdentifier If you remove the tag from the XML, the system automatically generates a unique Product ID. To apply a specific ID, enter a value greater than 1. Integer
enforcementProductType

(Required) The Product type.

Valid values: BASE, MODIFICATION, or CANCELLATION

String
enforcementProtectionType

(Required) The locking type for the Product based on the type of protection key to be distributed and the required level of security and functionality:

Valid values:

>HL for Sentinel HL keys only.

>SL_AdminMode for Sentinel SL AdminMode keys only.

>SL_UserMode for Sentinel SL UserMode keys only.

>HL_or_SL_AdminMode for either Sentinel HL keys or Sentinel SL AdminMode keys.

>HL_or_SL_AdminMode_or_SL_UserMode for Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.

String
lifeCycleStage

(Required) The status of the product. Valid values:

>DRAFT: The Product has been defined but has not yet been included in an Entitlement. It can be edited or deleted.

>COMMIT: The Product has been included in at least one Entitlement. It is not possible to edit or delete the Product. In the Sentinel LDK-EMS GUI, this status is listed as "Complete".

>EOL: End of Life. The Product is no longer available for Entitlements. The Product details are maintained for tracking purposes.

 
lmAttribute

License model attribute. You can retrieve the definition using Retrieve License Model by ID.

Set only the following values. All other values are predefined and must not be changed.

> attributeValue. The value depends on the license model definition.
Example: If you want to enable remote desktop access (<attributeId>8</attributeId>), set attributeValue to TRUE.

Note: If you want to specify unlimited concurrency for concurrent instances (<attributeId>6</attributeId>), set attributeValue to 10000000.

>SAOT. Specifies whether the element should be set during Entitlement generation (instead of when creating the Product). You can apply a SAOT value only to:

LICENSE_TYPE

EXECUTION_COUNT

EXPIRATION_DATE

TIME_PERIOD

CONCURRENT_INSTANCES

Valid values: TRUE/FALSE

Example:

<lmAttribute>
    <attribute>
      <attributeId>6</attributeId>
      <attributeName>CONCURRENT_INSTANCES</attributeName>
      <attributeType>6</attributeType>
      <attributeDefaultValue></attributeDefaultValue>
      <displayOrder>6</displayOrder>
      <attributeLevel>1</attributeLevel>
      <associatedLockCriteria></associatedLockCriteria>
      <associatedLockCriteriaValue></associatedLockCriteriaValue>
      <endUserPermission>0</endUserPermission>
      <parameterGroupName>Concurrency</parameterGroupName>
      <parameterSubGroupName></parameterSubGroupName>
      <isvPermission>WRITE</isvPermission>
      <nullable>false</nullable>
      <saotAllowed>true</saotAllowed>
    </attribute>
    <attributeValue>10000000</attributeValue>
    <saot>true</saot>
  </lmAttribute>
 
memorySegment

(Optional) Memory data for the product. Contains the following elements:

>name—Name of the memory segment.

>description—Description for the memory segment.

>text—Specified as BASE 16 (hexadecimal) encoded string.

>size—Size of the segment in bytes.

>offset—Starting point of the memory segment (Always provide this value in hexadecimal format).

>SAOT—Whether the memory data should be specified during Entitlement generation. Valid values: TRUE/FALSE

>memoryType—Read-write (1) or Read-only (2).

Example of memory segment in a product XML:

<memorySegment> 
        <name></name> 
        <description></description> 
        <text>6362626366</text> 
        <size>5</size> 
        <offset>0x0000</offset> 
        <color>#8b008b</color> 
        <saot>true</saot> 
        <memoryType> 
         <id>1</id> 
        </memoryType> 
</memorySegment>
 
dynamicMemory

(Optional) You add dynamic memory files to products using Sentinel LDK-EMS—not via this web service. For details, see Sentinel LDK-EMS User Guide.

Dynamic memory files contain the following elements:

>name—Dynamic memory file name.

>description—File description for dynamic memory.

>offset—Starting point of the dynamic memory segment (Always provide this value in hexadecimal format).

>size—Size of the segment in bytes.

>content—Specified as BASE 16 (hexadecimal) encoded string.

>SAOT—Whether the memory data can be specified during Entitlement generation. Valid values: TRUE/FALSE

Example of a dynamic memory file in a product XML after it was added using Sentinel LDK-EMS:

<dynamicMemoriesRef>
    <dynamicMemory>
        <memoryId>90</memoryId>
        <memories>
            <memorySegment>
                <name>seg1</name>
                <description></description>
                <offset>0x0001</offset>
                <size>1</size>
                <content>00</content>
                <color>#32206f</color>
                <saot>true</saot>
            </memorySegment>
        </memories>
    </dynamicMemory>
</dynamicMemoriesRef>
 
enforcementId

(Optional) The enforcement technology, Sentinel LDK.

Valid value: 1

Integer
upgradeToDriverless (Optional) Enable to upgrade from Sentinel HL keys to HID keys. Boolean
cloneProtection

(Optional) For Sentinel SL locking type, specify if protection against machine cloning is enabled. (Software that is protected by a Sentinel HL key is not vulnerable to machine cloning.)

Valid values:

True: (Enabled) The physicalMachineType and virtualMachineType tags will be used.

False: (Disabled) The physicalMachineType and virtualMachineType tags will not be used.

Boolean
physicalMachineType

(Optional) For the Sentinel SL locking type, specify the scheme to protect against the cloning of physical machines. For more details about the valid values listed below, see Sentinel LDK Software Protection and Licensing Guide.

Valid values:

>PlatformDefault: The platform default clone protection scheme is chosen on the basis of the C2V file provided. For desktop operating systems, the platform-default clone protection scheme is PMType1.

>Disabled: Protection against the cloning of physical machines will be disabled.

>PMType1: This scheme uses the hard drive serial number and motherboard ID to verify fingerprints.

>PMType2: This scheme uses various components, such as CPU, ethernet card, optical drive, and PCI card slot peripherals, along with the hard drive serial number and motherboard ID to verify fingerprints.

This scheme provides enhanced reliability against false positive clone detection and maintains the inherent security of the scheme.

>PMType3: Intended for Android, this scheme verifies fingerprints using the CPU model, CPU serial number, and internal storage serial number.

Available for: SL UserMode

>PMType4: Intended for Android, this scheme verifies fingerprints using the CPU model, CPU serial number, internal storage serial number, Android serial number, and Android Firstboot.

In addition, this scheme allows users to reinstall licenses on Android without the need for reactivation if features are licensed using Perpetual or Expiration Date licenses.

Available for: SL UserMode

>FQDN: This scheme uses only the machine’s FQDN (Fully Qualified Domain Name) to verify fingerprints.

>Your own, pre-existing, custom clone protection scheme. You can create a custom clone protection scheme in Sentinel LDK-EMS. For details, see Sentinel LDK-EMS User Guide.

String
virtualMachineType

(Optional) For the Sentinel SL locking type, specify the scheme to protect against the cloning of virtual machines. For more details about the valid values listed below, see Sentinel LDK Software Protection and Licensing Guide.

Valid values:

>PlatformDefault: The platform default clone protection scheme will be chosen on the basis of the C2V file provided. For desktop operating systems, the platform-default clone protection scheme is VMType1.

>Disabled: Protection against the cloning of physical machines will be disabled.

>VMType1: This scheme uses Virtual MAC address, CPU characteristics, and UUID to verify fingerprints.

>VMType2: This scheme provides VMType1 clone protection and accesses the VM Generation ID (if available) to avoid a snapshot restore attack by preventing the VM from returning to an earlier point in time.

Available for: SL AdminMode

Supported operating systems: Supported Windows versions with the supported versions of the following virtual machines:

VMware Player, Workstation, and ESXi.

Hyper-V Server

>VMType3: This scheme ensures that a protected application in a virtualized server environment cannot be used if the license is copied from one virtual machine to another.

Available for:

SL-AdminMode and SL-UserMode on Windows

SL-AdminMode on Linux

Supported virtualization platform: Microsoft Azure

>VMType4: This scheme provides protection similar to VMType1 and verifies the hard drive serial number. For more details, see the section on clone detection for virtual Sentinel LDK Software Protection and Licensing Guide.

Intended for: Docker containers. (Also compatible with other virtual machines.) For details on protecting applications in Docker Containers, see the appendix in the Sentinel LDK Software Protection and Licensing Guide.

>FQDN: This scheme uses the machine’s FQDN to verify fingerprints. This scheme provides increased reliability and provides flexibility of operation in a server virtualization environment.

>Your own, pre-existing, custom clone protection scheme. You can create a custom clone protection scheme in Sentinel LDK-EMS. For details, see Sentinel LDK-EMS User Guide.

String
useVclock

(Optional) Enables to manage time-based licenses for Sentinel HL (Driverless Configuration) keys where no real-time clock is available. A virtual clock will be maintained in such keys.

Boolean

NOTE    

>For Products with SAOT (Specify At Order Time) license terms, only SET is allowed in the actionName tag (within the productFeatureRef tag). If you provide NONE for this tag, it will be changed to SET.

>For Modification Products:

If SET is specified in the actionName tag (within the ProductFeatureLicenseModel tag), the created modification products will set the Concurrency value.

If NONE action is specified in the actionName tag (within the ProductFeatureLicenseModel tag), the created modification products will add the Concurrency value.

Sample Response

Success

HTTP Status Code: 200

Response Body:

<product>
  <productName>updateProductWSxcvb :25</productName>
  <baseProductId>0</baseProductId>
  <productIdentifier>0</productIdentifier>
  <enforcementProductType>BASE</enforcementProductType>
  <enforcementProtectionType>HL</enforcementProtectionType>
  <productDescription>Demo test</productDescription>
  <refId1></refId1>
  <refId2></refId2>
  <productFeatureRefs>
    <productFeatureRef>
      <actionName>NONE</actionName>
      <featureId>1</featureId>
      <productFeatureLicenseModel>
        <actionName>NONE</actionName>
        <licenseModel>
          <lmAttributes>
            <lmAttribute>
              <attribute>
                <attributeId>9</attributeId>
                <attributeName>NETWORK_ENABLED</attributeName>
                <associatedLockCriteria></associatedLockCriteria>
                <associatedLockCriteriaValue></associatedLockCriteriaValue>
                <attributeType>4</attributeType>
                <attributeDefaultValue></attributeDefaultValue>
                <displayOrder>9</displayOrder>
                <endUserPermission>0</endUserPermission>
                <associatedAttributeMaster></associatedAttributeMaster>
                <sameAttributeMaster></sameAttributeMaster>
                <sameAttributePriority>0</sameAttributePriority>
                <parameterGroupName>Accessibility</parameterGroupName>
                <parameterSubGroupName></parameterSubGroupName>
                <isvPermission>WRITE</isvPermission>
                <nullable>false</nullable>
                <saotAllowed>false</saotAllowed>
              </attribute>
              <attributeValue>TRUE</attributeValue>
              <saot>false</saot>
            </lmAttribute>
            <lmAttribute>
              <attribute>
                <attributeId>6</attributeId>
                <attributeName>CONCURRENT_INSTANCES</attributeName>
                <associatedLockCriteria></associatedLockCriteria>
                <associatedLockCriteriaValue></associatedLockCriteriaValue>
                <attributeType>6</attributeType>
                <attributeDefaultValue></attributeDefaultValue>
                <displayOrder>6</displayOrder>
                <endUserPermission>0</endUserPermission>
                <associatedAttributeMaster></associatedAttributeMaster>
                <sameAttributeMaster></sameAttributeMaster>
                <sameAttributePriority>0</sameAttributePriority>
                <parameterGroupName>Concurrency</parameterGroupName>
                <parameterSubGroupName></parameterSubGroupName>
                <isvPermission>WRITE</isvPermission>
                <nullable>false</nullable>
                <saotAllowed>true</saotAllowed>
              </attribute>
              <attributeValue>10000000</attributeValue>
              <saot>false</saot>
            </lmAttribute>
           </lmAttributes>
        </licenseModel>
      </productFeatureLicenseModel>
      <lmStatus>2</lmStatus>
      <status>0</status>
    </productFeatureRef>
  </productFeatureRefs>
</product>

Failure

HTTP Status Code: 404

Response Body: Cannot find a product corresponding to 345345.