{"openapi":"3.0.1","tags":[{"name":"Entitlement"},{"name":"Activation"},{"name":"SaaS"},{"name":"Customer"},{"name":"Partner"},{"name":"Catalog"},{"name":"Provisioning"},{"name":"Download"},{"name":"Enforcement"},{"name":"ActivatedProducts"},{"name":"Keys"},{"name":"LDKLicense"},{"name":"CloudLM"},{"name":"Device"},{"name":"Report"},{"name":"Transaction"},{"name":"User"},{"name":"Configuration"}],"info":{"version":"7.0","title":"EMS-WSReference","description":"EMS REST API — OpenAPI 3.0.1\n\n**Spec Version:** 7.0.5 | **Last Updated:** 2026-06-30","x-spec-version":"7.0.5","x-last-updated":"2026-06-30","x-source":"swagger.json (Swagger 2.0)","contact":{"name":"API Support"}},"paths":{"/ems/api/v5/entitledFeatures":{"get":{"tags":["SaaS"],"summary":"Get Entitled Features","description":"**Note:** Available by default with the Services enforcement and can be enabled for feature flag management platform integrations.<br><br>An entitled feature represents a purchased commercial functionality delivered to the customer through a Sentinel EMS entitlement.<br><br>This endpoint returns a summary of entitled features for a customer. The response includes information about the associated product, available and remaining quantities, and the enabled or disabled status of the feature.<br><br>This endpoint is designed to read data more efficiently with minimal impact on Sentinel EMS, resulting in faster entitlement lookups (as compared to the \"Get Entitlement\" endpoint). The \"Get Entitled Features\" endpoint provides a simplified view of features available for the specific customer that is easier to read and handle for a client application, making the integration smoother.<br><br>This endpoint is also useful for software vendors who want to integrate feature flag management platforms with Sentinel EMS to control the access of commercial features delivered by entitlements to their customers. The delivery of entitled features in integration with feature flag platforms helps in feature-based monetization. Since the response of this endpoint is similar to the output that a feature flag management platform provides to a SaaS application, you can use it directly in a server or client application to enable various application capabilities for customers, depending on their entitled features.<br><br>To call this endpoint, it is mandatory to specify the customer identifier in the request and an API key (provided by Sentinel EMS) in the authorization header of the request. You can get the exact API endpoint along with the API key that you need to configure in your application from <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/AdminConsole_ServicesProperties.htm target=_blank>Sentinel EMS Administration Console</a> or using the <a href=?Configuration/getApplicationProperty target=_self>Get Application Property</a> API endpoint. Sentinel EMS authenticates requests from end-user applications using the API key.<br><br>For more details, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/entitledFeatures.htm target=_blank>Sentinel EMS User Guide</a>.","operationId":"searchEntitledFeature","parameters":[{"name":"customerIdentifier","in":"query","description":"Unique identifier of the customer for whom the data of entitled features is requested.","schema":{"type":"string"}},{"name":"customerExternalId","in":"query","description":"Unique external ID of the customer for whom the data of entitled features is requested. You must provide an exact value for a successful search.","schema":{"type":"string"}},{"name":"eId","in":"query","description":"EID of the entitlement containing the entitled feature. You must provide an exact value for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the entitled feature.<br>Note: Use this parameter for integration with feature flag platforms. For example, this parameters is mapped to <b>Key</b> in LaunchDarkly and <b>Split Name</b> in Split.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the entitled feature. You must provide an exact value for a successful search.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product containing the entitled feature. You must use productName and productVersion together to search an entitled feature.","schema":{"type":"string"}},{"name":"productVersion","in":"query","description":"Version of the product containing the entitled feature. You must use productName and productVersion together to search an entitled feature.","schema":{"type":"string"}},{"name":"productExternalId","in":"query","description":"External ID of the product containing the entitled feature.","schema":{"type":"string"}},{"name":"lastModifiedDate","in":"query","description":"Date when an entitled feature was last updated. This is GMT date in the YYYY-MM-DD HH:MM format. You can use the lastModifiedDate parameter to get the information of features that are updated on or after a given time. Note that when this parameter is set, the response contains features from enabled, disabled, and closed entitlements. Without this parameter, the response contains features from only the enabled entitlements.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"properties":{"startDate":{"description":"Start date of the product containing the entitled feature.","example":"2026-07-07 07:07","type":"string"},"endDate":{"description":"End date of the product containing the entitled feature.","example":"2026-07-07 07:07","type":"string"},"product":{"type":"string","description":"Name and version of the product containing the entitled feature.","example":"TestProduct 1.0"},"totalQuantity":{"type":"integer","description":"The total quantity of products purchased by the customer.","example":10},"availableQuantity":{"type":"integer","description":"The total quantity of products available for activation.","example":9},"consumedQuantity":{"type":"integer","description":"The total quantity of activated products.","example":1},"eId":{"type":"string","description":"EID of the entitlement that the product containing the entitled feature belongs to.","example":"1234567-abcd-1234-abcd-abcde123456"},"enabled":{"type":"boolean","description":"Indicates whether the entitled feature is enabled or not. The value of the enabled parameter is true only if the following conditions are met: <ul><li>The entitlement must be enabled. The value is false if the entitlement is disabled, closed, or expired.</li> <li>The product <b>(item in entitlement)</b> must be enabled. The value is false if the product is disabled, closed, or expired.</li> <li>The product <b>(item in entitlement)</b> quantity must be non-zero. The value is false if the quantity is zero.</li></ul>\n**Legacy Compatibility**: Returns string \"true\"/\"false\", not boolean type. This preserves backward compatibility with existing API consumers.","example":true},"lastModifiedDate":{"description":"Date when an entitled feature was last modified. This date is in GMT and in the YYYY-MM-DD HH:MM format. You can use the lastModified parameter to get the information of features that are updated on or after a given time. Note that when this parameter is set, the response contains features from enabled, disabled, and closed entitlements. Without this parameter, the response contains features from only the enabled entitlements.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entitled feature.","example":"TestFeature"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"APIKeyHeader":[]}]}},"/ems/api/v5/namespaces":{"post":{"tags":["Catalog"],"summary":"Add Namespace","description":"Add a new namespace. \nNamespace acts as a logical partition for your Sentinel EMS workspace.\n","operationId":"addNamespace","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace"],"properties":{"namespace":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestName"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"}},"nullable":true}},"type":"object"}}},"description":"Details of the namespace to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"namespace":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestName"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"externalId":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Namespace created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search Namespaces","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchNamespaces","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the namespace (Change For test ). You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the namespace.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the namespace as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the namespace.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.\n","schema":{"type":"string","enum":["DEPLOYED","DRAFT"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.\nValid values: name, description, refId1, refId2 and creationDate\n","schema":{"type":"string","enum":["name","description","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.\nValid values: name, description, refId1, refId2 and creationDate\n","schema":{"type":"string","enum":["name","description","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the namespace.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search namespaces.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search namespaces.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the namespace.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"namespaces":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"namespace":{"items":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements":{"post":{"tags":["Enforcement"],"summary":"Add Enforcement","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements.\n Add a new custom/third-party enforcement to Sentinel EMS.\n \n <br>The enforcement API endpoints allows you to manage custom or third-party enforcement data in Sentinel EMS. You use enforcement data to create license models in Sentinel EMS.\n \n <br> The enforcement data consists of set of enforcement attributes, such as start date, user limit, number of executions, locking code, and so on. You use enforcement attributes in license models to define license behavior.\n \n  <br> You can group similar set of enforcement attributes in an enforcement group, for example, set of policy attributes or set of locking attributes. You can define the order of an enforcement attribute in an enforcement group by using the displayOrder attribute.","operationId":"addEnforcement","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"customEnf","minimum":1,"maximum":20},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number","example":4}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","type":"number","example":4},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Details of the enforcement to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":"LDK"},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20},"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255}},"nullable":true},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","example":"4"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","example":"4"},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Enforcement created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Enforcement"],"summary":"Search Enforcements","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchEnforcements","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the enforcement. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the enforcement.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the enforcement that you want to search.","schema":{"type":"string"}},{"name":"version","in":"query","description":"Version of the enforcement.","schema":{"type":"string"}},{"name":"attributeName","in":"query","description":"Name of the enforcement attribute associated with the enforcement.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order.","schema":{"type":"string","enum":["name","version","identifier","creationDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in descending order.","schema":{"type":"string","enum":["name","version","identifier","creationDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search enforcements.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search enforcements.","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are:\n enforcementGroups, enforcementAttributes, licenseModels\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcements":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"enforcement":{"items":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":"LDK"},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20},"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255}},"nullable":true},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","example":"4"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","example":"4.1"},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":66},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"boolean","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"boolean","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"boolean","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"boolean","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements/{enforcementId}":{"get":{"tags":["Enforcement"],"summary":"Get Enforcement","description":"Retrieve a specific enforcement based on its unique identifier.","operationId":"getEnforcement","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":"LDK"},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","example":"4","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","example":"4","type":"string"},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"string","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Enforcement"],"summary":"Replace Enforcement","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \nUpdate an existing enforcement completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- If an enforcement attribute is not linked to any license model, you can update all its details.\n- If an enforcement attribute is linked to a license model but not associated with any product, you cannot update the following: dataType, noLimitValue, parentAttribute\n- If an enforcement attribute is linked to a license model and associated with a product, you cannot update the following: dataType, noLimitValue, parentAttribute, isvAccesslevel\n","operationId":"updateEnforcement","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"customEnf","minimum":1,"maximum":20},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number","example":4}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","type":"number","example":4},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Enforcement details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":"LDK"},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","example":"4"},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Enforcement"],"summary":"Update Enforcement","description":" \n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n**Note**:\n- If an enforcement attribute is not linked to any license model, you can update all its details.\n- If an enforcement attribute is linked to a license model but not associated with any product, you cannot update the following: dataType, noLimitValue, parentAttribute\n- If an enforcement attribute is linked to a license model and associated with a product, you cannot update the following: dataType, noLimitValue, parentAttribute, isvAccesslevel\n","operationId":"partialUpdateEnforcement","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"customEnf","minimum":1,"maximum":20},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number","example":4}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","type":"number","example":4},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Enforcement details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":"LDK"},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"TestName","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","example":"4"},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Enforcement"],"summary":"Delete Enforcement","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Delete an enforcement if it not associated with any license model.","operationId":"deleteEnforcement","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements/{enforcementId}/enforcementGroups":{"post":{"tags":["Enforcement"],"summary":"Add Enforcement Group","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Add a new enforcement group.\n An enforcement group is a combination of enforcement attributes.","operationId":"addEnforcementGroup","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"properties":{"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"Details of the enforcement group to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"properties":{"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"Enforcement created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements/{enforcementId}/enforcementGroups/{groupId}":{"get":{"tags":["Enforcement"],"summary":"Get Associated Enforcement Group","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \nRetrieve details of a specific enforcement group associated with an enforcement.","operationId":"getEnforcementGroupAssociation","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"path","name":"groupId","description":"Unique identifier of the enforcement group. Possible value is: \n - name (For example: name=CustEnforcementGroupName)","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["identifier","nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated, unique identifier of the enforcement.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"User-defined, unique identifier of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","minimum":1,"maximum":20,"example":1},"creationDate":{"description":"Creation date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the enforcement.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the enforcement. You can enter up to 255 characters. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.","example":"Custom Enforcement","minimum":1,"maximum":255},"version":{"type":"string","description":"Version of the enforcement. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","example":"1.0","minimum":1,"maximum":20}},"nullable":true},"description":{"type":"string","description":"Description of the enforcement. You can enter up to 510 characters.","example":"Custom Enforcement Description","minimum":0,"maximum":510},"bypassLicenseGeneration":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS can activate licenses for third-party enforcements when no license generator is available. \nDefault: false","type":"string","example":"false"},"evaluateFileNameAtUpdate":{"description":"(Applies only for custom or third-party enforcements) When set to true, Sentinel EMS reevaluates the license file name during an activation update, based on the template defined in the license model or the Administration Console. \nDefault: false","type":"string","example":"false"},"enforcementGroups":{"description":"List of enforcement groups associated with the enforcement.\n An enforcement group is a set of similar type of enforcement attributes, for example, a set of locking attributes or a set of policy attributes.","properties":{"enforcementGroup":{"description":"Details of an enforcement group.","items":{"required":["name","displayOrder"],"properties":{"name":{"description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string","example":"NETWORK","minimum":1,"maximum":255},"displayOrder":{"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number","example":4},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"enforcementAttributes":{"description":"List of enforcement attributes associated with an enforcement group.","properties":{"enforcementAttribute":{"description":"Details of an enforcement attribute.","items":{"required":["name","dataType","displayOrder","groupName"],"properties":{"name":{"description":"Unique name of the enforcement attribute. The value must not contain the “Sentinel” word, and any special characters except for underscores, hyphens, dots, and parentheses.\n \n**Note:** \n - The system allows creating a duplicate attribute name to maintain backward compatibility. However, we recommend keeping the unique names across all enforcements to avoid any unexpected behavior.\n - Do not create attributes with names that are used in any Sentinel enforcement (Sentinel LDK, Sentinel RMS, Sentinel Fit, and Services) even if any Sentinel enforcement is not available. For details of such reserved enforcement attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.\n - There are special attributes that you can add to an enforcement for a specific purpose, such as including dynamic expressions in a license file name. For details of special attributes, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/reservedAttributesNames.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","type":"string","example":"SHARING_CRITERIA","minimum":1,"maximum":200},"defaultValue":{"description":"Default value of the enforcement attribute. The default value depends on the data type of an enforcement attribute.","type":"string","example":"No Sharing"},"dataType":{"description":"Data type of the enforcement attribute. \n Possible values:\n \n - STRING: A valid string in the range of 1-1024 characters.\n - BOOLEAN: A Boolean parameter that you can set to either true or false.\n - NUMERIC: A valid integer with the value in the 1-2147483647 range.\n - INTEGER: A date value with timestamp. In this case, noLimitValue is set to 2500-12-31 00:00.\n - DOUBLE: A valid integer in the 1-2147483647 range. In this case, the noLimitValue is set to 2147483647, if not specified.\n - DATE: A valid date in the format YYYY-MM-DD.\n - LIST: An enumerated list where each of the list value options is a valid string.\n - NO_DATA_ALLOWED: The date-time attribute with no start date. Both defaultValue and noLimitValue are set to 1960-01-01 00:00.","type":"string","example":"LIST","minimum":1,"maximum":200,"enum":["STRING","DATE","NUMERIC","BOOLEAN","DOUBLE","INTEGER","LIST","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Set of list values. Applicable only when datatype is set to LIST.","properties":{"valueOption":{"description":"Allowed value options for a list-type enforcement attribute.\n The list option must be in the format '&lt;index&gt; - &lt;value&gt;', where &lt;index&gt; is an integer denoting the order of the list option and &lt;value&gt; is a string indicating the name of the list option. For example: 10 - Session, 11 - User. \nIf you do not provide any index, the default index starts from 0.\n The string must not contain any special characters except for underscores, hyphens, dots, and parentheses. \nThe default value of a list-type enforcement attribute must be any one of the list options.","items":{"type":"string"},"example":["No Sharing","Username based sharing","Hostname based","Xdisplay based","Application Specified"],"type":"array"}},"nullable":true},"displayOrder":{"description":"A decimal number that indicates the order of the enforcement attribute in an enforcement group. The digit before the decimal point represents the enforcement group and the digit after the decimal point represents the enforcement attribute.","type":"number","example":4},"isSharedAttribute":{"description":"Whether the attribute is shared. It is an obsolete parameter and not considered in an enforcement. It is retained to maintain backward compatibility. \nDefault: false","example":false,"type":"boolean"},"noLimitValue":{"description":"The value that defines &quot;no limit&quot; for an enforcement attribute. \n - For DOUBLE, set noLimitValue to a user-defined integer value. If not specified, noLimitValue is set to 2147483647 by default.\n - For INTEGER, noLimitValue is set to 2500-12-31 00.00.\n - For NO_DATA_ALLOWED,  noLimitValue is set to 1960-01-01 00:00.\n - For STRING, BOOLEAN, LIST, NUMERIC, and DATE, noLimitValue is not considered.","example":null,"type":"string"},"associatedAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"id":{"description":"Unique identifier of the enforcement attribute.","type":"string","example":"66"},"name":{"description":"Name of the enforcement attribute.","type":"string","example":"PRIMARY_1_INFO"}},"nullable":true},"groupName":{"description":"Name of the enforcement group to which the enforcement attribute belongs. You must specify same values in groupName and enforcementGroup parameters.","type":"string","example":"NETWORK"},"isvAccesslevel":{"description":"Defines if the enforcement attribute is visible, read-only, writable, or mandatory at various levels of licensing lifecycle - license model, feature, product, entitlement, and activation. The value at each level depends on the combination of consolidation levels. For more details, refer to the  <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'> Sentinel EMS REST API Guide</a>. Possible values at each level:\n - NONE: The attribute is not visible at the given level.\n- READ: The attribute is read-only at the given level.\n- WRITE: The attribute is writable at the given level.  \n- MANDATORY: The attribute is mandatory to set at the given level.\n \n <br/> Default : NONE","properties":{"licenseModelAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the license model level.\nThe licenseModelAccessLevel is valid for every consolidation level, so you can set the licenseModelAccessLevel to any of the allowed values. \nDefault: READ","type":"string","example":"READ","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Not Applicable. Since enforcement attributes do not appear at feature level, this value is ignored.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the product level.\nYou can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel:\n - Both productAccessLevel and entitlementItemAccessLevel are true \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement level. Not applicable for any combination of consolidation levels.\n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Determines if the enforcement attribute is visible, read-only, writable, or mandatory at the entitlement-product relationship level. You can set its value to any of the allowed values for the following combinations of the isvConsolidationlevel:\n - entitlementItemAccessLevel is true \n - Both productAccessLevel and entitlementItemAccessLevel are true \n - Not applicable when isvConsolidationlevel is false \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Determines the attribute property at the activation level. You can set its value to any of the allowed values only for the following combination of the isvConsolidationlevel: \n - Both entitlementItemAccessLevel and activationAccessLevel are true   \n\n Default: NONE","type":"string","example":"NONE","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"isvConsolidationlevel":{"description":"Defines if the attribute value can be aggregated at various levels of licensing lifecycle. **Note**: \tAll features in a product, entitlement, and activation must have similar set of enforcement attributes in all license models for the successful consolidation or aggregation. For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Content/accessLevels.htm' target='_blank'>Sentinel EMS REST API Guide</a>.","properties":{"productAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in a product. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"entitlementItemAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in line items of an entitlement. The enforcement attribute must be present in all the associated license models.","type":"string","example":false},"activationAccessLevel":{"description":"When set to true, the value of the enforcement attribute is aggregated across all features in an activation. The enforcement attribute must be present in all the associated license models.","type":"string","example":false}},"nullable":true},"subGroupName":{"description":"Name of the subgroup to which the enforcement attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"overwriteAllowed":{"description":"When set to true, enables license models to provide the option to override the value of attribute at the time of creating a product or creating an entitlement. Setting it to false does not enable license models to provide this option. \n Default: false","type":"boolean","example":false},"parentAttribute":{"description":"Used to define the parent-child relationship between enforcement attributes. This enforcement attribute acts as the parent for the enforcement attribute you are defining. The behavior and visibility of the child attribute depends on the parent attribute \n **An example from Sentinel RMS enforcement**: START_LICENSE_FROM_ACTIVATION_DATE is the parent attribute of the LICENSE_DURATION_IN_DAYS enforcement, START_DATE, and END_DATE attributes. When START_LICENSE_FROM_ACTIVATION_DATE is false, you need to define START_DATE and END_DATE, and when START_LICENSE_FROM_ACTIVATION_DATE is true, you need to define LICENSE_DURATION_IN_DAYS.","properties":{"name":{"description":"Name of the parent enforcement attribute.","type":"string","example":null},"values":{"description":"Value of the parent enforcement attribute.","type":"string","example":null}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"licenseModels":{"properties":{"licenseModel":{"description":"List of license models.","items":{"properties":{"id":{"description":"Unique identifier of the license model.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the license model.","type":"string","example":"Custom LM"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}}},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Enforcement"],"summary":"Replace Associated Enforcement Group","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Replace the already-associated enforcement groups in an enforcement with the given enforcement groups.\n","operationId":"updateEnforcementGroupsAssociation","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"path","name":"groupId","description":"Unique identifier of the enforcement group. Possible value is: \n - name (For example: name=CustEnforcementGroupName)","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"properties":{"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"Details of enforcement group to be updated in the enforcement."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"properties":{"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Enforcement"],"summary":"Update Associated Enforcement Group","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Associate a new enforcement group to the enforcement in addition to the existing enforcement groups.\n","operationId":"partialUpdateEnforcementGroupAssociation","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"path","name":"groupId","description":"Unique identifier of the enforcement group. Possible value is: \n - name (For example: name=CustEnforcementGroupName)","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["enforcement"],"properties":{"enforcement":{"properties":{"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"Details of enforcement group to be updated in the enforcement."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"properties":{"displayOrder":{"example":1,"description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"name":{"example":"CustEnforcementGroupName","description":"Name of the enforcement group. The value must not contain any special characters except for underscores, hyphens, dots, and parentheses.","type":"string"},"displayOrder":{"example":"1","description":"An integer that indicates the order of the enforcement group in a license model.","type":"number"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Enforcement"],"summary":"Delete Associated Enforcement Group","description":"\n**Note:** Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n Remove the association of an enforcement group with an enforcement. This is allowed only if the enforcement is not associated with any license model.","operationId":"deleteEnforcementGroupAssociation","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Custom Enforcement:1.0 )\n  - identifier (For example: identifier=customEnf) \n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"path","name":"groupId","description":"Unique identifier of the enforcement group. Possible value is: \n - name (For example: name=CustEnforcementGroupName)","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements/{enforcementId}/licenseModels":{"post":{"tags":["Catalog"],"summary":"Add License Model","operationId":"addLicenseModel","description":"Add a new license model. \nA license model defines the way in which a feature can be used and the restrictions on the feature.\n","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["licenseModel"],"properties":{"licenseModel":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}},"type":"object"}}},"description":"License model details to be added. \nNote: To specify ' No Start Date ' in a license model, set Start Date to 1960-01-01 00:00."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"enforcement":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"description":"Description of the license Model.","type":"string","example":"Test LM from Auto Checkout"},"licenseModelAttributes":{"properties":{"licenseModelAttribute":{"items":{"properties":{"enforcementAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"name":{"example":"LICENSE_VERSION","description":"Name of the enforcement attribute.","type":"string"},"dataType":{"description":"Data type of the enforcement attribute.","type":"string","example":"LIST","enum":["STRING","NUMERIC","DOUBLE","INTEGER","BOOLEAN","LIST","DATE","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Possible values of the enforcement attribute.","properties":{"valueOption":{"items":{"type":"string"},"example":["10 - RMS  8.0.0","11 - RMS  8.1.0 - 8.2.2","12 - RMS  8.2.3","13 - RMS  8.4.x","14 - RMS  8.5","15 - RMS  8.6","16 - RMS  9.0","17 - RMS  9.1","18 - RMS  9.2 - 9.3 - 9.4","19 - RMS  9.4.1","20 - RMS  9.5","7 - RMS  7.0 - 7.2","8 - RMS  7.3.0","9 - RMS  7.3.0.x"],"type":"array"}},"nullable":true},"displayOrder":{"description":"Order to display the license model attributes.","type":"number","example":1.1},"isSharedAttribute":{"description":"Whether the attribute is shared. \nDefault: false","type":"boolean","example":true},"associatedAttribute":{"description":"List of attributes associated with a license model.","properties":{"id":{"description":"Unique identifier of the attribute.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the attribute.","type":"string","example":"TestName"}},"nullable":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"POLICY"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object"},"value":{"description":"Value of the attribute.\n Note for Sentinel LDK: For unlimited concurrency, CONCURRENT_INSTANCES is set to 10000000.\n Note for Sentinel RMS: For Do Not Renew Automatically (Exception: Entitlement Updates), set the Lease Renewal Frequency (hours) attribute as 2147483647.","example":"18"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","example":false,"type":"boolean"},"modificationAction":{"description":"Whether an attribute value can be modified. Default: NONE\n  - NONE: Modification is not allowed.\n  - ADDSUB: Addition and subtraction are allowed for integer values.\n  - OVERWRITE: Overwrite is allowed for string values.\n","type":"string","enum":["NONE","ADDSUB","OVERWRITE"]},"endUserPermission":{"description":"Permissions owned by end users over the attribute. When activationAccessLevel is true, you must set the endUserPermission value in the associated license model to WRITE.\nDefault: NONE\n","type":"string","enum":["NONE","READ","WRITE"]},"isvAccesslevel":{"description":"Permissions owned by software vendors (ISVs) over the attribute, at various access levels (such as, activation, entitlement, product, feature, and license model).\nDefault: NONE\n","properties":{"licenseModelAccessLevel":{"description":"Attribute permission at the license model level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Attribute permission at the feature level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Attribute permission at the product level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Attribute permission at the entitlement level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Attribute permission at the entitlement-product relationship level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Attribute permission at the activation level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"nullable":{"description":"Whether the attribute can be set to null. Default: false","type":"boolean","example":false},"overwriteAllowed":{"description":"When set to false, the attribute value specified in a license model cannot be overridden at the time of creating a product or creating an entitlement. Setting it to true enables software vendors to override the attribute value when creating a product or an entitlement. \nDefault: false","type":"boolean","example":true},"regularExpression":{"description":"Valid values for the attribute in the form of a regular expression.\n","type":"string","example":".*"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"licenseModel":{"type":"object","properties":{"id":{"type":"string","example":""},"name":{"type":"string","example":""},"state":{"type":"string","example":"ENABLE"},"deployed":{"type":"boolean","example":false},"createdBy":{"type":"string","example":""},"creationDate":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"lastModifiedDate":{"type":"string","example":""},"description":{"type":"string","example":""},"licenseModelAttributes":{"type":"object","nullable":true},"customAttributes":{"type":"object","nullable":true}}}},"type":"object"}}},"description":"License model created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search License Models","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchLicenseModels","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Auto-generated unique identifier of the license model. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the license model.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the license model. Valid values are ENABLE or DISABLE.","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"description","in":"query","description":"Description of the license model.","schema":{"type":"string"}},{"name":"createdBy","in":"query","description":"Name of the user who created the license model.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search License Models.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search License Models.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the license model.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order. Possible values are name, description, state, and enforcement. Default: id\n","schema":{"type":"string","enum":["name","description","enforcement","state","deployed","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in descending order. Possible values are name, description, state, and enforcement. Default: id\n","schema":{"type":"string","enum":["name","description","enforcement","state","deployed","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Valid value is licenseModelAttributes.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseModels":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"licenseModel":{"items":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"description":"Description of the license Model.","type":"string","example":"Test LM from Auto Checkout"},"licenseModelAttributes":{"properties":{"licenseModelAttribute":{"items":{"properties":{"enforcementAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"name":{"example":"LICENSE_VERSION","description":"Name of the enforcement attribute.","type":"string"},"dataType":{"description":"Data type of the enforcement attribute.","type":"string","example":"LIST","enum":["STRING","NUMERIC","DOUBLE","INTEGER","BOOLEAN","LIST","DATE","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Possible values of the enforcement attribute.","properties":{"valueOption":{"items":{"type":"string"},"example":["10 - RMS  8.0.0","11 - RMS  8.1.0 - 8.2.2","12 - RMS  8.2.3","13 - RMS  8.4.x","14 - RMS  8.5","15 - RMS  8.6","16 - RMS  9.0","17 - RMS  9.1","18 - RMS  9.2 - 9.3 - 9.4","19 - RMS  9.4.1","20 - RMS  9.5","7 - RMS  7.0 - 7.2","8 - RMS  7.3.0","9 - RMS  7.3.0.x"],"type":"array"}},"nullable":true},"displayOrder":{"description":"Order to display the license model attributes.","type":"integer","example":1.1},"isSharedAttribute":{"description":"Whether the attribute is shared. \nDefault: false","type":"boolean","example":true},"associatedAttribute":{"description":"List of attributes associated with a license model.","properties":{"id":{"description":"Unique identifier of the attribute.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the attribute.","type":"string","example":"TestName"}},"nullable":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"POLICY"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"nullable":true},"value":{"description":"Value of the attribute.\n Note for Sentinel LDK: For unlimited concurrency, CONCURRENT_INSTANCES is set to 10000000.\n Note for Sentinel RMS: For Do Not Renew Automatically (Exception: Entitlement Updates), set the Lease Renewal Frequency (hours) attribute as 2147483647.","example":18},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","example":false,"type":"boolean"},"modificationAction":{"description":"Whether an attribute value can be modified. Default: NONE\n  - NONE: Modification is not allowed.\n  - ADDSUB: Addition and subtraction are allowed for integer values.\n  - OVERWRITE: Overwrite is allowed for string values.\n","type":"string","enum":["NONE","ADDSUB","OVERWRITE"]},"endUserPermission":{"description":"Permissions owned by end users over the attribute. When activationAccessLevel is true, you must set the endUserPermission value in the associated license model to WRITE.\nDefault: NONE\n","type":"string","enum":["NONE","READ","WRITE"]},"isvAccesslevel":{"description":"Permissions owned by software vendors (ISVs) over the attribute, at various access levels (such as, activation, entitlement, product, feature, and license model).\nDefault: NONE\n","properties":{"licenseModelAccessLevel":{"description":"Attribute permission at the license model level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Attribute permission at the feature level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Attribute permission at the product level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Attribute permission at the entitlement level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Attribute permission at the entitlement-product relationship level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Attribute permission at the activation level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"nullable":{"description":"Whether the attribute can be set to null. Default: false","type":"boolean","example":false},"overwriteAllowed":{"description":"When set to false, the attribute value specified in a license model cannot be overridden at the time of creating a product or creating an entitlement. Setting it to true enables software vendors to override the attribute value when creating a product or an entitlement. \nDefault: false","type":"boolean","example":true},"regularExpression":{"description":"Valid values for the attribute in the form of a regular expression.\n","type":"string","example":".*"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"deployed":{"type":"boolean","example":false}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/enforcements/{enforcementId}/licenseModels/{licenseModelId}":{"get":{"tags":["Catalog"],"summary":"Get License Model","description":"Retrieve a specific license model based on its unique identifier.","operationId":"getLicenseModel","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"name":"licenseModelId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - name (For example: name=TestLicenseModel)\n\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseModel":{"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license Model.","type":"string","example":"TestName"},"description":{"description":"Description of the license Model.","type":"string","example":"Test LM from Auto Checkout"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"licenseModelAttributes":{"properties":{"licenseModelAttribute":{"items":{"properties":{"enforcementAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"name":{"example":"LICENSE_VERSION","description":"Name of the enforcement attribute.","type":"string"},"dataType":{"description":"Data type of the enforcement attribute.","type":"string","example":"LIST","enum":["STRING","NUMERIC","DOUBLE","INTEGER","BOOLEAN","LIST","DATE","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Possible values of the enforcement attribute.","properties":{"valueOption":{"items":{"type":"string"},"example":["10 - RMS  8.0.0","11 - RMS  8.1.0 - 8.2.2","12 - RMS  8.2.3","13 - RMS  8.4.x","14 - RMS  8.5","15 - RMS  8.6","16 - RMS  9.0","17 - RMS  9.1","18 - RMS  9.2 - 9.3 - 9.4","19 - RMS  9.4.1","20 - RMS  9.5","7 - RMS  7.0 - 7.2","8 - RMS  7.3.0","9 - RMS  7.3.0.x"],"type":"array"}},"nullable":true},"displayOrder":{"description":"Order to display the license model attributes.","type":"number","example":1.1},"isSharedAttribute":{"description":"Whether the attribute is shared. \nDefault: false","type":"boolean","example":true},"associatedAttribute":{"description":"List of attributes associated with a license model.","properties":{"id":{"description":"Unique identifier of the attribute.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the attribute.","type":"string","example":"TestName"}},"nullable":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"POLICY"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object"},"value":{"description":"Value of the attribute.\n Note for Sentinel LDK: For unlimited concurrency, CONCURRENT_INSTANCES is set to 10000000.\n Note for Sentinel RMS: For Do Not Renew Automatically (Exception: Entitlement Updates), set the Lease Renewal Frequency (hours) attribute as 2147483647.","example":"18"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","example":false,"type":"boolean"},"modificationAction":{"description":"Whether an attribute value can be modified. Default: NONE\n  - NONE: Modification is not allowed.\n  - ADDSUB: Addition and subtraction are allowed for integer values.\n  - OVERWRITE: Overwrite is allowed for string values.\n","type":"string","enum":["NONE","ADDSUB","OVERWRITE"]},"endUserPermission":{"description":"Permissions owned by end users over the attribute. When activationAccessLevel is true, you must set the endUserPermission value in the associated license model to WRITE.\nDefault: NONE\n","type":"string","enum":["NONE","READ","WRITE"]},"isvAccesslevel":{"description":"Permissions owned by software vendors (ISVs) over the attribute, at various access levels (such as, activation, entitlement, product, feature, and license model).\nDefault: NONE\n","properties":{"licenseModelAccessLevel":{"description":"Attribute permission at the license model level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Attribute permission at the feature level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Attribute permission at the product level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Attribute permission at the entitlement level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Attribute permission at the entitlement-product relationship level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Attribute permission at the activation level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"nullable":{"description":"Whether the attribute can be set to null. Default: false","type":"boolean","example":false},"overwriteAllowed":{"description":"When set to false, the attribute value specified in a license model cannot be overridden at the time of creating a product or creating an entitlement. Setting it to true enables software vendors to override the attribute value when creating a product or an entitlement. \nDefault: false","type":"boolean","example":true},"regularExpression":{"description":"Valid values for the attribute in the form of a regular expression.\n","type":"string","example":".*"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"deployed":{"type":"boolean","example":false}},"required":["name"],"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace License Model","description":"Update an existing license model completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateLicenseMOdel","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"name":"licenseModelId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - name (For example: name=TestLicenseModel)\n\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["licenseModel"],"properties":{"licenseModel":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}},"type":"object"}}},"description":"License model details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseModel":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license Model.","type":"string","example":"TestName"},"description":{"description":"Description of the license Model.","type":"string","example":"Test LM from Auto Checkout"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"licenseModelAttributes":{"properties":{"licenseModelAttribute":{"items":{"properties":{"enforcementAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"name":{"example":"LICENSE_VERSION","description":"Name of the enforcement attribute.","type":"string"},"dataType":{"description":"Data type of the enforcement attribute.","type":"string","example":"LIST","enum":["STRING","NUMERIC","DOUBLE","INTEGER","BOOLEAN","LIST","DATE","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Possible values of the enforcement attribute.","properties":{"valueOption":{"items":{"type":"string"},"example":["10 - RMS  8.0.0","11 - RMS  8.1.0 - 8.2.2","12 - RMS  8.2.3","13 - RMS  8.4.x","14 - RMS  8.5","15 - RMS  8.6","16 - RMS  9.0","17 - RMS  9.1","18 - RMS  9.2 - 9.3 - 9.4","19 - RMS  9.4.1","20 - RMS  9.5","7 - RMS  7.0 - 7.2","8 - RMS  7.3.0","9 - RMS  7.3.0.x"],"type":"array"}},"nullable":true},"displayOrder":{"description":"Order to display the license model attributes.","type":"number","example":1.1},"isSharedAttribute":{"description":"Whether the attribute is shared. \nDefault: false","type":"boolean","example":true},"associatedAttribute":{"description":"List of attributes associated with a license model.","properties":{"id":{"description":"Unique identifier of the attribute.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the attribute.","type":"string","example":"TestName"}},"nullable":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"POLICY"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object"},"value":{"description":"Value of the attribute.\n Note for Sentinel LDK: For unlimited concurrency, CONCURRENT_INSTANCES is set to 10000000.\n Note for Sentinel RMS: For Do Not Renew Automatically (Exception: Entitlement Updates), set the Lease Renewal Frequency (hours) attribute as 2147483647.","example":"18"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","example":false,"type":"boolean"},"modificationAction":{"description":"Whether an attribute value can be modified. Default: NONE\n  - NONE: Modification is not allowed.\n  - ADDSUB: Addition and subtraction are allowed for integer values.\n  - OVERWRITE: Overwrite is allowed for string values.\n","type":"string","enum":["NONE","ADDSUB","OVERWRITE"]},"endUserPermission":{"description":"Permissions owned by end users over the attribute. When activationAccessLevel is true, you must set the endUserPermission value in the associated license model to WRITE.\nDefault: NONE\n","type":"string","enum":["NONE","READ","WRITE"]},"isvAccesslevel":{"description":"Permissions owned by software vendors (ISVs) over the attribute, at various access levels (such as, activation, entitlement, product, feature, and license model).\nDefault: NONE\n","properties":{"licenseModelAccessLevel":{"description":"Attribute permission at the license model level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Attribute permission at the feature level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Attribute permission at the product level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Attribute permission at the entitlement level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Attribute permission at the entitlement-product relationship level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Attribute permission at the activation level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"nullable":{"description":"Whether the attribute can be set to null. Default: false","type":"boolean","example":false},"overwriteAllowed":{"description":"When set to false, the attribute value specified in a license model cannot be overridden at the time of creating a product or creating an entitlement. Setting it to true enables software vendors to override the attribute value when creating a product or an entitlement. \nDefault: false","type":"boolean","example":true},"regularExpression":{"description":"Valid values for the attribute in the form of a regular expression.\n","type":"string","example":".*"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update License Model","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateLicenseMOdel","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"name":"licenseModelId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - name (For example: name=TestLicenseModel)\n\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["licenseModel"],"properties":{"licenseModel":{"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}},"type":"object"}}},"description":"License model details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseModel":{"required":["name"],"properties":{"id":{"description":"Auto-generated unique identifier of the license model.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"name":{"description":"Name of the license Model.","type":"string","example":"TestName"},"description":{"description":"Description of the license Model.","type":"string","example":"Test LM from Auto Checkout"},"state":{"description":"State of the license model. The disabled license models are not available for feature association. \nDefault: ENABLE\n","type":"string","example":"ENABLE","enum":["DISABLE","ENABLE"]},"createdBy":{"type":"string","description":"Name of the vendor user who created the license model.","example":"TestUserName"},"creationDate":{"description":"Creation date of the license model.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the license model.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the license model.","example":"2026-07-07 07:07","type":"string"},"licenseModelAttributes":{"properties":{"licenseModelAttribute":{"items":{"properties":{"enforcementAttribute":{"description":"List of enforcement attributes associated with a license model. For information on available enforcement attributes and their values, refer to the respective product documentation.","properties":{"name":{"example":"LICENSE_VERSION","description":"Name of the enforcement attribute.","type":"string"},"dataType":{"description":"Data type of the enforcement attribute.","type":"string","example":"LIST","enum":["STRING","NUMERIC","DOUBLE","INTEGER","BOOLEAN","LIST","DATE","NO_DATA_ALLOWED"]},"attributeValueChoice":{"description":"Possible values of the enforcement attribute.","properties":{"valueOption":{"items":{"type":"string"},"example":["10 - RMS  8.0.0","11 - RMS  8.1.0 - 8.2.2","12 - RMS  8.2.3","13 - RMS  8.4.x","14 - RMS  8.5","15 - RMS  8.6","16 - RMS  9.0","17 - RMS  9.1","18 - RMS  9.2 - 9.3 - 9.4","19 - RMS  9.4.1","20 - RMS  9.5","7 - RMS  7.0 - 7.2","8 - RMS  7.3.0","9 - RMS  7.3.0.x"],"type":"array"}},"nullable":true},"displayOrder":{"description":"Order to display the license model attributes.","type":"number","example":1.1},"isSharedAttribute":{"description":"Whether the attribute is shared. \nDefault: false","type":"boolean","example":true},"associatedAttribute":{"description":"List of attributes associated with a license model.","properties":{"id":{"description":"Unique identifier of the attribute.","type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"description":"Name of the attribute.","type":"string","example":"TestName"}},"nullable":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"POLICY"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object"},"value":{"description":"Value of the attribute.\n Note for Sentinel LDK: For unlimited concurrency, CONCURRENT_INSTANCES is set to 10000000.\n Note for Sentinel RMS: For Do Not Renew Automatically (Exception: Entitlement Updates), set the Lease Renewal Frequency (hours) attribute as 2147483647.","example":"18"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","example":false,"type":"boolean"},"modificationAction":{"description":"Whether an attribute value can be modified. Default: NONE\n  - NONE: Modification is not allowed.\n  - ADDSUB: Addition and subtraction are allowed for integer values.\n  - OVERWRITE: Overwrite is allowed for string values.\n","type":"string","enum":["NONE","ADDSUB","OVERWRITE"]},"endUserPermission":{"description":"Permissions owned by end users over the attribute. When activationAccessLevel is true, you must set the endUserPermission value in the associated license model to WRITE.\nDefault: NONE\n","type":"string","enum":["NONE","READ","WRITE"]},"isvAccesslevel":{"description":"Permissions owned by software vendors (ISVs) over the attribute, at various access levels (such as, activation, entitlement, product, feature, and license model).\nDefault: NONE\n","properties":{"licenseModelAccessLevel":{"description":"Attribute permission at the license model level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"featureAccessLevel":{"description":"Attribute permission at the feature level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"productAccessLevel":{"description":"Attribute permission at the product level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementAccessLevel":{"description":"Attribute permission at the entitlement level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]},"entitlementItemAccessLevel":{"description":"Attribute permission at the entitlement-product relationship level.","type":"string","example":"MANDATORY","enum":["NONE","READ","WRITE","MANDATORY"]},"activationAccessLevel":{"description":"Attribute permission at the activation level.","type":"string","enum":["NONE","READ","WRITE","MANDATORY"]}},"nullable":true},"nullable":{"description":"Whether the attribute can be set to null. Default: false","type":"boolean","example":false},"overwriteAllowed":{"description":"When set to false, the attribute value specified in a license model cannot be overridden at the time of creating a product or creating an entitlement. Setting it to true enables software vendors to override the attribute value when creating a product or an entitlement. \nDefault: false","type":"boolean","example":true},"regularExpression":{"description":"Valid values for the attribute in the form of a regular expression.\n","type":"string","example":".*"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete License Model","description":"Delete a license model if it is not associated with any feature.","operationId":"deleteLicenseModel","parameters":[{"name":"enforcementId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=Sentinel RMS:9.5, nameVersion=Sentinel LDK:8.5, nameVersion=Sentinel Fit:1.5, nameVersion=Custom Enforcement:1.0) \n  - identifier (For example: identifier=RMS, identifier=LDK, identifier=Fit, identifier=customEnf)\n\n Note: The results are based on the enforcement name irrespective of the enforcement version specified in nameversion. The version is ignored.","schema":{"type":"string"},"required":true},{"name":"licenseModelId","in":"path","description":"Unique identifier of the enforcement. Possible values are: \n  - id \n  - name (For example: name=TestLicenseModel)\n\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/features":{"post":{"tags":["Catalog"],"summary":"Add Feature","operationId":"addFeature","description":"Add a new feature. \nA feature is a distinct functionality of a software application that can be independently licensed. You can associate one or more features with a product according to your requirements.\n","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["feature"],"properties":{"feature":{"required":["namespace","nameVersion"],"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"AttributeName","description":"Name of the user-defined custom attribute for the feature.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the feature. The  data type of the value depends on the  template data type of the contact. Permissible data types are string, date, numeric, boolean, integer, and list.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"Details of the feature to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"feature":{"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["nameVersion"],"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"Feature created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search Features","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchFeatures","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the feature. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the feature.","schema":{"type":"integer"}},{"name":"licenseModelName","in":"query","description":"Name of the license model.","schema":{"type":"string"}},{"name":"licenseModelId","in":"query","description":"Auto-generated unique identifier of the license model. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceId","in":"query","description":"Auto-generated unique identifier of the namespace. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the feature.","schema":{"type":"string"}},{"name":"version","in":"query","description":"Version of the feature.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the feature.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the feature.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the feature. Possible values are:\n- ENABLE: Represents active feature. In this state, you can create product.\n- DISABLE: Represents obsolete feature. In this state, you cannot edit or delete the feature. Also, the feature cannot be associated with product. You can enable the product again if required.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"refId1","in":"query","description":"First reference identifier of the feature as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are name, namespaceName, description, version, externalId, identifier, refId1, refId2, creationDate, lastModifiedDate, and deployed.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","deployed","identifier","state","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are name, namespaceName, description, version, externalId, identifier, refId1, refId2, creationDate, lastModifiedDate, and deployed.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","deployed","state","identifier","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the feature.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search features.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search features.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the feature.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of feature.\nFollowing is a sample URI: \n`GET /ems/api/v5/features?CA_FTR.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_FTR: Perform search on a feature-level custom attribute.\n\nThe rules to be followed when using custom attributes to search features are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nValid value(s): featureLicenseModels and customAttributes.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"features":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"feature":{"items":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"description":"Either id or name is mandatory.","nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":"1"},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"featureLicenseModels":{"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the enforcement to which the license model belongs."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs."},"version":{"example":9.5,"description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/features/{featureId}":{"get":{"tags":["Catalog"],"summary":"Get Feature","description":"Retrieve a specific feature based on its unique identifier.","operationId":"getFeature","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feature":{"required":["namespace","nameVersion"],"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace Feature","description":"Update an existing feature completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateFeature","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["feature"],"properties":{"feature":{"required":["namespace","nameVersion"],"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"AttributeName","description":"Name of the user-defined custom attribute for the feature.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the feature. The  data type of the value depends on the  template data type of the contact. Permissible data types are string, date, numeric, boolean, integer, and list.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"Details of the feature to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feature":{"required":["namespace","nameVersion"],"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Feature","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateFeature","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["feature"],"properties":{"feature":{"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"AttributeName","description":"Name of the user-defined custom attribute for the feature.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the feature. The  data type of the value depends on the  template data type of the contact. Permissible data types are string, date, numeric, boolean, integer, and list.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"Details of the feature to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feature":{"required":["namespace","nameVersion"],"properties":{"namespace":{"description":"Either id or name is mandatory.","properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","type":"string","description":"Auto-generated unique identifier of the namespace to which the feature belongs."},"name":{"example":"TestNamespace","type":"string","description":"Name of the namespace to which the feature belongs."}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the feature.","example":"featureExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the feature.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"description":"The name and version together should be unique.","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestName"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true},"state":{"type":"string","description":"State of the feature that defines whether it is active or obsolete. Possible values: \n- ENABLE: The feature is active. You can create products using this feature. \n- DISABLE: The feature is obsolete. You cannot edit or delete the feature, or associate it with any product. You can re-enable the feature if needed.\n\nDefault: ENABLE\n","enum":["ENABLE","DISABLE"],"example":"ENABLE"},"refId1":{"example":"refId1","description":"First reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the feature as used by external ERP/CRM systems.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the feature.","example":"TestUserName"},"creationDate":{"description":"Creation date of the feature.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the feature.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the feature.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Feature description","description":"Description of the feature.","type":"string"},"deployed":{"example":false,"description":"Whether the feature is associated with an entitlement.\n Default: false","type":"boolean"},"featureLicenseModels":{"properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement to which the license model belongs."},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"nullable":true},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default."}},"type":"object","nullable":true},"type":"array"}},"description":"List of license models associated with the feature.\n Note: The featureLicenseModels object is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements. This object is not relevant for Sentinel LDK.","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Feature","description":"Delete a feature if it is not used in any product, or used in a product that is in the draft state.","operationId":"deleteFeature","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/features/{featureId}/featureLicenseModels":{"put":{"tags":["Catalog"],"summary":"Replace License Models","description":"**Note:** This endpoint is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements.\n Replace the associated license models in a feature with the given license models.","operationId":"updateFeatureLisenceModels","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"featureLicenseModels":{"type":"object","properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the enforcement to which the license model belongs."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"type":"object"},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default.\n"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the license model(s) to be added/updated in the feature.\n"},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update License Models","description":"**Note:** This endpoint is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements.\n Associate a new license model to the feature, in addition to the existing license models.","operationId":"partialUpdateFeatureLisenceModels","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"featureLicenseModels":{"type":"object","properties":{"featureLicenseModel":{"items":{"description":"Details of the license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the enforcement to which the license model belongs."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement to which the license model belongs."}},"type":"object"},"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of the license model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"isDefault":{"type":"boolean","example":true,"description":"Whether the license model is default. If a feature has only one license model, isDefault is true. \nIf a feature has multiple license models, it is mandatory to mark one of them as default.\n"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the license model(s) to be updated in the feature."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete License Model","description":"**Note:** This endpoint is relevant for Sentinel RMS, Sentinel Fit, and third-party enforcements.\n Delete a license model associated with a feature. Deletion is allowed only if the feature is not used in any product, or if the feature is used in a product that is in the draft state.","operationId":"deleteFeatureLicenseModel","parameters":[{"name":"featureId","in":"path","description":"Unique identifier of the feature. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestFeature:1.0)\n  - identifierNamespace (For example: identifierNamespace=1:TestNamespace)\n  **Note:** Its value is a combination of feature identifier and namespace name.\n  - identifier (For example: identifier=1)\n  **Note:** Deprecated because its value is no longer unique. Use identifierNamespace instead.\n  - externalId (For example: externalId=featureExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"ID of the license model that you want to remove from the feature.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/features/bulk":{"post":{"tags":["Catalog"],"summary":"Bulk Feature Upload","description":"Upload a large feature data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Features API. For CSV format type, refer to the EMS User Guide.\n **Note**:\n - With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion.\n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadFeature","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Feature"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/products":{"post":{"tags":["Catalog"],"summary":"Add Product","operationId":"addProduct","description":"Add a new product. \nA product is a saleable entity that can contain a single feature or a combination of individual features. A product can be associated with one or more license models.\n","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["product"],"properties":{"product":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"example":"1","description":"Unique identifier of the product.","type":"string"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"ParentProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":"false"},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"description":"User-defined custom attribute for the product.","properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}}},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true}},"nullable":true}},"type":"object"}}},"description":"Details of the product to be added to a committed entitlement."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"product":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"description":"Unique identifier of the product.","type":"string","example":1},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":false},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["namespace","nameVersion"],"nullable":true}},"type":"object"}}},"description":"Product created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search Products","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchProducts","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceId","in":"query","description":"Auto-generated unique identifier of the namespace. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"version","in":"query","description":"Version of the product.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the product.","schema":{"type":"string"}},{"name":"productType","in":"query","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","schema":{"type":"string"}},{"name":"variantLessProducts","in":"query","description":"Specify true to search for only those versionless products that do not have variants. Specify false to search for all products. \n Default: false","schema":{"type":"boolean"}},{"name":"refId1","in":"query","description":"First reference identifier of the product as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the product as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"isProvisioning","in":"query","description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","schema":{"type":"boolean"}},{"name":"isAutoActivation","in":"query","description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","schema":{"type":"boolean"}},{"name":"licenseModelId","in":"query","description":"Auto-generated unique identifier of the license model. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"licenseModelName","in":"query","description":"Name of the license model.","schema":{"type":"string"}},{"name":"featureId","in":"query","description":"Auto-generated unique identifier of the feature. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"featureName","in":"query","description":"Name of the feature.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the product. Possible values are:\n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n","schema":{"type":"string","enum":["DRAFT","ENABLE","DISABLE"]}},{"name":"family","in":"query","description":"Name of the product family, which represents a group of products derived from a common product platform.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. Possible values are  name, namespaceName, description, productType, refId1, refId2, family, creationDate, lastModifiedDate, version, externalId, identifier, deployed and state.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","identifier","deployed","state","productType","refId1","refId2","isProvisioning","isAutoActivation","family","activationMethod","fixedQuantity","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. Possible values are id, name, namespaceName, description, version, externalId, identifier, deployed, and state.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","identifier","deployed","state","productType","refId1","refId2","isProvisioning","isAutoActivation","family","activationMethod","fixedQuantity","creationDate","lastModifiedDate"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the product.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search products.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search products.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the product.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of product.\nFollowing is a sample URI: \n`GET /ems/api/v5/products?CA_PRD.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_PRD: Perform search on a product-level custom attribute.\n\nThe rules to be followed when using custom attributes to search products are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: productFeatures, productAttributes, customAttributes, productDownloads and parentProduct.\n","schema":{"type":"string"}},{"name":"embedExtnLDK","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: productMemory.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"products":{"type":"object","properties":{"count":{"type":"integer","example":0},"product":{"items":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp"},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"example":"1","description":"Unique identifier of the product.","type":"string"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":false},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the attribute."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"},"name":{"type":"string","description":"Name of the download definition.","example":"TestFeature"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/products/{productId}":{"get":{"tags":["Catalog"],"summary":"Get Product","description":"Retrieve a specific product based on its unique identifier.\n","operationId":"getProduct","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"product":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"description":"Unique identifier of the product.","type":"string","example":1},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":false},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["Catalog"],"summary":"Replace Product","description":"Update an existing product completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"updateProduct","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["product"],"properties":{"product":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"example":"1","description":"Unique identifier of the product.","type":"string"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":"false"},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"description":"User-defined custom attribute for the product.","properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}}},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true}},"nullable":true}},"type":"object"}}},"description":"Product details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"product":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"description":"Unique identifier of the product.","type":"string","example":1},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":"false"},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}},"patch":{"tags":["Catalog"],"summary":"Update Product","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateProduct","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["product"],"properties":{"product":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"example":"1","description":"Unique identifier of the product.","type":"string"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":"false"},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"description":"User-defined custom attribute for the product.","properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}}},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true}},"nullable":true}},"type":"object"}}},"description":"Product details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"product":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product belongs."}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product.\n Note: For Sentinel LDK, the product search by the identifier is not supported."},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values: \n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\nNote: \n- Once the limitType is defined, you can disable it when creating an entitlement, but you cannot enable it again.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦  Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only if limitType is set to 1.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"type":"string","example":"DEMOMA","description":"The batch code that is associated with the product. The batch code, which can contain up to six characters, represents your unique vendor code.\nIf you do not specify the batch code in the request, the namespace name is used as the batch code value for both the request and the response."},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"cloneProtectionPhysical":{"example":"SID","description":"The clone protection scheme to protect against the cloning of physical machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"cloneProtectionVirtual":{"example":"SID","description":"The clone protection scheme to protect against the cloning of virtual machines. Applicable for the Sentinel LDK SL keys. The default value is 'PlatformDefault', which applies the default clone protection scheme. To use a custom clone protection scheme, specify the name of your custom clone protection scheme.","type":"string"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. You set the file type using the memory endpoint. You cannot modify the memory file type using the products endpoint. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]},"allowTextOverwrite":{"example":"true","enum":["false","true"],"description":"When set to true, you can define or overwrite the memory data when creating entitlements. When set to false, you cannot overwrite the memory data (defined in a product) when creating entitlements.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"},"activationTypes":{"type":"string","example":"Activate,Burn Key"}},"nullable":true},"createdBy":{"type":"string","description":"Name of the vendor user who created the product.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product.","example":"2026-07-07 07:07","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"\n  When naming a variant: \n- For Sentinel RMS lease mode: The variant name must be identical to the name of its versionless product. \n- For all other modes and enforcements: The variant name can be different from its versionless product name.","example":"TestName"},"version":{"type":"string","description":"Version of the product.\n Note: The version parameter is optional. If specified, it can be set to a value or left blank (which sets it to an empty string). If omitted, its value defaults to 1.","example":"1.0"}},"nullable":true},"parentProduct":{"required":["id"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"identifier":{"description":"Unique identifier of the product.","type":"string","example":1},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product.","type":"string"},"nameVersion":{"required":["name"],"description":"The name and version together should be unique.","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestName"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"deployed":{"example":false,"description":"Whether the product is associated with an entitlement.","type":"boolean"},"description":{"example":"Product description","description":"Description of the product.","type":"string"},"state":{"example":"ENABLE","description":"State of the product. \n- DRAFT: Initial state in which a product is first created. In this state, you can edit or delete the product. Entitlements cannot be created for a DRAFT product. However, you can create test entitlements for a DRAFT product. \n- ENABLE: Represents active products. In this state, you can create entitlements for the product. However, updating or disabling a feature or changing features associated with the product is not allowed.\n- DISABLE: Represents obsolete products. In this state, you cannot edit or delete the product. Also, the product cannot be associated with entitlements. You can enable the product again if required.\n\n  Default: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product as used by external ERP/CRM systems.","type":"string"},"isProvisioning":{"example":false,"default":false,"description":"Whether provisioning is enabled for a product. When enabled, you need to associate a <a href=?Provisioning/addPlan target=_self>provisioning plan</a> and a <a href=?Provisioning/addMethod target=_self>provisioning method</a> with the product later. This flag also helps in identifying the <a href=?Provisioning/searchProvisionings target=_self>provisioning requests</a>.\nDefault: false\n\n<b>Note:</b>\n- Provisioning is supported only for the default product type.\n- You cannot add provisioning products to a product suite.","type":"boolean"},"isAutoActivation":{"example":false,"default":false,"description":"Whether to activate the line item (product associated with an entitlement) automatically, without requiring any user input, when an entitlement is committed.\nDefault: false\n\n<b>Note related to automatic activation:</b>\n- Available only when provisioning is enabled for a product.\n- Available only if the features in the specified product are associated with a Services license model.\n- The activation method must be set to FULL.\n- Not supported for versionless products.","type":"boolean"},"isLDKEnforcement":{"example":"true","enum":["false","true"],"description":"Whether it is a Sentinel LDK product or not. \n For products created with Sentinel LDK enforcement, it is mandatory to set isLDKEnforcement to true. For enforcements other than Sentinel LDK, this parameter is not used. If included, it must be set to false.  Default: false","type":"string"},"family":{"properties":{"familyId":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product family.","type":"string"},"familyName":{"example":"Default","description":"Name of the product family.","type":"string"}},"nullable":true},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"productType":{"example":"DEFAULT","description":"Type of product. \n- DEFAULT: A standard, standalone product with a fixed, self-contained configuration and limited editing capabilities that is designed to maintain a consistent definition over time. All features within a default product must use license models from a single enforcement. Recommended for offerings that do not require granular control or include multiple permutations. \n- PARENT: Also known as a versionless product. Each versionless product acts as a container for a collection of features with different license models from one or more enforcements. This container serves as the foundation for creating variants, which users activate and use with a license. The versionless product itself is not activated or distributed to users.  \n- CHILD: Also known as a variant. Variants include a specific set of features that are a subset of their respective versionless products. All features within a variant must use license models from a single enforcement. Variants are distributed to users for activation and use.","type":"string"},"fixedQuantity":{"description":"Quantity to be consumed when the activation method is fixed.\nThe total quantity can be consumed in multiple activations, and each activation will consume a specified fixed quantity. Fixed quantity is 1 by default.\n Note: Setting fixedQuantity is relevant only if the activationMethod is FIXED.","type":"integer"},"productFeatures":{"properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature to be associated.","type":"string"},"externalId":{"example":"EXT-001","description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"SAOT":{"type":"string","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":"false"},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"nullable":true},"licenseModel":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"nullable":true},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the attribute.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the attribute."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer"},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productDownloads":{"properties":{"productDownload":{"items":{"properties":{"download":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the download.","type":"string"},"identifier":{"type":"string","description":" Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"externalId":{"type":"string","example":"downloadExternalId","description":"Unique external identifier of the download."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productAttributes":{"properties":{"productAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"example":"AttributeValue","description":"Value of the product attribute.","type":"string"},"encodeToBase64":{"example":false,"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"License model attributes for the features in variants.","nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Product","description":"Delete an existing product if it is in the draft state and not associated with any entitlement.","operationId":"deleteProduct","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/products/{productId}/productFeatures":{"put":{"tags":["Catalog"],"summary":"Replace Associated Features","description":"Replace the already-associated features in a product with the given features.","operationId":"updateProductFeatures","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productFeatures":{"type":"object","properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the feature to be associated.","type":"string"},"externalId":{"description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"SAOT":{"type":"boolean","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":false},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"type":"object"},"licenseModel":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"type":"object"},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).\n","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer","nullable":true},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Feature details of the product."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Associated Features","description":"Associate a new feature to the product in addition to the already-existing features.\n","operationId":"partialUpdateProductFeatures","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productFeatures":{"type":"object","properties":{"productFeature":{"items":{"properties":{"feature":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the feature to be associated.","type":"string"},"externalId":{"description":"External identifier of the feature to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"SAOT":{"type":"boolean","description":"Whether to associate license models while creating products or entitlements. If false, license models are associated while creating products. If true, license models are associated while creating entitlements. \n Default: false","example":false},"state":{"example":"Optional_DefaultOn","description":"Whether to include a feature in the product while generating entitlements.\n- Optional_DefaultOn: Order taker can decide to include or exclude the feature. By default, the feature is included.\n- Optional_DefaultOff: Order taker can decide to include or exclude the feature. By default, the feature is excluded.\n- MANDATORY: Order taker cannot change the value. The feature will always be included.\nDefault: Optional_DefaultOn\n","type":"string","enum":["Optional_DefaultOn","Optional_defaultOff","Mandatory"]},"defaultLicenseModel":{"description":"Details of the default license model associated with the feature.","properties":{"enforcement":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the enforcement to which the license model belongs.","type":"string"},"name":{"example":"Sentinel RMS","description":"Name of the enforcement to which the license model belongs. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"},"version":{"example":"9.5","description":"Version of the enforcement to which the license model belongs. The version value is ignored. ","type":"string"}},"type":"object"},"licenseModel":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the license model associated with the feature.","type":"string"},"name":{"example":"TestLicenseModel","description":" Name of the license model associated with the feature. You must specify the enforcement name in combination with the license model name when setting the default license model for a feature. Alternatively, you can specify only the license model ID.","type":"string"}},"type":"object"},"attributes":{"description":"License Model Attributes","properties":{"attribute":{"items":{"type":"object","nullable":true},"type":"array"}}},"isFixed":{"example":true,"description":"Note: Not relevant for Sentinel LDK.\nWhether the default license model is fixed and cannot be changed. \nIf set to true, only the default license model will be available for the feature in the entitlement. If set to false, the order taker can change the license model in the entitlement.\nIf a license model is marked as fixed for a feature in the versionless product, the product variant can only be created with the license model defined for that feature (if included).\n","type":"boolean"}},"nullable":true},"componentMultiplier":{"description":"Note: Not relevant for Sentinel LDK.\nThe multiplication factor at the product-feature relationship level. The value is multiplied with the product key quantity to get total quantity for the product-feature license. The default value for Multiplier is 1 and a maximum value that can be specified is 99999. The Multiplier parameter is used only if the Component Multiplier Visible check box is selected in the Administration Console.","type":"integer","nullable":true},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Feature details of the product."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Associated Feature","description":"Delete a feature from an existing product if the product is in the draft state and not associated with any entitlement.","operationId":"deleteProductFeatures","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the product. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProduct:1.0)\n **Note:** For products with a version, specify the version in the format mentioned above. For products with no version, use nameVersion=TestProduct: or nameVersion=TestProduct\n  - externalId (For example: externalId=productExternalId)\n  - identifier (For example: identifier=1)\n**Note:** For Sentinel LDK, the product search by the identifier is not supported.\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the product feature to be deleted.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/products/bulk":{"post":{"tags":["Catalog"],"summary":"Bulk Product Upload","description":"Upload a large product data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Products API. For CSV format type, refer to the EMS User Guide. \n **Note:** \n- With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion. \n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadProduct","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Product"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productSuites":{"post":{"tags":["Catalog"],"summary":"Add Product Suite (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Add a new product suite. \nA product suite includes one or more products from a namespace that you want to sell together. The products included in a product suite may be functionally similar or complementary.\n","operationId":"addProductSuite","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"example":"1","description":"Identifier of the product to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product suite.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product suite. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product suite to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"version":{"type":"string","description":"Version of the product suite.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"description":"Identifier of the product to be associated.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Product suite created \nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search Product Suites (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchProductSuites","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the product suite. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceId","in":"query","description":"Auto-generated unique identifier of the namespace. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the product suite.","schema":{"type":"string"}},{"name":"version","in":"query","description":"Version of the product suite.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the product suite. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the product suite. Possible values are:\n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n","schema":{"type":"string","enum":["DRAFT","ENABLE","DISABLE"]}},{"name":"refId1","in":"query","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Auto-generated unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"featureId","in":"query","description":"Auto-generated unique identifier of the feature. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"featureName","in":"query","description":"Name of the feature.","schema":{"type":"string"}},{"name":"licenseModelId","in":"query","description":"Auto-generated unique identifier of the license model. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"licenseModelName","in":"query","description":"Name of the license Model.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field to sort search results in ascending order. Possible values are id, name, version, externalId, state, description, namespaceName, and creationDate.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","refId1","refId2","state","activationMethod","deployed","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field to sort search results in descending order. Possible values are id, name, version, externalId, state, description, namespaceName, and creationDate.","schema":{"type":"string","enum":["name","namespaceName","description","version","externalId","refId1","refId2","state","activationMethod","deployed","creationDate","lastModifiedDate"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the product suite.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search product suites.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search product suites.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the product suite.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of product suite.\nFollowing is a sample URI: \n`GET /ems/api/v5/productSuites?CA_SUITE.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_SUITE: Perform search on a product suite-level custom attribute.\n\nThe rules to be followed when using custom attributes to search product suites are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customAttributes and products.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productSuites":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"productSuite":{"items":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object"},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"version":{"type":"string","description":"Version of the product suite.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"description":"Identifier of the product to be associated.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productSuites/{suiteId}":{"get":{"tags":["Catalog"],"summary":"Get Product Suite (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Retrieve a product suite based on its unique identifier.","operationId":"getProductSuite","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"description":"Identifier of the product to be associated.","type":"string","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace Product Suite (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Update an existing product suite completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateProductSuite","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"example":"1","description":"Identifier of the product to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product suite.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product suite. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product suite to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"description":"Identifier of the product to be associated.","type":"string","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Product Suite (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateProductSuite","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"example":"1","description":"Identifier of the product to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product suite.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product suite. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product suite to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product suite belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product suite belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product suite."},"nameVersion":{"required":["name","version"],"properties":{"name":{"type":"string","description":"Name of the product suite.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product suite.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product suite.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product suite.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product suite.","example":"2026-07-07 07:07","type":"string"},"deployed":{"example":false,"description":"Whether the product suite is associated with an entitlement.","type":"boolean"},"description":{"example":"Suite description","description":"Description of the product suite.","type":"string"},"state":{"example":"ENABLE","description":"State of the product suite. \n- DRAFT: Initial state in which a product suite is first created. In this state, you can edit or delete the product suite. Entitlements cannot be created for a DRAFT product suite. However, you can create test entitlements for a DRAFT product suite . \n- ENABLE: Represents active product suites. In this state, you can create entitlements for the product suite. However, updating or disabling a feature or changing features associated with the product suite is not allowed.\n- DISABLE: Represents obsolete product suites. In this state, you cannot edit or delete the product suite. Also, the product suite cannot be associated with entitlements. You can enable the product suite again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product suite as used by external ERP/CRM systems.","type":"string"},"activationMethod":{"example":"SAOT","description":"Activation method for the product. Possible values:\n- SAOT (Specify at Order Time): Indicates that the activation method will be specified when creating an entitlement. The SAOT activation method is referred to as Define in Entitlement in the Sentinel EMS vendor portal. \n- FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the activation method is not applicable. \n\n\n Note for Sentinel LDK:\n- When creating a default product, only the SAOT activation method is relevant. Any other value, if specified, is ignored. You specify the activation method when creating an entitlement. \n- When creating a variant, you must specify the activation method. Only the FIXED, PARTIAL, and FULL activation methods are supported. If FIXED is specified, the fixed quantity value is always set to 1. \n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported.\n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported. \n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string"},"fixedQuantity":{"example":0,"description":"Quantity to be consumed when the activation method is fixed.","type":"integer"},"products":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"description":"Identifier of the product to be associated.","type":"string","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Product Suite (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Delete an existing product suite if it is in the draft state and not associated with any entitlements.","operationId":"deleteProductSuite","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productSuites/{suiteId}/products":{"put":{"tags":["Catalog"],"summary":"Replace Associated Products (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Replace the already-associated products in a product suite with the given products.\n","operationId":"updateProductAssociation","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"example":"1","description":"Identifier of the product to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of products to be updated in the product suite."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Associated Products (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Associate a new product to the suite in addition to the existing products.\n","operationId":"partialUpdateProductAssociation","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"product":{"items":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product to be associated.","type":"string"},"identifier":{"example":"1","description":"Identifier of the product to be associated.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of products to be updated in the product suite."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Associated Product (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n You can dissociate a product from a product suite if the suite is in the DRAFT state and not associated with any entitlements.","operationId":"deleteProductAssociation","parameters":[{"name":"suiteId","in":"path","description":"Unique identifier of the product suite. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestProductSuite:1.0)\n  - externalId (For example: externalId=productSuiteExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the product to be deleted from the product suite.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productSuites/bulk":{"post":{"tags":["Catalog"],"summary":"Bulk Product Suite Upload (DEPRECATED)","description":"\n**Note:** Product suites are not relevant for Sentinel LDK and Sentinel Fit. \n Upload a large product suite data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Product Suites API. For CSV format type, refer to the EMS User Guide. \n **Note:** \n- With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion. \n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadProductSuite","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"ProductSuite"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product suite.","type":"string"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productBundles":{"post":{"tags":["Catalog"],"summary":"Add Product Bundle","description":"\nA product bundle includes one or more products from a namespace that you want to sell together. The product bundle can be configured as 'Packaged' (all products are activated together) or 'Discrete' (products are activated individually).\n\nNote: Versionless products cannot be added to a product bundle, however, variants of versionless products are supported.\n","operationId":"addProductBundle","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productBundle":{"type":"object","required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["PACKAGED","DISCRETE"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"example":"TestIdentifier","description":"Identifier of the product.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product bundle.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product bundle. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}}}},"required":["productBundle"]}}},"description":"Details of the product bundle to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"productBundle":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object"},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"},"version":{"type":"string","example":""}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["Packaged","Discrete"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"description":"Identifier of the product.","type":"string","example":"TestIdentifier"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["namespace","nameVersion"],"type":"object"}},"type":"object"}}},"description":"Product bundle created.\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Catalog"],"summary":"Search Product Bundles","description":"Retrieve a list of records that match the given query parameters.\nIf you do not specify any query parameters, the endpoint returns all records.","operationId":"searchProductBundles","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the product bundle. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceId","in":"query","description":"Auto-generated unique identifier of the namespace. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the product bundle.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the product bundle. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the product bundle","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n","schema":{"type":"string","enum":["DRAFT","ENABLE","DISABLE"]}},{"name":"productBundleType","in":"query","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","schema":{"type":"string","enum":["PACKAGED","DISCRETE"]}},{"name":"refId1","in":"query","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Auto-generated unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"featureId","in":"query","description":"Auto-generated unique identifier of the feature. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"featureName","in":"query","description":"Name of the feature.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field to sort search results in ascending order.","schema":{"type":"string","enum":["name","namespaceName","description","externalId","refId1","refId2","state","productBundleType","activationMethod","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field to sort search results in descending order.","schema":{"type":"string","enum":["name","namespaceName","description","externalId","refId1","refId2","state","productBundleType","activationMethod","creationDate","lastModifiedDate"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the product bundle.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search product bundles.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search product bundles.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the product bundle.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of product bundle.\nFollowing is a sample URI: \n`GET /ems/api/v5/productBundles?CA_PRODUCT_BUNDLE.category=enterprise`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_PRODUCT_BUNDLE: Perform search on a product bundle-level custom attribute.\n\nThe rules to be followed when using custom attributes to search product bundles are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Available values : customAttributes, productBundleItems.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productBundles":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"productBundle":{"items":{"required":["namespace","nameVersion"],"properties":{"namespace":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"nullable":true},"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"},"version":{"type":"string","example":""}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["PACKAGED","DISCRETE","Packaged","Discrete","packaged","discrete"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"description":"Identifier of the product.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productBundles/{productBundleId}":{"get":{"tags":["Catalog"],"summary":"Get Product Bundle","description":"Retrieve a specific product bundle based on its unique identifier.","operationId":"getProductBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productBundle":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"},"version":{"type":"string","example":""}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["Packaged","Discrete"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"description":"Identifier of the product.","type":"string","example":"TestIdentifier"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["namespace","nameVersion"],"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace Product Bundle","description":"\nUpdate an existing product bundle completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateProductBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productBundle":{"type":"object","properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["PACKAGED","DISCRETE"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"example":"TestIdentifier","description":"Identifier of the product.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product bundle.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product bundle. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}}}},"required":["productBundle"]}}},"description":"Details of the product bundle to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productBundle":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["Packaged","Discrete"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"description":"Identifier of the product.","type":"string","example":"TestIdentifier"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["namespace","nameVersion"],"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Product Bundle","description":"\nUpdate an existing product bundle partially. \n- If a parameter is not provided, the existing value will not be changed.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n**Note:** A product bundle in the 'Completed' state can be reverted to 'Draft' only if it is not associated with any entitlement.\n","operationId":"partialUpdateProductBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productBundle":{"type":"object","properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["PACKAGED","DISCRETE"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"example":"TestIdentifier","description":"Identifier of the product.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"example":"TestName","description":"Name of the user-defined custom attribute for the product bundle.","type":"string"},"value":{"example":"AttributeValue","description":"Value of the user-defined custom attribute for the product bundle. \nThe data type of the value depends on the template data type.\nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}}}},"required":["productBundle"]}}},"description":"Details of the product bundle to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productBundle":{"properties":{"namespace":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the namespace to which the product bundle belongs."},"name":{"type":"string","example":"TestNamespace","description":"Name of the namespace to which the product bundle belongs."}},"type":"object"},"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the product bundle."},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the product bundle.","example":"TestProductBundle"},"version":{"type":"string","example":""}},"nullable":true},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"createdBy":{"type":"string","description":"Name of the vendor user who created the product bundle.","example":"TestUserName"},"creationDate":{"description":"Creation date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the product bundle.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the product bundle.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Product Bundle Description","description":"Description of the product bundle.","type":"string"},"state":{"example":"ENABLE","description":"State of the product bundle.\n\n- DRAFT – Initial state when a product bundle is created. In this state, you can edit or delete the product bundle. You cannot create entitlements for the product bundle in DRAFT state, but you can create test entitlements.\n- ENABLE – Active state of the product bundle. In this state, you can create entitlements for the product bundle. You cannot update the product bundle or change the associated products.\n- DISABLE – Inactive state of the product bundle. In this state, you cannot edit or delete the product bundle, and you cannot associate the product bundle with entitlements. You can enable the product bundle again if required.\n\nDefault: DRAFT\n","type":"string","enum":["DRAFT","ENABLE","DISABLE"]},"refId1":{"example":"refId1","description":"First reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the product bundle as used by external ERP/CRM systems.","type":"string"},"productBundleType":{"example":"PACKAGED","description":"Type of the product bundle.\n\n- PACKAGED: All products in the product bundle are activated together with identical quantities. Activation method is specified at the product bundle level.\n- DISCRETE: Products in the product bundle can have different quantities and individual activation methods.\n","type":"string","enum":["Packaged","Discrete"]},"activationMethod":{"example":"FIXED","description":"Activation method for the product bundle. This field is mandatory for 'PACKAGED' bundles and specifies how the product bundle should be activated. For 'DISCRETE' bundles, individual product activation methods apply.","type":"string"},"fixedQuantity":{"example":10,"description":"Quantity to be consumed when the activation method is FIXED for 'PACKAGED' bundles.","type":"integer"},"productBundleItems":{"properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"description":"Identifier of the product.","type":"string","example":"TestIdentifier"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["namespace","nameVersion"],"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Product Bundle","description":"\nDelete an existing product bundle if it is not associated with any entitlements.","operationId":"deleteProductBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productBundles/{productBundleId}/productBundleItems":{"put":{"tags":["Catalog"],"summary":"Replace Associated Products","description":"\nReplaces the products associated with a product bundle with the specified products.\n","operationId":"updateProductAssociationInBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productBundleItems":{"type":"object","properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"example":"TestIdentifier","description":"Identifier of the product.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of products to be updated in the product bundle."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Associated Products","description":"\nAssociate new products to the product bundle in addition to the existing products, or update quantities of existing products.\n","operationId":"partialUpdateProductAssociationInBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"productBundleItems":{"type":"object","properties":{"productBundleItem":{"items":{"properties":{"product":{"properties":{"id":{"example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product to be associated.","type":"string"},"externalId":{"example":"TestExternalId","description":"External identifier of the product.","type":"string"},"identifier":{"example":"TestIdentifier","description":"Identifier of the product.","type":"string"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"quantity":{"example":10,"description":"Quantity of the product in the product bundle. For 'PACKAGED' bundles, all products must have identical quantities. For 'DISCRETE' bundles, quantities can differ.","type":"integer"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of products to be updated in the product bundle."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Remove Associated Product","description":"\nRemoves a product from a product bundle. This operation is allowed only for draft product bundles that are not associated with any entitlements.","operationId":"deleteProductAssociationInBundle","parameters":[{"name":"productBundleId","in":"path","description":"Unique identifier of the product bundle. Possible values are: \n  - id \n  - name (For example: name=productBundleName)\n  - externalId (For example: externalId=productBundleExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the product to be deleted from the product bundle.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productBundles/bulk":{"post":{"tags":["Catalog"],"summary":"Bulk Product Bundle Upload","description":"\nUpload a large product bundle data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Product Bundles API. For CSV format type, refer to the EMS User Guide. \n **Note:** \n- With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion. \n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadProductBundle","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"ProductBundle"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"externalId":{"example":"TestExternalId","description":"Unique external identifier of the product bundle.","type":"string"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/contacts":{"post":{"tags":["Customer"],"summary":"Add User","description":"Add a new user. \nA user is an individual who may be associated to a customer or could be independent.\n","operationId":"addContact","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["contact"],"properties":{"contact":{"required":["emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":""}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CIdentifier"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes for the user.","type":"string","example":"Address Line 1"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value depends on the  template data type of the user. Permissible\ntypes are String, Date, Numeric, Boolean, Integer and List.\n","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password set by the user.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when users are managed through the vendor and customer portals and is not automatically inherited by REST API requests. To enforce password change after the first successful login for users created or updated using the REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?Customer/changePasswordContact target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"nullable":true}},"type":"object"}}},"description":"Details of the user to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":""}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"ec7a71e5-2b63-4d1c-8f86-f688f23c8969"},"name":{"type":"string","description":"Name of the customer.","example":"CustB"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CustB"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"localeName":{"type":"string","example":"English"},"customAttributes":{"nullable":true,"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":""},"value":{"type":"string","example":""}}}}}},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"required":["emailId"],"nullable":true}},"type":"object"}}},"description":"User created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Customer"],"summary":"Search Users","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchContacts","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the user.  You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the user.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the user.","schema":{"type":"string"}},{"name":"idpName","in":"query","description":"Idp name associated with identity provider.","schema":{"type":"string"}},{"name":"idpDisplayName","in":"query","description":"Idp display name associated with identity provider.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the user as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the user as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"emailId","in":"query","description":"Unique email address of the user.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"phoneNumber","in":"query","description":"Phone number of the user.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the user. Possible values are ENABLE and DISABLE.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"contactType","in":"query","description":"Type of the user. Possible values are Standard and Administrator.\n","schema":{"type":"string","enum":["Standard","Administrator"]}},{"name":"customerName","in":"query","description":"Name of the customer associated with the user.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Auto-generated unique identifier of the customer. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"marketGroupId","in":"query","description":"Auto-generated unique identifier of the market group associated with the user.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the market group associated with the user.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name to sort results in ascending order. Possible values are name, marketGroupName, state, customerName, emailId, userId, contactType, phoneNumber, refId1, refId2, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["name","marketGroupName","idpName","idpDisplayName","refId1","refId2","emailId","externalId","userId","contactType","phoneNumber","state","customerName","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name to sort results in descending order.  Possible values are name, marketGroupName, state, customerName, emailId, userId, contactType, phoneNumber, refId1, refId2, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["name","marketGroupName","idpName","idpDisplayName","refId1","refId2","emailId","externalId","userId","contactType","phoneNumber","state","customerName","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search users.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search users.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search based on the custom attributes of the user.\nFollowing is a sample URI: \n`GET /ems/api/v5/contacts?CA_CONT.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_CONT: Perform search on a user-level custom attribute.\n\nThe rules to be followed when using custom attributes to search users are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  use the ampersand **&** as separator .\n  -  If a comma exists within the value, escape it using the backslash escape character. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation.  Valid value(s): customers, customAttributes, shippingDetails, and billingDetails.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contacts":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"contact":{"items":{"required":["emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"externalId":{"type":"string","example":""}},"nullable":true},"externalCustomers":{"properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CIdentifier"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password set by the user.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when users are managed through the vendor and customer portals and is not automatically inherited by REST API requests. To enforce password change after the first successful login for users created or updated using the REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?Customer/changePasswordContact target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Address Line 1","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"localeName":{"type":"string","example":"English"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/contacts/{contactId}":{"get":{"tags":["Customer"],"summary":"Get User","description":"Retrieve a specific user based on its unique identifier.","operationId":"getContact","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"contactId","in":"path","description":"Unique identifier of the user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example.com)\n  - userId (For example: userId=TestUserId)\n  - externalId (For example: externalId=UserExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":""}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"ec7a71e5-2b63-4d1c-8f86-f688f23c8969"},"name":{"type":"string","description":"Name of the customer.","example":"CustB"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CustB"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":""},"value":{"type":"string","example":""}}}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"required":["emailId"],"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Customer"],"summary":"Replace User","description":"Update an existing user completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateContact","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"contactId","in":"path","description":"Unique identifier of the user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example.com)\n  - userId (For example: userId=TestUserId)\n  - externalId (For example: externalId=UserExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["contact"],"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CIdentifier"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes for the user.","type":"string","example":"Address Line 1"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value depends on the  template data type of the user. Permissible\ntypes are String, Date, Numeric, Boolean, Integer and List.\n","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password set by the user.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when users are managed through the vendor and customer portals and is not automatically inherited by REST API requests. To enforce password change after the first successful login for users created or updated using the REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?Customer/changePasswordContact target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"required":["emailId"],"nullable":true}},"type":"object"}}},"description":"User details to be updated. \nWith the exception of user id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"ec7a71e5-2b63-4d1c-8f86-f688f23c8969"},"name":{"type":"string","description":"Name of the customer.","example":"CustB"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CustB"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"required":["emailId"],"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update User","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateContact","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"contactId","in":"path","description":"Unique identifier of the user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example.com)\n  - userId (For example: userId=TestUserId)\n  - externalId (For example: externalId=UserExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["contact"],"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CIdentifier"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes for the user.","type":"string","example":"Address Line 1"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value depends on the  template data type of the user. Permissible\ntypes are String, Date, Numeric, Boolean, Integer and List.\n","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password set by the user.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when users are managed through the vendor and customer portals and is not automatically inherited by REST API requests. To enforce password change after the first successful login for users created or updated using the REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?Customer/changePasswordContact target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"nullable":true}},"type":"object"}}},"description":"User details to be updated. \nWith the exception of user id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the user.","example":"TestUser"},"password":{"type":"string","example":"Ems@12345","description":"Password of the user. For Sentinel identity provider, it is optional. For other identity providers, do not specify the password in Sentinel EMS because passwords are managed only by the linked providers. The password must contain the following:\n<ul> \n  <li>8 to 30 characters</li>\n  <li>At least one lowercase character (a-z)</li>\n  <li>At least one uppercase character (A-Z)</li>\n  <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li>\n</ul>\n<p>The value should be URL encoded if it contains any reserved characters.</p>\n\nNote: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.\n"},"phoneNumber":{"description":"Phone number of the user.","example":"9999999999","type":"string"},"defaultLocale":{"type":"string","description":"The preferred communication language of the user.","example":"en"},"state":{"description":"State of the user.","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]},"contactType":{"description":"Type of the user. Possible values:<ul><li> Standard: A standard user can work with only those entitlements with which it is explicitly associated.</li>  <li>Administrator: A user administrator can access all the entitlements, downloads, and activations of the customer. In addition, a user administrator can also manage user sessions, tokens, and users using the customer portal.</li> </ul>Note: It is mandatory to associate a customer with a user administrator.","type":"string","example":"Standard","enum":["Standard","Administrator"]},"customer":{"description":"Contains details of the customer associated with the user. Note that it is mandatory to associate a customer with a user administrator.","properties":{"id":{"type":"string","description":"ID of the customer associated with the user. ","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer associated with the user.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer. This is auto-generated if not defined. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":""}},"nullable":true},"externalCustomers":{"description":"List of customers for which this contact has external admin access. This field appears only when the contact is a Customer Admin with access to other customer accounts.","properties":{"externalCustomer":{"description":"List of customers accessible to this external admin.","items":{"required":["customer"],"properties":{"customer":{"description":"Customer details for external access.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"ec7a71e5-2b63-4d1c-8f86-f688f23c8969"},"name":{"type":"string","description":"Name of the customer.","example":"CustB"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CustB"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique identifier of the user.<p>Must be 3-100 characters long. Supports alphanumeric characters and the following special characters: underscore (_), hyphen (-), period (.), and at symbol (@). Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. </p>","example":"TestUserId"},"identityProvider":{"description":"Details of the identity provider associated with the user. \n\n <b>Note:</b>  If the user is associated with customer’s own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the user. The default value depends on the “Identity Provider for Customer Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"example":"UserExternalId","type":"string","description":"Unique external identifier of the user.\n\n**Note:** This is mandatory only if the user is associated with customer's own identity provider (other than Sentinel identity provider), and the “User Attribute for Identity Federation” administration console property is set to External ID.\n"},"refId1":{"type":"string","description":"First reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the user as used by external ERP/CRM systems.\n","example":"refId2"},"creationDate":{"description":"Creation date of the User.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the User.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the user belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the user is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the user must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"shippingDetails":{"properties":{"address":{"example":"Shipping Address","description":"The shipping address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"Billing Address","description":"The billing address of the user.\n Minimum length: 1\n Maximum length: 100\n","type":"string"},"city":{"example":"Billing city","description":"Name of the city of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"Billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"Billing country","description":"Name of the state of the billing address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing addrress.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":""},"value":{"type":"string","example":""}}}}},"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"required":["emailId"],"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Customer"],"summary":"Delete User","description":"Delete a user if it is not associated with any entitlement, activation, or revocation.","operationId":"deleteContact","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"contactId","in":"path","description":"Unique identifier of the user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example.com)\n  - userId (For example: userId=TestUserId)\n  - externalId (For example: externalId=UserExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/registerContact":{"post":{"tags":["Customer"],"summary":"Register User","description":"Add a new user and register it with an entitlement.","operationId":"registerContact","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["contact"],"properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the contact.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the contact.","example":"TestContact"},"password":{"type":"string","example":"Ems@12345","description":"Password of the contact. The password must contain the following: <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)</li> <li>Atleast one uppercase character (A-Z)</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>"},"emailId":{"type":"string","description":"Unique email address of the contact.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"eid":{"type":"string","description":"EID of the entitlement.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}},"required":["password","emailId","eid"],"nullable":true}}}}},"description":"Details of the user and eid to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the contact.","example":"00000000-0000-0000-0000-000000000000"},"password":{"type":"string","example":"Ems@12345","description":"Password of the contact. The password must contain the following: <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)</li> <li>Atleast one uppercase character (A-Z)</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>"},"emailId":{"type":"string","description":"Unique email address of the contact.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"eid":{"type":"string","description":"EID of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the contact.","example":"TestContact"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"required":["password","emailId","eid"],"nullable":true}}}}},"description":"User created and associated with specified eid\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/contacts/anonymous/resetPassword":{"patch":{"tags":["Customer"],"summary":"Forgot Password","description":"Reset the password of the user.","operationId":"resetPasswordContact","parameters":[{"name":"emailId","in":"query","description":"Unique email address of the user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/contacts/{contactId}/changePassword":{"patch":{"tags":["Customer"],"summary":"Change Password","description":"Change the password of the currently logged-in user. The current login session is closed after the password has been changed.","operationId":"changePasswordContact","parameters":[{"name":"contactId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - userId (For example: userId=TestUserId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["changePassword"],"properties":{"changePassword":{"nullable":true,"required":["oldPassword","newPassword"],"properties":{"oldPassword":{"type":"string","description":"Existing password of the user.","example":"Ems@12345"},"newPassword":{"type":"string","description":"New password of the user. The password must contain the following: <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)</li> <li>Atleast one uppercase character (A-Z)</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: Sentinel EMS requires the password to follow the above criteria from version 5.4 and above.","example":"Ems@12345"}}}}}}},"description":"Change password details of the user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/contacts/{contactId}/removePassword":{"post":{"tags":["Customer"],"summary":"Remove Password","description":"Deletes an existing user's password, allowing you to create a vendor user or channel partner user with the same user ID and email address.\nAuthentication and Authorization: Only Sentinel EMS administrators and vendor users with Customer Management permissions can use this endpoint.","operationId":"removePasswordContact","parameters":[{"name":"contactId","in":"path","description":"Unique identifier of the user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example.com)\n  - userId (For example: userId=TestUserId)\n  - externalId (For example: externalId=UserExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]}]}},"/ems/api/v5/contacts/bulk":{"post":{"tags":["Customer"],"summary":"Bulk User Upload","description":"Upload a large user data set to Sentinel EMS. The supported input formats are CSV and JSON. For the JSON format type, refer to the JSON output of the Search Users API. For CSV format type, refer to the Sentinel EMS User Guide.\n **Note**:\n- With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion. \n- The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n- Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadContact","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"User"},"createdBy":{"type":"string","description":"Name of the vendor user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers":{"post":{"tags":["Customer"],"summary":"Add Customer","description":"Add a new customer. \nA customer refers to a current or potential buyer or user of entitlements. Typically, you generate entitlements for a customer who has placed an order.\n","operationId":"addCustomer","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"Acme Corporation"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"properties":{"contact":{"description":"Details of the user you want to associate with the customer. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attribute.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value  depends on the  template data type. Permissible types are String, Date, Numeric, Boolean, Integer, and List.","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Customer details to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"description":"Contacts associated with the customer.","properties":{"contact":{"nullable":true}},"nullable":true},"externalContacts":{"description":"External contacts associated with the customer.","properties":{"externalContact":{"items":{"properties":{"contact":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","example":"user@example.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"fingerprints":{"description":"Fingerprints associated with the customer.","properties":{"fingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","example":"FriendlyName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true,"description":"customAttributes"},"externalCustomers":{"nullable":true,"description":"externalCustomers"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"Customer created\n The auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Customer"],"summary":"Search Customers","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomers","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the customer.  You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the customer.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the customer.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the customer.","schema":{"type":"string"}},{"name":"refId","in":"query","description":"Reference identifier of the customer.","schema":{"type":"string"}},{"name":"crmId","in":"query","description":"The Customer Relationship Management (CRM) identification number.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the customer.","schema":{"type":"string"}},{"name":"marketGroupId","in":"query","description":"Auto-generated unique identifier of the market group associated with the customer.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the market group associated with the customer.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the customer. Possible values are ENABLE and DISABLE. \nThe users of the customer can access the Sentinel EMS Customer Portal only if the state is set to ENABLE.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"contactEmailId","in":"query","description":"Unique email address of the user associated with the customer.","schema":{"type":"string"}},{"name":"contactId","in":"query","description":"Auto-generated unique identifier of the user. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"contactExternalId","in":"query","description":"Unique external identifier of the user associated with the customer.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are sorted in ascending order. Possible values are name, marketGroupName, identifier, refId, state, externalId, contactEmailId, phoneNumber, customeName, crmId, description, contactId, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["name","marketGroupName","identifier","externalId","refId","crmId","description","state","timeZoneId","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are sorted in descending order. Possible values are name, marketGroupName, identifier, refId, state, externalId, contactEmailId, phoneNumber, customeName, crmId, description, contactId, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["name","marketGroupName","identifier","externalId","refId","crmId","description","state","timeZoneId","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search customers.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search customers.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of customer.\nFollowing is a sample URI: \n`GET /ems/api/v5/customers?CA_CSTMR.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_CSTMR: Perform search on a customer-level custom attribute.\n\nThe rules to be followed when using custom attributes to search customers are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customAttributes, fingerprints, and contacts.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customers":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"customer":{"items":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the user creating the customer must belong to the given market group.","nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"contacts":{"description":"Contacts associated with the customer.","properties":{"contact":{"items":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","example":"TestUser@example.com"},"externalId":{"type":"string","example":"UserExternalId"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"externalContacts":{"description":"External contacts associated with the customer.","properties":{"externalContact":{"items":{"properties":{"contact":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","example":"TestExternalAdmin@example.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"fingerprints":{"description":"Fingerprints associated with the customer.","properties":{"fingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","example":"FriendlyName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}}},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}":{"get":{"tags":["Customer"],"summary":"Get Customer","description":"Retrieve a specific customer based on its unique identifier.","operationId":"getCustomer","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"description":"Contacts associated with the customer.","properties":{"contact":{"nullable":true}},"nullable":true},"externalContacts":{"description":"External contacts associated with the customer.","properties":{"externalContact":{"items":{"properties":{"contact":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","example":"user@example.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"fingerprints":{"description":"Fingerprints associated with the customer.","properties":{"fingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","example":"FriendlyName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"externalCustomers":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Customer"],"summary":"Replace Customer","description":"Update an existing customer completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateCustomer","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"properties":{"contact":{"description":"Details of the user you want to associate with the customer. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attribute.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value  depends on the  template data type. Permissible types are String, Date, Numeric, Boolean, Integer, and List.","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Customer details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"description":"Contacts associated with the customer.","properties":{"contact":{"nullable":true}},"nullable":true},"externalContacts":{"description":"External contacts associated with the customer.","properties":{"externalContact":{"items":{"properties":{"contact":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","example":"user@example.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"fingerprints":{"description":"Fingerprints associated with the customer.","properties":{"fingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","example":"FriendlyName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"externalCustomers":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update Customer","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateCustomer","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"properties":{"contact":{"description":"Details of the user you want to associate with the customer. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attribute.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. The data type of the value  depends on the  template data type. Permissible types are String, Date, Numeric, Boolean, Integer, and List.","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Customer details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestName"},"identifier":{"type":"string","example":"CIdentifier","description":"User-defined unique identifier of the customer. This is auto-generated if not defined. \nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n"},"externalId":{"example":"CExternalId","type":"string","description":"Unique external identifier of the customer."},"refId":{"example":"refId","type":"string","description":"Reference identifier of the customer as used by external ERP/CRM systems."},"crmId":{"example":"crmId","type":"string","description":"The Customer Relationship Management (CRM) identification number of the customer."},"description":{"example":"Customer Description","type":"string","description":"Description of the customer."},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: The time zone ID defined here can be overridden when creating an activation. \nDefault: UTC\n"},"state":{"example":"ENABLE","description":"State of the customer. The users of the customer can access Sentinel EMS only if the state is set to ENABLE. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the customer.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the customer.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the customer belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the customer is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the customer must belong to the given market group.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"contacts":{"nullable":true,"properties":{"contact":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":""},"name":{"type":"string","example":""},"emailId":{"type":"string","example":""},"externalId":{"type":"string","example":""},"identifier":{"type":"string","example":""},"state":{"type":"string","example":"ENABLE"}}}}}},"externalContacts":{"description":"External contacts associated with the customer.","properties":{"externalContact":{"items":{"properties":{"contact":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","example":"user@example.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"fingerprints":{"description":"Fingerprints associated with the customer.","properties":{"fingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","example":"FriendlyName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"externalCustomers":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Customer"],"summary":"Delete Customer","description":"Delete a customer if it is not associated with any entitlement.","operationId":"deleteCustomer","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/contacts":{"put":{"tags":["Customer"],"summary":"Replace Associated Users","description":"Replace the already-associated users of a customer with the given users.\n","operationId":"updateCustomerContacts","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"object","properties":{"contact":{"description":"Details of the user you want to associate with the customer. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","nullable":true}}}}}}},"description":"Customer user details to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update Associated Users","description":"Associate a new user to the customer in addition to the existing users.","operationId":"partialUpdateCustomerContacts","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"object","properties":{"contact":{"description":"Details of the user you want to associate with the customer. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","nullable":true}}}}}}},"description":"Customer user details to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Customer"],"summary":"Delete Associated User","description":"You can dissociate a user from a customer if the customer is not associated with any entitlement, activation, or revocation.","operationId":"deleteCustomerContact","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the user to be removed from the customer.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/bulk":{"post":{"tags":["Customer"],"summary":"Bulk Customer Upload","description":"Upload a large customer data set to Sentinel EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Customers API. For CSV format type, refer to the Sentinel EMS User Guide.\n **Note**:\n- With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion. \n- The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n- Only vendor users with administrator permissions can use this endpoint. \n","operationId":"dataUploadCustomer","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Customer"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/externalContacts":{"patch":{"tags":["Customer"],"summary":"Add External Account Administrator","description":"Grant operational access to the customer administrator of another customer.\n\nThe following roles have the permission to add an external account administrator:\n- Vendor administrator.\n- Vendor user with 'Edit' permission for customer management.\n- Customer administrator of the customer.\n\nAn external account administrator cannot:\n- manage Sentinel RMS Cloud LM license sessions.\n- own entitlements for another customer account.\n- access licenses from another customer using user-based licensing.\n","operationId":"addExternalAccountAdmin","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are:\n- id\n- name (For example: name=TestCustomer)\n- identifier (For example: identifier=CustIdentifier)\n- externalId (For example: externalId=CustExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"description":"Details of the external account administrator to be added for the customer.","content":{"application/json":{"schema":{"type":"object","properties":{"externalContacts":{"type":"object","properties":{"externalContact":{"description":"List of administrators from another customer account to add to the customer account.","items":{"properties":{"contact":{"description":"Customer administrator from another account to receive access to the customer account.","properties":{"emailId":{"type":"string","description":"Email address of the customer administrator to receive access to the customer account.","example":"admin@anothercustomer.com"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}}}}}},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Customer"],"summary":"Search External Account Administrators","description":"Retrieves a list of customer administrators that have operational access to the customer account.\n\nIf you do not specify any query parameters, the endpoint returns all records.\n\nThe following roles have the permission to search external account administrators:\n- Vendor administrator.\n- Vendor user with 'View' permission for customer management.\n- Customer administrator of the customer.\n","operationId":"searchExternalAccountAdmins","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are:\n- id\n- name (For example: name=TestCustomer)\n- identifier (For example: identifier=CustIdentifier)\n- externalId (For example: externalId=CustExternalId)\n","schema":{"type":"string"},"required":true},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"sortByAsc","in":"query","description":"Column name to sort results in ascending order. Possible values are contactUserId, contactId, contactEmailId, contactName, and contactCustomerName.","schema":{"type":"string","enum":["contactUserId","contactId","contactEmailId","contactName","contactCustomerName"]}},{"name":"sortByDesc","in":"query","description":"Column name to sort results in descending order. Possible values are contactUserId, contactId, contactEmailId, contactName, and contactCustomerName.","schema":{"type":"string","enum":["contactUserId","contactId","contactEmailId","contactName","contactCustomerName"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"externalContacts":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of external account admins.","example":1},"contact":{"description":"List of external account admins.","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}}}}},"description":"Successful operation"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["Customer"],"summary":"Remove External Account Administrator","description":"Revokes the operational access of the customer administrator of a different customer.\n\nThe following roles have the permission to remove an external account administrator:\n- Vendor administrator.\n- Vendor user with 'Delete' permission for customer management.\n- Customer administrator of the customer.\n\n**Note:** At least one of the following query parameters is mandatory: contactId, contactEmailId, contactName, or contactExternalId.\n\nThe external account administrator receives an email notification informing them of the access removal.\n","operationId":"deleteExternalAccountAdmin","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are:\n- id\n- name (For example: name=TestCustomer)\n- identifier (For example: identifier=CustIdentifier)\n- externalId (For example: externalId=CustExternalId)\n","schema":{"type":"string"},"required":true},{"name":"contactId","in":"query","description":"Auto-generated unique identifier of the external account administrator.","schema":{"type":"string"}},{"name":"contactEmailId","in":"query","description":"Email address of the external account administrator.","schema":{"type":"string"}},{"name":"contactName","in":"query","description":"Name of the external account administrator.","schema":{"type":"string"}},{"name":"contactExternalId","in":"query","description":"External identifier of the external account administrator.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customerContext":{"post":{"tags":["Customer"],"summary":"Generate Customer Context Token","description":"Enables a customer administrator to switch their operational environment to manage resources on behalf of a specific customer account.\n\nThis API validates that you have the necessary permissions, either as the primary customer administrator or as an external account administrator of the customer account, before granting the context token. To be eligible, both the customer administrator and the target customer account must belong to the same market group.\n\n**Use Cases:**\n- An external account administrator needs to switch context to manage resources of the target customer.\n- A primary customer administrator needs to switch or confirm their current context while managing resources within a specific session.\n\nOnce you have obtained the context token, you must include it in the X-Customer-Context header of the subsequent API requests to perform operations on behalf of the specified customer.\n","operationId":"generateCustomerContext","security":[{"basicAuth":[]}],"requestBody":{"description":"Details of the customer administrator for whom to generate the customer context token.","content":{"application/json":{"schema":{"type":"object","properties":{"customerContext":{"type":"object","required":["customer"],"properties":{"customer":{"required":["id"],"properties":{"id":{"type":"string","description":"Unique identifier of the customer. Possible values are:\n- id\n- name (For example: name=TestCustomer)\n- identifier (For example: identifier=CustIdentifier)\n- externalId (For example: externalId=CustExternalId)\n","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the customer (optional).","example":"TestCustomer"},"identifier":{"type":"string","description":"Identifier of the customer (optional).","example":"CIdentifier"}},"nullable":true}}}},"required":["customerContext"]}}}},"responses":{"200":{"description":"Context token generated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"customerContext":{"type":"object","properties":{"customer":{"description":"Details of the customer for which the context token was generated.","required":["id","name","identifier"],"properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer.","example":"CIdentifier"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"contextToken":{"type":"string","description":"Base64-encoded context token containing customer ID and admin type information.\n\nDecoded structure:\n- version: 1.0\n- customerId: UUID of the customer\n- isExternalAdmin: boolean indicating if user is an external admin\n\nCustomer context token to perform operations on behalf of another customer account.\n","example":"eyJjb250ZXh0VG9rZW4iOnsidmVyc2lvbiI6IjEuMCIsImN1c3RvbWVySWQiOiJ4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHh4IiwiaXNFeHRlcm5hbEFkbWluIjp0cnVlfX0="},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/licenseGrants/{licenseGrantId}":{"get":{"tags":["Activation"],"summary":"Get License Grant","description":"\nRetrieve a specific license grant for a given customer.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can access all license grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can access all license grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can access license grants only for their own customer.\n","operationId":"getLicenseGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"in":"path","name":"licenseGrantId","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseGrant":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the license grant.","example":"00000000-0000-0000-0000-000000000000"},"customer":{"description":"Details of the customer associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"}},"nullable":true},"product":{"properties":{"id":{"type":"string","description":"ID of the product associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product associated with the license grant."}},"description":"Contains details of the product associated with the license grant.","type":"object"},"associatedEntity":{"type":"string","example":"Activation","description":"The Sentinel EMS entity associated with the license grant. Currently, this is always **Activation**."},"reference":{"description":"Details of the reference based on which a license grant is generated.","properties":{"id":{"type":"string","description":"The reference ID for generating a license grant. It refers to: \n  - key ID for Sentinel LDK enforcement\n  - activation ID for other enforcements\n","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"The reference type for generating a license grant. Possible values: \n  - KEY for Sentinel LDK enforcement\n  - ACTIVATION for other enforcements\n","example":"Key"}},"nullable":true},"enforcement":{"description":"Contains details of the enforcement associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the enforcement associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement associated with the license grant.","example":"10.2"},"name":{"type":"string","description":"Name of the enforcement associated with the license grant.","example":"Sentinel RMS"}},"nullable":true},"limitType":{"type":"integer","description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier on a key together if the named user limit is enabled. Activate one line item at a time in such cases.\n","example":1},"maxLimit":{"type":"integer","description":"The maximum number of users that can be associated with the license grant.\n- If the named user limit is enabled in a product, the value is calculated as the activation quantity of the product multiplied by the number of named users defined within the activated product. The value must not exceed 999999.\n- If the named user limit is not enabled, this value remains zero.\n","example":1},"limitConsumed":{"type":"integer","description":"Number of users associated with the license grant.","example":1},"metaData":{"description":"Intended for future use to store additional details for the license grant."},"accessGrants":{"properties":{"accessGrant":{"description":"Contains details of all users associated with the license grant.","items":{"properties":{"consumer":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","description":"The username associated with the creation of the license grant.","example":"TestUserName"},"creationDate":{"description":"Timestamp indicating when the license grant was created.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"The username associated with the last modification to the license grant.","example":"TestUserName"},"lastModifiedDate":{"description":"Timestamp indicating the last change to the license grant.","example":"2026-07-07 07:07","type":"string"},"description":{"type":"string","description":"Description of the license grant. \n\n\n Note: When referenceEntityType is ACTIVATION, the description value is derived from the activation comments specified during an activation. For Sentinel LDK, this value is initially blank. You can update the description using the Update License Grant API endpoint.","example":"TestDescription"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Activation"],"summary":"Update License Grant","description":"\nUpdate details of a specific license grant for a customer. You can only update the description of a license grant.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can access all license grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can access all license grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can access license grants only for their own customer.\n","operationId":"partialUpdateLicenseGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"licenseGrantId","in":"path","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the license grant.","example":"00000000-0000-0000-0000-000000000000"},"customer":{"description":"Details of the customer associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"}},"nullable":true},"product":{"properties":{"id":{"type":"string","description":"ID of the product associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product associated with the license grant."}},"type":"object"},"associatedEntity":{"type":"string","example":"Activation","description":"The Sentinel EMS entity associated with the license grant. Currently, this is always **Activation**."},"reference":{"description":"Details of the reference based on which a license grant is generated.","properties":{"id":{"type":"string","description":"The reference ID for generating a license grant. It refers to: \n  - key ID for Sentinel LDK enforcement\n  - activation ID for other enforcements\n","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"The reference type for generating a license grant. Possible values: \n  - KEY for Sentinel LDK enforcement\n  - ACTIVATION for other enforcements\n","example":"Key"}},"nullable":true},"enforcement":{"description":"Contains details of the enforcement associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the enforcement associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement associated with the license grant.","example":"10.2"},"name":{"type":"string","description":"Name of the enforcement associated with the license grant.","example":"Sentinel RMS"}},"type":"object"},"limitType":{"type":"integer","description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier on a key together if the named user limit is enabled. Activate one line item at a time in such cases.\n","example":1},"maxLimit":{"type":"integer","description":"The maximum number of users that can be associated with the license grant.\n- If the named user limit is enabled in a product, the value is calculated as the activation quantity of the product multiplied by the number of named users defined within the activated product. The value must not exceed 999999.\n- If the named user limit is not enabled, this value remains zero.\n","example":1},"limitConsumed":{"type":"integer","description":"Number of users associated with the license grant.","example":1},"metaData":{"description":"Intended for future use to store additional details for the license grant."},"accessGrants":{"properties":{"accessGrant":{"description":"Contains details of all users associated with the license grant.","items":{"properties":{"consumer":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","description":"The username associated with the creation of the license grant.","example":"TestUserName"},"creationDate":{"description":"Timestamp indicating when the license grant was created.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"The username associated with the last modification to the license grant.","example":"TestUserName"},"lastModifiedDate":{"description":"Timestamp indicating the last change to the license grant.","example":"2026-07-07 07:07","type":"string"},"description":{"type":"string","description":"Description of the license grant. \n\n\n Note: When referenceEntityType is ACTIVATION, the description value is derived from the activation comments specified during an activation. For Sentinel LDK, this value is initially blank. You can update the description using the Update License Grant API endpoint.","example":"TestDescription"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"}},"nullable":true}},"type":"object"}}},"description":"License grant details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseGrant":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the license grant.","example":"00000000-0000-0000-0000-000000000000"},"customer":{"description":"Details of the customer associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"}},"nullable":true},"product":{"properties":{"id":{"type":"string","description":"ID of the product associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product associated with the license grant."}},"description":"Contains details of the product associated with the license grant.","type":"object"},"associatedEntity":{"type":"string","example":"Activation","description":"The Sentinel EMS entity associated with the license grant. Currently, this is always **Activation**."},"reference":{"description":"Details of the reference based on which a license grant is generated.","properties":{"id":{"type":"string","description":"The reference ID for generating a license grant. It refers to: \n  - key ID for Sentinel LDK enforcement\n  - activation ID for other enforcements\n","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"The reference type for generating a license grant. Possible values: \n  - KEY for Sentinel LDK enforcement\n  - ACTIVATION for other enforcements\n","example":"Key"}},"nullable":true},"enforcement":{"description":"Contains details of the enforcement associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the enforcement associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement associated with the license grant.","example":"10.2"},"name":{"type":"string","description":"Name of the enforcement associated with the license grant.","example":"Sentinel RMS"}},"nullable":true},"limitType":{"type":"integer","description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier on a key together if the named user limit is enabled. Activate one line item at a time in such cases.\n","example":1},"maxLimit":{"type":"integer","description":"The maximum number of users that can be associated with the license grant.\n- If the named user limit is enabled in a product, the value is calculated as the activation quantity of the product multiplied by the number of named users defined within the activated product. The value must not exceed 999999.\n- If the named user limit is not enabled, this value remains zero.\n","example":1},"limitConsumed":{"type":"integer","description":"Number of users associated with the license grant.","example":1},"metaData":{"description":"Intended for future use to store additional details for the license grant."},"accessGrants":{"properties":{"accessGrant":{"description":"Contains details of all users associated with the license grant.","items":{"properties":{"consumer":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","description":"The username associated with the creation of the license grant.","example":"TestUserName"},"creationDate":{"description":"Timestamp indicating when the license grant was created.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"The username associated with the last modification to the license grant.","example":"TestUserName"},"lastModifiedDate":{"description":"Timestamp indicating the last change to the license grant.","example":"2026-07-07 07:07","type":"string"},"description":{"type":"string","description":"Description of the license grant. \n\n\n Note: When referenceEntityType is ACTIVATION, the description value is derived from the activation comments specified during an activation. For Sentinel LDK, this value is initially blank. You can update the description using the Update License Grant API endpoint.","example":"TestDescription"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/licenseGrants":{"get":{"tags":["Activation"],"summary":"Search License Grants","description":"\nRetrieve a list of license grants for a given customer based on the specified query parameters. If you do not specify any optional query parameters, the endpoint returns all license grants for the customer.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can access all license grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can access all license grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can access license grants only for their own customer.\n","operationId":"searchLicenseGrants","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"productIdentifier","in":"query","description":"Unique identifier of the activated product.","schema":{"type":"string"}},{"name":"associatedEntity","in":"query","description":"The Sentinel EMS entity associated with the license grant. Currently, this is always **Activation**.","schema":{"type":"string"}},{"name":"referenceId","in":"query","description":"The reference ID for generating a license grant. It refers to: \n  - Key ID for Sentinel LDK enforcement\n  - Activation ID for other enforcements\n","schema":{"type":"string"}},{"name":"referenceEntityType","in":"query","description":"The reference type for generating a license grant. Possible values: \n  - **KEY** for Sentinel LDK enforcement\n  - ACTIVATION for other enforcements\n","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the license grant. For optimal search performance, use description together with productIdentifier.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order.","schema":{"type":"string","enum":["creationDate","productIdentifier"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in descending order.","schema":{"type":"string","enum":["creationDate","productIdentifier"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search license grant.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search license grant.","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are:\n accessGrants, metaData\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseGrants":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"licenseGrant":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the license grant.","example":"00000000-0000-0000-0000-000000000000"},"customer":{"description":"Details of the customer associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the customer associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer associated with the license grant.","example":"externalId"},"name":{"type":"string","description":"Name of the customer associated with the license grant.","example":"TestCustomer"}},"nullable":true},"product":{"properties":{"id":{"type":"string","description":"ID of the product associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product associated with the license grant."}},"description":"Contains details of the product associated with the license grant.","type":"object"},"associatedEntity":{"type":"string","example":"Activation","description":"The Sentinel EMS entity associated with the license grant. Currently, this is always **Activation**."},"reference":{"description":"Details of the reference based on which a license grant is generated.","properties":{"id":{"type":"string","description":"The reference ID for generating a license grant. It refers to: \n  - key ID for Sentinel LDK enforcement\n  - activation ID for other enforcements\n","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"The reference type for generating a license grant. Possible values: \n  - KEY for Sentinel LDK enforcement\n  - ACTIVATION for other enforcements\n","example":"Key"}},"nullable":true},"enforcement":{"description":"Contains details of the enforcement associated with the license grant.","properties":{"id":{"type":"string","description":"ID of the enforcement associated with the license grant.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement associated with the license grant.","example":"10.2"},"name":{"type":"string","description":"Name of the enforcement associated with the license grant.","example":"Sentinel RMS"}},"type":"object"},"limitType":{"type":"integer","description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier on a key together if the named user limit is enabled. Activate one line item at a time in such cases.\n","example":1},"maxLimit":{"type":"integer","description":"The maximum number of users that can be associated with the license grant.\n- If the named user limit is enabled in a product, the value is calculated as the activation quantity of the product multiplied by the number of named users defined within the activated product. The value must not exceed 999999.\n- If the named user limit is not enabled, this value remains zero.\n","example":1},"limitConsumed":{"type":"integer","description":"Number of users associated with the license grant.","example":1},"metaData":{"description":"Intended for future use to store additional details for the license grant."},"accessGrants":{"properties":{"accessGrant":{"description":"Contains details of all users associated with the license grant.","items":{"properties":{"consumer":{"properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","description":"The username associated with the creation of the license grant.","example":"TestUserName"},"creationDate":{"description":"Timestamp indicating when the license grant was created.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"The username associated with the last modification to the license grant.","example":"TestUserName"},"lastModifiedDate":{"description":"Timestamp indicating the last change to the license grant.","example":"2026-07-07 07:07","type":"string"},"description":{"type":"string","description":"Description of the license grant. \n\n\n Note: When referenceEntityType is ACTIVATION, the description value is derived from the activation comments specified during an activation. For Sentinel LDK, this value is initially blank. You can update the description using the Update License Grant API endpoint.","example":"TestDescription"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/partners":{"post":{"tags":["Partner"],"summary":"Add Partner","description":"Add a new channel partner. \nA channel partner refers to an organization that is allowed to re-sell the products of a software vendor.\n","operationId":"addPartner","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"example":"","description":"Name of the user-defined custom attributes for the partner.","type":"string"},"value":{"example":"","description":"Value of the user-defined custom attributes for the partner. \nThe data type of the value depends on the  template data type of the partner. \nPermissible data types are string, integer, boolean, date and list.\n","type":"string"}},"type":"object","nullable":true}}},"nullable":true},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"type":"array","items":{"properties":{"loginId":{"example":"","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"","description":"Name of the partner user.","type":"string"},"emailId":{"example":"","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"","description":"Unique external identifier of the partner user.","type":"string"}},"type":"object","nullable":true}}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Partner details to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"items":{"properties":{"loginId":{"example":"TestUser","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"emailId":{"example":"user@example.com","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"EXT-001","description":"Unique external identifier of the partner user.","type":"string"},"name":{"example":"TestName","description":"Name of the partner user.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Partner created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Invalid input"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Partner"],"summary":"Search Partners","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchPartners","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the partner. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the partner. Possible values are ENABLE and DISABLE. \nThe partner users for the partner can access the Sentinel EMS Channel Partner Portal only if the state is set to ENABLE.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"name","in":"query","description":"Name of the partner.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the partner as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique partner identifier.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the partner you want to search.","schema":{"type":"string"}},{"name":"partnerUserEmailId","in":"query","description":"Unique email address of the user associated with the partner.","schema":{"type":"string"}},{"name":"partnerUserLoginId","in":"query","description":"Unique login ID of the user associated with the partner.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order.\nPossible values are name, refId1, refId2, identifier, state, creationDate, lastModifiedDate and externalId.\n","schema":{"type":"string","enum":["name","refId1","refId2","identifier","state","creationDate","lastModifiedDate","externalId"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in descending order.\nPossible values are name, refId1, refId2, identifier, state, creationDate, lastModifiedDate and externalId.\n","schema":{"type":"string","enum":["name","refId1","refId2","identifier","state","creationDate","lastModifiedDate","externalId"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search partners.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search partners.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of partner.\nFollowing is a sample URI: \n`GET /ems/api/v5/partners?CA_PRTNR.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_PRTNR: Perform search on a partner-level custom attribute.\n\nThe rules to be followed when using custom attributes to search partners are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customAttributes,shippingDetails,partnerUsers and billingDetails","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partners":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"partner":{"items":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"items":{"properties":{"loginId":{"example":"TestUser","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"emailId":{"example":"user@example.com","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"EXT-001","description":"Unique external identifier of the partner user.","type":"string"},"name":{"example":"TestName","description":"Name of the partner user.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/partners/{partnerId}":{"get":{"tags":["Partner"],"summary":"Get Partner","description":"Retrieve a specific partner based on its unique identifier.","operationId":"getPartner","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"items":{"properties":{"loginId":{"example":"TestUser","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"TestName","description":"Name of the partner user.","type":"string"},"emailId":{"example":"user@example.com","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"EXT-001","description":"Unique external identifier of the partner user.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Partner"],"summary":"Replace Partner","description":"Update an existing partner completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updatePartner","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"example":"","description":"Name of the user-defined custom attributes for the partner.","type":"string"},"value":{"example":"","description":"Value of the user-defined custom attributes for the partner. \nThe data type of the value depends on the  template data type of the partner. \nPermissible data types are string, integer, boolean, date and list.\n","type":"string"}},"type":"object","nullable":true}}},"nullable":true},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":100001,"description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":100001,"description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"type":"array","items":{"properties":{"loginId":{"example":"","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"","description":"Name of the partner user.","type":"string"},"emailId":{"example":"","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"","description":"Unique external identifier of the partner user.","type":"string"}},"type":"object","nullable":true}}},"nullable":true}},"type":"object"}}},"description":"Partner details to be updated.\nWith the exception of the partner id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"items":{"properties":{"loginId":{"example":"TestUser","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"TestName","description":"Name of the partner user.","type":"string"},"emailId":{"example":"user@example.com","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"EXT-001","description":"Unique external identifier of the partner user.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Partner"],"summary":"Update Partner","description":"Associate a new partner user in addition to the existing users.","operationId":"patchPartner","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"example":"","description":"Name of the user-defined custom attributes for the partner.","type":"string"},"value":{"example":"","description":"Value of the user-defined custom attributes for the partner. \nThe data type of the value depends on the  template data type of the partner. \nPermissible data types are string, integer, boolean, date and list.\n","type":"string"}},"type":"object","nullable":true}}},"nullable":true},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":100001,"description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":100001,"description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"type":"array","items":{"properties":{"loginId":{"example":"","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"","description":"Name of the partner user.","type":"string"},"emailId":{"example":"","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"","description":"Unique external identifier of the partner user.","type":"string"}},"type":"object","nullable":true}}},"nullable":true}},"type":"object"}}},"description":"Partner details to be updated.\nWith the exception of the partner id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Unique identifier of the partner.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the partner.","example":"TestChannelPartner"},"identifier":{"type":"string","description":"User-specified unique identifier of the partner. The identifier is auto-generated if not specified.\nUnderscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.\n","example":"CPIdentifier"},"externalId":{"type":"string","description":"External identifier of the partner.","example":"CPExternalId"},"state":{"example":"ENABLE","description":"State of the partner. The partner users for the partner can access Sentinel EMS only if the state is set to ENABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"refId1":{"type":"string","description":"First reference identifier of the partner as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the partner as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the partner.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner.","example":"2026-07-07 07:07","type":"string"},"shippingDetails":{"properties":{"address":{"description":"Shipping address of the partner.","type":"string","example":"shipping address"},"city":{"example":"shipping city","description":"Name of the city of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"state":{"example":"shipping state","description":"Name of the state of the shipping address. \nMinimum length: 1\nMaximum length: 30\n","type":"string"},"country":{"example":"shipping country","description":"Name of the country of the shipping address.\nMinimum length: 1\nMaximum length: 30\n","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the shipping address.\nMinimum length: 1\nMaximum length: 20\n","type":"string"}},"nullable":true},"billingDetails":{"properties":{"address":{"example":"billing address","description":"Billing address of the partner.\nMinimum length: 1\nMaximum length: 100\n","title":"The name schema","type":"string"},"city":{"example":"billing city","description":"Name of the city of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"state":{"example":"billing state","description":"Name of the state of the billing address. \nMinimum length: 1\nMaximum length: 30\n","title":"The name schema","type":"string"},"country":{"example":"billing country","description":"Name of the country of the billing address.\nMinimum length: 1\nMaximum length: 30\n","title":"The value schema","type":"string"},"zip":{"example":"100001","description":"ZIP or postal code of the billing address.\nMinimum length: 1\nMaximum length: 20\n","title":"The value schema","type":"string"}},"nullable":true},"partnerUsers":{"properties":{"partnerUser":{"items":{"properties":{"loginId":{"example":"TestUser","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \nLength: 6 to 100 characters \nSpecial characters are not allowed, except for underscore.\n","type":"string"},"name":{"example":"TestName","description":"Name of the partner user.","type":"string"},"emailId":{"example":"user@example.com","description":"Unique email address of the partner user.","type":"string"},"externalId":{"example":"EXT-001","description":"Unique external identifier of the partner user.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Partner"],"summary":"Delete Partner","description":"Delete a partner if it is not associated with any entitlement.","operationId":"deletePartner","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/partners/{partnerId}/partnerUsers":{"get":{"tags":["Partner"],"summary":"List Partner Users","description":"Lists all the partner users associated with the given partner.","operationId":"searchPartnerUsers","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Field available is: customAttributes.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search partner users.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search partner users.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of partner users.\nFollowing is a sample URI: \n`GET /ems/api/v5/partnerUsers?CA_USER.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_USER: Perform search on a partnerUsers-level custom attribute.\n\nThe rules to be followed when using custom attributes to search partner users are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partnerUsers":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"partnerUser":{"items":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"post":{"tags":["Partner"],"summary":"Add Partner User","operationId":"addPartnerUser","description":"Add a new partner user. \nA channel partner can have multiple users, who use the Channel Partner portal of Sentinel EMS to manage entitlements for their customers.\n","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":""},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":""}}}}},"nullable":true}},"type":"object"}}},"description":"Partner user details to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"partner":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"Partner user created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/partners/{partnerId}/partnerUsers/{userId}":{"get":{"tags":["Partner"],"summary":"Get Partner User","description":"Retrieve a specific partner user based on its unique identifier.","operationId":"getPartnerUser","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"userId","in":"path","description":"Unique identifier of the partner user. Possible values are: \n  - id \n  - loginId (For example: loginId=TestPartnerUser)\n  - externalId (For example: externalId=partnerUserExternalId)\n  - emailId (For example: emailId=TestPartnerUser@example&#8226;com)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partnerUser":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Partner"],"summary":"Replace Partner User","description":"Completely replaces the specific partner user.\n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updatePartnerUser","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"userId","in":"path","description":"Unique identifier of the partner user. Possible values are: \n  - id \n  - loginId (For example: loginId=TestPartnerUser)\n  - externalId (For example: externalId=partnerUserExternalId)\n  - emailId (For example: emailId=TestPartnerUser@example&#8226;com)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["partnerUser"],"properties":{"partnerUser":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Partner user details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partnerUser":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Partner"],"summary":"Update Partner User","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdatePartnerUser","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"userId","in":"path","description":"Unique identifier of the partner user. Possible values are: \n  - id \n  - loginId (For example: loginId=TestPartnerUser)\n  - externalId (For example: externalId=partnerUserExternalId)\n  - emailId (For example: emailId=TestPartnerUser@example&#8226;com)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["partnerUser"],"properties":{"partnerUser":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Partner user details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partnerUser":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the partner user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the partner user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters. \n","example":"TestPartnerUser"},"name":{"type":"string","description":"Name of the partner user.","example":"TestPartnerUser"},"externalId":{"type":"string","description":"Unique external identifier of the partner user.","example":"partnerUserExternalId"},"emailId":{"type":"string","description":"Unique email address of the partner user.","example":"TestPartnerUser@example.com"},"creationDate":{"description":"Creation date of the partner user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the partner user.","example":"2026-07-07 07:07","type":"string"},"password":{"type":"string","description":"Password of the partner user. The password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Partner"],"summary":"Delete Partner User","description":"Delete a partner user associated with a partner.","operationId":"deletePartnerUser","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"userId","in":"path","description":"Unique identifier of the partner user. Possible values are: \n  - id \n  - loginId (For example: loginId=TestPartnerUser)\n  - externalId (For example: externalId=partnerUserExternalId)\n  - emailId (For example: emailId=TestPartnerUser@example&#8226;com)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements":{"post":{"tags":["Entitlement"],"summary":"Add Entitlement","description":"An entitlement refers to the rights of an end-user to use a software package.\nYou can create an entitlement in the draft state without providing product details.\nTo create an entitlement in the enabled state directly, associate at least one product and set the state parameter to ENABLE.\n","operationId":"addEntitlement","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Details of the entitlement to be added.\nNote: \n - (For Sentinel RMS, Sentinel Fit, and Services) If the &#39;Copy License Date from Entitlement Line Item&#39; property is set to ‘Yes’ (Administration Console > Entitlement Configuration), do not provide the START_DATE and END_DATE attributes for the license model in the input. This ensures the start and end dates are copied from the entitlement line item to the license model. If you specify these attributes in the input, you must keep the dates the same as in the entitlement line item. \n - (For Sentinel LDK’s ‘Expiration Date' license model) If the &#39;Copy Dates from Entitlement Line Item&#39; option is set to ‘Yes’ during license model configuration, do not provide the START_DATE and END_DATE attributes in the input. This ensures the start and end dates are copied from the entitlement line item to the license model.\n - (For Sentinel RMS and Services) If the START_LICENSE_FROM_ACTIVATION_DATE attribute is &#39;true&#39; in the license model, then the START_DATE and END_DATE attribute values shown in the response of this endpoint are irrelevant. \n - (For Sentinel RMS) If the &#39;Set Start and End Dates on First Activation&#39; property is set to &#39;Yes&#39; (Administration Console > Activation Configuration), and the START_LICENSE_FROM_ACTIVATION_DATE attribute is set to &#39;true&#39; in the license model, then the START_DATE and END_DATE attributes will be set at the first activation. The START_DATE is the date of the first activation. The END_DATE is calculated based on the LICENSE_DURATION_IN_DAYS attribute value. "},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"type":"object","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","nullable":true},"entitlementFingerprints":{"properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","description":"Name of the enforcement.","example":"Sentinel LDK"}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature."},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"nullable":true},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":4},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true},"description":{"type":"string","example":""},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"Entitlement created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Entitlement"],"summary":"Search Entitlements","description":"Retrieve all entitlements or a list of entitlements that match the given query parameters.\n\n","operationId":"searchEntitlements","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the entitlement. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"eId","in":"query","description":"EID of the entitlement. You can specify multiple values separated by commas.","schema":{"type":"string"}},{"name":"productKey","in":"query","description":"Unique identifier (pkId) of the product key. You can specify multiple values separated by commas.","schema":{"type":"string"}},{"name":"itemExternalId","in":"query","description":"Unique external identifier of the product key.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the entitlement.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the entitlement. Valid values are  DRAFT, ENABLE, DISABLE and CLOSED. \n **Note**: You can specify multiple values separated by commas.","schema":{"type":"string"}},{"name":"createdBy","in":"query","description":"Name of the user who created the entitlement.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search entitlements.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search entitlements.","schema":{"type":"string"}},{"name":"startDateFrom","in":"query","description":"The starting date of the expiration range (in YYYY-MM-DD format) to search for entitlements that start on or after the specified date.\n To find an entitlement starting on a specific date, for example, January 1, 2025, set both the startDateFrom and startDateTo to '2025-01-01'.","schema":{"type":"string"}},{"name":"startDateTo","in":"query","description":"The start date of the expiration range (in YYYY-MM-DD format) to search for entitlements that starting on or before the specified date.\n To find an entitlement starting on a specific date, for example, January 1, 2025, set both the startDateFrom and startDateTo to '2025-01-01'.","schema":{"type":"string"}},{"name":"endDateFrom","in":"query","description":"The starting date of the expiration range (in YYYY-MM-DD format) to search for entitlements that expire on or after the specified date.\n To find an entitlement expiring on a specific date, for example, December 31, 2024, set both the endDateFrom and endDateTo to '2024-12-31'.","schema":{"type":"string"}},{"name":"endDateTo","in":"query","description":"The end date of the expiration range (in YYYY-MM-DD format) to search for entitlements that expire on or before the specified date.\n To find an entitlement expiring on a specific date, for example, December 31, 2024, set both the endDateFrom and endDateTo to '2024-12-31'.","schema":{"type":"string"}},{"name":"modifiedDateFrom","in":"query","description":"Start of the modified date range (in the YYYY-MM-DD format) to search entitlements. This filter excludes entitlements where the last modified date is the same as the creation date.","schema":{"type":"string"}},{"name":"modifiedDateTo","in":"query","description":"End of the modified date range (in the YYYY-MM-DD format) to search entitlements. This filter excludes entitlements where the last modified date is the same as the creation date.","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the entitlement.","schema":{"type":"string"}},{"name":"fingerprintFriendlyName","in":"query","description":"Fingerprint Friendly Name.","schema":{"type":"string"}},{"name":"contactName","in":"query","description":"Name of the user associated with the entitlement.","schema":{"type":"string"}},{"name":"contactEmailId","in":"query","description":"Unique email address of the user associated with the entitlement.","schema":{"type":"string"}},{"name":"contactExternalId","in":"query","description":"Unique external identifier of the user associated with the entitlement.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique identifier of the customer associated with the entitlement.","schema":{"type":"string"}},{"name":"customerName","in":"query","description":"Name of the customer associated with the entitlement.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Identifier of the customer associated with the entitlement.","schema":{"type":"string"}},{"name":"marketGroupId","in":"query","description":"Auto-generated unique identifier of the market group associated with the entitlement.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the market group associated with the entitlement.","schema":{"type":"string"}},{"name":"partnerName","in":"query","description":"Name of the channel partner associated with the entitlement.","schema":{"type":"string"}},{"name":"partnerIdentifier","in":"query","description":"Unique identifier of the channel partner.","schema":{"type":"string"}},{"name":"partnerExternalId","in":"query","description":"External ID of the channel partner.","schema":{"type":"string"}},{"name":"featureId","in":"query","description":"Unique identifier of the feature associated with the entitlement. You can specify multiple values separated by comma. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"featureName","in":"query","description":"Name of the feature associated with the entitlement.","schema":{"type":"string"}},{"name":"featureExternalId","in":"query","description":"External ID of the feature.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Unique identifier of the product (also referred to as line item) associated with the entitlement. You can specify multiple values separated by comma. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product associated with an entitlement (also referred to as line item).","schema":{"type":"string"}},{"name":"productVersion","in":"query","description":"Version of the product associated with an entitlement (also referred to as line item).","schema":{"type":"string"}},{"name":"productDescription","in":"query","description":"Description of the product associated with an entitlement (also referred to as line item).","schema":{"type":"string"}},{"name":"productSuiteName","in":"query","description":"Name of the suite associated with an entitlement (also referred to as line item).","schema":{"type":"string"}},{"name":"suiteExternalId","in":"query","description":"External ID of the product suite associated with the entitlement.","schema":{"type":"string"}},{"name":"productFamilyId","in":"query","description":"Unique identifier of the product family associated with the entitlement.","schema":{"type":"string"}},{"name":"productFamilyName","in":"query","description":"Name of the product family associated with the entitlement.","schema":{"type":"string"}},{"name":"productExternalId","in":"query","description":"External ID of the product.","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product.","schema":{"type":"string"}},{"name":"productBundleName","in":"query","description":"Name of the product bundle associated with the entitlement. ","schema":{"type":"string"}},{"name":"productBundleId","in":"query","description":"Unique identifier of the product bundle associated with the entitlement.","schema":{"type":"string"}},{"name":"productBundleExternalId","in":"query","description":"External ID of the product bundle associated with the entitlement. ","schema":{"type":"string"}},{"name":"isTest","in":"query","description":"Specify true to search for test entitlements. Specify false to search for normal entitlements.","schema":{"type":"boolean"}},{"name":"isAvailableQuantity","in":"query","description":"Remaining quantity available for activation in the entitlement.","schema":{"type":"boolean"}},{"name":"isOwnerAssigned","in":"query","description":"Whether a user is associated with the entitlement.","schema":{"type":"boolean"}},{"name":"excludeExpired","in":"query","description":"Whether to exclude expired entitlements.","schema":{"type":"boolean"}},{"name":"lmAttributeName","in":"query","description":"Name of the license model attribute. If this parameter is provided, it is mandatory to provide lmAttributeValue.","schema":{"type":"string"}},{"name":"lmAttributeValue","in":"query","description":"Value of the license model attribute. This parameter is required only when lmAttributeName is provided. Otherwise, it is ignored.","schema":{"type":"string"}},{"name":"batchJobId","in":"query","description":"ID of the batch entitlement. This ID is available from the Location response header of the Add Batch Entitlement (batchCommit) endpoint.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of entitlement, line item, and user.\nFollowing is a sample URI: \n`GET /ems/api/v5/entitlements?CA_ENT.laptop=sony&CA_ENT.mobile=iphone&CA_LI.destitem=goa&CA_CONT.destination=tourismdest`\nFollowing is a sample value that can be provided here to form that URI: \n`CA_ENT.laptop=sony&CA_ENT.mobile=iphone&CA_LI.destitem=goa&CA_CONT.destination=tourismdest`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_ENT: Perform search on an entitlement-level custom attribute.\n- CA_LI:  Perform search on an entitlement-line item relationship level custom attribute.\n- CA_CONT: Perform search on a contact-level custom attribute.\n\nThe rules to be followed when using custom attributes to search entitlements are:\n- All prefixes are case-sensitive.\n- To provide multiple values, use **&** separator.\n- If the attribute value contains any special characters, you need to use the UTF-8 URL encoding for those characters. Let&#8217;s say, the custom attribute is **color** and its value is **Blue&Cyan\\\\** (containing **&** and __\\\\__ special characters), then the search string is **CA_ENT.Color=Blue%26Cyan%5C.** \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["startDate","endDate","marketGroupName","contactEmailId","customerName","customerIdentifier","customerExternalId","status","refId1","refId2","eId","externalId","userRegistration","activationAllowed","revocationAllowed","sendNotification","EntitlementAsWhole","createdBy","creationDate","lastModifiedBy","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["startDate","endDate","marketGroupName","contactEmailId","customerName","customerIdentifier","customerExternalId","status","refId1","refId2","eId","externalId","userRegistration","activationAllowed","revocationAllowed","sendNotification","EntitlementAsWhole","createdBy","creationDate","lastModifiedBy","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \n\nFields available are: customer, contact, entitlementPartners, entitlementAttributes, entitlementFingerprints, productKey.productKeyFingerprints, productKey.productVariantFingerprints, productKeys, productKey.item, productKey.itemProductSummary, productKey.commonLicenseAttributes, productKey.namedUsers, productKey.customAttributes, productKey.activationAttributes, customAttributes, and entitlementProductBundles.\n\nNote: \n- Use entitlementFingerprints if entitlementAsWhole is true for an entitlement. \n- Use productKey.productKeyFingerprints if entitlementAsWhole is false for an entitlement and the productType is DEFAULT. \n- Use productKey.productVariantFingerprints if entitlementAsWhole is false and the productType is PARENT or CHILD. \n- The search retrieves records only for the cases where FINGERPRINT_REGISTRATION is true.\n- Use entitlementProductBundles to include product bundle associations in the response.\n- Use productKey.item to retrieve the complete item details, including the associated features and license model information.\n- Use productKey.itemProductSummary to retrieve high-level product details—such as id, identifier, productType, name, version, and externalId—without including feature-level or license model data.","schema":{"type":"string"}},{"name":"productBundleVersion","in":"query","description":"Version of the product bundle associated with the entitlement.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlements":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"entitlement":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the market group.","example":"Default"}},"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","nullable":true},"entitlementFingerprints":{"properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","description":"Name of the enforcement.","example":"Sentinel LDK"}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"type":"object"},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the suite.","example":"TestSuite"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}":{"get":{"tags":["Entitlement"],"summary":"Get Entitlement","description":"Retrieve a specific entitlement based on its unique identifier.","operationId":"getEntitlement","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""},"encodeToBase64":{"type":"boolean","example":false}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Entitlement"],"summary":"Replace Entitlement","description":"Completely replaces the entitlements that are in the DRAFT state.\n  -  If a parameter is not provided, the existing value will be replaced by blank or default.\n  -  If a parameter is set to blank, the existing value will be replaced with blank.\n  -  If a parameter is set to a valid value, the existing value will be replaced by the given value.\n  - If you have provided the quantity (by setting the totalQuantity parameter) in the input, the result will be as follows:   \n    - If the entitlement is in the DRAFT state, the input quantity replaces the existing quantity. \n    - If the entitlement is in the ENABLE state, the input quantity is added/subtracted to/from the existing quantity. To increment the quantity, set totalQuantity to a positive integer, for example, 2. To decrement the quantity, set totalQuantity to a negative integer, for example, -2. If you do not want to change the quantity, remove the totalQuantity parameter from the input or provide its value as 0.\n  - To add, update, or delete named users in an entitlement, use the endpoints specific to named users instead of the **Update Entitlement** endpoint. To add named users, use the **Update Associated Named User** endpoint. To update the details of an associated named user, use the **Update Associated Named User** endpoint. To remove named users, use the **Remove Associated Named User** endpoint.\n  - For lease entitlements, you cannot update fingerprint registration and redundancy attributes after activation.\n  - Certain license model attributes cannot be updated if the entitlement is in the ENABLE (Completed) state. To identify these attributes, refer to the license model definition and check the **modificationAction** parameter value. If **modificationAction** is set to **NONE** for a license model attribute, you cannot update its value once the entitlement reaches the ENABLE (Completed) state.\n  - For Cloud-connected entitlements, the totalQuantity is always 1 and cannot be changed. Any totalQuantity value provided in the input will be ignored.\n\n\n**Note**: Do not use this endpoint to perform partial update to the entitlement, such as changing the entitlement state. Use the PATCH method instead.\n","operationId":"updateEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Entitlement details to be updated.\nNote: \n - (For Sentinel RMS, Sentinel Fit, and Services) If the &#39;Copy License Date from Entitlement Line Item&#39; property is set to ‘Yes’ (Administration Console > Entitlement Configuration), do not provide the START_DATE and END_DATE attributes for the license model in the input. This ensures the start and end dates are copied from the entitlement line item to the license model. If you specify these attributes in the input, you must keep the dates the same as in the entitlement line item. \n - (For Sentinel LDK’s ‘Expiration Date' license model) If the &#39;Copy Dates from Entitlement Line Item&#39; option is set to ‘Yes’ during license model configuration, do not provide the START_DATE and END_DATE attributes in the input. This ensures the start and end dates are copied from the entitlement line item to the license model.\n - (For Sentinel RMS and Services) If the START_LICENSE_FROM_ACTIVATION_DATE attribute is true in the license model, the START_DATE and START_DATE values shown in the response of this endpoint are irrelevant."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Entitlement","description":"Update an entitlement throughout its life cycle, regardless of the entitlement state. \nNote:\n  - Use this endpoint if partial update is required.\n  - To change the state of an entitlement or product key, use specific endpoints, such as **Enable Entitlement** or **Enable Product Key**, instead of the **Update Entitlement** endpoint.\n  - If you have provided the quantity (by setting the totalQuantity parameter) in the input, the result will be as follows:   \n    - If the entitlement is in the DRAFT state, the input quantity replaces the existing quantity. \n    - If the entitlement is in the ENABLE state, the input quantity is added/subtracted to/from the existing quantity. To increment the quantity, set totalQuantity to a positive integer, for example, 2. To decrement the quantity, set totalQuantity to a negative integer, for example, -2. If you do not want to change the quantity, remove the totalQuantity parameter from the input or provide its value as 0.\n  - To add, update, or delete named users in an entitlement, use the endpoints specific to named users instead of the **Update Entitlement** endpoint. To add named users, use the **Update Associated Named User** endpoint. To update the details of an associated named user, use the **Update Associated Named User** endpoint. To remove named users, use the **Remove Associated Named User** endpoint.\n  - For lease entitlements, you cannot update fingerprint registration and redundancy attributes after activation.\n  - Certain license model attributes cannot be updated if the entitlement is in the ENABLE (Completed) state. To identify these attributes, refer to the license model definition and check the **modificationAction** parameter value. If **modificationAction** is set to **NONE** for a license model attribute, you cannot update its value once the entitlement reaches the ENABLE (Completed) state.\n  - For Cloud-connected entitlements, the totalQuantity is always 1 and cannot be changed. Any totalQuantity value provided in the input will be ignored.\n","operationId":"partialUpdateEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"regenerateLicense","in":"query","description":"Refresh the previously activated licenses. This is applicable for the activated entitlements. Default: false\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Entitlement details to be updated.\nNote: \n - (For Sentinel RMS, Sentinel Fit, and Services) If the &#39;Copy License Date from Entitlement Line Item&#39; property is set to ‘Yes’ (Administration Console > Entitlement Configuration), do not provide the START_DATE and END_DATE attributes for the license model in the input. This ensures the start and end dates are copied from the entitlement line item to the license model. If you specify these attributes in the input, you must keep the dates the same as in the entitlement line item. \n - (For Sentinel LDK’s ‘Expiration Date' license model) If the &#39;Copy Dates from Entitlement Line Item&#39; option is set to ‘Yes’ during license model configuration, do not provide the START_DATE and END_DATE attributes in the input. This ensures the start and end dates are copied from the entitlement line item to the license model.\n - (For Sentinel RMS and Services) If the START_LICENSE_FROM_ACTIVATION_DATE attribute is true in the license model, the START_DATE and END_DATE values shown in the response of this endpoint are irrelevant."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Delete Entitlement","operationId":"deleteEntitlement","description":"Delete an existing entitlement if it is in the draft state, or if it is a test entitlement.","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/enable":{"post":{"tags":["Entitlement"],"operationId":"enableEntitlement","description":"Change the state of an entitlement from DRAFT or DISABLE to ENABLE (Completed).\n \n <br>","summary":"Enable Entitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/disable":{"post":{"tags":["Entitlement"],"operationId":"disableEntitlement","description":"Change the state of an entitlement from ENABLE (Completed) to DISABLE.\n \n <br>","summary":"Disable Entitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/close":{"post":{"tags":["Entitlement"],"operationId":"closeEntitlement","description":"Change the state of an entitlement from ENABLE (Completed) or DISABLE to CLOSED. A closed entitlement is permanently disabled and no action can be performed on it. \n \n <br>","summary":"Close Entitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/bulk":{"post":{"tags":["Entitlement"],"summary":"Bulk Entitlement Upload","description":"Upload a large entitlement data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Entitlements API. For CSV format type, refer to the Sentinel EMS User Guide.\n **Note**:\n - With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion.\n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only vendor users with administrator permissions can use this endpoint.\n","operationId":"dataUploadEntitlement","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Entitlement"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/contact":{"put":{"tags":["Entitlement"],"summary":"Associate User","description":"Associate a new user with the entitlement or update the details of the users already associated.","operationId":"updateEntitlementContact","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"type":"object"},"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"type":"object"}}},"description":"User details for the entitlement."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Remove Associated User","description":"Remove association between an entitlement and a user.","operationId":"deleteContactEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/customer":{"put":{"tags":["Entitlement"],"summary":"Associate Customer","description":"Associate a new customer with the entitlement or update the details of the customer already associated.","operationId":"updateCustomerEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"type":"object"}},"type":"object"}}},"description":"Customer details for the entitlement."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Remove Associated Customer","description":"Remove association between an entitlement and a customer.","operationId":"deleteCustomerEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/entitlementPartners":{"put":{"tags":["Entitlement"],"summary":"Associate Partners","description":"Associate new channel partners to an entitlement or replace the existing partners. A maximum of five channel partners can be associated.","operationId":"updatePartnersEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Channel partner details for the entitlement."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Associated Partners","description":"Associate a new channel partner to the entitlement in addition to the existing channel partners. A maximum of five channel partners can be associated.","operationId":"partialUpdateEntitlementPartners","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Channel partner details for the entitlement."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Remove Associated Partner","description":"Remove association between an entitlement and a channel partner.","operationId":"deletePartnerEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Identifier of the channel partner to be removed from the entitlement.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/productKeys":{"post":{"tags":["Entitlement"],"summary":"Add Product Key","description":"Associate products to an enabled entitlement. Products associated with an entitlement are called line items. Each line item after activation is assigned a unique product key. <br/>  Note: \n- Applicable only for custom/third-party enforcements. Not applicable for Sentinel enforcements. \n-Not applicable for productBundleId field. This field will be ignored if passed in input, and product will be treated as ala carte product.","operationId":"addLineitemToEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":""},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":""}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."},"version":{"type":"string","example":9.5,"description":"Version of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"type":"array","items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":100,"description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":100,"description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":0,"description":"The hexadecimal starting point of the memory file segment.","type":"string"},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}}}}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"nullable":true}},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"},"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"type":"array","items":{"type":"object","properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"type":"array","items":{"type":"object","properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","example":"","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"testFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":""},"value":{"description":"Value of the license model attribute.","type":"string","example":""},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"nullable":true}}},"nullable":true}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"nullable":true}}},"nullable":true}},"nullable":true}}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"type":"array","items":{"type":"object","properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","example":"","description":"Unique identifier of the feature."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"testFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":""},"value":{"description":"Value of the license model attribute.","type":"string","example":""},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"nullable":true}}},"nullable":true}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"nullable":true}}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"PRIMARY_1_CRITERIA"},"value":{"description":"Value of the license attribute common across all product keys.","type":"string","example":4}},"nullable":true}}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"type":"array","description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"type":"object","properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"nullable":true}}}},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"type":"array","items":{"type":"object","description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"PRIMARY_1_CRITERIA"},"value":{"description":"Value of the activation attribute.","type":"string","example":4},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false\n","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false\n","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","type":"string","example":4},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":""}},"nullable":true}}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":""},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"type":"array","items":{"type":"object","properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"PRIMARY_1_CRITERIA"},"value":{"description":"Value of the license attribute common across all product keys.","type":"string","example":4}},"nullable":true}},"nullable":true}}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"type":"array","items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":100,"description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":100,"description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":0,"description":"The hexadecimal starting point of the memory file segment.","type":"string"},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}}}}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"type":"array","items":{"type":"object","description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"PRIMARY_1_CRITERIA"},"value":{"description":"Value of the activation attribute.","type":"string","example":4},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false\n","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false\n","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","type":"string","example":4},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":""}},"nullable":true}}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"nullable":true}}},"nullable":true}},"nullable":true}}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":""},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":""}}}}},"nullable":true}},"type":"object"}}},"description":"Product key details for the entitlement."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"nullable":true}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"type":"object"},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Product key added successfully\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{productKeyId}":{"get":{"tags":["Entitlement"],"summary":"Get Product Key","description":"Retrieve details of a specific product associated with an entitlement (also referred to as a line item).","operationId":"getLineItem","parameters":[{"name":"productKeyId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Product Key","description":"Partially update details of a product associated with an entitlement (also referred to as a line item).\n \n <br> **Note**:\n  - You can set the totalQuantity parameter in the request body to increment or decrement the existing quantity. To increment the quantity, set totalQuantity to a positive integer, for example, 2. To decrement the quantity, set totalQuantity to a negative integer, for example, -2.\n  - To change the state of a product key, use specific endpoints, such as **Enable Product Key** or **Disable Product Key**, instead of the **Update Product Key** endpoint.\n -If a product key to be updated belongs to a product bundle then it will ignore changes for quantity and input at entitlementLicenseModel level (like feature inclusion/exclusion, LM definitions). \n -State change not allowed if productKey part of product bundle","operationId":"partialUpdateEntitlementLineItem","parameters":[{"name":"productKeyId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":""},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model."}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"type":"array","items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true}}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"nullable":true}},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"type":"array","items":{"type":"object","properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"type":"array","items":{"type":"object","properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","type":"string","example":""},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"nullable":true}}},"nullable":true}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"nullable":true}}},"nullable":true}},"nullable":true}}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"type":"array","items":{"type":"object","properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"nullable":true},"attributes":{"properties":{"attribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","type":"string","example":""},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"nullable":true}}},"nullable":true}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"boolean","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"nullable":true}}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","type":"string","example":"4"}},"nullable":true}}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"type":"array","description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"type":"object","properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"}},"nullable":true}}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"type":"array","items":{"type":"object","description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","type":"string","example":"4"},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false\n","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","type":"string","example":"4"},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":""},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false\n","type":"boolean","example":true}},"nullable":true}}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":""},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"type":"array","items":{"type":"object","properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","type":"string","example":"4"}},"nullable":true}},"nullable":true}}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"boolean"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"type":"array","items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"integer"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true}}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"type":"array","items":{"type":"object","description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","type":"string","example":"4"},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false\n","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","type":"string","example":"4"},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":""},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false\n","type":"boolean","example":true}},"nullable":true}}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"nullable":true}}},"nullable":true}},"nullable":true}}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":""}},"type":"object","nullable":true}}},"nullable":true}},"type":"object"}}},"description":"Product key details for the entitlement."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productKey":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"nullable":true}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"type":"object"},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"integer","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"Trial Standalone Node Locked"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"items":{"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{productKeyId}/enable":{"post":{"tags":["Entitlement"],"summary":"Enable Product Key","description":"Change the state of a product key from DISABLE to ENABLE (Completed).\n \n <br>","operationId":"enableEntitlementLineItem","parameters":[{"name":"productKeyId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{productKeyId}/disable":{"post":{"tags":["Entitlement"],"summary":"Disable Product Key","description":"Change the state of a product key from ENABLE (Completed) to DISABLE.\n \n  <br>","operationId":"disableEntitlementLineItem","parameters":[{"name":"productKeyId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{productKeyId}/close":{"post":{"tags":["Entitlement"],"summary":"Close Product Key","description":"Change the state of a product key from ENABLE (Completed) or DISABLE to CLOSED. A closed product key is permanently disabled and no action can be performed on it.\n \n <br>","operationId":"closeEntitlementLineItem","parameters":[{"name":"productKeyId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/namedUsers":{"get":{"tags":["Entitlement"],"summary":"Search Associated Named Users","operationId":"getNameUsers","description":"Retrieve a list of named users associated with the product key of an entitlement.\nNote:\n  - Named users are associated with entitlements that are created with the Cloud Served - Connected deployment mode.\n  - Named user licensing is relevant only for Sentinel RMS connected mode.\n","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"namedUsers":{"type":"object","properties":{"count":{"description":"Total number of named users.","type":"integer","example":1},"namedUser":{"items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Entitlement"],"summary":"Associate Named User","operationId":"updateNameUsers","description":"Associate named users with the product key of an entitlement. Licenses can be used only by end users whose names are specified in the entitlement.\nNotes: \n  - Named users are associated with entitlements that are created with the Cloud Served - Connected deployment mode.\n  - The entitlement must be in the Enable state before associating named users. \n  - In the common licensing attributes of an entitlement, the NAMED_USER_LICENSE flag should be set to true to enable the named user association. Also, the maximum number of users allowed is specified using the NO_OF_NAMEDUSERS attribute.\n  - Named user licensing is relevant only for Sentinel RMS connected mode.\n","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key to which the named user is to be associated.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKey"],"properties":{"productKey":{"properties":{"count":{"description":"Total number of named users.","type":"integer","example":1},"namedUser":{"items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"}},"type":"object","nullable":true},"type":"array"}},"items":{"type":"object","nullable":true},"type":"array"},"count":{"description":"Total number of named users.","type":"integer","example":1},"namedUser":{"items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of named users that are to be associated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Associated Named User","operationId":"partiallyUpdateNameUsers","description":"Update the details of named users associated with an entitlement. \nNotes:\n  - Named users are associated with entitlements that are created with the Cloud Served - Connected deployment mode.\n  - The entitlement must be in the Enable state before associating named users. \n  - In the common licensing attributes of an entitlement, the NAMED_USER_LICENSE flag should be set to true to enable the named user association. Also, the maximum number of users allowed is specified using the NO_OF_NAMEDUSERS attribute. \n  - Named user licensing is relevant only for Sentinel RMS connected mode.\n","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKey"],"properties":{"productKey":{"properties":{"count":{"description":"Total number of named users.","type":"integer","example":1},"namedUser":{"items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"}},"type":"object","nullable":true},"type":"array"}},"items":{"type":"object","nullable":true},"type":"array"},"count":{"description":"Total number of named users.","type":"integer","example":1},"namedUser":{"items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of named users that are to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Remove Associated Named User","operationId":"deleteNameUser","description":"Remove association between a product key and a named user.\nNote:\n  -  Named users are associated with entitlements that are created with the Cloud Served - Connected deployment mode.\n  - Named user licensing is relevant only for Sentinel RMS connected mode.\n","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"name","in":"query","description":"Name of the named user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/splitTransfer":{"post":{"tags":["Entitlement"],"summary":"Split or Transfer","description":"Split and/or transfer the existing quantity in an entitlement to another party (customer, user, or channel partner).","operationId":"SplitOrTransferAnEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"splitTransfer":{"type":"object","properties":{"externalId":{"type":"string","example":"flexible_lease","description":"External ID of the entitlement."},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses, separated by semicolon.","example":"ccEmail@example.com"},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement. \nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.\n","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"transferTo":{"properties":{"customer":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"type":"array","items":{"type":"object","properties":{"partner":{"properties":{"id":{"type":"string","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"","description":"Unique external identifier of the partner."}},"nullable":true}},"nullable":true}}},"nullable":true}},"nullable":true},"sourceProductKeys":{"required":["sourceProductKey"],"properties":{"sourceProductKey":{"type":"array","items":{"type":"object","required":["productKey","qtySeat"],"properties":{"productKey":{"properties":{"id":{"type":"string","description":"Globally unique identifier of the product key.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"pkId":{"type":"string","description":"Unique identifier (pkId) of the product key.","example":"prdkey0001"},"externalId":{"type":"string","description":"Unique external identifier of the product key.","example":"extId0001"}},"nullable":true},"qtySeat":{"type":"integer","description":"Quantity or seat count to split. \nIf this parameter is not provided, by default, the available quantity of the productkey is transferred to the new entitlement.\n","example":2},"transferToPkId":{"description":"Unique identifier of the new product key.","example":"prdkey1234","type":"string"},"transferToExternalId":{"description":"Unique external identifier of the new product key.","example":"extId1234","type":"string"}},"nullable":true}}},"nullable":true},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.\n","example":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":""},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":""}}}}},"nullable":true}},"required":["sourceProductKeys"]}},"type":"object"}}},"description":"Details of entitlement on which the split or transfer operation is to be performed."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"splitTransfer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"nullable":true},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","nullable":true},"entitlementFingerprints":{"properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"},"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"name"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"items":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Name of the product.","example":"TestProduct"}},"nullable":true}},"nullable":true},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Name of the feature.","example":"testFeature"}},"nullable":true}},"nullable":true},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"name":{"description":"Name of the named user.","type":"string","example":"abc"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the variant product.","example":"1.0"},"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","type":"string","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","nullable":true},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"description":"Split or transfer entitlement response","nullable":true}},"type":"object"}}},"description":"Operation successful"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/entitlementProductBundles":{"put":{"tags":["Entitlement"],"summary":"Associate Product Bundles","description":"Associates product bundles with an entitlement or replaces existing bundle associations. Product keys are generated for all products in the bundles according to the specified productBundleQuantity. Bundles not included in the request are removed.","operationId":"associateBundlesToEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"description":"Collection of product bundles to associate with an entitlement.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"type":"object"},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"type":"object"},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of all product bundles to be associated with the entitlement."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Associated Product Bundles","description":"Adds new product bundles or updates the quantities of existing product bundles associated with the entitlement. Product bundles not included in the request remain unchanged.","operationId":"updateAssociatedBundles","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"description":"Collection of product bundles to associate with an entitlement.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"type":"object"},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"type":"object"},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Details of the product bundles to be added or updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Remove Associated Product Bundle","description":"Removes the association between an entitlement and a product bundle. Product keys generated from the bundle are also removed.","operationId":"removeBundleFromEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Unique identifier of the entitlement–product bundle association to be removed.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/batchCommit":{"post":{"tags":["Entitlement"],"summary":"Add Batch Entitlement","description":"Add a new batch job to create multiple entitlements at a time, using an existing entitlement as base. All entitlements created by the batch job are replica of the base entitlement. \nNote:\n  - The base entitlement that is used to create a batch job must be in the Draft state.\n  - The state of all entitlements (including the base entitlement) in the batch job is changed to Enable at the end of the job execution. \n  - The base entitlement cannot be updated until the batch job finishes.\n","operationId":"addBatchEntitlement","parameters":[{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"count","in":"query","description":"Number of entitlements to be created in a batch. The possible value is from 1 to 5000.","schema":{"type":"integer"}},{"name":"jobName","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"notificationEmail","in":"query","description":"The email address to which the execution results of the batch job are sent.","schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch entitlement in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/queue/{id}":{"get":{"tags":["Entitlement"],"summary":"Get Batch Entitlement","description":"Retrieve a specific batch entitlement based on its unique identifier (id).","operationId":"getBatchEntitlement","parameters":[{"name":"id","in":"path","description":"Auto-generated unique identifier of the batch entitlement.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchCommit"},"startDate":{"description":"The start date of executing the batch job.","example":"2020-01-01","type":"string"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"The batch job is not completed."},"302":{"description":"The batch job is completed. The response will be redirected to the Search Entitlements URL (GET /ems/api/v5/entitlements) with the status code 200.","content":{"application/json":{"schema":{"properties":{"entitlement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the entitlement."},"externalId":{"type":"string","example":"entitlementExternalId","description":"Unique external identifier of the entitlement."},"createdBy":{"type":"string","description":"Name of the vendor user who created the entitlement.","example":"TestUserName"},"creationDate":{"description":"Creation date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the entitlement.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the entitlement.","example":"2026-07-07 07:07","type":"string"},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the entitlement."},"entitlementAsWhole":{"type":"boolean","example":false,"description":"Whether to perform activations/revocations on all associated products (also referred to as product keys) together. \nIf not specified, the value is taken from the Entitlement as a Whole property defined in the Sentinel EMS Administration Console (Configuration > Administration Console > Entitlement Configuration)."},"eId":{"description":"A unique friendly name for the entitlement. If not provided, Sentinel EMS automatically generates the eId after creating an entitlement.\nThe value in this field is considered only if the option Allow manual creation of EID and PKID is enabled in the Administration Console.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"startDate":{"description":"Start date of the entitlement.\nDefault: Current date\n","type":"string","example":"2017-10-20"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"marketGroup":{"description":"If more than one market group exists, Sentinel EMS requires details of the market group to which the entitlement belongs. This can be the Default market group or the market group specified explicitly in the API call.  If the Use Default Market Group in API Calls property in the Administration Console is set to true and the market group details are not passed in the API call, the entitlement is associated with the Default market group. If the Use Default Market Group in API Calls property is set to No, you must explicitly pass the market group details, otherwise, the API call will fail. Regardless of whether the property is set to Yes or No, if you pass the market group details, the given market group takes precedence and is used. Also, the vendor user creating the entitlement must belong to the given market group and the market group must have the relevant namespace associated with it.","properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"Default"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer."},"name":{"type":"string","example":"TestCustomer","description":"Name of the customer."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or auto-generated unique identifier of the customer."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the customer."}},"nullable":true},"contact":{"description":"Details of the user you want to associate with the entitlement. To associate a user, specify at least one of the following parameters: id, emailId, or externalId. When one or more of these parameters are specified, the priority order is id, emailId, and externalId.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the user."},"emailId":{"type":"string","format":"email","example":"TestUser@example.com","description":"Unique email address of the user."},"externalId":{"type":"string","example":"UserExternalId","description":"Unique external identifier of the user."}},"nullable":true},"entitlementPartners":{"properties":{"entitlementPartner":{"items":{"properties":{"partner":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the partner."},"name":{"type":"string","example":"TestChannelPartner","description":"Name of the partner."},"identifier":{"type":"string","example":"EXT-ID-001","description":"User-defined or system-generated identifier of the partner."},"externalId":{"type":"string","example":"EXT-001","description":"Unique external identifier of the partner."}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userRegistration":{"description":"Whether user registration is required when logging in to Sentinel EMS.  \n- Mandatory: Registration is required at the first login (using EID or Product Key). \n- Optional: Sentinel EMS prompts the user for registration at the login but allows the user to defer the registration. \n- None: Registration is not required.\n","type":"string","enum":["NONE","OPTIONAL","MANDATORY"],"example":"MANDATORY"},"refId1":{"type":"string","description":"First reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the entitlement as used by external ERP/CRM systems.","example":"refId2"},"activationAllowed":{"type":"boolean","description":"Whether activations are allowed for the entitlement. \nDefault: true","example":true},"allowActivationBy":{"type":"string","description":"Specifies who is allowed to activate the entitlement. Possible values:\n - ALL_USERS: All users including vendors, customers, and channel partners can activate the entitlement.\n - VENDOR_ONLY: Only vendors can activate the entitlement.\n\nDefault: ALL_USERS\n\nNote: The allowActivationBy property is applicable only when the activationAllowed property is set to true.\n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ONLY"]},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.\nDefault: false","example":true},"state":{"description":"State of the entitlement.  \nDefault: DRAFT\n","type":"string","example":"ENABLE"},"sendNotification":{"type":"boolean","description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true},"ccEmail":{"type":"string","description":"Email addresses to receive entitlement certificate. You can specify up to 15 email addresses.","example":"ccEmail@example.com"},"isTest":{"type":"boolean","description":"Whether this is a test entitlement. \nA test entitlement enables you to ensure that the products, features, and license models have been defined correctly before deploying them into production. \nThe process of generating a test entitlement is similar to that of a normal entitlement. However a test entitlement can be created using products/suites that are either in Draft or Enable state. \nTest entitlements can be used in Activate and Revoke operations; their data is excluded from reports.","example":false},"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the entitlement.","example":1,"type":"integer"},"entitlementProductBundles":{"description":"Product bundles associated with the entitlement. Product keys are generated for all products in the bundle. The total number of product keys generated equals the number of products in the product bundle multiplied by productBundleQuantity.","properties":{"entitlementProductBundle":{"items":{"description":"Product bundle associated with an entitlement. Creates product keys for all products in the product bundle.","properties":{"entitlementProductBundleId":{"type":"string","example":"12345","description":"Identifier of the entitlement–product bundle association. Provide the same value as productBundleReference. The response contains the system-generated identifier for this association."},"productBundle":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product bundle."},"nameVersion":{"properties":{"name":{"type":"string","example":"Premium Bundle","description":"Name of the product bundle."}},"nullable":true},"externalId":{"type":"string","example":"BUNDLE-EXT-001","description":"External identifier of the product bundle."}},"type":"object"},"productBundleQuantity":{"type":"integer","example":10,"description":"Multiplier applied to a product bundle. The total quantity of each product equals the product quantity defined in the bundle multiplied by this value. Must be greater than 0."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementFingerprints":{"description":"\n Note: For Sentinel LDK, fingeprint management is not relevant.","properties":{"entitlementFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the fingerprint associated with the entitlement."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productKeys":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the product key.","example":1,"type":"integer"},"productKey":{"items":{"properties":{"pkId":{"type":"string","description":"Unique identifier of the product key. This is auto generated, but can be manually added and overridden using the PKID generator interface.","example":"004641bc-9e83-4bdf-bbdc-5f9c9073cd57"},"startDate":{"description":"Start date of the associated products. This should not be earlier than the entitlement start date.","type":"string","example":"2017-10-20"},"creationDate":{"description":"Creation date of the product key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the product key.","example":"2026-07-07 07:07","type":"string"},"expiry":{"properties":{"neverExpires":{"type":"boolean","example":true,"description":"When true, this specifies that the entitlement will never expire; otherwise, expiration is defined by using endDate or expiryInDays."},"endDate":{"type":"string","description":"The end date of the entitlement.","example":"2027-12-31"},"expiryInDays":{"type":"integer","description":"Number of days after which the entitlement expires.\n(For Sentinel RMS, Sentinel Fit, and Services) When the 'Copy License Date from Line Item' property is set to 'Yes' (Administration Console > Entitlement Configuration), you can set expiryInDays to '0' to create a one-day entitlement that starts and ends on the same day. The start and end dates will be copied from the line item to the license model.","example":365,"nullable":true}},"nullable":true},"id":{"type":"string","description":"Unique identifier of the product key.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"example":"lineItemExternalId","type":"string","description":"Unique external identifier of the product key."},"productBundleReference":{"type":"string","example":"12345","description":"Identifier of the entitlement-product bundle association to generate the product key. Provide the same value as entitlementProductBundleId. Empty if the product key was created directly and not from a product bundle."},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel LDK","description":"Name of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."}},"type":"object"},"totalQuantity":{"type":"integer","description":"Total number of licenses that can be generated for product keys (products associated with the entitlement). Default: 1\n","example":10},"availableQuantity":{"type":"integer","description":"Remaining quantity available for the activation. For draft entitlements, this is equal to total quantity. Its value is relevant only for activated entitlements.","example":10},"splittedQuantity":{"type":"integer","description":"Activation quantity that is split and transferred to another party (customer, user, or partner). This is less than or equal to\navailableQuantity.","example":2},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n- UNLIMITED: An unlimited number of activations can be performed for the product.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.\n\n\nNote for Sentinel Fit: \n- The UNLIMITED activation method is not supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":1,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- The limitType and maxLimit attributes are supported for default products and for variants, but are not applicable to versionless products."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"state":{"description":"State of the associated product (productkey).","type":"string","example":"DRAFT","enum":["DRAFT","ENABLE","DISABLE","CLOSED"]},"productKeyFingerprints":{"description":"\n\n\nNote: For Sentinel LDK, fingeprint management is not relevant.\n","properties":{"productKeyFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the product key."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the product key. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}},"nullable":true},"item":{"properties":{"itemSuite":{"description":"Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","description":"Unique identifier of the product suite.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the resource (such as feature or product).","example":"TestSuite"},"version":{"type":"string","description":"Version of the resource (such as feature or product)","example":"ver1"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the product suite.","example":"TestExternalId"}},"nullable":true},"itemProducts":{"properties":{"itemProduct":{"nullable":true}},"nullable":true}},"nullable":true},"itemProduct":{"properties":{"product":{"properties":{"externalId":{"type":"string","description":"Unique external identifier of the product.","example":"TestExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the product. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":"1"},"productType":{"type":"string","description":"Type of the product.","example":"DEFAULT"},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the product.","example":"TestSuite"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"type":"object"},"itemProductFeatures":{"properties":{"itemProductFeature":{"items":{"properties":{"featureMultiplier":{"type":"integer","example":1,"description":"Multiplication factor at the product-feature relationship level. \nThis value is multiplied with the product quantity to get the total quantity for the product-feature license. \nDefault: 1\n"},"feature":{"properties":{"id":{"type":"string","description":"ID of the feature.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the feature.","example":"ext1"},"identifier":{"type":"string","description":"Unique identifier of the feature.","example":1},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestSuite"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"itemFeatureLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","description":"Unique identifier of license model.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the license model.","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the license model attribute.","type":"string","example":"TestName"},"value":{"description":"Value of the license model attribute.","example":"AttributeValue"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"itemFeatureState":{"type":"string","enum":["INCLUDED","EXCLUDED"],"example":"INCLUDED","description":"State of item feature."},"SAOT":{"type":"string","description":"Whether the license model are associated at the time of entitlement creation or not. If false, license models are associated the time of creating products. If true, license models are associated at the time of defining entitlements. Default: false.","example":false},"usageAllowance":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"namedUsers":{"description":"This information is relevant only for the Sentinel RMS Connected mode.","properties":{"namedUser":{"description":"Before you associate named users to an entitlement, add the following attributes in the commonLicenseAttributes object: NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS (set to the maximum number of named users).","items":{"properties":{"name":{"description":"Name of the named user.","type":"string","example":"abc"},"creationDate":{"description":"Creation date of the named user.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"variantProducts":{"properties":{"totalRegisteredQuantity":{"description":"Total quantity registered across all the fingerprints associated with the variant.","example":1,"type":"integer"},"variantProduct":{"items":{"properties":{"variantId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Variant to be activated of the versionless product."},"nameVersion":{"description":"null","properties":{"name":{"type":"string","description":"Name of the variant product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the variant product.","example":"1.0"}},"nullable":true},"identifier":{"type":"string","description":"Unique external identifier of the product.","example":"EXT-ID-001"},"activationMethod":{"description":"Activation method for the product. Possible values:\n - FIXED: The provided license quantity can be consumed across multiple activations, with each activation consuming the identical number of licenses. \n Default fixed quantity: 1 \n- PARTIAL: The provided license quantity can be consumed in multiple activations.\n- FULL: The entire license quantity is consumed in one activation.\n\n Note for All Enforcements except Sentinel Fit:\n- For versionless products, the SAOT activation method is supported. \n\n\nNote for Sentinel LDK:\n- For the PARTIAL and FULL activation methods, the existing concurrency or execution count is multiplied by the activation quantity. For example, when concurrency is enabled in the license model for a feature, if the number of concurrent instances is set to 10, and the activation quantity is set to 5, then the maximum number of possible concurrent instances of license usage is 50. Similarly, when using the Execution Count license model, if the number of executions is set to 100, and the activation quantity is set to 2, then the maximum number of possible executions is 200.\n- For Sentinel LDK default products, if the FIXED activation method is specified, the fixed quantity is always set to 1.\n\n\nNote for Sentinel RMS:\n- For lease and on-premises licenses, only the FIXED, PARTIAL, and FULL activation methods are supported. \n- For lease redundant licenses, only the FULL activation method is supported. \n- For connected licenses, only the FIXED activation method is supported.","type":"string","example":"FIXED"},"fixedQuantity":{"type":"integer","description":"Quantity to be consumed when the activation method is fixed.\n\n\nNote for Sentinel LDK:\n- For the FIXED activation method, set fixedQuantity to 1.","example":1},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0 \n\n\n Note:\n- For entitlements as a whole, the named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products. Additionally, you cannot use the same product identifier for multiple products when the named user limit is enabled. \n- You can disable the named user limit in an entitlement, but you cannot re-enable it.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request.\n- When limitType is 1 (named user limit is enabled) for Sentinel LDK products, you must set the following in the license model of every feature associated with the product: \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Enable concurrency and set it to Unlimited. \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦ Set the license type to Network."},"maxLimit":{"type":"integer","example":0,"description":"The maximum number of named users who can use the license. You can specify an integer from 1 to 99999.\n Note:\n- Define maxLimit only when named user limit is enabled (limitType is set to 1).\n- The value of maxLimit in the entitlement must match the value defined in the product.\n- For variants of versionless products, either set both the limitType and maxLimit values to zero, or exclude them from the request."},"variantInfo":{"type":"string","example":"1","description":"Details of the product variant to be activated."},"commonLicenseAttributes":{"description":"Note: For Sentinel LDK, commonLicenseAttributes is not relevant.","properties":{"commonLicenseAttribute":{"items":{"properties":{"attribute":{"properties":{"name":{"description":"Name of the license attribute common across all product keys. The attribute names depend on licenses included in the product.\n- For a network license, use PRIMARY_1_CRITERIA. \n- For a standalone license, use CLIENT_1_CRITERIA along with a NUM_CLIENT_LOCKED value to specify the number of client criteria. The default value of NUM_CLIENT_LOCKED is 1. \n- For a named license (for connected mode), use NAMED_USER_LICENSE (set to true) and NO_OF_NAMEDUSERS.","type":"string","example":"AttributeName"},"value":{"description":"Value of the license attribute common across all product keys.","example":"4"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"lockingType":{"example":"HL_or_SL_AdminMode_or_SL_UserMode","description":"The locking type for the product. The locking type determines the level of protection for the product according to the type of Sentinel key distributed with the product.\n- HL: Sentinel HL keys only.\n- SL_UserMode: Sentinel SL UserMode keys only.\n- SL_AdminMode: For Sentinel SL AdminMode keys only.\n- HL_or_SL_AdminMode: Either Sentinel HL keys or Sentinel SL AdminMode keys.\n- HL_or_SL_AdminMode_or_SL_UserMode: Sentinel HL keys, Sentinel SL AdminMode keys, or Sentinel SL UserMode keys.\n Default: HL_or_SL_AdminMode_or_SL_UserMode","type":"string"},"overrideAvailableActivationTypes":{"example":true,"description":"Whether you can override the default activation types defined for the specified locking type in the line item. For example, if Activate, Burn Key, and Produce & Push are available by default, you can override these defaults to allow only Produce & Push or only Activate and Produce & Push.\n- When set to true, you define the permitted values in the activationTypes attribute.\n- When set to false, all default activation types remain available in the line item.\n Default: false","type":"string"},"activationTypes":{"example":"Activate,Burn Key","description":"A comma-separated list of activation types to make available for this line item. Ensure you provide a subset containing only the activation types that the relevant locking type supports.\n\nNote: Include this attribute only when overrideAvailableActivationTypes is set to true.","type":"string"},"rehostState":{"example":"ENABLE","description":"Whether to enable or disable the rehosting of an SL key. Possible values:\n- ENABLE: Enables rehosting of an SL key for the product.\n- DISABLE: Disables rehosting of an SL key for the product.\n- LEAVE_AS_IS: Uses the existing rehosting value in the SL key.\n Default: LEAVE_AS_IS","type":"string"},"isNotLockedToDevice":{"type":"string","example":"false","enum":["false","true"],"description":"Whether the license is locked to a device.\n Default: false"},"batchCode":{"example":"DEMOMA","description":"The batch code that is associated with the product (line item). The batch code, which can contain up to six characters, represents your unique vendor code.","type":"string"},"upgradeToDriverless":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to upgrade from Sentinel HL keys to Sentinel HL (Driverless configuration) keys.\n Default: false"},"vclock":{"type":"string","example":"true","enum":["false","true"],"description":"Whether to manage time-based licenses for Sentinel HL (Driverless Configuration) keys using a virtual clock when no real-time clock is available.\n Default: false"},"prdMemoryReferences":{"description":"List of all memory files associated with the product.","properties":{"memoryFile":{"items":{"properties":{"fileName":{"example":"memoryFile","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters. ","type":"string"},"text":{"example":"memoryContent","description":"Contents of the memory file in the hexadecimal format.\n- The combined value of memory text length and offset must not exceed the memory file size.\n- For the default read-only memory file, the memory text cannot exceed 2048 bytes. For the default read-write memory file, the memory text cannot exceed 4032 bytes.\n- You can overwrite the memory text in an entitlement if the entitlement is in DRAFT state and allowTextOverwrite in the product memory is set to true.","type":"string"},"fileId":{"example":1,"description":"File ID of the memory file. The memory file ID must be in the following range: 1-65471.","type":"string"},"fileType":{"description":"Type of the data stored in the memory file. Possible values:\n- READ_WRITE: Data that can be updated at runtime.\n- READ_ONLY: Data that can be read at runtime but cannot be changed.\n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.\n Default: READ_ONLY","type":"string","enum":["READ_WRITE","READ_ONLY","READ_WRITE_ONCE"]},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n "},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n "},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment."},"applyMemory":{"description":"Action to be performed on the memory file. Possible values:\n- ADD: Adds the new data to the memory file. Existing information remains unchanged.\n- OVERWRITE: Overwrites the existing information in the memory file by the new data.\n- DELETE: Permanently deletes the memory file associated with a license.\n Default: ADD \n Note: The DELETE value for the applyMemory attribute is intended only for memory files. You cannot use it to delete individual memory segments.","type":"string","enum":["ADD","OVERWRITE","DELETE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"vendor":{"type":"string","example":"DEMOMA"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n\n\nNote: This is not relevant for Sentinel LDK.\n","properties":{"activationAttribute":{"items":{"description":"","properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute.","example":"4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"productVariantFingerprints":{"description":"Note: For Sentinel LDK, productVariantFingerprints is not relevant.","properties":{"productVariantFingerprint":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the fingerprint associated with the variant."},"friendlyName":{"type":"string","example":"FriendlyName","description":"A descriptive friendly name of the fingerprint associated with the variant. The value is unique for a customer."},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlementAttributes":{"description":"List of attributes that are consolidated at the entitlement level. \n\n\nNote:\n- For Sentinel RMS lease entitlements created using the Flexible license model, following are the names of supported attributes with group names in parentheses: DURATION (CLOUD_SERVED group), RENEW_FREQUENCY (CLOUD_SERVED group), USAGE_SYNC_FREQUENCY (CLOUD_SERVED group), FINGERPRINT_REGISTRATION (CLOUD_SERVED group), IS_REDUNDANT (POLICY group), REDUNDANCY_MAJORITY_RULE (POLICY group), and REDUNDANT_SERVERS (LOCKING group). For attribute details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/EMS/EMSdocs/UG/RMS_LM/RMS_Flexible.htm' target='_blank'> Flexible License Model</a>.\n- For Sentinel RMS on-premises mode, the only supported attribute with group names in parentheses is FINGERPRINT_ONLY (ON_PREMISE). The value of the FINGERPRINT_ONLY attribute is false by default. You need to explicitly set it to true in the request body if you want to use the fingerprint activation flow. (On Sentinel EMS user interface, the default value is derived from the 'Fingerprint for On-premises Licenses' admin console property.) \n- For Sentinel LDK, entitlementAttributes is not relevant.\n","properties":{"entitlementAttribute":{"example":[{"value":"2160","encodeToBase64":false,"isSANL":false,"groupName":"CLOUD_SERVED","subGroupName":"CLOUD_SUBGROUP"},{"value":"false","isSANL":true,"groupName":"ON_PREMISE","subGroupName":""}],"items":{"properties":{"name":{"description":"Name of the entitlement attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the entitlement attribute.","type":"string","example":"2160"},"encodeToBase64":{"description":"Whether to encode the attribute**'**s evaluated value to Base64 during the activation time. You can encode only the string values. \n Default: false","type":"boolean","example":false},"isSANL":{"description":"When true, this indicates that the value is specified at the next level. \n\n\nNote:This attribute is maintained for backward compatibility and will be removed in a future release. New implementations should avoid using this attribute.","type":"boolean","example":false},"groupName":{"type":"string","description":"Name of the group to which this attribute belongs.","example":"CLOUD_SERVED"},"subGroupName":{"type":"string","description":"Name of the subgroup to which this attribute belongs.","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayText":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/bulkActivate":{"post":{"tags":["Activation"],"summary":"Add Activation","description":"Activation generates Sentinel RMS, Sentinel Fit, Sentinel LDK or third-party licenses for an entitlement.\n\n- You can perform both single and group activations. In group activation, multiple product keys are activated at a time. You can perform group activation of multiple product keys with the same set of locking information. However, if the locking information varies for each activation, you must perform individual activations to generate separate license keys. \n- For Sentinel RMS (on-premises, lease, and connected modes) and third party enforcements, you can also use the PUSH Keys method for activation in which license keys are provided in the request body. In this case, the request is not sent to the license generator. The license keys provided in the request are stored in the Sentinel EMS database. \n- For the Sentinel RMS Connected (Cloud LM) mode, licenses are activated on the cloud and license string is not returned in the response. \n - Only a vendor can activate the entitlement if the activationAllowed property is set to true and allowActivationBy property is set to VENDOR_ONLY in the entitlement.\n","operationId":"addActivation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["bulkActivation"],"properties":{"bulkActivation":{"required":["activationProductKeys"],"properties":{"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"activatees":{"description":"Activatee is the contact (individual or customer) having the ownership of the activation. You can associate up to five activatees with an activation. Only one activatee can be the default activatee at a time.","properties":{"activatee":{"items":{"description":"Details of the activatee associated with the activation.","properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestContact@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"addIfNotAvailable":{"type":"boolean","example":false,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKeys":{"required":["activationProductKey"],"properties":{"activationProductKey":{"items":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation. \nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"EXT-001"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":1,"type":"integer"},"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: \n For Sentinel LDK, push keys activation is not relevant.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product suite to activate.","example":"TestProductSuite"},"version":{"type":"string","description":"Version of the product suite to activate.","example":"1.0"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Identifier of the product to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to activate."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to activate."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to activate.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to activate.","example":"1.0"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External identifier of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"licenseKeyRef":{"type":"string","example":"0","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"type":"string","description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"ID of the license model."},"name":{"type":"string","example":"TestLicenseModel","description":"Name of the license model."}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"MANUAL_LIBRARY_SERIAL_NUMBER.target_id"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n  **Note**: \n This is not relevant for Sentinel LDK.","properties":{"activationAttribute":{"items":{"properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"name":{"type":"string","description":"User-friendly name for the locking information of a Device. This parameter is used when Device is enabled in Sentinel EMS.\n","example":"device_name"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"}},"nullable":true},"licenseKeys":{"properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"type":"string","example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"extnLDK":{"description":"Contains information specific to Sentinel LDK. You can perform activation of Sentinel LDK products using C2V or keyId. If both are specified, C2V is used for the product activation.","properties":{"C2V":{"example":"C2V file content (HTML-encoded text for XML input)","description":"For Sentinel LDK, you need to specify the contents of the C2V file received from the customer. The C2V file contains data about the device of the customer, such as fingerprint. The customer can obtain the C2V file using Sentinel Admin Control Center or the Sentinel Remote Update System (RUS) utility. \n Note: For the XML input, the C2V file value must be passed as an HTML-encoded text.","type":"string"},"removeLicensesBeforeUpdates":{"example":false,"description":"Whether to remove the existing licenses stored on a Sentinel key before applying license updates. The removal of licenses from the key is supported only for products that are locked to a specific device. Set removeLicensesBeforeUpdates to false for activating unlocked products. \n Default: false","type":"boolean"},"keyId":{"example":"2226424846","description":"The unique identifier of the Sentinel key for which you want to activate the products. You can use the <a href='?Keys/searchKeys' target='_self'>Search Sentinel Keys</a> endpoint to search the id of the Sentinel key. You can use the customer details (customerIdentifier or customerName) to search for the key. If the key is already associated with an entitlement, you can use eId to search for the key.","type":"string"},"produceAndPush":{"example":true,"description":"Whether to perform the \"Produce and Push\" operation, which generates a license on a cloud-licensing key (CL key) and pushes the license to the Thales-hosted cloud license server. For generating and updating a CL key, the following conditions must be met: \n\n- A customer must be associated with the entitlement.\n- The product locking type must support SL Admin Mode. In the product, the lockingType parameter must be one of the following: SL_AdminMode, HL_or_SL_AdminMode, or HL_or_SL_AdminMode_or_SL_UserMode\n- The associated license model must allow network and concurrency with valid concurrent instances. \n\n Note: The response does not contain the information of a generated or updated Thales-hosted CL key. \n\n Default: false","type":"boolean"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"AttributeName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Details of activation.\nNote: \n - (For Sentinel RMS) If the &#39;Set Start and End Dates on First Activation&#39; property is set to &#39;Yes&#39; (Administration Console > Activation Configuration), and the START_LICENSE_FROM_ACTIVATION_DATE attribute is set to &#39;true&#39; in the license model, then the START_DATE is set as the first activation date, and the END_DATE is calculated based on the LICENSE_DURATION_IN_DAYS attribute value. (These dates remain static in subsequent activations.)"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of the product keys or product suites for which the activation is done.","type":"integer","example":1},"activation":{"items":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"nullable":true},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"type":"string","example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"type":"string","description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true},"customAttributes":{"description":"User-defined custom attributes.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"AttributeName"},"value":{"type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"description":"Details of the entitlement associated with this activation.","nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Activation created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations":{"get":{"tags":["Activation"],"summary":"Search Activations","description":"Retrieve a list of activations that match the given query parameters. If you do not specify any query parameters, the endpoint returns all activations.\n**Note**:\n - The comma-separated search is not allowed in Search Activations.\n - The default response of this endpoint contains a limited set of attributes. Use the embed input parameter with the required values to retrieve the detailed list of attributes. \n You can also use the <a href='?Activation/getActivation' target='_blank'>GET Activation</a> endpoint to obtain the complete list of attributes for a specific activation. \n","operationId":"searchActivation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"aId","in":"query","description":"User-specified or auto-generated unique identifier of the activation.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the activation.","schema":{"type":"string"}},{"name":"groupActivationId","in":"query","description":"Unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","schema":{"type":"string"}},{"name":"peerActivations","in":"query","description":"Whether to retrieve the activations performed as a group along with this activation. Default: false\n","schema":{"type":"boolean"}},{"name":"deviceName","in":"query","description":"User-friendly name for the locking information of a device. The locking information is a combination of the locking criteria and locking value.","schema":{"type":"string"}},{"name":"fingerprintFriendlyName","in":"query","description":"Fingerprint Friendly Name.","schema":{"type":"string"}},{"name":"lockCode","in":"query","description":"The locking value of the locking criteria of a device.","schema":{"type":"string"}},{"name":"marketGroupId","in":"query","description":"Auto-generated unique identifier of the market group associated with the activation.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the market group associated with the activation.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search activations.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search activations.","schema":{"type":"string"}},{"name":"modifiedDateFrom","in":"query","description":"Start of the modified date range (in the YYYY-MM-DD format) to search activations. This filter excludes activations where the last modified date is the same as the creation date.","schema":{"type":"string"}},{"name":"modifiedDateTo","in":"query","description":"End of the modified date range (in the YYYY-MM-DD format) to search activations. This filter excludes activations where the last modified date is the same as the creation date.","schema":{"type":"string"}},{"name":"eId","in":"query","description":"User-specified or auto-generated identifier of the entitlement associated with the activation.","schema":{"type":"string"}},{"name":"licenseGrantId","in":"query","description":"Unique identifier of the license grant associated with the activation.","schema":{"type":"string"}},{"name":"entId","in":"query","description":"Unique identifier (id) of the entitlement associated with the activation.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Unique identifier of the product associated with the activation.\n  Note: This parameter searches activations for all product types - default, versionless, and variant. For default and versionless products, you can provide up to 50 comma-separated values. For variants, only a single value is allowed. \n  If a combination containing product IDs of versionless products and variants is provided, the system ignores the variant product ID and returns activations based on the versionless product IDs.\n","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"Identifier of the product associated with the activation.","schema":{"type":"string"}},{"name":"productNames","in":"query","description":"Names of the products associated with the activation.","schema":{"type":"string"}},{"name":"productExternalId","in":"query","description":"External ID of the product associated with the activation.","schema":{"type":"string"}},{"name":"productKey","in":"query","description":"Product key of the product associated with the activation. \n **Note**: You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"productBundleName","in":"query","description":"Name of the product bundle associated with the activation.","schema":{"type":"string"}},{"name":"productBundleId","in":"query","description":"Unique identifier of the product bundle associated with the activation.","schema":{"type":"string"}},{"name":"productBundleExternalId","in":"query","description":"External ID of the product bundle associated with the activation.","schema":{"type":"string"}},{"name":"itemExternalId","in":"query","description":"Unique external identifier of the product key associated with the activation.","schema":{"type":"string"}},{"name":"suiteId","in":"query","description":"Unique identifier (id) of the product suite associated with the activation.","schema":{"type":"string"}},{"name":"productSuites","in":"query","description":"Name of the product suite associated with the activation.","schema":{"type":"string"}},{"name":"suiteExternalId","in":"query","description":"External ID of the product suite associated with the activation.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace to which the entitlement of the activation belongs.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique identifier (id) of the customer associated with the entitlement of the activation.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Identifier of the customer associated with the entitlement of the activation.","schema":{"type":"string"}},{"name":"customerName","in":"query","description":"Name of the customer associated with the entitlement of the activation.","schema":{"type":"string"}},{"name":"contactName","in":"query","description":"Name of the contact who is either associated with the entitlement of the activation or is defined as an activatee in the activation.","schema":{"type":"string"}},{"name":"contactEmailId","in":"query","description":"Unique email address of the customer associated with the entitlement of the activation.","schema":{"type":"string"}},{"name":"contactExternalId","in":"query","description":"Unique external identifier of the contact who is either associated with the entitlement of the activation or is defined as an activatee in the activation.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises deployment mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted and pending for acknowledgment from the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license update is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode. \n - RENEW_IN_PROGRESS:The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode. \n\n **Note**: You can specify multiple values separated by commas.","schema":{"type":"string"}},{"name":"keyId","in":"query","description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.\n **Tip**: To find entitlements associated with a specific key (after activation), search for activations using the given keyId and retrieve the corresponding list of entitlements. You can use this information to copy, edit, or update the entitlement.\n Use the EXACT search pattern when searching activations with a keyId for an improved API response time.\n **Note**: keyId is relevant for products locked to a device. For unlocked products, a common, reserved keyId is used internally and must not be used for searching.","schema":{"type":"string"}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["aId","licenseGrantId","externalId","groupActivationId","deviceName","fingerprintFriendlyName","eId","entId","productKey","state","quantity","activationDateTime","creationDate","lastModifiedDate","sendNotification"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. ","schema":{"type":"string","enum":["aId","licenseGrantId","externalId","groupActivationId","deviceName","fingerprintFriendlyName","eId","entId","productKey","state","quantity","activationDateTime","creationDate","lastModifiedDate","sendNotification"]}},{"name":"channelPartner","in":"query","description":"Name of the channel partner to which entitlement of the activation belongs.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of activation, entitlement, line item, and contact. You can also search on license model attributes.\nFollowing is a sample URI: \n`GET /ems/api/v5/activations?CA_ENT.laptop=sony&CA_ENT.mobile=iphone&CA_LI.destitem=goa&CA_CONT.destination=tourismdest&CA_ACT.activationAttr=actActAttrVal&LMAttr.START_DATE=2014-08-21`\nFollowing is a sample value that can be provided here to form that URI: \n`CA_ENT.laptop=sony&CA_ENT.mobile=iphone&CA_LI.destitem=goa&CA_CONT.destination=tourismdest&CA_ACT.activationAttr=actActAttrVal&LMAttr.START_DATE=2014-08-21`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_ACT: Perform search on an activation-level custom attribute.\n- CA_ENT: Perform search on an entitlement-level custom attribute.\n- CA_LI:  Perform search on an entitlement-line item relationship level custom attribute.\n- CA_CONT: Perform search on a contact-level custom attribute.\n- LMAttr: Perform search on a license model attribute.\n\nThe rules to be followed when using custom attributes or license model attributes to search activations are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"LMAttrOperator","in":"query","description":"Operator to be used between multiple license model attributes. Default: OR operator. ","schema":{"type":"string","enum":["AND","OR"]}},{"name":"isTest","in":"query","description":"Specify true to search for test activations. Specify false to search for normal activations. Default: false","schema":{"type":"boolean"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Like\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nValid value(s): entitlement, customer, revocation, activatees, customAttributes, activationProductKey, licenseKeys, fingerprint, enforcement, licenseGrant, activationAttributes, and device.\n","schema":{"type":"string"}},{"name":"productBundleVersion","in":"query","description":"Version of the product bundle associated with the activation.","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"activations":{"type":"object","properties":{"count":{"description":"Number of the product keys or product suites for which the activation is done.","type":"integer","example":1},"activation":{"items":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"nullable":true},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true},"customAttributes":{"description":"User-defined custom attributes.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName"},"value":{"type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"description":"Details of the entitlement associated with this activation.","nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}}}}},"nullable":true},"createdBy":{"type":"string","example":"admin"},"lastModifiedBy":{"type":"string","example":"admin"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/bulkRehost":{"post":{"tags":["Activation"],"summary":"Rehost Activation","description":"**Note:** Rehost is supported for Sentinel RMS, Sentinel Fit, and third-party enforcements. For Sentinel RMS Connected (Cloud LM) mode, Rehost is not supported.\n Rehost revokes an existing activation and regenerates its licenses to host on another machine. It changes the state of the old activation on which rehost is performed to REHOSTED, and creates a new activation with the ACTIVATED state having the regenerated licenses.\n \n - It is mandatory to specify activationQuantity in the input if the activation method is Partial. For Fixed, Full, and Unlimited activation methods, the activationQuantity is ignored because the rehosted activation is created with the same quantity as the old one.\n - You can perform rehost on one or more activations.","operationId":"rehostActivation","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["activation"],"properties":{"activation":{"required":["activations"],"properties":{"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"activatees":{"description":"Activatee is the contact (individual or customer) having the ownership of the activation. You can associate up to five activatees with an activation. Only one activatee can be the default activatee at a time.","properties":{"activatee":{"items":{"description":"Details of the activatee associated with the activation.","properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestContact@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier address of the activatee, for whom the activation is performed."},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"addIfNotAvailable":{"type":"boolean","example":false,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activations":{"required":["activation"],"properties":{"activation":{"items":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation. \nLength: 6 to 60 characters.\n","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"EXT-001"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":1,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationAttributes":{"description":"List of activation attributes that specify the locking information associated with the entitlement. The list of available activation attributes depends on the license model associated with the entitlement.\n  **Note**: \n This is not relevant for Sentinel LDK.","properties":{"activationAttribute":{"items":{"properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"PRIMARY_1_CRITERIA"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"name":{"type":"string","description":"User-friendly name for the locking information of a Device. This parameter is used when Device is enabled in Sentinel EMS.\n","example":"device_name"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Details of the activation to be rehosted."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of the product keys or product suites for which the activation is done.","type":"integer","example":1},"activation":{"items":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"type":"object"},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"type":"string","example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"type":"string","description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true},"customAttributes":{"description":"User-defined custom attributes.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName"},"value":{"type":"string","example":"AttributeValue"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"description":"Details of the entitlement associated with this activation.","type":"object"},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Activation created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}":{"get":{"tags":["Activation"],"summary":"Get Activation","description":"Retrieve a specific activation based on its unique identifier.","operationId":"getActivation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"activation":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId","nullable":true},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"type":"object","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"integer","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"description":"List of products to activate."}},"nullable":true}},"nullable":true},"activationProduct":{"type":"object","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":"21"},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"description":"List of products to activate."}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"string","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"string","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"string","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"string","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true},"customAttributes":{"nullable":true}},"description":"Details of the entitlement associated with this activation.","type":"object","nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"fingerprint":{"type":"object","example":"","properties":{"id":{"type":"string","example":""},"friendlyName":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"value":{"type":"string","example":""}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Activation"],"summary":"Update Activation","description":"You can update the following parameters of an activation:\n- Activator and Activatee, if blank \n- External ID, if blank\n- Custom attributes\n- License key of the non-accumulative type\n","operationId":"partialUpdateActivation","parameters":[{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["activation"],"properties":{"activation":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product suite to activate.","example":"TestSuite"},"version":{"description":"Version of the product suite to activate.","example":"1.0"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","example":"TestLicenseModel","description":"Name of the license model."}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"description":"Version of the product.","example":"1.0"}},"nullable":true}},"nullable":true},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":"1"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the feature.","example":"TestFeature"},"version":{"description":"Version of the feature.","example":"1.0"}},"nullable":true}},"nullable":true},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","example":"TestLicenseModel","description":"Name of the license model."}},"nullable":true},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"description":"Name of the activation attribute.","type":"string","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"description":"Name of the attribute.","type":"string","example":"PRIMARY_1_INFO"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the associated download.","example":"TestName"},"version":{"description":"Version of the associated download.","example":"1.0"}},"nullable":true},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true},"entitlement":{"description":"Details of the entitlement associated with this activation.","properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true},"customAttributes":{"properties":{"customAttribute":{"items":{"properties":{"name":{"description":"Name of the user-defined custom attributes.","type":"string","example":"TestName"},"value":{"description":"The value of the user-defined custom attribute. \nThe data type of the value depends on the template data type. \nPermissible data types are string, date, numeric, boolean, integer, and list.\n","type":"string","example":"AttributeValue"}}},"type":"array"}},"nullable":true}},"nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Activation details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"activation":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"integer","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"integer","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"integer","example":1},"nameVersion":{"properties":{"version":{"description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true}},"description":"Details of the entitlement associated with this activation.","type":"object","nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/renew":{"post":{"tags":["Activation"],"summary":"Renew Activation","operationId":"renewActivation","description":"**Note:** This endpoint is not relevant for Sentinel LDK. \n Renew the license attributes (for example, end date) of the entitlement associated with the activation.  \nA new activation is created with the ACTIVATED state. The state of the existing activation is changed to RENEWED.\nFor the Sentinel RMS Connected (Cloud LM) mode, if the Renew License Automatically property is true in Administrator Console, then all activations are automatically renewed.","parameters":[{"in":"path","name":"activationId","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"activation":{"properties":{"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.\nLength: 6 to 60 characters.\n","example":"00000000-0000-0000-0000-000000000000"},"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External identifier of the activation.","example":"activationExternalId"},"groupActivationId":{"type":"string","description":"Auto-generated unique identifier of the group activation. Applicable for bulk activation when multiple products are activated together.","example":"00000000-0000-0000-0000-000000000000"},"activationComments":{"type":"string","description":"Comments for the activation","example":"Activation Comments"},"activationQuantity":{"description":"Quantity to activate (less than or equal to totalQuantity specified in the entitlement). \nIts value depends on the activation method of the product being activated.\n- Mandatory only for the PARTIAL activation method. \n- For the FIXED activation method, its value is a multiple of fixedQuantity. For Sentinel LDK, the value is always 1. \n- Not relevant for FULL and UNLIMITED activation methods. The specified value is ignored.\n","example":3,"type":"integer"},"timeZoneId":{"example":"America/New_York","type":"string","description":"ID representing the time zone of the customer. The available time zone IDs are listed in the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#TimeZone.htm' target='_blank'>time zone chart</a>. \nNote: \n- The time zone specified when creating an activation is applicable for the generated licenses. \n- If time zone is not specified when creating an activation, the customer time zone is applicable by default. \n- If the entitlement does not have any customer associated with it, the default time zone (UTC) is applicable.\n"},"activationDate":{"description":"Date of activation.","example":"2020-01-01","type":"string"},"earliestStartDate":{"description":"The earliest start date when the license usage begins. Sentinel EMS determines this value based on the start dates defined in the license models of features. The following rules generally apply:\n- If the start date is null or set to 'No Start Date,' the actual date of the product's activation is considered as the earliest start date.\n- If a product contains a mix of features with and without start dates, features without start dates are considered to have the current activation date as their start date. The earliest start date is set to the minimum start date among all features.","example":"2020-01-01","type":"string"},"latestEndDate":{"description":"The latest end date until when the license can be used. Sentinel EMS determines this value based on the end dates defined in the license models of features. The following rules generally apply:\n- If the end date is null or set to 'Never Expires,' the latest end date is set to December 31, 2500 (2500-12-31).\n- If a product contains a mix of features with and without end dates, features without end dates are considered to have December 31, 2500 (2500-12-31) as their end date, and the latest end date is set to the maximum end date among all features.","example":"2021-01-01","type":"string"},"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.","example":true,"type":"boolean"},"activatorEmailId":{"description":"Email address of the user performing the activation.","example":"abc@example.com","type":"string","format":"email"},"state":{"description":"State of the activation.\n- ACTIVATED: License has been generated.\n- EXPIRED: The leased license has expired and can no longer be used. This state is applicable for products configured for the cloud-served lease license deployment mode. You cannot revoke an expired license. \n- RENEW_AVAILABLE: The entitlement has been modified, and the activation is available for renewal. \n- RENEWED: Activation has been renewed.\n- REVOCATION_IN_PROGRESS: Revocation is in progress. For the on-premises mode, the state indicates that permission tickets have been generated. For the Connected (Cloud LM) mode, the state indicates that the revocation request is submitted to the cloud.\n- REVOKE_CONFIRMATION_PENDING: The revocation ticket has been uploaded. The confirmation to re-credit/reject the revocation is pending.\n- REVOKE_CONFIRMED: Revocation has been done successfully. The revocation credit (if any) is added to the total activation credit of the customer.\n- REHOSTED: License has been revoked and regenerated to host on another machine.\n- ACTIVATION_IN_PROGRESS: The license generation is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n- RENEW_IN_PROGRESS: The license renewal is pending from the cloud. This state is applicable only for the Connected (Cloud LM) mode.\n","example":"ACTIVATED","type":"string"},"limitType":{"type":"integer","example":0,"description":"Whether the named user limit is enabled or not. Possible values:\n- 0: The named user limit is disabled.\n- 1: The named user limit is enabled.\n Default: 0\n Note:\n- The named user limit must be either enabled (limitType is 1) or disabled (limitType is 0) across all associated products.\n- You cannot activate multiple products with the same product identifier together if the named user limit is enabled. Activate one line item at a time in such cases."},"activatedMaxlimit":{"type":"integer","example":0,"description":"A resultant number after activation that indicates the maximum named users who can access the license. It's calculated by multiplying the number of named users by the quantity of the activated product. The value must not exceed 999999."},"extnLDK":{"description":"Contains information specific to Sentinel LDK.","properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key, applicable only for Sentinel LDK.","example":"87615805408614270"}},"nullable":true},"enforcement":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the enforcement."},"version":{"type":"string","example":"9.5","description":"Version of the enforcement."},"name":{"type":"string","example":"Sentinel RMS","description":"Name of the enforcement."}},"nullable":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"},"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"nullable":true},"previousActivation":{"properties":{"id":{"type":"string","description":"Unique identifier of the activation that was renewed or rehosted. \n Note: Applicable only for renewed and rehosted activations.","example":"00000000-0000-0000-0000-000000000000"}},"nullable":true},"activatees":{"properties":{"activatee":{"items":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the activatee, for whom the activation is performed.","example":"TestActivatee@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the activatee, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"activationProductKey":{"properties":{"itemId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"pkId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"00000000-0000-0000-0000-000000000000"},"itemExternalId":{"type":"string","description":"The input must include at least one of itemId, pkId, or itemExternalId. If multiple values are provided, the system prioritizes them in the order of itemId, pkId, and itemExternalId.\n","example":"itemExternalId"},"activationItem":{"description":"Activation details required in the case of push keys. \n Note: The push keys activation is relevant only for Sentinel RMS (on-premises, lease, connected modes) and third party enforcements.","properties":{"activationSuite":{"description":"List of product suites to activate. \n Note: For Sentinel LDK and Sentinel Fit, product suites are not relevant.","properties":{"suite":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product suite to activate."},"externalId":{"type":"string","example":"TestExternalId","description":"Unique external identifier of the product suite."},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product suite to activate.","example":"1.0"},"name":{"type":"string","description":"Suite name","example":"TestSuite"}},"nullable":true}},"nullable":true},"activationProducts":{"properties":{"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationProduct":{"items":{"description":"List of products to activate.","properties":{"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product."},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product."},"identifier":{"type":"string","description":"Identifier of the product to be associated.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","description":"Product name","example":"TestProduct"}},"nullable":true}},"type":"object"},"variantIdentifier":{"description":"Variant to be activated of the versionless product.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product variant."},"identifier":{"type":"string","example":"1","description":"User-defined or system-generated identifier of the product variant."},"externalId":{"type":"string","example":"variantExternalId","description":"Unique external identifier of the product variant."},"productName":{"type":"string","example":"V8","description":"Name of the product variant to be activated."},"productVersion":{"type":"string","example":"V8","description":"Version of the product variant to be activated."}},"nullable":true},"activationFeatures":{"properties":{"activationFeature":{"items":{"properties":{"feature":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the feature."},"externalId":{"type":"string","example":"externalID_activationFeature","description":"External ID of the feature."},"identifier":{"description":"Unique identifier of the feature.","type":"string","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the feature.","example":"1.0"},"name":{"type":"string","description":"Feature name","example":"TestFeature"}},"nullable":true}},"type":"object"},"activationLicenseModel":{"properties":{"licenseModel":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"ID of the license model."},"name":{"type":"string","description":"License model name","example":"TestLicenseModel"}},"type":"object"},"attributes":{"properties":{"attribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute.","example":"2"},"readOnly":{"description":"Activation level attribute is readonly.","type":"boolean","example":true},"groupName":{"description":"Name of the group to which the attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"description":"User-defined custom attributes associated with this resource.","properties":{"customAttribute":{"items":{"properties":{"name":{"type":"string","example":"TestName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}},"nullable":true},"licenseKeyRef":{"type":"string","example":"2","description":"License key reference specified at the feature level. This should match the licenseKeyRef specified in the licenseKey object."},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true},"activationAttributes":{"properties":{"activationAttribute":{"items":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the activation attribute.","example":"0x4"},"readOnly":{"description":"Whether the activation attribute is read-only. Default: false","type":"boolean","example":true},"mandatory":{"description":"Whether the activation attribute is mandatory. Default: false","type":"boolean","example":false},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the attribute. \n Note: For Sentinel RMS locking code, specify a hexadecimal value.","example":"0x4"},"readOnly":{"description":"Whether the attribute is read-only.","type":"boolean","example":false},"mandatory":{"description":"Whether the attribute is mandatory.","type":"boolean","example":true}},"nullable":true},"groupName":{"description":"Name of the group to which this attribute belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which this attribute belongs.","type":"string","example":"CLOUD_SUBGROUP"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"device":{"properties":{"id":{"description":"ID of the device.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"identifier":{"type":"string","description":"Identifier of the device.","example":"device_identifier"},"name":{"type":"string","description":"Device-friendly name. This element is used when Device is enabled in Sentinel EMS and you want to specify a friendly name for the locking information during activation.","example":"device_name"}},"nullable":true},"revocation":{"properties":{"revokedBy":{"description":"User who performed the revocation.","example":"admin","type":"string"},"recreditQuantity":{"type":"integer","description":"Quantity to re-credit after the revocation confirmation. This value is less than or equal to activationQuantity, and added to the availableQuantity after revocation.","example":1},"notificationSent":{"type":"boolean","description":"Whether the notification to contacts is sent or not.","example":true},"creationDate":{"description":"Creation date of the activation.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the activation.","example":"2026-07-07 07:07","type":"string"}},"nullable":true},"licenseKeys":{"description":"Note: For the Sentinel RMS Connected (Cloud LM) mode, the license keys are stored on the cloud and not returned in the response.","properties":{"licenseKey":{"items":{"properties":{"keyGenTechnology":{"type":"string","example":"Manual Keygen","description":"Technology used to generate the license key."},"keyFormat":{"type":"string","enum":["TEXT","BINARY"],"description":"Format of the generated license key. Default: TEXT\n","example":"TEXT"},"keyType":{"type":"string","example":"NORMAL","description":"Type of the license key.","enum":["NORMAL","RTU","ACCUMLATIVE"]},"keyFileName":{"type":"string","example":"_51415822-f23b-w.DAT","description":"Name of the license key file."},"keyFileDescription":{"type":"string","example":"license key file.","description":"Description about license key file."},"isWWU":{"type":"boolean","example":false,"description":"For World Wide Universal value, it is true; otherwise it is false."},"key":{"type":"string","example":"Updated License Key","description":"License Key."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."},"keyEncodingType":{"type":"string","example":"BASE64","description":"Type of encoding used in the key."},"licenseKeyRef":{"type":"string","example":"2","description":"Reference for the key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"resultantStates":{"properties":{"resultantState":{"items":{"properties":{"keyResultantState":{"type":"string","example":"Updated ResultantState Key","description":"Contains the key resultant state."},"keyResultantStateRef":{"type":"string","example":"1","description":"Reference for the ResultantState key."}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"downloads":{"description":"List of downloads associated with the activated entitlement.","properties":{"download":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the associated download.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download.","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"type":"string","description":"Version of the associated download.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"isAttachable":{"type":"string","description":"Whether the download links are attached to the email certificates.","example":"true"},"url":{"type":"string","description":"URL of the file to be downloaded.","example":"a/b/c.d"},"description":{"type":"string","description":"Description of the associated download.","example":"Description of downloads."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"entitlement":{"properties":{"eId":{"type":"string","description":"Unique friendly name of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the entitlement.","example":"entitlementExternalId"},"id":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"revocationAllowed":{"type":"boolean","description":"Whether revocations are allowed for the entitlement.","example":true}},"description":"Details of the entitlement associated with this activation.","type":"object","nullable":true},"customer":{"description":"Details of the customer associated with this activation.","properties":{"id":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer.","example":"f2e4b24d-cc50-4e29-b47e-66e1645fbdb3"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"customerExternalId"},"name":{"type":"string","description":"Name of the customer.","example":"TestCustomer"}},"nullable":true},"licenseGrant":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the license grant."}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/activatees":{"get":{"tags":["Activation"],"summary":"Get Activatee","description":"Retrieve a specific activatee based on its unique identifier.","operationId":"getAssociateActivatees","parameters":[{"in":"path","name":"activationId","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"activatee":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the user, for whom the activation is performed.","example":"TestContact@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the user, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Activation"],"summary":"Replace Activatees","description":"Replace the associated activatees of an activation with the given activatees. \nNote: You can associate up to five activatees with an activation. Only one activatee can be the default activatee at a time.","operationId":"ReplaceActivatees","parameters":[{"in":"path","name":"activationId","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"activatees":{"type":"object","properties":{"activatee":{"type":"array","items":{"type":"object","properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the user, for whom the activation is performed.","example":"TestContact@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the user, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}}}}}}},"type":"object","required":["activatees"]}}},"description":"Activatee details to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Activation"],"summary":"Update Activatees","description":"Associate new activatees to the activation in addition to the existing activatees. Note: You can associate up to five activatees with an activation. Only one activatee can be the default activatee at a time.","operationId":"partialUpdateActivatees","parameters":[{"in":"path","name":"activationId","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"activatee":{"properties":{"activateeEmailId":{"type":"string","format":"email","description":"Email address of the user, for whom the activation is performed.","example":"TestContact@example.com"},"activateeExternalId":{"type":"string","description":"Unique external identifier of the user, for whom the activation is performed.","example":"activateeExternalId"},"isDefault":{"type":"boolean","example":true,"description":"Whether this is the default activatee. Default: true"},"isEnabled":{"type":"boolean","example":true,"description":"Whether the activatee is enabled or disabled. Default: true"},"addIfNotAvailable":{"type":"boolean","example":true,"description":"Add the email address of the activatee as the contact, if the contact does not exist. Default: false"}},"type":"object"}},"type":"object"}}},"description":"Activatees details to be associated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/markRevoke":{"post":{"tags":["Activation"],"operationId":"markRevoke","summary":"Mark as Revoked","description":"**Note:** This endpoint is relevant for Sentinel RMS (excluding the connected mode) and Sentinel Fit. For Sentinel LDK, use the <a href=?Activation/customRevoke target=_blank>Custom Revocation</a> endpoint.\n Mark an activation as Revoked instantly, without requiring to follow the normal revocation process.  The permission ticket is not generated in this case, so the end user is not required to apply any permission ticket and upload the revocation proof.  You can use this method if you are facing issues with the normal revocation process.For the Connected (Cloud LM) mode, the licenses are revoked from the cloud.","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"performedBy","in":"query","description":"Valid email id of the contact who performed this operation","schema":{"type":"string"}},{"in":"query","name":"sendNotification","description":"Whether to send notification to contacts after a successful operation. The default value depends on the Email Required field of the Administration Console.\nThe provided value will override the default value.\n","schema":{"type":"boolean"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/bulkMarkRevoke":{"post":{"tags":["Activation"],"operationId":"bulkMarkRevoke","summary":"Mark as Bulk Revoked","description":"**Note:** This endpoint is relevant for Sentinel RMS (excluding the connected mode) and Sentinel Fit. For Sentinel LDK, use the <a href=?Activation/customRevoke target=_blank>Custom Revocation</a> endpoint.\n Mark multiple activations as Revoked at a time.  The revocation is done instantly without requiring you to follow the normal revocation process.  The permission ticket is not generated, so the end user is not required to apply a permission ticket and upload the revocation proof. For the Connected (Cloud LM) mode, the licenses are revoked from the cloud.","parameters":[{"in":"query","name":"sendNotification","description":"Whether to send notification to contacts after a successful operation. The default value depends on the Email Required field of the Administration Console.\nThe provided value will override the default value.\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"activations":{"properties":{"activation":{"description":"Details of the activatee associated with the activation.","example":[{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","aId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"activationExternalId"},{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","aId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"activationExternalId"}],"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the activation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"aId":{"type":"string","description":"User-specified or auto-generated unique identifier of the activation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"activationExternalId","description":"External identifier of the activation."}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of activation."},"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/customRevoke":{"post":{"tags":["Activation"],"summary":"Custom Revocation","operationId":"customRevoke","description":"**Note:** This endpoint is relevant for Sentinel LDK and third-party enforcements.\nRevoke an activation and re-credit the activation quantity to the entitlement.\n**Notes for Sentinel LDK:**\n- Revocation removes the product for the given activation and associated dynamic memory files present in the key.\n- If multiple activations exist for a product identifier on the same key, then individual product cannot be removed.\n- For more details specific to Sentinel LDK, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#RevocationLDK.htm' target='_blank'>view the revocation workflow for Sentinel LDK.</a>.\n","parameters":[{"name":"activationId","in":"path","schema":{"type":"string"},"description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","required":true},{"name":"deactivationCode","in":"query","description":"Deactivation code available for vendors to customize and use in the implementation of the revocation handler.\n**Note:** Relevant only for third-party enforcements.\n","schema":{"type":"string"}},{"in":"query","name":"revokeAllLinkedActivations","description":"Whether to revoke all the activations available for a product identifier on a Sentinel key. You must set it to true if you want to revoke all linked activations.\nDefault: false\n**Note:** Relevant only for Sentinel LDK.\n ","schema":{"type":"boolean"}},{"in":"query","name":"sendNotification","description":"Whether to send notification to contacts after a successful operation. The default value depends on the Email Required field of the Administration Console.\nThe provided value will override the default value.\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\nNote: The body parameter is returned only for Sentinel LDK, and not for third-party enforcements. ","content":{"application/json":{"schema":{"properties":{"customRevocation":{"type":"object","properties":{"sendNotification":{"description":"Whether to send notification to users after a successful operation. The default value depends on the Email Required field of the Administration Console. \nThe provided value will override the default value.\n","example":true,"type":"boolean"},"creationDate":{"description":"Date of revocation.","example":"2026-07-07 07:07","type":"string"},"creationBy":{"description":"Identifies who initiated the revocation.","example":"userId","type":"string"},"enforcementData":{"properties":{"revokeLicenseString":{"type":"string","example":"v2cpString","description":"The V2CP file containing the revocation license string for the given activation. When the V2CP file is applied, the license is removed from the client machine.\n **Note**: The revocation V2CP can be applied successfully even if there are detached products, but once applied, a detached license with a revoked product cannot be reattached."}},"nullable":true},"revokedActivations":{"description":"List of activations that are revoked. Note that there can be multiple activations available for a product identifier and keyId.","properties":{"revokedActivation":{"items":{"properties":{"aId":{"type":"string","description":"Unique identifier of the activation.","example":"xxx-xxxx-xxxx-aid1"},"pkId":{"type":"string","description":"Unique identifier of the product key.","example":"xxx-xxxx-xxxx-pk1"},"recreditQuantity":{"type":"integer","example":1,"description":"The license quantity to re-credit after the revocation. This value must not exceed the activation quantity."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}}},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/generatePermissionTickets":{"post":{"tags":["Activation"],"summary":"Generate Permission Tickets","operationId":"generatePermissionTickets","description":" **Note:** This endpoint is relevant only for Sentinel RMS (excluding cloud-served lease mode and connected mode).\nInitiates the revocation process for a given activation. This endpoint accepts AID in the input. The output is a permission ticket or a set of multiple permission tickets, depending on the number of licenses being revoked. The permission ticket is required for revoking licenses on the end user 's machine, and is in the form of a byte array string. \n For the Connected (Cloud LM) mode, the permission tickets are not generated. The revocation request is created and submitted to the cloud. \n This endpoint replaces the previous endpoint that was used to generate a permission ticket (POST /ems/api/v5/activations/{activationId}/generatePermissionTicket).\n For more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Revocation.htm' target='_blank'>View the revocation workflow</a>.\n","parameters":[{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"name":"target-rms-version","in":"query","description":"Version of Sentinel RMS licenses to be revoked.Possible values: Above RMS 8.6.0, RMS 8.4.1 to RMS 8.5.9, and Below RMS 8.4.1. \nDefault value: Above RMS 8.6.0 ","schema":{"type":"string","enum":["Above RMS 8.6.0","RMS 8.4.1 to RMS 8.5.9","Below 8.4.1"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"permissionTickets":{"description":"List of permission tickets.","properties":{"permissionTicket":{"type":"string","description":"The permission ticket in the form of a byte array string.","example":"[-127, 1, 77, 1, 0, 4, 0, 0, 0, 12, 2, 0, 8, 49, 51, 50],[-127, 1, 77, 1, 0, 4, 0, 0, 0, 12, 2, 0, 8, 49, 51, 50],[-127, 1, 77, 1, 0, 4, 0, 0, 0, 12, 2, 0, 8, 49, 51, 50]"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/submitRevokeProofs":{"post":{"tags":["Activation"],"summary":"Submit Revocation Proofs","operationId":"submitRevokeProofs","description":"**Note:** This endpoint is relevant only for Sentinel RMS (on-premises mode). \n Upload the revocation proofs (in the byte array format) to Sentinel EMS.\nThis endpoint replaces the previous endpoint that was used to upload a revocation proof (POST/ems/api/v5/activations/{activationId}/submitRevokeProof). \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Revocation.htm' target='_blank'>View the revocation workflow</a>.\n","parameters":[{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"revokeProofs":{"description":"List of revocation proofs.","properties":{"revokeProof":{"type":"string","description":"Revocation proof after conversion from a binary string to a byte array.","example":["-126,1,14,1,0,4,0,0,0,12,2,0,8,49,51,50","-126,1,14,1,0,4,0,0,0,12,2,0,8,49,51,50","-126,1,14,1,0,4,0,0,0,12,2,0,8,49,51,50"]}},"nullable":true}},"type":"object"}}},"description":"Revocation ticket after conversion from a binary string to a byte array."},"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/confirmRevoke":{"post":{"tags":["Activation"],"summary":"Confirm Revocation","operationId":"confirmRevoke","description":"**Note:** This endpoint is relevant only for Sentinel RMS (excluding the connected mode).\n Confirm the revocation and re-credit the specified quantity to the activation quantity of the entitlement.\n**Note**: This step is not required if the Auto Confirm Revocation flag is true in the Administration Console. For on-premises  and network-lease licenses, all revocations are automatically confirmed after the revocation receipt is uploaded. For the Connected (Cloud LM) mode licenses, revocations are confirmed from the cloud.\n\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Revocation.htm' target='_blank'>view the revocation workflow</a>.","parameters":[{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"name":"recreditQuantity","description":"Specify a quantity that you want to re-credit to the customer. The recredit quantity cannot be more than the activation quantity. Default: 0\n","in":"query","schema":{"type":"integer"}},{"in":"query","name":"sendNotification","description":"Whether to send notification to contacts after a successful operation. The default value depends on the Email Required field of the Administration Console.\nThe provided value will override the default value.\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/activations/{activationId}/rejectRevocation":{"post":{"tags":["Activation"],"summary":"Reject Revocation","description":"**Note:** This endpoint is relevant only for Sentinel RMS (excluding the connected mode and Cloud-LM mode).\n Reject the revocation. \n**Note**: This step is not required if the Auto Confirm Revocation flag is true in the Administration Console. In such cases, all revocations are automatically confirmed after the revocation receipt is uploaded.      \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Revocation.htm' target='_blank'>view the revocation workflow</a>.","operationId":"rejectRevocation","parameters":[{"name":"activationId","in":"path","description":"Unique identifier of the activation. Possible values are: \n  - id \n  - aId (For example: aId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=activationExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"sendNotification","description":"Whether to send notification to contacts after a successful operation. The default value depends on the Email Required field of the Administration Console.\nThe provided value will override the default value.\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/fingerprints":{"post":{"tags":["Entitlement"],"summary":"Add Fingerprint","description":"Add a new machine fingerprint for a customer. \nThe fingerprint can later be associated with an entitlement, a product key, or a variant.\n","operationId":"addFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["fingerprint"],"properties":{"fingerprint":{"nullable":true,"properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"}},"nullable":true},"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"}}}}}}},"description":"Details of the fingerprint to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"fingerprint":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"Fingerprint created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Entitlement"],"summary":"Search Fingerprints","description":"Retrieve a list of fingerprints for a specific customer, filtered by the given query parameters.\n","operationId":"searchFingerprints","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"friendlyName","in":"query","description":"The fingerprint friendly name.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"fingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the entitlement.","type":"integer","example":1},"fingerprint":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/fingerprints/{fingerprintId}":{"get":{"tags":["Entitlement"],"summary":"Get Fingerprint","description":"Retrieve a fingerprint based on its unique identifier.","operationId":"getFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"fingerprint":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Entitlement"],"summary":"Update Fingerprint","description":"Partially update the fingerprint details. \nNote: You cannot update fingerprintXml if an active entitlement exists for the given fingerprint.","operationId":"updateFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["fingerprint"],"properties":{"fingerprint":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer.","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"}}}}}}},"description":"Fingerprint details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"fingerprint":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Entitlement"],"summary":"Replace Fingerprint","description":"Completely replace the fingerprint, if there is no active entitlement for the given fingerprint.","operationId":"replaceFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["fingerprint"],"properties":{"fingerprint":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"}}}}}}},"description":"Fingerprint details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"fingerprint":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint. \nThe value must be unique for a customer. \nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"Test1"},"refId1":{"type":"string","description":"First reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the fingerprint as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the fingerprint.","example":"2026-07-07 07:07","type":"string"},"fingerprintXml":{"type":"string","description":"XML containing the machine fingerprint.\nFor POST and PUT fingerprint operations, both friendlyName and fingerprintXml are mandatory in the input.\n","example":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><sentinelInfo><fingerprint type=\"SentinelRMS\" checksum=\"868D95C402FC3863\"><criteria><name>ID Prom</name><selector>0x1</selector><hash>F0D424FDC8A5F73B</hash></criteria> </fingerprint> </sentinelInfo>"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Entitlement"],"summary":"Delete Fingerprint","description":"Delete a fingerprint for a customer. \n By default, you can delete a fingerprint only if it does not have any existing associations. However, you can perform a force delete by setting forceDelete to true in the input, if there is no active lease for the fingerprint.","operationId":"deleteFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"forceDelete","description":"When true, this marks the fingerprint as deleted even if the fingerprint is associated with any entitlement, product key, or variant. However, there should not be any active lease for the fingerprint.\nWhen false, this marks the fingerprint as deleted only if the fingerprint does not have any existing associations.\nDefault: false\n","schema":{"type":"boolean"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/entitlementFingerprints/{fingerprintId}":{"delete":{"tags":["Entitlement"],"summary":"Remove Fingerprint from Entitlement","description":"Dissociate a fingerprint from the entitlement. This is not allowed for entitlements in the closed state.","operationId":"deleteFingerprints","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/productKeyFingerprints/{fingerprintId}":{"delete":{"tags":["Entitlement"],"summary":"Remove Fingerprint from Product Key","description":"Dissociate a fingerprint from the product key. This is not allowed for entitlements in the closed state.","operationId":"deleteFingerprintWithProductKey","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/productKeyFingerprints":{"patch":{"tags":["Entitlement"],"summary":"Update Product Key Association","description":"Associate a fingerprint with a product key. \nYou can associate a fingerprint with a product key only if entitlementAsWhole is false and the productType is DEFAULT.\nNote:\n- The fingerprint association can be optional or mandatory for a entitlement depending on whether the fingerprint registration attribute is true or false in the associated license model. \n- For entitlements where redundancy is enabled, the fingerprint association is mandatory.\n- A fingerprint is associated only if the entitlement is in Enable or Disable state.\n- Before the fingerprint association, you need to add the fingerprint for the customer.\n","operationId":"associateFingerprintWithProductKey","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKeyFingerprints"],"properties":{"productKeyFingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the product key.","type":"integer","example":1},"productKeyFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"type":"integer","example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored."}},"type":"object","nullable":true},"type":"array"},"totalRegisteredQuantity":{"type":"string","example":"0"}}}},"type":"object"}}},"description":"Fingerprint details for the product key.\nIt is mandatory to provide either id or friendlyName in the input.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productKeyFingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the product key.","type":"integer","example":1},"productKeyFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"string"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"totalRegisteredQuantity":{"type":"string","example":"0"}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Entitlement"],"summary":"Search Fingerprints in Product Key","description":"Search fingerprints associated with the given product key, filtered by the given query parameters. \nYou can search a fingerprint in a product key only if entitlementAsWhole is false and the productType is DEFAULT. If entitlementAsWhole is false and the productType is CHILD, search the fingerprint in the variant. If entitlementAsWhole is true, search the fingerprint in an entitlement.\n \n\n Note: The search retrieves records only when FINGERPRINT_REGISTRATION is true for the specified product key.","operationId":"getFingerprintsPK","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"friendlyName","in":"query","description":"The fingerprint friendly name.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productKeyFingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the product key.","type":"integer","example":1},"productKeyFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the product key. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"string"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"totalRegisteredQuantity":{"type":"string","example":"0"}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/entitlements/{entitlementId}/entitlementFingerprints":{"patch":{"tags":["Entitlement"],"summary":"Update Entitlement Association","description":"Associate a fingerprint with an entitlement. \n You can associate a fingerprint with an entitlement only if entitlementAsWhole is true. Otherwise, you need to do the fingerprint association with product key (if the productType is DEFAULT) or variant (if the productType is CHILD). \nNote:\n- The fingerprint association can be optional or mandatory for a entitlement depending on whether the fingerprint registration attribute is true or false in the associated license model.\n- For entitlements where redundancy is enabled, the fingerprint association is mandatory.\n- A fingerprint is associated with an entitlement only if the entitlement is in Enable or Disable state.\n- Before associating a fingerprint with an entitlement of a customer, you need to add the fingerprint for the customer. \n","operationId":"associateFingerprint","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["entitlement"],"properties":{"entitlement":{"properties":{"count":{"description":"Number of fingerprints associated with the entitlement.","type":"integer","example":1},"entitlementFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"count":{"description":"Number of fingerprints associated with the entitlement.","type":"integer","example":1},"entitlementFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"type":"integer","example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored."}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Fingerprint details for the entitlement. \nIt is mandatory to provide either id or friendlyName in the input.\nNote: The fingerprint XML provided in the Add Fingerprint API should contain the value of locking criteria. \n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of fingerprints associated with the entitlement.","type":"integer","example":1},"entitlementFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Entitlement"],"summary":"Search Fingerprints in Entitlement","description":"Retrieve a list of fingerprints associated with an entitlement, filtered by the given query parameters.\nYou can search a fingerprint in an entitlement only if entitlementAsWhole is true. Otherwise, you need to search the fingerprint in a product key (if the productType is DEFAULT) or variant (if the productType is CHILD).\n \n Note: The search retrieves records only when FINGERPRINT_REGISTRATION is true for the specified entitlement.","operationId":"getFingerprints","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"entitlementId","in":"path","description":"Unique identifier of the entitlement. Possible values are: \n  - id \n  - eId (For example: eId=00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=entitlementExternalId)\n","schema":{"type":"string"},"required":true},{"name":"friendlyName","in":"query","description":"The fingerprint friendly name.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitlementFingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the entitlement.","type":"integer","example":1},"entitlementFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the entitlement. This is less than or equal to availableQuantity.\nThe quantity given in the input overrides the existing quantity.\nThe value of registeredQuantity depends on the activation method of the product.\n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/productVariants/{productVariant}/productVariantFingerprints/{fingerprintId}":{"delete":{"tags":["Entitlement"],"summary":"Remove Fingerprint from Variant","description":"Dissociate a fingerprint from the variant of a versionless product. This is not allowed for entitlements in the closed state.","operationId":"deleteFingerprintWithProductKeyVariant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"productVariant","in":"path","description":"Version of the variant of a versionless product.","schema":{"type":"string"},"required":true},{"name":"fingerprintId","in":"path","description":"Unique identifier of the fingerprint. Possible values are: \n  - id \n  - friendlyName (For example: friendlyName=TestFPFriendlyName)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/productVariants/{productVariant}/productVariantFingerprints":{"patch":{"tags":["Entitlement"],"summary":"Update Variant Association","description":"Associate a fingerprint with a variant of a versionless product.\nYou can associate a fingerprint with a variant only if entitlementAsWhole is false and the productType is CHILD.\nNote:\n- The fingerprint association can be optional or mandatory for a entitlement depending on whether the fingerprint registration attribute is true or false in the associated license model.        \n- For entitlements where redundancy is enabled, the fingerprint association is mandatory.\n- A fingerprint is associated only if the entitlement is in Enable or Disable state.\n- Before fingerprint association, you need to add the fingerprint for the customer.\n","operationId":"associateFingerprintWithLineitemVariant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"productVariant","in":"path","description":"Version of the variant of the versionless product.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKey"],"properties":{"productKey":{"properties":{"count":{"description":"Number of fingerprints associated with the variant of the versionless product.","type":"integer","example":1},"productVariantFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"items":{"type":"object","nullable":true},"type":"array"},"count":{"description":"Number of fingerprints associated with the variant of the versionless product.","type":"integer","example":1},"productVariantFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"type":"integer","example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored."}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Fingerprint details for the variant.\nIt is mandatory to provide either id or friendlyName in the input.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of fingerprints associated with the variant of the versionless product.","type":"integer","example":1},"productVariantFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Entitlement"],"summary":"Search Fingerprints in Variant","description":"Retrieve a list of fingerprints associated with a variant of a versionless product, filtered by the given query parameters.\nYou can search a fingerprint in a variant only if entitlementAsWhole is false and the productType is CHILD. If entitlementAsWhole is false and the productType is DEFAULT, search the fingerprint in the product key. If entitlementAsWhole is true, search the fingerprint in an entitlement.\n \n Note: The search retrieves records only when FINGERPRINT_REGISTRATION is true for the specified variant.","operationId":"getVariantFingerprints","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"pkId","in":"path","description":"Unique identifier of the product key.","schema":{"type":"string"},"required":true},{"name":"productVariant","in":"path","description":"Version of the variant of the versionless product.","schema":{"type":"string"},"required":true},{"name":"friendlyName","in":"query","description":"The fingerprint friendly name.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nValid values: id, friendlyName\n","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \nValid values: id, friendlyName\n","schema":{"type":"string","enum":["fpName","fpValue","refId1","refId2","creationDate","lastModifiedDate","executedBy"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productVariantFingerprints":{"type":"object","properties":{"count":{"description":"Number of fingerprints associated with the variant of the versionless product.","type":"integer","example":1},"productVariantFingerprint":{"items":{"properties":{"fingerprint":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the fingerprint.","example":"00000000-0000-0000-0000-000000000000"},"friendlyName":{"type":"string","description":"A descriptive friendly name of the fingerprint.\nThe value must be unique for a customer.\n","example":"Test1"}},"type":"object"},"registeredQuantity":{"example":1,"description":"Quantity registered with the fingerprint associated with the variant. This is less than or equal to availableQuantity. \n The quantity given in the input overrides the existing quantity. \n The value of registeredQuantity depends on the activation method of the product. \n- Relevant only for the PARTIAL and FIXED activation methods. For PARTIAL, the default value is 1. For FIXED, the value is a multiple of fixedQuantity.  \n- Not relevant for FULL, and UNLIMITED activation methods. The specified value is ignored.","type":"integer"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users":{"post":{"tags":["User"],"summary":"Add User","description":"Add a new vendor user. \nA vendor user is an employee of the software vendor who is responsible to perform various entitlement-related tasks in Sentinel EMS.\n","operationId":"addUser","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"required":["loginId","emailId","password"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the vendor user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when vendor users are managed through the vendor portal and is not automatically inherited by REST API requests. To enforce password change after the first successful login for vendor users created or updated using REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?User/changePassword target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"nullable":true}},"type":"object"}}},"description":"Details of the vendor user to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"user":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"Vendor user created.\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["User"],"summary":"Search Users","description":"Retrieve all or a list of vendor users that match the specified search parameters.","operationId":"searchUser","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the vendor user. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the vendor user, indicating their access permissions for Sentinel EMS.\n\nDefault: ENABLE\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"roleName","in":"query","description":"Name of the role.","schema":{"type":"string"}},{"name":"loginId","in":"query","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the vendor user.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the Market Group.","schema":{"type":"string"}},{"name":"emailId","in":"query","description":"Unique email address of the vendor user.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of vendor user.","schema":{"type":"string"}},{"name":"idpName","in":"query","description":"Idp name associated with identity provider.","schema":{"type":"string"}},{"name":"idpDisplayName","in":"query","description":"Idp display name associated with identity provider.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search vendor users.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search vendor users.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nValid values: name, refId1, refId2, email, loginId,  externalId, and loginid.\n","schema":{"type":"string","enum":["state","loginId","name","idpName","idpDisplayName","emailId","refId1","refId2","externalId","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \nValid values: name, refId1, refId2, email, loginId,  externalId, and loginid.\n","schema":{"type":"string","enum":["state","loginId","name","idpName","idpDisplayName","emailId","refId1","refId2","externalId","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nValid value(s): roles, marketGroups.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"users":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"user":{"items":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the vendor user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when vendor users are managed through the vendor portal and is not automatically inherited by REST API requests. To enforce password change after the first successful login for vendor users created or updated using REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?User/changePassword target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users/{userId}":{"get":{"tags":["User"],"summary":"Get User","description":"Retrieve a vendor user based on its unique identifier.","operationId":"getUser","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"user":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["User"],"summary":"Replace User","description":"Perform a full update of the vendor user details. You cannot change the following: service_account user type and loginId. The following parameters specified in the request body are ignored: isLocked and id.\n","operationId":"updateUser","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"required":["loginId","emailId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the vendor user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when vendor users are managed through the vendor portal and is not automatically inherited by REST API requests. To enforce password change after the first successful login for vendor users created or updated using REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?User/changePassword target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"nullable":true}},"type":"object"}}},"description":"Vendor user details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"user":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["User"],"summary":"Update User","description":"Perform a partial update of the specific vendor user by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n**Note**\n- You cannot change the following: SERVICE_ACCOUNT userType and loginId. \n- The following parameters specified in the request body are ignored: isLocked and id.\n","operationId":"partialUpdateUser","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"forcePasswordChangeAtFirstLogin":{"type":"boolean","description":"When set to true, the vendor user must change the password after the first successful login to Sentinel EMS to ensure that the initial password is replaced with a secure password.\n\nNote: The 'Enforce Password at First Login' setting in the Administration Console applies only when vendor users are managed through the vendor portal and is not automatically inherited by REST API requests. To enforce password change after the first successful login for vendor users created or updated using REST API, explicitly set the forcePasswordChangeAtFirstLogin parameter in each request payload.\n\nWhen forcePasswordChangeAtFirstLogin is set to true, the basic authentication request returns HTTP 400 with error code 6500 until the password is updated after the first successful login. Use the <a href=?User/changePassword target=_self>Change Password</a> API endpoint to update the password, then retry authentication with the new password.\n\nDefault: false","example":true}},"nullable":true}},"type":"object"}}},"description":"Vendor user details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"user":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n Note: Once defined, this value cannot be changed. The value should be URL encoded if it contains any reserved characters.\n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"password":{"type":"string","description":"Password of the vendor user. For Sentinel identity provider, it is mandatory. For other identity providers, it is optional, as passwords are managed by the linked provider. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>At least one lowercase character (a-z)\n</li> <li>At least one uppercase character (A-Z)\n</li> <li>At least one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p> Note: The above password criteria apply to version 5.4 and later. For earlier versions, these criteria apply only after a password change.","example":"Ems@12345"},"identityProvider":{"description":"Details of the identity provider associated with the vendor user. \n\n <b>Note:</b>  If the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID, you must specify externalId in the request.","properties":{"name":{"type":"string","description":"Name of the identity provider associated with the vendor user. The default value depends on the “Identity Provider for Vendor Portal” administration console property in the vendor portal.","example":"vendorIDP"},"displayName":{"type":"string","description":"A user-friendly name that helps users easily identify the identity provider they want to use for authentication.","example":"vendor IDP"}},"nullable":true},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.\n\n**Note:** This is mandatory only if the vendor user is associated with its own identity provider (other than Sentinel identity provider), and the “Vendor User Attribute for Identity Federation” administration console property is set to External ID.\n","example":"userExternalId"},"refId1":{"type":"string","description":"First reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user as used by external ERP/CRM systems.","example":"refId2"},"creationDate":{"description":"Creation date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the vendor user.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the vendor user, indicating their access permissions for Sentinel EMS. \nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"isLocked":{"type":"boolean","example":false,"description":"Login to the Sentinel EMS portal is denied if isLocked is set to true. This occurs after 10 consecutive incorrect password attempts. \nDefault: false"},"expiresOn":{"type":"string","format":"YYYY-MM-DD","description":"Expiration date of the vendor user account, after which the user's login will be disabled. \nDefault: 2500-12-31\n","example":"2019-12-19"},"roles":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroups":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"userType":{"example":"STANDARD","description":"Type of the vendor user. Possible values are:\n - ADMIN: A vendor user with administrative rights.\n - SERVICE_ACCOUNT: A service account is created for a vendor user who can access the Sentinel EMS resources for third-party integrated systems.\n   A service account cannot be authenticated through the Sentinel EMS portal and can only be authenticated using the Sentinel EMS REST API.\n - STANDARD: A standard vendor user to whom you grant permissions by associating roles.\n\nDefault: STANDARD\n Note: You can create Service Account vendor users only with the Sentinel identity provider.","type":"string","enum":["ADMIN","SERVICE_ACCOUNT","STANDARD"]},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["User"],"summary":"Delete User","description":"Delete a vendor user. You can delete all types of vendor users: administrator, service account, or standard.\n","operationId":"deleteUser","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users/{userId}/roles":{"put":{"tags":["User"],"summary":"Replace Associated Roles","description":"Replace the already-associated roles of a vendor user with the given roles.","operationId":"associateRoles","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated role details for the vendor user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["User"],"summary":"Update Associated Roles","description":"Associate new roles to the vendor user in addition to the existing roles.","operationId":"partialAssociateRoles","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"properties":{"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}}},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"role":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated role.","example":"TestRole"},"description":{"type":"string","description":"Additional information about the role.","example":"Role description"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated role details for the vendor user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["User"],"summary":"Delete Associated Role","description":"Disassociate a role from the vendor user.","operationId":"deleteUserRoles","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the vendor user role.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users/{userId}/marketGroups":{"put":{"tags":["User"],"summary":"Replace Associated Market Groups","description":"Replace the already-associated market groups of a vendor user with the given market groups.","operationId":"associateMarkets","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated market group details for the vendor user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["User"],"summary":"Update Associated Market Groups","description":"Associate new market groups to the vendor user in addition to the existing market groups.","operationId":"partialAssociateMarkets","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["user"],"properties":{"user":{"properties":{"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"marketGroup":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated market group.","example":"TestMarketgroup"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated role details for the vendor user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["User"],"summary":"Remove Associated Market Group","description":"Remove a market group from the vendor user.","operationId":"deleteMarketGroupInUser","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the vendor user. Possible values are: \n  - id \n  - emailId (For example: emailId=TestUser@example&#8226;com)\n  - loginId (For example: loginId=TestUser)\n  - externalId (For example: externalId=userExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the market group.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users/{userId}/changePassword":{"patch":{"tags":["User"],"summary":"Change Password","description":"Change the password of the currently logged-in vendor user.The current login session is closed after the password has been changed.","operationId":"changePassword","parameters":[{"name":"userId","in":"path","description":"Unique login ID of the vendor user.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["changePassword"],"properties":{"changePassword":{"nullable":true,"required":["oldPassword","newPassword"],"properties":{"oldPassword":{"type":"string","description":"Existing password of the vendor user.","example":"Ems@12345"},"newPassword":{"type":"string","description":"New password of the vendor user. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"}}}}}}},"description":"Change password details of the vendor user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/users/anonymous/resetPassword":{"patch":{"tags":["User"],"summary":"Forgot Password","description":"Reset the password of the vendor user.","operationId":"resetPassword","parameters":[{"name":"emailId","in":"query","description":"Unique email address of the vendor user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/roles":{"post":{"tags":["User"],"summary":"Add Role","description":"A role defines a set of permissions for accessing resources. Roles are assigned to vendor users to specify the actions they can perform on these resources.","operationId":"addRole","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["role"],"properties":{"role":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the role.","example":"TestRole"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}}},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"required":["id","name"]}}}}},"description":"Details of the role to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name"],"nullable":true}}}}},"description":"Role created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["User"],"summary":"Search Roles","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchRoles","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the role. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the role.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the role.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search roles.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search roles.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name to sort results in ascending order. Possible values are description, name, creationDate, lastModifiedDate, and state","schema":{"type":"string","enum":["name","description","creationDate","lastModifiedDate","state"]}},{"name":"sortByDesc","in":"query","description":"Column name to sort results in descending order. Possible values are description, name, creationDate, lastModifiedDate, and state.","schema":{"type":"string","enum":["name","description","creationDate","lastModifiedDate","state"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: users and permissions.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"roles":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"role":{"items":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/roles/{roleId}":{"get":{"tags":["User"],"summary":"Get Role","description":"Retrieve a specific role based on its unique identifier.","operationId":"getRole","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["User"],"summary":"Delete Role","description":"Delete a role.\n","operationId":"deleteRole","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["User"],"summary":"Replace Role","description":"Update an existing role completely.\n - If a parameter is not provided, the existing value will be replaced by blank or default.\n - If a parameter is set to blank, the existing value will be replaced with a blank.\n - If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"updateRole","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["role"],"properties":{"role":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"}},"required":["id","name"]}}}}},"description":"Role details to be updated. \nWith the exception of role id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["User"],"summary":"Update Role","description":"Perform a partial update of the specific role by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateRole","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["role"],"properties":{"role":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"}}}}}}},"description":"Role details to be updated. \nWith the exception of role id, all parameters can be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the role.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the role. Possible values are: \n- ENABLE: Represents active roles. You can associate only active roles with a vendor user.\n- DISABLE: Represents inactive roles. You cannot associate inactive roles with a vendor user. You can enable the role again if required.\n\n  Default: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"creationDate":{"description":"Creation date of the role.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the role.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"permission":{"items":{"properties":{"resource":{"example":"root/CM","description":"Resource on which role permissions are defined. Possible values are:\n- CM: Denotes the Customer Management module.\n- CPM: Denotes the Channel Partner Management module.\n- DM: Denotes the Download Management module.\n- EM: Denotes the Entitlement Management module.\n- AM: Denotes the Activation Management module.\n- LMM: Denotes the License Model Management module.\n- RM: Denotes the Report Management module.\n","type":"string"},"action":{"example":"VEAD","description":"Actions that the role can perform on the resource.\n- V: The role has View permissions on the resource.\n- VE: The role has View and Edit permissions on the resource.\n- VEA: The role has View, Edit, and Add permissions on the resource.\n- VEAD: The role has View, Edit, Add, and Delete permissions on the resource.\n - VS: The role has View and Split/Transfer permissions on the resource. This permission is applicable only to the Entitlement Management resource.\n \n Default: V\n","type":"string","enum":["V","VE","VEA","VEAD","VS","VES"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description  of the role.","example":"Role description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/roles/{roleId}/users":{"put":{"tags":["User"],"summary":"Replace Associated Users","description":"Replace the already-associated vendor users of a role with the given vendor users.","operationId":"associateUser","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["users"],"properties":{"users":{"type":"object","properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","required":["id","loginId","emailId","name","externalId"],"nullable":true},"type":"array"}}}}}}},"description":"Associated vendor user details for the role."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["User"],"summary":"Update Associated Users","description":"Associate new vendor users to the role in addition to the existing vendor users.","operationId":"partialAssociateUsers","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["users"],"properties":{"users":{"type":"object","properties":{"user":{"items":{"description":"List of vendor users associated with a role. Only standard vendor users can be associated with a role.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user. This is used to log in to Sentinel EMS. \n","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Associated user details for the role."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["User"],"summary":"Delete Associated User","description":"Remove a vendor user from a role.","operationId":"deleteRoleUsers","parameters":[{"name":"roleId","in":"path","description":"Unique identifier of the role. Possible values are: \n  - id \n  - name (For example: name=TestRole)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the vendor user to be removed from the role.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/marketGroups":{"post":{"tags":["Configuration"],"summary":"Add Market Group","description":"Add a new market group. \n Market group is an access control level that helps to separate the access of multiple business units to specific EMS catalog elements, customers, entitlements, and activations. \n","operationId":"addMarketGroup","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["marketGroup"],"properties":{"marketGroup":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Unique name of the market group. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" &lt; &gt;\n","example":"TestMarketgroup"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the associated namespace.","example":"TestNamespace"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"required":["name"]}}}}},"description":"Details of the market group to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"Market group created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Market Groups","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchMarketGroups","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the market group. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the market group.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the market group as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the market group as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the market group.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.\n","schema":{"type":"string","enum":["DEPLOYED","DRAFT"]}},{"name":"namespaceId","in":"query","description":"Auto-generated unique identifier of the namespace. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"linkedMarketGroupId","in":"query","description":"Auto-generated unique identifier of the linked market group.","schema":{"type":"string"}},{"name":"linkedMarketGroupName","in":"query","description":"Name of the linked market group.","schema":{"type":"string"}},{"name":"userName","in":"query","description":"Name of the vendor user.","schema":{"type":"string"}},{"name":"userEmailId","in":"query","description":"Unique email address of the vendor user.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search market groups.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search market groups.","schema":{"type":"string"}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.\nValid values: name, description, refId1, refId2, creationDate, lastModifiedDate\n","schema":{"type":"string","enum":["name","description","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.\nValid values: name, description, refId1, refId2, creationDate, lastModifiedDate\n","schema":{"type":"string","enum":["name","description","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nValid values: namespaces, users, linkedMarketGroups.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"marketGroups":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"marketGroup":{"items":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/marketGroups/{marketGroupId}":{"get":{"tags":["Configuration"],"summary":"Get Market Group","description":"Retrieve a specific market group based on its unique identifier.\n","operationId":"getMarketGroup","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Market Group","description":"Update an existing market group completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- You cannot change the following for deployed market groups: id, state, name.\n- The following parameters specified in the request body are ignored: id and state.\n- For the name parameter, the new value specified should be correct and unique. Blank and duplicate values are not allowed.","operationId":"updateMarketGroup","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["marketGroup"],"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"}},"required":["name"],"nullable":true}}}}},"description":"Market group details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Market Group","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- You can update a market group only if it is in the draft state and not associated with any vendor user. \n- You cannot change the following for deployed market groups: id, state, name.","operationId":"partialUpdateMarketGroup","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["marketGroup"],"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"}},"nullable":true}}}}},"description":"Market group details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"refId1":{"type":"string","description":"First reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the market group as used by external ERP/CRM systems.\n","example":"refId2"},"state":{"type":"string","description":"State of the market group. A new market group is created in the DRAFT state. The state is changed to DEPLOYED when a vendor user is added to the market group.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"creationDate":{"description":"Creation date of the market group.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the market group.","example":"2026-07-07 07:07","type":"string"},"namespaces":{"properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"linkedMarketGroups":{"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"users":{"properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the market group. You can specify up to 500 alphanumeric characters including special characters.","example":"Market group description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Market Group","description":"Delete a market group if it is in the draft state and not associated with any vendor user.","operationId":"deleteMarketGroup","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/marketGroups/{marketGroupId}/linkedMarketGroups":{"put":{"tags":["Configuration"],"summary":"Replace Linked Market Groups","description":"Replace existing linked market groups with the given market groups.","operationId":"updateMarketGroupLinkedMarketGroups","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["linkedMarketGroups"],"properties":{"linkedMarketGroups":{"nullable":true,"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the market groups to be linked or updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Linked Market Groups","description":"Link new market groups to the specified market group while retaining existing market group links.","operationId":"partialUpdateLinkedMarketGroups","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["linkedMarketGroups"],"properties":{"linkedMarketGroups":{"nullable":true,"properties":{"linkedMarketGroup":{"items":{"properties":{"marketGroup":{"properties":{"id":{"type":"string","description":"Unique identifier of the market group.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the linked market group.","example":"TestMarketGroup"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the market groups to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Remove Linked Market Group","description":"Remove a linked market group from the market group.","operationId":"deleteLinkedMarketGroup","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the linked market group to be removed from the market group.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/marketGroups/{marketGroupId}/namespaces":{"put":{"tags":["Configuration"],"summary":"Replace Associated Namespaces","description":"Replace the already-associated namespaces of a market group with the given namespaces.","operationId":"updateMarketGroupNamespaces","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"namespaces":{"type":"object","properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the namespace to be associated or updated. ."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Associated Namespaces","description":"Associate new namespaces to the market group in addition to the existing namespaces.","operationId":"partialUpdateMarketGroupNamespaces","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"namespaces":{"type":"object","properties":{"namespace":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the namespace.","example":"TestNamespace"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Details of the namespace to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Remove Associated Namespace","description":"Remove a namespace from the market group.","operationId":"deleteMarketGroupNamespaces","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the namespace to be removed from the market group.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/marketGroups/{marketGroupId}/users":{"put":{"tags":["Configuration"],"summary":"Replace Users","description":"Replace the already-associated vendor users of a market group with the given vendor users.","operationId":"updateMarketGroupUsers","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"object","properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Associated user details for the market group."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Users","description":"Associate new vendor users to the market group in addition to the existing vendor users.","operationId":"partialUpdateMarketGroupUsers","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"object","properties":{"user":{"items":{"description":"List of vendor users associated with a market group. Only standard vendor users can be associated with a market group.","properties":{"id":{"type":"string","description":"Unique identifier of the vendor user.","example":"00000000-0000-0000-0000-000000000000"},"loginId":{"type":"string","description":"Unique login ID of the vendor user.","example":"TestUser"},"emailId":{"type":"string","description":"Unique email address of the vendor user.","example":"TestUser@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the vendor user.","example":"userExternalId"},"name":{"type":"string","description":"Name of the vendor user.","example":"TestUser"}},"type":"object","nullable":true},"type":"array"}}}}}}},"description":"Associated user details for the market group."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Remove User","description":"Remove a vendor user from the market group.","operationId":"deleteMarketGroupUsers","parameters":[{"name":"marketGroupId","in":"path","description":"Unique identifier of the market group. Possible values are:  \n - id \n - name (For example: name=TestMarketGroup)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the vendor user to be removed from the market group.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads":{"post":{"tags":["Download"],"summary":"Add Download","description":"Add a new download definition.\n- If ESDaaS is enabled, you need to provide the base URL of the download. The base URL is generated using the STS Token, after the file has been uploaded to the ESDaaS. \n- If ESDaaS is disabled, you need to provide the static URL of the file. The static URL is generated after the file has been uploaded by the vendor to a FTP server, Web server, or CDN.\n\n**Note**: ESDaaS is an interface that provides an integrated experience of uploading and downloading content securely by using Sentinel EMS.\n","operationId":"addDownload","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the custom attribute.","example":"AttributeValue"}},"nullable":true}}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Download details to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"file":{"properties":{"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"},"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Download created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Download"],"summary":"Search Downloads","description":"Retrieve all downloads or a list of downloads that match the given query parameters.","operationId":"searchDownloads","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the download definition. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"External identifier of the download definition","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the download definition.","schema":{"type":"string"}},{"name":"version","in":"query","description":"Version of the download definition.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the download definition.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product associated with the download definition.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download the existing content but you cannot associate new content.\n","schema":{"type":"string","enum":["ENABLE","DISABLE","CLOSE"]}},{"name":"releaseDate","in":"query","description":"Release date of the download, from when the content is available for download to the customers.","schema":{"type":"string"}},{"name":"downloadFileName","in":"query","description":"Name of the file associated with the download definition.","schema":{"type":"string"}},{"name":"associateDownloadName","in":"query","description":"Name of the download associated with the download definition.","schema":{"type":"string"}},{"name":"associateDownloadVersion","in":"query","description":"Version of the download associated with the download definition.","schema":{"type":"string"}},{"name":"associateDownloadExternalId","in":"query","description":"External identifier of the download associated with the download definition.","schema":{"type":"string"}},{"name":"eId","in":"query","description":"The unique identifier, eID, of the entitlement associated with the download definition.","schema":{"type":"string"}},{"name":"entId","in":"query","description":"Globally unique id of the entitlement associated with the download definition.","schema":{"type":"string"}},{"name":"lineItemId","in":"query","description":"ID of the entitlement item associated with the download definition.","schema":{"type":"string"}},{"name":"pkId","in":"query","description":"Unique identifier of the product key associated with the download definition.","schema":{"type":"string"}},{"name":"aId","in":"query","description":"ID of the activation associated with the download definition.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field to sort results in ascending order. \nValid values: downloadId, name, version, downloadFileName, state, externalId, releaseDate, size, \n creationDate, lastModifiedDate, and description.\n","schema":{"type":"string","enum":["downloadId","name","version","downloadFileName","state","releaseDate","size","externalId","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field to sort results in descending order. \nValid values: downloadId, name, version, downloadFileName, state, externalId, releaseDate, size, \n creationDate, lastModifiedDate, and description.\n","schema":{"type":"string","enum":["downloadId","name","downloadFileName","version","state","externalId","releaseDate","size","description","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search downloads.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search downloads.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom attributes of download.\nFollowing is a sample URI: \n`GET /ems/api/v5/downloads?CA_DWNLD.laptop=sony`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom attributes:\n- CA_DWNLD: Perform search on a download-level custom attribute.\n\nThe rules to be followed when using custom attributes to search downloads are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n  -  Escape the comma (using the backslash escape character), if the comma exists in the value to be provided. \n\nNote: For custom attributes of the type Boolean, the value to be provided is 0 or 1.\n","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nFields available are: customAttributes, associatedDownloads, associatedProducts, and associatedCustomers.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"downloads":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"download":{"items":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"version":{"type":"string","description":"Version of the download definition.","example":"1.0"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"file":{"properties":{"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"},"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":1},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads/{downloadId}":{"get":{"tags":["Download"],"summary":"Get Download","description":"Retrieve a specific download based on its unique identifier.","operationId":"getDownload","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true},{"name":"userType","in":"query","description":"Type of the user who accesses the download. With userType, you must also set the userId. \nPossible values of userType and corresponding userId are: \n - ISV (0): Download is accessed by a software vendor. If userType is ISV, set userId to a valid, globally-unique identifier (id) of the user.\n - Partner (1): Download is accessed by a channel partner user. If userType is Partner, set userId to a valid, globally-unique identifier (id) of the partner user.\n - EID (2): Download is accessed by a customer who logins to EMS using an EID. If userType is EID,  set userId to a valid eid.\n - ProductKey (3): Download is accessed by a customer who logins to EMS using a unique product key. If userType is ProductKey, set userId to a valid pkId.\n - EndUser (4): Download is accessed by a customer who logins to EMS using a unique contact ID or email. If userType is EndUser,  set userId to the id or emailId (for example: emailId=TestContact@example.com) of the contact. \n\nNote: You need to specify values of both userType and userId if you want to pass these details in the signed URL of the download. If you specify only one of these values, then both the values are ignored and the system fetches the user details from the current login session to form the signed URL.","schema":{"type":"string","enum":["ISV","Partner","EID","ProductKey","EndUser"]}},{"name":"userId","in":"query","description":"Unique identifier corresponding to the userType. For details, refer to the description of the userType parameter above.","schema":{"type":"string"}},{"name":"eId","in":"query","description":"EID of the entitlement. If userType is EID, the values of EID and userId should be the same.","schema":{"type":"string"}},{"name":"activationId","in":"query","description":"Unique identifier of the activation.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Unique identifier of the product.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique identifier of the customer.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Download"],"summary":"Update Download","description":"Update downloads associated with a specific download.","operationId":"updateDownload","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}},{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the custom attribute.","example":"AttributeValue"}},"nullable":true}}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Download details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Download"],"summary":"Replace Download","description":"Replace downloads associated with a specific download definition.","operationId":"replaceDownload","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}},{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the custom attribute.","example":"AttributeValue"}},"nullable":true}}},"nullable":true}},"type":"object"}},"type":"object"}}},"description":"Download details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"download":{"required":["nameVersion"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the download.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the associated download that is obtained after uploading a file to ESDaaS. This field is applicable only if ESDaaS is enabled.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the download definition.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download definition.","example":"1.0"}},"nullable":true},"releaseDate":{"type":"string","description":"Release date of the download, from when the content is available for download to the customers.","example":"2018-04-19"},"creationDate":{"description":"Creation date of the download.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the download.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the download. \n - ENABLE: You can download and associate content. \n - DISABLE: You can view the associated content but you cannot download it.\n - CLOSE: You can download content but you cannot associate it.\n","type":"string","enum":["ENABLE","DISABLE","CLOSE"]},"isAttachable":{"type":"boolean","description":"Whether to attach the download links to the email certificates. \nThis parameter is used only if the Add Downloads Links option (under the License Certificate Email Settings section) is enabled in the Administration Console.\nBy default, for ESDaaS, the download links expire in 16 hours. The expiration time can be configured using the URL Expiration Time property available in the Administration Console.\nDefault: true","example":true},"description":{"description":"Description of the download definition.","type":"string","example":"Download description"},"file":{"properties":{"name":{"type":"string","description":"Name of the file to be downloaded.","example":"TestName"},"size":{"type":"string","description":"Size of the file to be downloaded. The file size limit is 25 GB.","example":"100"},"logo":{"type":"string","description":"Logo file associated with the download.","example":"logo.png"},"url":{"type":"string","description":"URL of the file to be downloaded. \nIf ESDaaS is enabled, provide the base URL of the download. The base URL is generated using STS Token, after the file has been uploaded to the ESDaaS. \nIf ESDaaS is disabled, provide the static URL of the file.\n","example":"https://example.com"},"signedURL":{"type":"string","description":"An encrypted URL containing logged-in user details and STS security information that helps in authenticating users during file uploads.\n","example":"https://example.com/signed"}},"nullable":true},"associatedProducts":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product.","example":1},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"nullable":true},"associatedCustomers":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"associatedDownloads":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Download"],"summary":"Delete Download","description":"Delete a download definition that is not associated with any product or download.","operationId":"deleteDownload","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads/bulk":{"post":{"tags":["Download"],"summary":"Bulk Download Upload","description":"Upload a large download data set to EMS. The supported input formats are CSV and JSON. For JSON format type, refer to the JSON output of the Search Downloads API. For CSV format type, refer to the EMS User Guide.\n **Note**:\n - With this endpoint, a bulk upload request is submitted to the job queue. The queue is processed in the background and a notification is sent to the administrator after the job completion.\n - The bulk upload is an asynchronous job and takes time to complete, depending on the volume of the input data and requests in the job queue. \n - Only users with Administrator permissions can use this endpoint.\n","operationId":"dataUploadDownload","parameters":[{"name":"name","in":"query","description":"A unique and descriptive name of the batch job.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Download"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchImport"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED","COMPLETED_WITH_ERRORS"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"Accepted\nThe auto-generated unique identifier (id) of the new resource is returned in the response. Save this identifier to get the batch job in future.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/stsToken":{"get":{"tags":["Download"],"summary":"Get STS Token","description":"Generate a STS Token that is used <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#STSUpload.htm' target='_blank'>for uploading a file to the file server</a>. The STS Token helps to authenticate the user who is uploading the file. The validity of the STS Token is 30 minutes.\n","operationId":"stsToken","responses":{"200":{"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads/{downloadId}/associatedDownloads":{"delete":{"tags":["Download"],"summary":"Delete Associated Download","description":"Dissociate a download from a download definition.","operationId":"deleteAssociatedDownload","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Unique identifier of the download to be dissociated from the download definition.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Download"],"summary":"Update Associated Downloads","description":"Update downloads associated with a download definition.","operationId":"updateAssociatedDownload","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated download details to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Download"],"summary":"Replace Associated Download","description":"Replace downloads associated with a specific download.","operationId":"replaceAssociatedDownload","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"},"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"associatedDownload":{"items":{"description":"Note: To associate a download with a download definition, specify at least one of the following parameters: id, externalId, or nameVersion. When one or more of these parameters are specified, the priority order is id, externalId, and nameVersion.","properties":{"download":{"properties":{"id":{"type":"string","description":"Unique identifier of the download to be associated.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Unique external identifier of the download definition","example":"downloadExternalId"},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the download to be associated.","example":"TestDownload"},"version":{"type":"string","description":"Version of the download to be associated.","example":"1.0"}},"nullable":true}},"type":"object"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Download details to be associated or updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads/{downloadId}/associatedProducts":{"delete":{"tags":["Download"],"summary":"Delete Associated Product","description":"Disassociate products from a download definition.","operationId":"deleteAssociatedProducts","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Unique identifier of the product to be dissociated from the download definition.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Download"],"summary":"Update Associated Products","description":"Update products associated with a specific download.","operationId":"UpdateAssociatedProducts","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"type":"object"},"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated product details for the download."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Download"],"summary":"Replace Associated Products","description":"Replace products associated with a specific download.","operationId":"replaceAssociatedProduct","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}}},"type":"array"}},"type":"object"},"associatedProduct":{"items":{"description":"Note: To associate a product with a download definition, specify at least one of the following parameters: externalId, identifier, or nameVersion. When one or more of these parameters are specified, the priority order is externalId, identifier, and nameVersion.","properties":{"product":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","example":"TestExternalId","description":"External identifier of the product to be associated."},"identifier":{"type":"string","example":"1","description":"Identifier of the product to be associated. \n\n\nNote: For Sentinel LDK products, the value of &quot;identifier&quot;\u0000 is not unique. Use other unique product identifiers, such as id, externalId, or nameVersion to get a Sentinel LDK product."},"nameVersion":{"properties":{"name":{"type":"string","description":"Name of the product to be associated.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product to be associated.","example":"1.0"}},"nullable":true}},"type":"object"},"state":{"example":"ENABLE","description":"State of the product to be associated.","type":"string","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated product details for the download."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/downloads/{downloadId}/associatedCustomers":{"delete":{"tags":["Download"],"summary":"Delete Associated Customer","description":"Disassociate customers from a download definition.","operationId":"deleteAssociatedCustomers","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Unique identifier of the customer to be dissociated from the download definition.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Download"],"summary":"Update Associated Customers","description":"Update customers associated with a specific download.","operationId":"updateAssociatedCustomers","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated."},"externalId":{"type":"string","description":"External ID of the customer to be associated."},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated customer details for the download."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Download"],"summary":"Replace Associated Customer","description":"Replace customers associated with a specific download.","operationId":"replaceAssociatedCustomer","parameters":[{"name":"downloadId","in":"path","description":"Unique identifier of the download. Possible values are: \n  - id \n  - nameVersion (For example: nameVersion=TestDownload:1.0)\n  - externalId (For example: externalId=downloadExternalId)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["download"],"properties":{"download":{"properties":{"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"EXT-001"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"},"associatedCustomer":{"items":{"description":"Note: To associate a customer with a download definition, specify at least one of the following parameters: identifier, externalId, or name. When one or more of these parameters are specified, the priority order is identifier, externalId, and name.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Identifier of the customer to be associated."},"externalId":{"type":"string","description":"External ID of the customer to be associated."},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Associated customer details for the download."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customAttributes":{"post":{"tags":["Configuration"],"summary":"Add Custom Attribute","description":"Add a new custom attribute. \nA custom attribute is a placeholder for storing additional information for a resource.\n","operationId":"addCustomAttribute","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customAttribute"],"properties":{"customAttribute":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the custom attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"ProductFamily"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING"},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]}},"nullable":true}}}}},"description":"Details of the custom attribute to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"customAttribute":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING"},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"Custom attribute created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Custom Attributes","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomAttributes","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the custom attribute. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"entityType","in":"query","description":"Resource for which the custom attribute has been defined. You can specify multiple values separated by comma.\nValid resource names are:\n - FEATURE\n - PRODUCT\n - SUITE\n - ENTITLEMENT\n - PRODUCTKEY\n - CHANNEL_PARTNER\n - CUSTOMER\n - CONTACT\n - ACTIVATION\n - DOWNLOAD\n - CHANNEL_PARTNER_USERS","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the custom attribute.","schema":{"type":"string"}},{"name":"unique","in":"query","description":"Whether the custom attribute is unique. \nDefault: false\n","schema":{"type":"boolean"}},{"name":"allowChangesBy","in":"query","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","schema":{"type":"string","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]}},{"name":"mandatory","in":"query","description":"Whether the custom attribute is mandatory.\nDefault: false\n","schema":{"type":"boolean"}},{"name":"dataType","in":"query","description":"Data type of the custom attribute.","schema":{"type":"string","enum":["STRING","INTEGER","BOOLEAN","DATE","LIST","TEXT"]}},{"name":"stringLength","in":"query","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","schema":{"type":"integer"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search custom attributes.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search custom attributes.","schema":{"type":"string"}},{"name":"isIndexed","in":"query","description":"Whether indexing for a custom attribute is enabled. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","schema":{"type":"string","enum":["YES","NO","IN_PROGRESS"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","entityType","dataType","defaultValue","description","optional","unique","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","entityType","dataType","defaultValue","description","optional","unique","creationDate","lastModifiedDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customAttributes":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"customAttribute":{"items":{"required":["name","entityType"],"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","DATE","LIST","TEXT","NO_DATA_ALLOWED"]},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customAttributes/{id}":{"get":{"tags":["Configuration"],"summary":"Get Custom Attribute","description":"Retrieve a specific custom attribute based on its unique identifier (id).","operationId":"getCustomAttribute","parameters":[{"name":"id","in":"path","description":"Unique identifier (id) of the custom attribute.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customAttribute":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING"},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Custom Attribute","description":"Update a custom attribute based on the provided parameters. Any parameters not provided will be left unchanged.</i>\n \n <b>Note:</b> \n- You can update name, defaultValue, description, regularExpression, mandatory, and unique parameter values. \n- You can also change dataType from STRING to TEXT, or from TEXT to STRING (only if none of the attribute values exceed 200 characters). Updates to other data types are not supported. \n- Perform data type changes outside business hours to avoid impacting any active operations.","operationId":"partialUpdateCustomAttribute","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom attribute.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customAttribute"],"properties":{"customAttribute":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING"},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"}},"nullable":true}}}}},"description":"Custom attribute details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customAttribute":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the resource for which the custom attribute is defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","ENTITLEMENT","PRODUCTKEY","CHANNEL_PARTNER","CUSTOMER","CONTACT","ACTIVATION","DOWNLOAD","CHANNEL_PARTNER_USERS"]},"dataType":{"type":"string","description":"Data type of the custom attribute.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","DATE","LIST","TEXT","NO_DATA_ALLOWED"]},"stringLength":{"type":"integer","description":"Specifies the maximum number of characters allowed for a String custom attribute.\n \n <b>Note:</b> \n- Specify this value only when the data type is String.\n- The value must be an integer from 1 to 200.\n- To store values longer than 200 characters, use the Text data type instead of the String data type.\n- Once defined, you can increase the value, but you cannot decrease it later.","example":200},"creationDate":{"description":"Creation date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom attribute.","example":"2026-07-07 07:07","type":"string"},"allowChangesBy":{"type":"string","description":"Controls who can modify the custom attribute.  \n Possible values: \n- ALL_USERS: All users can modify the custom attribute. \n- VENDOR_ADMIN_ONLY: Only vendor administrators can modify the custom attribute. \n","example":"ALL_USERS","enum":["ALL_USERS","VENDOR_ADMIN_ONLY"]},"unique":{"type":"boolean","description":"Whether the custom attribute is unique.","example":false},"defaultValue":{"type":"string","description":"The default value of the custom attribute.","example":"Value1"},"regularExpression":{"type":"string","description":"Valid values for the custom attribute in the form of a regular expression.","example":".*"},"mandatory":{"type":"boolean","description":"Whether the custom attribute is mandatory.","example":false},"isIndexed":{"type":"string","description":"Enables indexing for a custom attribute. \n Possible values: \n- YES: Creates an index that enhances search and filter operations, and improves the efficiency of custom queries and report generation.\n- NO: Indicates that indexing is disabled.\n- IN_PROGRESS: A read-only, intermediate state indicating that indexing is currently being applied for a custom attribute. You cannot apply indexing to another custom attribute while an indexing operation is still in progress.</i>\n \n <b>Note:</b> \n- You can enable indexing for up to 20 custom attributes for each entity. \n- Use the isIndexed parameter only when the data type is String, Numeric, Date or List.","example":"NO","enum":["YES","NO","IN PROGRESS"]},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom attribute. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"Custom Attribute description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Custom Attribute","description":"Delete a custom attribute.","operationId":"deleteCustomAttribute","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom attribute.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/listAttributes":{"get":{"tags":["Configuration"],"summary":"Search List Attributes","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchListAttributes","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the list attribute. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the list attribute.","schema":{"type":"string"}},{"name":"optionId","in":"query","description":"Unique identifier of the list attribute option.","schema":{"type":"string"}},{"name":"optionName","in":"query","description":"Name of the list attribute option.","schema":{"type":"string"}},{"name":"entity","in":"query","description":"Resource for which the list attribute has been defined.","schema":{"type":"string","enum":["FEATURE","PRODUCT","SUITE","CUSTOMER","CONTACT","ENTITLEMENT","BATCHATTRIBUTES","CHANNELPARTNER","LINEITEM","CHANNELPARTNERUSER","DOWNLOAD"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. \nValid value(s): options.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"listAttributes":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"listAttribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"entity":{"type":"string","description":"Name of the resource for which the list attribute has been defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","CUSTOMER","CONTACT","ENTITLEMENT","BATCHATTRIBUTES","CHANNELPARTNER","LINEITEM","CHANNELPARTNERUSER","DOWNLOAD"]},"isCustomAttribute":{"type":"boolean","description":"Whether it is custom attribute or a pre-defined attribute of the resource. \nNote that custom attributes are defined by using the Configuration > Custom Attributes page of Sentinel EMS.","example":false},"options":{"properties":{"option":{"items":{"required":["value"],"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"description":"OPTIONS properties","nullable":true},"name":{"type":"string","description":"Name of the list attribute.","example":"ProductFamily"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/listAttributes/{id}":{"get":{"tags":["Configuration"],"summary":"Get List Attribute","description":"Retrieve a specific list attribute based on its unique identifier (id).","operationId":"getListAttribute","parameters":[{"name":"id","in":"path","description":"Unique identifier (id) of the list attribute.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"entity":{"type":"string","description":"Name of the resource for which the list attribute has been defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","CUSTOMER","CONTACT","ENTITLEMENT","BATCHATTRIBUTES","CHANNELPARTNER","LINEITEM","CHANNELPARTNERUSER","DOWNLOAD"]},"isCustomAttribute":{"type":"boolean","description":"Whether it is custom attribute or a pre-defined attribute of the resource. \nNote that custom attributes are defined by using the Configuration > Custom Attributes page of Sentinel EMS.","example":false},"options":{"properties":{"option":{"items":{"required":["value"],"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"description":"OPTIONS properties","nullable":true},"name":{"type":"string","description":"Name of the list attribute.","example":"ProductFamily"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/listAttributes/{listId}/options":{"put":{"tags":["Configuration"],"summary":"Replace Associated Options","description":"Replace options associated with a list attribute. \nYou can update value and the default status of the option. \nA parameter will be replaced if the new value specified is correct and not blank. \nAny parameters not provided will be replaced by blank or default.\n","operationId":"updateListAttributes","parameters":[{"name":"listId","in":"path","description":"Unique identifier of the list attribute.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"option":{"items":{"required":["value"],"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false}},"type":"object","nullable":true},"type":"array"}},"description":"Set of options defined for the list attribute.","type":"object"}}},"description":"List attribute option details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"entity":{"type":"string","description":"Name of the resource for which the list attribute has been defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","CUSTOMER","CONTACT","ENTITLEMENT","BATCHATTRIBUTES","CHANNELPARTNER","LINEITEM","CHANNELPARTNERUSER","DOWNLOAD"]},"isCustomAttribute":{"type":"boolean","description":"Whether it is custom attribute or a pre-defined attribute of the resource. \nNote that custom attributes are defined by using the Configuration > Custom Attributes page of Sentinel EMS.","example":false},"options":{"properties":{"option":{"items":{"required":["value"],"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"description":"OPTIONS properties","nullable":true},"name":{"type":"string","description":"Name of the list attribute.","example":"ProductFamily"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Associated Options","description":"Update a list attribute based on the provided parameters. Any parameters not provided will be left unchanged.\nYou can update value and the default status of the option. \nTo modify an option value, the new value specified should be correct and not blank.\n","operationId":"partialUpdateListAttributes","parameters":[{"name":"listId","in":"path","description":"Unique identifier of the list attribute.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"option":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false}},"type":"object","nullable":true},"type":"array"}},"description":"Set of options defined for the list attribute.","type":"object"}}},"description":"List attribute option details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the list attribute.","example":"2026-07-07 07:07","type":"string"},"entity":{"type":"string","description":"Name of the resource for which the list attribute has been defined.","example":"PRODUCT","enum":["FEATURE","PRODUCT","SUITE","CUSTOMER","CONTACT","ENTITLEMENT","BATCHATTRIBUTES","CHANNELPARTNER","LINEITEM","CHANNELPARTNERUSER","DOWNLOAD"]},"isCustomAttribute":{"type":"boolean","description":"Whether it is custom attribute or a pre-defined attribute of the resource. \nNote that custom attributes are defined by using the Configuration > Custom Attributes page of Sentinel EMS.","example":false},"options":{"properties":{"option":{"items":{"required":["value"],"properties":{"id":{"type":"string","description":"Unique identifier of the list attribute option.","example":"00000000-0000-0000-0000-000000000000"},"value":{"type":"string","description":"Name of the list attribute option.","example":"Default"},"isDefault":{"type":"boolean","description":"Whether it is the default option of this list attribute. Default: false","example":false},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"description":"OPTIONS properties","nullable":true},"name":{"type":"string","description":"Name of the list attribute.","example":"ProductFamily"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Associated Option","description":"Delete an option from the list attribute if the option is not associated with any resource.","operationId":"deleteListAttribute","parameters":[{"name":"listId","in":"path","description":"Identifier of the list attribute from which the option is to be deleted.","schema":{"type":"string"},"required":true},{"name":"id","in":"query","description":"Unique identifier of the option to be deleted.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reports":{"get":{"tags":["Report"],"summary":"Search Reports","description":"Retrieve a list of all available reports, including pre-defined and custom reports. \nYou can also retrieve a specific report based on its name.\nThis endpoint returns report details, such as unique identifier, name, and parameter list. \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"getReports","parameters":[{"name":"name","in":"query","description":"Name of the report.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search fingerprints.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reports":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"report":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the report.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the report.","example":"2026-07-07 07:07","type":"string"},"inputParameters":{"properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the report parameter.","example":"StartDate"},"dataType":{"type":"string","description":"Type of the report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the parameter is mandatory or optional.","example":"false"},"displayName":{"type":"string","description":"Name of the parameter as displayed in the Sentinel EMS portal.","example":"Start Date"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the report.","example":"ProductESDReport"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"displayName":{"type":"string","example":""},"groupName":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reports/{reportId}":{"get":{"tags":["Report"],"summary":"Generate Report","description":"Generate a report in the given output format.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"getReportById","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the report. Possible values are: \n- id\n- name (For example: name=AuditLogReport)\nNote: For custom reports, append **'**_CSV **'** after the report name.\n","schema":{"type":"string"},"required":true},{"name":"raw","in":"query","description":"A list of report parameters separated by **&** symbol. You can specify a report parameter value by using the **=** symbol. \nFor example: StartDate=2018-02-12&EndDate=2018-05-03\nNote: \n - The report parameter list varies for different reports. To get the parameters list for a report, use the Search Reports endpoint (GET /ems/api/v5/reports).            \n - You need to provide all mandatory parameters of the report.\n","schema":{"type":"string"}},{"name":"format","in":"query","description":"Output format for the report. \nDefault: XML\n\nNote: Sentinel EMS REST API supports XML and CSV formats for custom reports, and XML, and Jasper formats for non-custom reports. Sentinel EMS Vendor Portal supports XML and CSV formats for custom reports and HTML, RTF, PDF, XLS, PlainXML, and JasperXML formats for non-custom reports.\n","schema":{"type":"string","enum":["XML","jasper","CSV"]}}],"responses":{"200":{"content":{},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportTemplates":{"get":{"tags":["Report"],"summary":"Search Data Export Reports","description":"Retrieve a list of data export reports matching the given query parameters.\nIf you do not specify any query parameters, the endpoint returns all data export reports. \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"searchReportTemplates","parameters":[{"name":"name","in":"query","description":"Name of the data export report.","schema":{"type":"string"}},{"name":"displayName","in":"query","description":"Name of the data export report as displayed in the Sentinel EMS portal.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the data export report.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search data export reports.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search data export reports.","schema":{"type":"string"}},{"name":"isConfigurable","in":"query","description":"Set to true to retrieve only the user-defined data export reports. Set to false to retrieve only the predefined data export reports.","schema":{"type":"boolean"}},{"name":"sortByAsc","in":"query","description":"Column name to sort results in ascending order. Possible values are displayName, description and creationDate.","schema":{"type":"string","enum":["displayName","description","creationDate"]}},{"name":"sortByDesc","in":"query","description":"Column name to sort results in descending order. Possible values are displayName, description and creationDate.","schema":{"type":"string","enum":["displayName","description","creationDate"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reportTemplates":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"reportTemplate":{"items":{"required":["displayName"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the data export report.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the data export report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the data export report.","example":"2026-07-07 07:07","type":"string"},"configurable":{"type":"boolean","description":"Whether the data export report is configurable. It is a read-only field. It is set to true for user-defined data export reports, and set to false for predefined data export reports.","example":true},"copyAllowed":{"type":"boolean","description":"Whether you can copy the data export report or not.  It is a read-only field. It is set to true for predefined data export reports, and set to false for user-defined data export reports.","example":true},"allowedCAEntities":{"description":"List of the allowed entity types for which custom attributes are included in the data export report. The list of allowed entity types depends on the type of the data export report.\nFor example, a customer data export report allows for only the CUSTOMER entity type.","properties":{"allowedCAEntity":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"additionalAttributes":{"description":"List of custom attributes included in the data export report.","properties":{"additionalAttribute":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"},"attributeName":{"type":"string","description":"Name of the custom attribute.","example":"OrderType"},"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"inputParameters":{"description":"List of input parameters required to generate the data export report.","properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the data export report parameter.","example":"StartDate"},"dataType":{"type":"string","description":"Type of the data export report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the report parameter is mandatory or optional.","example":true},"displayName":{"type":"string","description":"Name of the report parameter as displayed in the Sentinel EMS portal.","example":"Start Date"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the data export report.","example":"DataExportReport"},"displayName":{"type":"string","description":"Name of the data export report as displayed in the Sentinel EMS portal.","example":"Data Export Report"},"description":{"type":"string","description":"Description of the data export report as displayed in the Sentinel EMS portal.","example":"Data export report description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"groupName":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportTemplates/{reportId}":{"get":{"tags":["Report"],"summary":"Get Data Export Report","description":"Retrieve the data export report based on its identifier.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"getReportTemplate","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the data export report. Possible values: \n- id\n- name (For example: name=DataExport_Products)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"reportTemplate":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the data export report.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the data export report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the data export report.","example":"2026-07-07 07:07","type":"string"},"configurable":{"type":"boolean","description":"Whether the data export report is configurable. It is a read-only field. It is set to true for user-defined data export reports, and set to false for predefined data export reports.","example":true},"copyAllowed":{"type":"boolean","description":"Whether you can copy the data export report or not.  It is a read-only field. It is set to true for predefined data export reports, and set to false for user-defined data export reports.","example":true},"allowedCAEntities":{"description":"List of the allowed entity types for which custom attributes are included in the data export report. The list of allowed entity types depends on the type of the data export report.\nFor example, a customer data export report allows for only the CUSTOMER entity type.","properties":{"allowedCAEntity":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"additionalAttributes":{"description":"List of custom attributes included in the data export report.","properties":{"additionalAttribute":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"},"attributeName":{"type":"string","description":"Name of the custom attribute.","example":"OrderType"},"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"inputParameters":{"description":"List of input parameters required to generate the data export report.","properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the data export report parameter.","example":"StartDate"},"dataType":{"type":"string","description":"Type of the data export report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the report parameter is mandatory or optional.","example":true},"displayName":{"type":"string","description":"Name of the report parameter as displayed in the Sentinel EMS portal.","example":"Start Date"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the data export report.","example":"DataExportReport"},"displayName":{"type":"string","description":"Name of the data export report as displayed in the Sentinel EMS portal.","example":"Data Export Report"},"description":{"type":"string","description":"Description of the data export report as displayed in the Sentinel EMS portal.","example":"Data export report description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["displayName"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Report"],"summary":"Delete Data Export Report","description":"Delete a user-defined data export report. \nYou cannot delete predefined reports, and the user-defined reports that have been generated once.\n <b>Note</b>: Only users with Administrator permissions can perform this operation. \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"deleteReportTemplateById","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the data export report. Possible values: \n- id\n- name (For example: name=DataExport_Products)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportTemplates/{reportId}/generateReport":{"post":{"tags":["Report"],"summary":"Generate Data Export Report","description":"Trigger a job for the given data export report. The report job is asynchronous. It runs in the background and takes time to complete depending on the volume of the data to be exported and requests in the job queue.\nThe response of this endpoint contains the link of the export job in the Location header. You can use the job link to track and manage the report job, and to download the report after the export is complete.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"generateReportTemplateById","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the data export report. Possible values: \n- id\n- name (For example: name=DataExport_Products)\n","schema":{"type":"string"},"required":true},{"name":"raw","in":"query","description":"String containing report parameters and their values. Use the **=** symbol to specify a parameter value, and the **&** symbol to separate report parameters. \nFor example: StartDate=2021-06-01&EndDate=2022-06-01 \n<b>Note</b>:- \n - The list of report parameters depends on the data export report you want to generate. To get the list of report parameters, use either of the following endpoints: <a href='?Report/getReportTemplate' target='_blank'>Get Data Export Report</a> or <a href='?Report/searchReportTemplates' target='_blank'>Search Data Export Reports</a>.\n - You must provide all the mandatory parameters to generate a data export report. The StartDate and EndDate parameters are mandatory for all the data export reports. The Custom Entities data export report takes an additional mandatory parameter, CustomEntityId, which you can obtain using either the <a href='?Configuration/getCustomentity' target='_blank'>Get Custom Entity</a> or <a href='?Configuration/searchCustomEntity' target='_blank'>Search Custom Entities</a> endpoint.","schema":{"type":"string"}}],"responses":{"202":{"description":"The link of the data export job is available in the Location header of the response."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportTemplates/{reportId}/copy":{"post":{"tags":["Report"],"summary":"Copy Data Export Report","description":"Create a data export report by copying a predefined report. In the input, you can specify entity types and the custom attributes you want to export. You can use the <a href='?Configuration/searchCustomAttributes' target='_blank'>Search Custom Attributes</a> endpoint to retrieve the list of available custom attributes of the allowed entity types. \nYou can copy only the predefined data export reports (excluding the Custom Entities data export report). Copying creates a user-defined data export report that you can edit using the <a href='?Report/configureReportTemplateById' target='_blank'>Configure Data Export Report</a> endpoint.\n<b>Note</b>: Only users with Administrator permissions can perform this operation.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"copyReportTemplate","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the data export report. Possible values: \n- id\n- name (For example: name=DataExport_Products)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"reportTemplate":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the data export report.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the data export report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the data export report.","example":"2026-07-07 07:07","type":"string"},"configurable":{"type":"boolean","description":"Whether the data export report is configurable. It is a read-only field. It is set to true for user-defined data export reports, and set to false for predefined data export reports.","example":true},"copyAllowed":{"type":"boolean","description":"Whether you can copy the data export report or not.  It is a read-only field. It is set to true for predefined data export reports, and set to false for user-defined data export reports.","example":true},"allowedCAEntities":{"description":"List of the allowed entity types for which custom attributes are included in the data export report. The list of allowed entity types depends on the type of the data export report.\nFor example, a customer data export report allows for only the CUSTOMER entity type.","properties":{"allowedCAEntity":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"additionalAttributes":{"description":"List of custom attributes included in the data export report.","properties":{"additionalAttribute":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"},"attributeName":{"type":"string","description":"Name of the custom attribute.","example":"OrderType"},"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"inputParameters":{"description":"List of input parameters required to generate the data export report.","properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the data export report parameter.","example":"StartDate"},"dataType":{"type":"string","description":"Type of the data export report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the report parameter is mandatory or optional.","example":true},"displayName":{"type":"string","description":"Name of the report parameter as displayed in the Sentinel EMS portal.","example":"Start Date"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the data export report.","example":"DataExportReport"},"displayName":{"type":"string","description":"Name of the data export report as displayed in the Sentinel EMS portal.","example":"Data Export Report"},"description":{"type":"string","description":"Description of the data export report as displayed in the Sentinel EMS portal.","example":"Data export report description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["displayName"],"nullable":true}}}}},"description":"<i>Created</i> \nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportTemplates/{reportId}/configure":{"post":{"tags":["Report"],"summary":"Configure Data Export Report","description":"Configure the details of a user-defined data export report as identified by reportId. You can modify the display name, description, and add or remove custom attributes to be exported. \nYou can use the <a href='?Configuration/searchCustomAttributes' target='_blank'>Search Custom Attributes</a> endpoint to retrieve the list of available custom attributes of the allowed entity types. \nConfiguring a data export report is an overwrite operation. When configuring, if you do not specify any custom attribute in the request body, then the report does not include the custom attribute data. \nYou can configure only the user-defined data export reports. Predefined reports are not configurable.\n<b>Note</b>: Only users with Administrator permissions can perform this operation. \nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"configureReportTemplateById","parameters":[{"name":"reportId","in":"path","description":"Unique identifier of the data export report. Possible values: \n- id\n- name (For example: name=DataExport_Products)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["reportTemplate"],"properties":{"reportTemplate":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the data export report.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the data export report.","example":"DataExportReport"},"displayName":{"type":"string","description":"Name of the data export report as displayed in the Sentinel EMS portal.","example":"Data Export Report"},"description":{"type":"string","description":"Description of the data export report as displayed in the Sentinel EMS portal.","example":"Data export report description"},"creationDate":{"description":"Creation date of the data export report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the data export report.","example":"2026-07-07 07:07","type":"string"},"configurable":{"type":"boolean","description":"Whether the data export report is configurable. It is a read-only field. It is set to true for user-defined data export reports, and set to false for predefined data export reports.","example":true},"copyAllowed":{"type":"boolean","description":"Whether you can copy the data export report or not.  It is a read-only field. It is set to true for predefined data export reports, and set to false for user-defined data export reports.","example":true},"allowedCAEntities":{"description":"List of the allowed entity types for which custom attributes are included in the data export report. The list of allowed entity types depends on the type of the data export report.\nFor example, a customer data export report allows for only the CUSTOMER entity type.","properties":{"allowedCAEntity":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"additionalAttributes":{"description":"List of custom attributes included in the data export report.","properties":{"additionalAttribute":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"},"attributeName":{"type":"string","description":"Name of the custom attribute.","example":"OrderType"},"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"inputParameters":{"description":"List of input parameters required to generate the data export report.","properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the data export report parameter.","example":"StartDate"},"displayName":{"type":"string","description":"Name of the report parameter as displayed in the Sentinel EMS portal.","example":"Start Date"},"dataType":{"type":"string","description":"Type of the data export report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the report parameter is mandatory or optional.","example":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"required":["displayName"],"nullable":true}}}}},"description":"Details you want to configure for the report, such as display name, description, and associated custom attributes."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"reportTemplate":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the data export report.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the data export report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the data export report.","example":"2026-07-07 07:07","type":"string"},"configurable":{"type":"boolean","description":"Whether the data export report is configurable. It is a read-only field. It is set to true for user-defined data export reports, and set to false for predefined data export reports.","example":true},"copyAllowed":{"type":"boolean","description":"Whether you can copy the data export report or not.  It is a read-only field. It is set to true for predefined data export reports, and set to false for user-defined data export reports.","example":true},"allowedCAEntities":{"description":"List of the allowed entity types for which custom attributes are included in the data export report. The list of allowed entity types depends on the type of the data export report.\nFor example, a customer data export report allows for only the CUSTOMER entity type.","properties":{"allowedCAEntity":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"additionalAttributes":{"description":"List of custom attributes included in the data export report.","properties":{"additionalAttribute":{"items":{"properties":{"entityType":{"type":"string","description":"Type of the entity to which the custom attribute belongs.\nPossible values: PRODUCT, PRODUCTKEY, CUSTOMER, CHANNEL_PARTNER, ENTITLEMENT, ACTIVATION","example":"Entitlement"},"attributeName":{"type":"string","description":"Name of the custom attribute.","example":"OrderType"},"id":{"type":"string","description":"Unique identifier of the custom attribute.","example":"00000000-0000-0000-0000-000000000000"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"inputParameters":{"description":"List of input parameters required to generate the data export report.","properties":{"inputParameter":{"items":{"properties":{"parameterName":{"type":"string","description":"Name of the data export report parameter.","example":"StartDate"},"dataType":{"type":"string","description":"Type of the data export report parameter.","example":"DATE"},"mandatory":{"type":"boolean","description":"Whether the report parameter is mandatory or optional.","example":true},"displayName":{"type":"string","description":"Name of the report parameter as displayed in the Sentinel EMS portal.","example":"Start Date"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the data export report.","example":"DataExportReport"},"displayName":{"type":"string","description":"Name of the data export report as displayed in the Sentinel EMS portal.","example":"Data Export Report"},"description":{"type":"string","description":"Description of the data export report as displayed in the Sentinel EMS portal.","example":"Data export report description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["displayName"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportJobs":{"get":{"tags":["Report"],"summary":"Search Report Jobs","description":"Retrieve a list of all available report jobs. \nThis endpoint returns report jobs details such as unique identifier, name, state and values of the parameters that were used to trigger the job.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"searchReportJobs","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the report job. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the report job.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the report job. Possible values: \n- NOT_STARTED: The report job is not started. This is the initial state of the report job.\n- IN_PROGRESS: The report job is running. \n- COMPLETED: The report job is completed. \n- FAILED: The report job is failed.","schema":{"type":"string","enum":["NOT_STARTED","IN_PROGRESS","COMPLETED","FAILED"]}},{"name":"startDate","in":"query","description":"Report job start date (in the YYYY-MM-DD format) to search report jobs.","schema":{"type":"string"}},{"name":"completedDate","in":"query","description":"Completion date (in the YYYY-MM-DD format) of the report job.","schema":{"type":"string"}},{"name":"creationDate","in":"query","description":"Report job creation date (in the YYYY-MM-DD format) to search report jobs.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search report jobs.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search report jobs.","schema":{"type":"string"}},{"name":"modifiedDate","in":"query","description":"Report job last modified date (in the YYYY-MM-DD format) to search report jobs.","schema":{"type":"string"}},{"name":"templateName","in":"query","description":"Name of the data export report for which the report job was created.","schema":{"type":"string"}},{"name":"templateDisplayName","in":"query","description":"Display name of the data export report for which the report job was created.","schema":{"type":"string"}},{"name":"createdBy","in":"query","description":"Name of the user who created the report job.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nPossible values: name, state, startDate, creationDate, creationDateFrom, creationDateTo, modifiedDate, templateName, templateDisplayName, createdBy\n Default: modifiedDate\n","schema":{"type":"string","enum":["name","state","startDate","creationDate","creationDateFrom","creationDateTo","modifiedDate","templateName","templateDisplayName"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \nPossible values: name, state, startDate, creationDate, creationDateFrom, creationDateTo, modifiedDate, templateName, templateDisplayName, createdBy\n Default: modifiedDate\n","schema":{"type":"string","enum":["name","state","startDate","creationDate","creationDateFrom","creationDateTo","modifiedDate","templateName","templateDisplayName"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reportJobs":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"reportJob":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the report job.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the report job.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the report job.","example":"2026-07-07 07:07","type":"string"},"startDate":{"description":"Start date of the report job.","example":"2026-07-07 07:07","type":"string"},"completedDate":{"description":"Completion date of the report job.","example":"2026-07-07 07:07","type":"string"},"templateName":{"type":"string","description":"Name of the data export report for which the report job is created.","example":"DataExportsEntitlements"},"templateDisplayName":{"type":"string","description":"Display name of the data export report for which the report job is created.","example":"Data Exports Entitlements"},"createdBy":{"type":"string","description":"Name of the user who created the report job.","example":"TestUserName"},"state":{"type":"string","description":"State of the report job. Possible values: \n- NOT_STARTED: The report job is not started. This is the initial state of the report job.\n- IN_PROGRESS: The report job is running. \n- COMPLETED: The report job is completed. \n- FAILED: The report job is failed.","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","COMPLETED","FAILED"]},"inputParameters":{"properties":{"inputParameter":{"items":{"properties":{"value":{"type":"string","description":"Type of the report parameter.","example":"DATE"},"name":{"type":"string","description":"Name of the report parameter.","example":"StartDate"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"notificationEmails":{"type":"string","description":"Email recipients to whom the report download notification is sent after the completion of the report job. The list of email recipients is specified in the Email Recipients field of the Administration Console.","example":"TestContact@example.com"},"name":{"type":"string","description":"Name of the report job.","example":"reportJobTest"},"description":{"type":"string","description":"Additional information about the report job.","example":"description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportJobs/{reportJobId}":{"get":{"tags":["Report"],"summary":"Get Report Job","description":"Retrieve the report job based on its identifier. \nIf the getDownloadUrl parameter is set to true in the input, the response will contain a signed URL for downloading the data export report.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"getReportJob","parameters":[{"name":"reportJobId","in":"path","description":"Unique identifier of the report job. Possible values: \n- id\n- name (For example: name=DataExports_Products_Job)\n","schema":{"type":"string"},"required":true},{"name":"getDownloadUrl","in":"query","description":"Set to true to get the download URL of the data export report in the response. \nDefault: false\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the report job.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the report job.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the report job.","example":"2026-07-07 07:07","type":"string"},"startDate":{"description":"Start date of the report job.","example":"2026-07-07 07:07","type":"string"},"completedDate":{"description":"Completion date of the report job.","example":"2026-07-07 07:07","type":"string"},"templateName":{"type":"string","description":"Name of the data export report for which the report job is created.","example":"DataExportsEntitlements"},"templateDisplayName":{"type":"string","description":"Display name of the data export report for which the report job is created.","example":"Data Exports Entitlements"},"createdBy":{"type":"string","description":"Name of the user who created the report job.","example":"TestUserName"},"state":{"type":"string","description":"State of the report job. Possible values: \n- NOT_STARTED: The report job is not started. This is the initial state of the report job.\n- IN_PROGRESS: The report job is running. \n- COMPLETED: The report job is completed. \n- FAILED: The report job is failed.","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","COMPLETED","FAILED"]},"inputParameters":{"properties":{"inputParameter":{"items":{"properties":{"value":{"type":"string","description":"Type of the report parameter.","example":"DATE"},"name":{"type":"string","description":"Name of the report parameter.","example":"StartDate"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"notificationEmails":{"type":"string","description":"Email recipients to whom the report download notification is sent after the completion of the report job. The list of email recipients is specified in the Email Recipients field of the Administration Console.","example":"TestContact@example.com"},"downloadUrl":{"type":"string","description":"A signed URL for downloading the completed data export report. This is available in the response only if getDownloadUrl is set to true in the request."},"name":{"type":"string","description":"Name of the report job.","example":"reportJobTest"},"description":{"type":"string","description":"Additional information about the report job.","example":"description"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Report"],"summary":"Delete Report Job","description":"Delete a report job. Only report jobs with the NOT_STARTED state can be deleted.\n <b>Note</b>: Only users with Administrator permissions can perform this operation.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"deleteReportJobById","parameters":[{"name":"reportJobId","in":"path","description":"Unique identifier of the report job. Possible values: \n- id\n- name (For example: name=DataExports_Products_Job)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/reportJobs/{reportJobId}/reset":{"post":{"tags":["Report"],"summary":"Reset Report Job","description":"Restart a report job. Only report jobs with a FAILED state can be reset.\n <b>Note</b>: Only users with Administrator permissions can perform this operation.\nFor more details, <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#Reports.htm' target='_blank'>view the Reports section of the REST API Guide</a>.\n","operationId":"resetReportJob","parameters":[{"name":"reportJobId","in":"path","description":"Unique identifier of the report job. Possible values: \n- id\n- name (For example: name=DataExports_Products_Job)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"Report job reset successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/batchJobs/{jobId}":{"get":{"tags":["Transaction"],"summary":"Get Job Queue","description":"Retrieve a job based on its unique identifier.","operationId":"getBatchJobs","parameters":[{"name":"jobId","in":"path","description":"Unique identifier of the batch job. Possible values are: \n  - jobId \n  - name (For example: name=JobName)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Entitlement"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchCommit"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/batchJobs":{"get":{"tags":["Transaction"],"summary":"Search Job Queue","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchBatchJobs","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the Batch Jobs. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the batch job.","schema":{"type":"string"}},{"name":"entityType","in":"query","description":"Name of the entity type.","schema":{"type":"string","enum":["Feature","Product","Suite","Download","Entitlement","Customer","Contact"]}},{"name":"operation","in":"query","description":"Name of the operation.","schema":{"type":"string","enum":["BatchCommit","BatchImport"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search batch jobs.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search batch jobs.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the operation.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Like\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order. Possible values are name, description, jobState, count, entityType, creationDate, lastModifiedDate, totalRecProcessed, and batch jobs. Default: id\n","schema":{"type":"string","enum":["name","description","batch jobs","jobState","count","entityType","creationDate","lastModifiedDate","totalRecProcessed"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in ascending order. Possible values are name, description, jobState, count, entityType, creationDate, lastModifiedDate, totalRecProcessed, and batch jobs. Default: id\n","schema":{"type":"string","enum":["name","description","batch jobs","jobState","count","entityType","creationDate","lastModifiedDate","totalRecProcessed"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the batch job.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Name of the entity.","example":"Entitlement"},"createdBy":{"type":"string","description":"Name of the user who created the batch job.","example":"TestUserName"},"operation":{"type":"string","description":"Name of the operation.","example":"BatchCommit"},"creationDate":{"description":"Creation date of the batch job.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the batch job.","example":"2026-07-07 07:07","type":"string"},"comments":{"description":"Additional remarks related to the requested operation.","example":"comments","type":"string"},"state":{"type":"string","description":"The current state of the batch job.\n- NOT_STARTED: The batch job has not started.\n- IN_PROGRESS: The batch job is being executed.  \n- NOTIFICATION_SEND: A notification email related to the progress of the batch job has been sent. \n- COMPLETED: The batch job has completed. \n- COMPLETED_WITH_ERRORS: The batch job completed with errors in some of the records. For error details, you need to check the resultant file (resultFileLink).\n","example":"IN_PROGRESS","enum":["NOT_STARTED","IN_PROGRESS","NOTIFICATION_SEND","COMPLETED"]},"inputFileLink":{"description":"Path of the input file. \n Note: _downloadInputFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadInputFile","type":"string"},"completionPercentage":{"type":"string","description":"The completion percentage of the batch job.","example":"50"},"resultFileLink":{"description":"Path of the resultant file. The resultFileLink element is available in the output only after the completion of the batch job (that is, if the state is Completed). \n Note: _downloadFile_ is an internal endpoint used by the Sentinel EMS batch jobs. This endpoint is not meant to be used directly in your application.","example":"/ems/api/batchJobs/{jobId}/downloadFile","type":"string"},"count":{"description":"Number of entities to be created in a batch.","type":"integer","example":1},"name":{"type":"string","description":"Name of the batch job.","example":"batchJobTest"},"batchJobs":{"type":"object","properties":{"count":{"type":"integer","example":0},"batchJob":{"type":"array","items":{"type":"object"}}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/licenseSessions":{"get":{"tags":["Activation"],"summary":"Search License Sessions","description":"Retrieve active license sessions that match the given query parameters. A license session is defined as a login-logout call to a feature. \nThe information is obtained only for the following:\n- Entitlements deployed with the Connected license deployment mode. \n- Features with limited concurrency (regardless of the concurrency criteria).\n","operationId":"searchLicenseSessions","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"eId","in":"query","description":"Unique identifier (id) of the entitlement.\n","schema":{"type":"string"}},{"name":"sessionId","in":"query","description":"Unique identifier of the license session.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Unique name of the product. The search pattern will not work on this parameter.","schema":{"type":"string"}},{"name":"productVersion","in":"query","description":"Version of the product.","schema":{"type":"string"}},{"name":"productKey","in":"query","description":"Product Key.","schema":{"type":"string"}},{"name":"featureName","in":"query","description":"Unique identifier of the feature. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"featureVersion","in":"query","description":"Version of the feature.","schema":{"type":"string"}},{"name":"user","in":"query","description":"Name of the user.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nValid values: feature, sessionId, startTime, user, eId, lastRefreshTime\n","schema":{"type":"string","enum":["feature","sessionId","startTime","user","eId","lastRefreshTime"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \nValid values: feature, sessionId, startTime, user, eId, lastRefreshTime\n","schema":{"type":"string","enum":["feature","sessionId","startTime","user","eId","lastRefreshTime"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseSessions":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"licenseSession":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the session.","type":"string"},"user":{"example":"user1","description":"User of the license.","type":"string"},"customer":{"properties":{"identifier":{"type":"string","description":"Unique identifier of the customer. This could be user-defined or auto-generated. Underscore and hyphen characters are allowed. Other special characters and blank spaces are not allowed.","example":"str1234"}},"nullable":true},"eId":{"type":"string","description":"Auto-generated unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000"},"product":{"properties":{"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the product.","example":"productVersion"},"name":{"type":"string","description":"Name of the product.","example":"productName"}},"nullable":true}},"type":"object"},"feature":{"properties":{"nameVersion":{"properties":{"version":{"type":"string","description":"feature Version","example":"Version of the feature."},"name":{"type":"string","description":"Name of the feature.","example":"featureName"}},"nullable":true}},"type":"object"},"startTime":{"description":"Start time of the license session.","type":"string","example":"2018-09-18 06:20:21"},"unitsConsumed":{"type":"integer","example":1,"description":"Number of licenses in use."},"totalUnits":{"type":"integer","example":10,"description":"Total number of provisioned licenses."},"lastRefreshTime":{"description":"The time when the license session was last refreshed.","type":"string","example":"2018-09-18 06:20:21"},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/licenseSessions/{sessionId}":{"delete":{"tags":["Activation"],"summary":"Delete License Session","description":"Release licenses back to the cloud to free up the concurrency.","operationId":"deleteLicenseSession","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"sessionId","in":"path","description":"Unique identifier of the license session.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/devices":{"post":{"tags":["Device"],"summary":"Add Device","description":"Add a new device. \n Device refers to a licensed object provided by an independent device vendor.\n","operationId":"addDevice","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"identifier":{"type":"string","description":"Identifier of the device name.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External ID of the device.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Device Description","type":"string","description":"Description of the device."},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Locking criteria of the device.","example":"DEVICE_FINGER_PRINT"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Locking attribute for the device."},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"Details of the Device to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"Device created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Device"],"summary":"Search Devices","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchDevices","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the Device. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the device.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the device.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Unique external identifier of the device.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the device as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the device as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the device.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the device.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"stage","in":"query","description":"Stage of the device.\n","schema":{"type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]}},{"name":"customerName","in":"query","description":"Name of the customer associated with the device.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Auto-generated unique identifier of the customer. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Identifier of the customer associated with the device.","schema":{"type":"string"}},{"name":"contactEmailId","in":"query","description":"Unique email address of the user associated with the device. \n**Note:** Specify contactEmailId only if the user is an anonymous user.","schema":{"type":"string"}},{"name":"contactExternalId","in":"query","description":"Unique external identifier of the user associated with the device. \n**Note:** Specify contactExternalId only if the user is an anonymous user.","schema":{"type":"string"}},{"name":"contactId","in":"query","description":"Auto-generated unique identifier of the user. You can specify up to 50 values separated by commas. You must provide exact values for a successful search. \n**Note:** Specify contactId only if the user is an anonymous user.","schema":{"type":"string"}},{"name":"enforcementId","in":"query","description":"Unique identifier of the enforcement.","schema":{"type":"string"}},{"name":"enforcementName","in":"query","description":"Name of the enforcement that is used for generating licenses for the device.","schema":{"type":"string"}},{"name":"lockingName","in":"query","description":"Name of the locking criteria for the device.","schema":{"type":"string"}},{"name":"lockingValue","in":"query","description":"Value of the locking criteria.","schema":{"type":"string"}},{"name":"isKeyUnique","in":"query","description":"Specifies if the locking information is unique or not.\nPossible values: true, false\nDefault: false","schema":{"type":"boolean"}},{"name":"deviceNameOrLockingValue","in":"query","description":"Name of the device or the locking value.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search devices.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search devices.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Like\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nValid values: id, name, refId1, refId2, externalId, identifier, state and description, creationDate and lastModifiedDate\n","schema":{"type":"string","enum":["id","name","refId1","refId2","externalId","identifier","state","description"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.\nValid values: id, name, refId1, refId2, externalId, identifier, state and description.\n","schema":{"type":"string","enum":["id","name","refId1","refId2","externalId","identifier","state","description"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation.\n Fields available are: deviceEnforcements, deviceCustomers and deviceContacts.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"devices":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"device":{"items":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/devices/{deviceId}":{"get":{"tags":["Device"],"summary":"Get Device","description":"Retrieve a specific device based on its unique identifier.\n","operationId":"getDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":false},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":false},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Device"],"summary":"Replace Device","description":"Replace an existing device completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- The device name cannot be blank.\n- Duplicate device names can exist across different customers or users.\n- Both device identifier and external ID should be unique.\n- You can change the device details before activation.\n- You cannot change the device enforcement and locking information after activation.\n","operationId":"updateDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"Device details to be replaced."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Device"],"summary":"Update Device","description":"Perform a partial update of the device by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n-  If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- The device name cannot be blank.\n-  Duplicate device names can exist across different customers or users.\n- Both device identifier and external ID should be unique.\n- You can change the device details before activation.\n- You cannot change the device enforcement and locking information after activation.\n","operationId":"partialUpdateDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"Device details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/devices/{deviceId}/claim":{"post":{"tags":["Device"],"summary":"Claim Device","description":"Claim the ownership of a specific device. Only trusted, logged-in users can claim a device with a unique token. A device owner receives all updates related to the device, for example, which activations are done for the device and for whom. Once an owner is defined for the device, the owner can perform further operations on the device.\n","operationId":"claimDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"token","description":"Token is a combination of device GUID and logged-in user's email Id.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"device":{"items":{"properties":{"id":{"type":"string","description":"Unique record identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the device name.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the device.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the device.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the device.","example":"2026-07-07 07:07","type":"string"},"state":{"example":"ENABLE","description":"State of the device. You can perform activations only when the device state is ENABLE and the stage is READY.  \nPossible values: \n - ENABLE: You can generate licenses for the device.\n - DISABLE: You cannot generate licenses for the device.\n - Default: DISABLE","type":"string","enum":["ENABLE","DISABLE"]},"stage":{"example":"READY","description":"Stage of the device. You can perform activations when the device state is ENABLE and the stage is READY. \nPossible values: \nThe device 'stage' depends on the device 'state'.\nWhen the state is ENABLE, there is only one possible value for the stage:\n- READY: You can perform activations for the device.\n\n\nWhen the state is DISABLE, the device stage can be any of the following:\n- NOTREADY: Device is available but not ready for activation.\n- SUSPENDED: Device is temporarily suspended.\n- EOL: Device has reached the end of its life. No more activations are allowed, however the existing licenses on the device can be used. Any REST API operation is not allowed on the device.\n- BLACKLIST: Device is blacklisted. No more activations are allowed and the existing licenses cannot be used. Any REST API operation is not allowed on the device.\n- OFFLINE: Device is not available currently.\n\n\nDefault: The default value of 'stage' depends on the device 'state'. It is NOTREADY for DISABLE and READY for ENABLE.","type":"string","enum":["NOTREADY","READY","SUSPENDED","EOL","BLACKLIST","OFFLINE"]},"refId1":{"example":"refId1","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"refId2":{"example":"refId2","type":"string","description":"Reference identifier of the device as used by external ERP/CRM systems."},"deviceCustomers":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceContacts":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"deviceEnforcements":{"properties":{"deviceEnforcement":{"properties":{"enforcement":{"properties":{"id":{"type":"string","description":"Unique id of the enforcement that is used for generating licenses for the device.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement that is used for generating licenses for the device.","example":"1.5"},"name":{"type":"string","description":"Name of the enforcement that is used for generating licenses for the device.","example":"Sentinel FIT","minimum":3,"maximum":50}},"type":"object"},"lockings":{"properties":{"locking":{"properties":{"isKeyUnique":{"type":"boolean","description":"Whether the locking information is unique or not.  \nPossible values: true, false\n  \nDefault: false","example":true},"isStateful":{"type":"boolean","description":"Whether the locking information stored in a device is stateful (single state) or stateless (multiple states per enforcement).  \nPossible values: true, false\n  \nDefault: false","example":true},"resultantState":{"type":"string","description":"Note: The resultant state is a way of storing a sequence of activations performed for the device. A new resultant state is generated (or updated) with each activation for the device. When you add a new device, the resultant state given in the input is ignored because you cannot create the state; it is generated by the system. The existing resultant state can be used in generating an updated license for the device.","example":"00000000-0000-0000-0000-000000000000"},"lockingAttributes":{"properties":{"lockingAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"type":"string","description":"Value of the locking criteria.","example":"RnRtZgEAAAD0v9XtqonuxxO1PY2HEdQE"},"associatedAttribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Locking value for the device."}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Device-friendly name for the locking information. It is minimum 4 characters and maximum 255 characters long.","example":"TestDevice","minimum":4,"maximum":255},"description":{"example":"Device Description","type":"string","description":"Description of the device."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/devices/{deviceId}/deviceCustomers":{"put":{"tags":["Device"],"summary":"Replace Associated Customer","description":"Associate a new customer to the device or update the already-associated customer details.","operationId":"updateCustomerDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n  - name (For example: name=TestDevice)\n    Note: It should be unique. \n - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Customer details for the device."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Device"],"summary":"Update Associated Customer","description":"Associate a new customer to the device in addition to the existing customers.","operationId":"partialUpdateDeviceCustomers","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deviceCustomer":{"items":{"description":"Details of the customer to be associated with the device definition.","properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Identifier of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"externalId":{"type":"string","description":"External ID of the customer to be associated.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Name of the customer to be associated.","example":"TestCustomer"}},"nullable":true},"state":{"description":"State of the customer indicating whether or not the customer can perform activations for the device.\nPossible values:\n- ENABLE: The customer can perform activations for the device.\n- DISABLE: The customer cannot perform activations for the device. Use when you want to disallow the customer from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Customer details for the device."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Device"],"summary":"Remove Associated Customer","description":"Remove the association between a device and a customer. This is allowed if the device does not have any activations for the customer.","operationId":"deleteCustomerDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n  - name (For example: name=TestDevice)\n    Note: It should be unique.\n - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the customer to be removed from the device.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/devices/{deviceId}/deviceContacts":{"put":{"tags":["Device"],"summary":"Replace Associated User","description":"Associate a new user to the device or update the already-associated User details.","operationId":"updateContactDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n - name (For example: name=TestDevice)\n    Note: It should be unique.\n  - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"User details for the device."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Device"],"summary":"Update Associated user","description":"Associate a new user to the device in addition to the existing user.","operationId":"partialUpdateDeviceContacts","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n  - name (For example: name=TestDevice)\n    Note: It should be unique. \n - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deviceContact":{"items":{"description":"Details of the user you want to associate with the device definition. To associate a user, specify at least one of the following parameters: emailId or externalId. When one or more of these parameters are specified, the priority order is  emailId and externalId.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user. ","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestContact@example.com"},"externalId":{"type":"string","description":"Unique external identifier of the user.","example":"testContactExtId"}},"nullable":true},"state":{"description":"State of the user indicating whether or not the user can perform activations for the device.\nPossible values:\n- ENABLE: The user can perform activations for the device.\n- DISABLE: The user cannot perform activations for the device. Use when you want to disallow the user from doing further activations.\n\n\nDefault: ENABLE","type":"string","example":"ENABLE","enum":["ENABLE","DISABLE"]}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"User details for the device."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Device"],"summary":"Remove Associated User","description":"Remove the association between a device and a user. The following are the conditions:\n- The device must not have any activations for the user.\n- You can disassociate only an independent user using this endpoint. To dissociate a customer user, you need to use the <a href=?Device/deleteCustomerDevice target=_self>Remove Associated Customer</a> endpoint.","operationId":"deleteContactDevice","parameters":[{"name":"deviceId","in":"path","description":"Unique identifier of the device. Possible values are: \n  - id \n  - name (For example: name=TestDevice)\n    Note: It should be unique. \n - identifier (For example: identifier=1)\n  - externalId (For example: externalId=deviceExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"id","description":"ID of the user to be removed from the device.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/notifications":{"get":{"tags":["Configuration"],"summary":"Search Notifications","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchNotifications","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the notification. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the notification.","schema":{"type":"string"}},{"name":"state","in":"query","description":"Whether the notification is enabled or disabled. A notification runs in the Enable state only.\n","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nValid values: name and state.\n","schema":{"type":"string","enum":["name","state","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.\nValid values: name and state.\n","schema":{"type":"string","enum":["name","state","description","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: parameters, recipients, and schedule.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"notifications":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"notification":{"items":{"required":["id","name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the notification.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the notification. Possible values are ENABLE and DISABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"emailSubject":{"type":"string","description":"The subject of the notification email.\nThis is a non-editable parameter.","example":"Notification emailSubject"},"emailTemplateFileName":{"type":"string","description":"Name of the notification email template. You can use only pre-defined templates.","example":"Notification emailTemplateFileName"},"creationDate":{"description":"Creation date of the notification.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the notification.","example":"2026-07-07 07:07","type":"string"},"recipients":{"properties":{"to":{"description":"Specifies that notification emails are sent to all contacts associated with the entitlement.\nThis is a non-editable parameter.","type":"string","example":"Entitlement Contacts"},"cc":{"description":"Email addresses of the CC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"cc@example.com"},"bcc":{"description":"Email addresses of the BCC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"bcc@example.com"}},"nullable":true},"schedule":{"properties":{"occurrence":{"type":"string","description":"The frequency at which the notification runs.\nValid values are Daily, Weekly, and Monthly.","enum":["DAILY","WEEKLY","MONTHLY"],"example":"DAILY"},"time":{"type":"string","example":"06:43 AM","description":"Time, in the hh:mm AM/PM format, when the notification runs."},"dayOfMonth":{"type":"string","description":"Day of the month on which the notification runs.\nYou can enter a value between 1 and 31.","enum":["1","2","3...","31"],"example":"1"},"weekdays":{"type":"string","description":"Schedule the notification to run on specific days.\nYou can specify multiple values using semicolons.","enum":["SUN","MON","TUE","WED","THU","FRI","SAT"],"example":"MON"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the notification.","example":"Notification description"},"parameters":{"properties":{"parameter":{"properties":{"name":{"description":"Name of the notification parameter.","type":"string","example":"TestName"},"value":{"description":"The value of the notification parameter.\nNote: For the Product Upgrade notification, provide the product name in the name:version format.","type":"string","example":"AttributeValue"}},"nullable":true}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"emailTemplate":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/notifications/{notificationId}":{"get":{"tags":["Configuration"],"summary":"Get Notification","description":"Retrieve a specific notification based on its unique identifier.","operationId":"getNotification","parameters":[{"name":"notificationId","in":"path","description":"Unique identifier of the notification. Possible values are: \n  - id \n  - name (For example: name=TestNotification)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"notification":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the notification.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the notification. Possible values are ENABLE and DISABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"emailSubject":{"type":"string","description":"The subject of the notification email.\nThis is a non-editable parameter.","example":"Notification emailSubject"},"emailTemplateFileName":{"type":"string","description":"Name of the notification email template. You can use only pre-defined templates.","example":"Notification emailTemplateFileName"},"creationDate":{"description":"Creation date of the notification.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the notification.","example":"2026-07-07 07:07","type":"string"},"recipients":{"properties":{"to":{"description":"Specifies that notification emails are sent to all contacts associated with the entitlement.\nThis is a non-editable parameter.","type":"string","example":"Entitlement Contacts"},"cc":{"description":"Email addresses of the CC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"cc@example.com"},"bcc":{"description":"Email addresses of the BCC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"bcc@example.com"}},"nullable":true},"schedule":{"properties":{"occurrence":{"type":"string","description":"The frequency at which the notification runs.\nValid values are Daily, Weekly, and Monthly.","enum":["DAILY","WEEKLY","MONTHLY"],"example":"DAILY"},"time":{"type":"string","example":"06:43 AM","description":"Time, in the hh:mm AM/PM format, when the notification runs."},"dayOfMonth":{"type":"string","description":"Day of the month on which the notification runs.\nYou can enter a value between 1 and 31.","example":"1"},"weekdays":{"type":"string","description":"Schedule the notification to run on specific days.\nYou can specify multiple values using semicolons.","example":"MON"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the notification.","example":"Notification description"},"parameters":{"properties":{"parameter":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the notification parameter.","type":"string","example":"TestName"},"value":{"description":"The value of the notification parameter.\nNote: For the Product Upgrade notification, provide the product name in the name:version format.","type":"string","example":"AttributeValue"}}}}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Notification","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateNotification","parameters":[{"name":"notificationId","in":"path","description":"Unique identifier of the notification. Possible values are: \n  - id \n  - name (For example: name=TestNotification)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["notification"],"properties":{"notification":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the notification.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the notification. Possible values are ENABLE and DISABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"emailSubject":{"type":"string","description":"The subject of the notification email.\nThis is a non-editable parameter.","example":"Notification emailSubject"},"emailTemplateFileName":{"type":"string","description":"Name of the notification email template. You can use only pre-defined templates.","example":"Notification emailTemplateFileName"},"creationDate":{"description":"Creation date of the notification.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the notification.","example":"2026-07-07 07:07","type":"string"},"recipients":{"properties":{"to":{"description":"Specifies that notification emails are sent to all contacts associated with the entitlement.\nThis is a non-editable parameter.","type":"string","example":"Entitlement Contacts"},"cc":{"description":"Email addresses of the CC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"cc@example.com"},"bcc":{"description":"Email addresses of the BCC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"bcc@example.com"}},"nullable":true},"schedule":{"properties":{"occurrence":{"type":"string","description":"The frequency at which the notification runs.\nValid values are Daily, Weekly, and Monthly.","enum":["DAILY","WEEKLY","MONTHLY"],"example":"DAILY"},"time":{"type":"string","example":"06:43 AM","description":"Time, in the hh:mm AM/PM format, when the notification runs."},"dayOfMonth":{"type":"string","description":"Day of the month on which the notification runs.\nYou can enter a value between 1 and 31.","enum":["1","2","3...","31"],"example":"1"},"weekdays":{"type":"string","description":"Schedule the notification to run on specific days.\nYou can specify multiple values using semicolons.","enum":["SUN","MON","TUE","WED","THU","FRI","SAT"],"example":"MON"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the notification.","example":"Notification description"},"parameters":{"properties":{"parameter":{"properties":{"name":{"description":"Name of the notification parameter.","type":"string","example":"TestName"},"value":{"description":"The value of the notification parameter.\nNote: For the Product Upgrade notification, provide the product name in the name:version format.","type":"string","example":"AttributeValue"}},"nullable":true}},"nullable":true}},"nullable":true}}}}},"description":"Notification details to be updated. \n  You cannot change the following: emailSubject, emailTemplateFileName, parameter.name, and recipients.to. \n\n Note: The Product Upgrade notification is always enabled, so you cannot change its state to Disable."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"notification":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the notification.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the notification. Possible values are ENABLE and DISABLE.\nDefault: ENABLE\n","type":"string","enum":["ENABLE","DISABLE"]},"emailSubject":{"type":"string","description":"The subject of the notification email.\nThis is a non-editable parameter.","example":"Notification emailSubject"},"emailTemplateFileName":{"type":"string","description":"Name of the notification email template. You can use only pre-defined templates.","example":"Notification emailTemplateFileName"},"creationDate":{"description":"Creation date of the notification.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the notification.","example":"2026-07-07 07:07","type":"string"},"recipients":{"properties":{"to":{"description":"Specifies that notification emails are sent to all contacts associated with the entitlement.\nThis is a non-editable parameter.","type":"string","example":"Entitlement Contacts"},"cc":{"description":"Email addresses of the CC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"cc@example.com"},"bcc":{"description":"Email addresses of the BCC recipients of notification emails. You can specify up to 15 email addresses, separated by semicolons.","type":"string","example":"bcc@example.com"}},"nullable":true},"schedule":{"properties":{"occurrence":{"type":"string","description":"The frequency at which the notification runs.\nValid values are Daily, Weekly, and Monthly.","enum":["DAILY","WEEKLY","MONTHLY"],"example":"DAILY"},"time":{"type":"string","example":"06:43 AM","description":"Time, in the hh:mm AM/PM format, when the notification runs."},"dayOfMonth":{"type":"string","description":"Day of the month on which the notification runs.\nYou can enter a value between 1 and 31.","example":"1"},"weekdays":{"type":"string","description":"Schedule the notification to run on specific days.\nYou can specify multiple values using semicolons.","example":"MON"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the notification.","example":"Notification description"},"parameters":{"properties":{"parameter":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the notification parameter.","type":"string","example":"TestName"},"value":{"description":"The value of the notification parameter.\nNote: For the Product Upgrade notification, provide the product name in the name:version format.","type":"string","example":"AttributeValue"}}}}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/notifications/{notificationId}/runNotification":{"post":{"tags":["Configuration"],"summary":"Run Notification","description":"Run the notification for which the unique ID is provided. \n  You can run a notification only if it is in the enabled state, and cannot be scheduled, for example, the Product Upgrade notification.","operationId":"runNotification","parameters":[{"name":"notificationId","in":"path","description":"Unique identifier of the notification. Possible values are: \n  - id \n  - name (For example: name=TestNotification)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/transactions":{"get":{"tags":["Transaction"],"summary":"Search Transaction History","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchTransactions","parameters":[{"name":"entityType","in":"query","description":"Entity for which the transaction was performed.","schema":{"type":"string","enum":["Activation","Contact","Customer","Device","Entitlement","LicenseGrant","Partner","PartnerUser","Product","ProductConsumerAuthorization","ReportJob","ReportTemplate","User","Fingerprint","Revocation"]}},{"name":"entityIdentifier","in":"query","description":"Unique identifier of the entity. \nGiven below are identifiers for each entity:\n - Activation: aId \n - Contact: emailId \n - Customer: customerName \n - Device: deviceIdentifier \n - Entitlement: eId \n - Partner: partnerName \n - PartnerUser: partnerUserLoginId \n - Product: ' productName productVersion ' (for example: testPrd 1.0) \n - ProductConsumerAuthorization: Id \n - LicenseGrant: Id \n - ReportJob: templateName \n - ReportTemplate: reportName \n - User: userId","schema":{"type":"string"}},{"name":"fromDate","in":"query","description":"Date from when you want to search the transaction history.","schema":{"type":"string"}},{"name":"toDate","in":"query","description":"Date till when you want to search the transaction history.","schema":{"type":"string"}},{"name":"txtSearch","in":"query","description":"Text string to search in the comments recorded for transactions.","schema":{"type":"string"}},{"name":"operatedBy","in":"query","description":"Text string to search in the operated by.","schema":{"type":"string"}},{"name":"executedBy","in":"query","description":"Text string to search in the executed by.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["operationDate","operatedBy","executedBy","operation","entityType","comments"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. Default sorting is on operationDate.","schema":{"type":"string","enum":["operationDate","operatedBy","executedBy","operation","entityType","comments"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"transactions":{"type":"object","properties":{"count":{"description":"Total number of transactions.","type":"integer","example":1},"transaction":{"items":{"required":["id"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the transaction.","example":"00000000-0000-0000-0000-000000000000"},"entityIdentifier":{"example":"00000000-0000-0000-0000-000000000000","description":"Globally unique identifier of the entity for which the transaction was performed.","type":"string"},"operation":{"type":"string","description":"Name of the operation.","example":"Entitlement created"},"entityType":{"type":"string","description":"Entity for which the transaction was performed."},"operatedBy":{"type":"string","description":"Name of the operator.","example":"Admin"},"executedBy":{"type":"string","description":"User who performed the transaction. This is applicable only if the logged-in user is Service Account.","example":"Admin"},"operationDate":{"type":"string","description":"Date of the operation.","example":"2019-12-19 06:43"},"comments":{"type":"string","description":"Additional comments related to the requested operation.","example":"XYZ"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/transactions/{transactionId}/changeLog":{"get":{"tags":["Transaction"],"summary":"Get Transaction Change Log","description":"Retrieve the changes performed on a specific entity based on its unique transaction identifier.","operationId":"getTxnChangelog","parameters":[{"name":"transactionId","in":"path","description":"Unique identifier (id) of the transaction.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entityElement-1":{"type":"string","description":"Describes the change in the property from the old to the new value.","example":"08d61f9e-d2eb-47ae-a9f9-44bfda20d797  updated to   daf99e1d-41eb-416a-bfee-c0bd28c977ea"},"entityElement-2":{"type":"string","description":"Describes the change in the property from the old to the new value.","example":"ABC  updated to   XYZ"},"entityElement-3":{"type":"string","description":"Describes the change in the property from the old to the new value.","example":"OPTIONAL  updated to   MANDATORY"},"entityElement-4":{"type":"string","description":"Describes the change in the property from the old to the new value.","example":"100  updated to   500"},"groupActivation":{"type":"object","nullable":true},"product":{"type":"object","nullable":true},"entitlement":{"type":"object","nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/applicationProperties":{"get":{"tags":["Configuration"],"summary":"Search Application Properties","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchApplicationProperties","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the application property. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"key","in":"query","description":"The key that uniquely identifies the application property. ","schema":{"type":"string"}},{"name":"subGroupName","in":"query","description":"Name of the subgroup to which the application property belongs.","schema":{"type":"string"}},{"name":"enforcementId","in":"query","description":"Unique identifier of the enforcement.","schema":{"type":"string"}},{"name":"enforcementName","in":"query","description":"Name of the enforcement.","schema":{"type":"string"}},{"name":"enforcementVersion","in":"query","description":"Version of the enforcement.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name to sort results in ascending order. Possible values are id and key.","schema":{"type":"string","enum":["id","key"]}},{"name":"sortByDesc","in":"query","description":"Column name to sort results in descending order. Possible values are id and key.","schema":{"type":"string","enum":["id","key"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"applicationProperties":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"applicationProperty":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING"},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/applicationProperties/{id}":{"get":{"tags":["Configuration"],"summary":"Get Application Property","description":"Retrieve a specific application property based on its unique identifier.\n","operationId":"getApplicationProperty","parameters":[{"name":"id","in":"path","description":"Unique identifier of the application property. Possible values are:  \n - id \n - key (For example: key=TestKey)","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"applicationProperty":{"type":"object","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING"},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Application Property","description":"Update an existing application property completely.  \n- If a parameter is not provided, the existing value will be replaced by blank or default. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"updateApplicationProperty","parameters":[{"name":"id","in":"path","description":"Unique identifier of the application property. Possible values are:  \n - id \n - key (For example: key=TestKey)","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"applicationProperty":{"type":"object","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","PASSWORD","SELECT","EMAIL","FILE"]},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"type":"object"},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"}}}}}}},"description":"Application Property details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"applicationProperty":{"type":"object","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING"},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/applicationProperties/bulk":{"patch":{"tags":["Configuration"],"summary":"Bulk Update Application Properties","description":"Perform partial updates of many application properties in one bulk operation, by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank or its default value. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"bulkPartialUpdateApplicationProperties","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"applicationProperty":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","PASSWORD","SELECT","EMAIL","FILE"]},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"type":"object"},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Application Properties details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"applicationProperty":{"items":{"required":["id","key"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the application property."},"key":{"type":"string","description":"The key that uniquely identifies the application property.","example":"TestKey"},"dataType":{"type":"string","description":"Data type of the application property.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","PASSWORD","SELECT","EMAIL","FILE"]},"value":{"type":"string","description":"Value of the application property.","example":"TestValue"},"regEx":{"type":"string","description":"Valid value of the application property in the form of a regular expression.","example":"TestValue"},"groupName":{"description":"Name of the group to which the application property belongs.","type":"string","example":"LOCKING"},"subGroupName":{"description":"Name of the subgroup to which the application property belongs.","type":"string","example":"CLOUD_SUBGROUP"},"enforcement":{"properties":{"id":{"type":"string","description":"ID of the enforcement.","example":"00000000-0000-0000-0000-000000000000"},"nameVersion":{"properties":{"version":{"type":"string","description":"Version of the enforcement.","example":"enforcementVersion"},"name":{"type":"string","description":"Name of the enforcement.","example":"enforcementName"}},"nullable":true}},"type":"object"},"name":{"type":"string","description":"Name of the application property. For application property details, refer to the Administration Console section in the Sentinel EMS User Guide.","example":"TestProperty"},"description":{"example":"Application property description","description":"Description of the application property.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/applicationProperties/testSMTP":{"post":{"tags":["Configuration"],"summary":"Test SMTP","description":"Use for the following:\n - To verify whether the provided SMTP server details are correct.\n - To send a test email to the specified email address. This works only if the SMTP details are provided and are valid.\n","operationId":"testSMTP","requestBody":{"content":{"application/json":{"schema":{"properties":{"host":{"type":"string","example":"xx.xxx.xx.xx","description":"IP address or fully-qualified hostname of the SMTP server."},"port":{"type":"string","example":"xxxx","description":"Port of the SMTP server."},"authenticate":{"type":"boolean","example":false,"description":"Whether to enable or disable SMTP authentication.\n Default: false"},"user":{"type":"string","example":"User Name","description":"User name for the SMTP server."},"password":{"type":"string","example":"password","description":"Password for the SMTP server."},"enableTLS":{"type":"boolean","example":false,"description":"Whether to use the Transport Layer Security (TLS) protocol to test the SMTP connection.\n Default: false"},"senderEmail":{"type":"string","example":"abc@abc.com","description":"Email address of the sender."},"senderName":{"type":"string","example":"Sender Name","description":"Name of the sender."},"recipientEmail":{"type":"string","example":"abc1@abc.com","description":"Email address of the recipient of the test email"},"subject":{"type":"string","example":"Test mail","description":"The subject of the test email."},"message":{"type":"string","example":"The message contained in the test email.","description":"The message contained in the test email."}},"type":"object"}}},"description":"Application Property details to be updated."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/clConfiguration":{"get":{"tags":["Configuration"],"summary":"Get Cloud Licensing Permissions","description":"\n **Note:** This endpoint is applicable only to Sentinel LDK CL. \n Retrieves the default configurations for customer Cloud Licensing permissions.","operationId":"getCloudLicensingConfigurations","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","required":["numberOfDays"],"properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"required":["isAllowed"],"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Cloud Licensing Permissions","description":"\n **Note:** This endpoint is applicable only to Sentinel LDK CL. \n Partially updates the default configuration of a customer's Cloud Licensing permissions by setting the values of the parameters provided. \n - Any parameters not provided will be left unchanged. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n - If the request body includes the parameter 'waitingPeriodOfRegisteredMachine', the nested 'numberOfDays' must be provided. Setting the value as 0 will automatically set the nested 'allowImmediateReuse' to true, and a positive value will set the 'allowImmediateReuse' to false. \n - If the request body includes the parameter 'licenseDetaching', the nested 'isAllowed' must be provided. Setting the value as false will automatically set the nested 'allowConcurrency' to false too. \n","operationId":"updateCloudLicensingConfigurations","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true}},"nullable":true}},"type":"object"}}},"description":"The customer permissions details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","required":["numberOfDays"],"properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"required":["isAllowed"],"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/clConfiguration/customerConfiguration/{customerId}":{"get":{"tags":["Customer"],"summary":"Get Cloud Licensing Permissions","description":"\n **Note:** The API is only applicable for Sentinel LDK enforcement for LDK Cloud Licensing. \n Retrieves the cloud licensing permissions of a specific customer based on its unique identifier.","operationId":"getCustomerConfigurations","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer for which configuration will be retrieved.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","required":["numberOfDays"],"properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"required":["isAllowed"],"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update Cloud Licensing Permissions","description":"\n **Note:** The API is only applicable for Sentinel LDK enforcement for LDK Cloud Licensing. \n Partially updates the default configuration of a customer's cloud licensing permissions by setting the values of the parameters provided. \n - Any parameters not provided will be left unchanged. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n - If the request body includes the parameter 'waitingPeriodOfRegisteredMachine', the nested 'numberOfDays' must be provided. Setting the value as 0 will automatically set the nested 'allowImmediateReuse' to true, and a positive value will set the 'allowImmediateReuse' to false. \n - If the request body includes the parameter 'licenseDetaching', the nested 'isAllowed' must be provided. Setting the value as false will automatically set the nested 'allowConcurrency' to false too. \n","operationId":"updateCustomerConfigurations","parameters":[{"name":"customerId","in":"path","description":"Unique identifier of the customer for which configuration will be updated.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true}},"nullable":true}},"type":"object","required":["customerId"]}}},"description":"The customer permissions details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string","description":"Unique identifier of the customer.","example":"00000000-0000-0000-0000-000000000000"},"customerPermissions":{"properties":{"maxNumOfAccounts":{"type":"string","description":"The maximum number of accounts for each customer. \n Possible values:\n - Unlimited \n - Number of network seats \n Default: Unlimited","example":"Unlimited","enum":["Unlimited","Number of Network Seats"]},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"waitingPeriodOfRegisteredMachine":{"description":"The number of days to wait before changing the status of a machine that was disabled or deleted. \n Possible values:0-30 \n Default: 7","required":["numberOfDays"],"properties":{"numberOfDays":{"type":"integer","description":"The number of days to wait before changing the status of a machine that was disabled or deleted. Set to 0 to prevent a waiting period and allow immediate reuse. \n Possible values:0-30 \n Default: 7","example":7},"allowImmediateReuse":{"type":"boolean","description":"Allow immediate reuse by preventing a waiting period. \n Possible values:\n - true \n - false","example":false}},"nullable":true},"licenseDetaching":{"required":["isAllowed"],"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":false}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customReports":{"post":{"tags":["Report"],"summary":"Add Custom Report","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. \n Add a new custom report. \n If the standard reports included with Sentinel EMS do not provide exactly what your users need, you can define custom reports according to your requirements. To create custom reports, you must be familiar with the Sentinel EMS data model.\n To run custom reports, use the Generate Report endpoint.\n","operationId":"addCustomReport","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customReport"],"properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the custom report.","example":"TestCustomReport"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":true},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"Details of the custom report to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"Custom Report created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Report"],"summary":"Search Custom Reports","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. \n Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomReports","parameters":[{"name":"id","in":"query","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. \\n Auto-generated unique identifier of the custom Report. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the custom report.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"outputType","in":"query","description":"Output format of the custom report. Valid value is CSV/PlainXML.","schema":{"type":"string","enum":["CSV/PlainXML"]}},{"name":"description","in":"query","description":"Description of the custom report.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search custom reports.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search custom reports.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. Possible values are name, state, description, and viewFormat.","schema":{"type":"string","enum":["name","state","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. Possible values are name, state, description, and viewFormat.","schema":{"type":"string","enum":["name","state","description","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: Parameters.\n","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customReports":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"customReport":{"items":{"required":["name","query"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customReports/{customReportId}":{"get":{"tags":["Report"],"summary":"Get Custom Report","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. Retrieve a custom report based on its unique identifier.","operationId":"getCustomReport","parameters":[{"name":"customReportId","in":"path","description":"Unique identifier of the custom report. Possible values are: \n  - id \n  - name (For example: name=TestReport)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Report"],"summary":"Replace Custom Report","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. \n Update an existing custom report completely. \n -  If a parameter is not provided, the existing value will be replaced by blank or default. \n -   If a parameter is set to blank, the existing value will be replaced with blank.\n -  If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"replaceCustomReport","parameters":[{"name":"customReportId","in":"path","description":"Unique identifier of the custom report. Possible values are: \n  - id \n  - name (For example: name=TestReport)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customReport"],"properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"Details of the Custom Report to be added."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Report"],"summary":"Update Custom Report","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. \n Perform a partial update of the custom report by setting the values of the parameters provided.\n - Any parameters not provided will be left unchanged.\n - If a parameter is set to blank, the existing value will be replaced with blank.\n - If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"updateCustomReport","parameters":[{"name":"customReportId","in":"path","description":"Unique identifier of the custom report. Possible values are: \n  - id \n  - name (For example: name=TestReport)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customReport"],"properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}}}}},"description":"Details of the Custom Report to be added."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customReport":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the custom report.","example":"00000000-0000-0000-0000-000000000000"},"outputType":{"type":"string","description":"Output format of the custom report. Valid value is CSV/PlainXML.","example":"CSV / PlainXML"},"state":{"example":"ENABLE","description":"State of the custom report. Valid values are Enable and Disable.A report can be executed in the enabled state only.Default: ENABLE","type":"string","enum":["ENABLE","DISABLE"]},"query":{"type":"string","description":"SQL query to generate report.","example":"select PrdId as ProductId, PrdName as ProductName from t_prd  where prdId=@productId limit @PageNo,@PageSize"},"creationDate":{"description":"Creation date of the custom report.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom report.","example":"2026-07-07 07:07","type":"string"},"paginationRequired":{"type":"string","description":"Whether to enable or disable pagination. When set to true, records are displayed across multiple pages. When set to false, records are displayed on a single page.","example":"true"},"recordsPerPage":{"type":"string","description":"Number of records to be displayed per page.","example":"5"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Addition information about the custom report.","example":"description"},"parameters":{"properties":{"parameter":{"items":{"properties":{"name":{"type":"string","description":"Name of the report parameter.","example":"productId"},"optional":{"type":"string","description":"Whether the parameter is mandatory or optional.","example":"false"},"dataType":{"type":"string","description":"Data type of the parameter. Possible values are string, number, date, and lookup. ","enum":["LOOKUP","NUMBER","DATE","STRING"]},"lookupQuery":{"type":"string","description":"Query to add lookup fields in the custom report so user can add auto-complete fields to the custom report.","example":"select PrdId as Id, PrdName as Value from t_prd"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","query"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Report"],"summary":"Delete Custom Report","description":"<b>Note:</b> Custom Reports are not available via self-service but can be made available through an engagement with Thales Professional Services who have excellent knowledge of internal workings of the platform. Delete a custom report.","operationId":"deleteCustomReport","parameters":[{"name":"customReportId","in":"path","description":"Unique identifier of the custom report. Possible values are: \n  - id \n  - name (For example: name=TestReport)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks":{"post":{"tags":["Configuration"],"summary":"Add Webhook","description":"**Note:** Webhooks is a Sentinel EMS add-on feature available with an active webhooks subscription plan.<br/>\nCreate a new webhook subscription for a Sentinel EMS event.\nSentinel EMS uses webhooks to deliver event notifications to a configured callout URL, including data about the previous and current state of the affected entity. You can use this data to implement custom logic or analytics in your application. For details about the event data, that is included in an event notification, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.\n","operationId":"addWebhook","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"webhook":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"}}}},"type":"object"}}},"description":"Details of the webhook to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}},"type":"object"}}},"description":"<i>Created</i> \nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Webhooks","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchWebhook","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the webhook. You can specify values separated by commas.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the webhook.","schema":{"type":"string"}},{"name":"eventName","in":"query","description":"Name of the event associated with webhook.","schema":{"type":"string"}},{"name":"activity","in":"query","description":"Activity name to search for (comma-separated, maximum 50). Webhooks configured for any specified activity are returned. If not specified, webhooks for all activities are returned.","schema":{"type":"string"}},{"name":"calloutURL","in":"query","description":"The client URL to which the webhook sends the event data.","schema":{"type":"string"}},{"name":"eventId","in":"query","description":"Unique identifier of the event that the webhook monitors.","schema":{"type":"string"}},{"name":"entityName","in":"query","description":"Name of the entity for which the event occurred.","schema":{"type":"string"}},{"name":"authProfileId","in":"query","description":"Unique identifier of the authentication profile. You can specify values separated by commas.","schema":{"type":"string"}},{"name":"authProfileName","in":"query","description":"Name of the authentication profile associated with the webhook.","schema":{"type":"string"}},{"name":"acceptDataType","in":"query","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status  of the webhook.","schema":{"type":"string","enum":["ENABLE","DISABLE"]}},{"name":"triggerCondition","in":"query","description":"Specifies the triggering condition for webhook.\n \n <b>Note:</b> \n- Use the triggerCondition parameter only for events: Entitlement Added, Entitlement Updated, Activation Added or Activation Updated.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search webhooks.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search webhooks.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the webhook.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","eventName","status","creationDate","authProfileName"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","eventName","status","creationDate","authProfileName"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"},"webhooks":{"type":"object","properties":{"count":{"type":"integer","example":0},"webhook":{"type":"array","items":{"type":"object"}}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks/{id}":{"get":{"tags":["Configuration"],"summary":"Get Webhook","description":"Retrieve a specific webhook based on its unique identifier or name.","operationId":"getWebhook","parameters":[{"name":"id","in":"path","description":"Unique identifier of the webhook. Possible values are: \n - id \n - name (For example: name=TestWebhook)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Webhook","description":"**Note:** Webhooks is a Sentinel EMS add-on feature and available when you purchase a webhooks subscription plan.\nUpdate an existing webhook completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateWebhook","parameters":[{"name":"id","in":"path","description":"Unique identifier of the webhook. Possible values are: \n - id \n - name (For example: name=TestWebhook)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"webhook":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}}}}}}},"description":"Webhook details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Webhook","description":"Perform a partial update of the specific webhook by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateWebhook","parameters":[{"name":"id","in":"path","description":"Unique identifier of the webhook. Possible values are: \n - id \n - name (For example: name=TestWebhook)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"webhook":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}}}}}}},"description":"Webhook details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. \n For a complete list of event names, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.","example":"Entitlement Added"},"activities":{"description":"Nested collection of activities.","properties":{"activity":{"maxItems":50,"description":"Specify one or more comma-separated activities (maximum 50). The webhook is triggered when any specified activity occurs. If not specified, the webhook is triggered for all activities supported by the event. For the list of supported activities, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm' target='_blank'>Sentinel EMS User Guide</a>.</br> example: ['Add Entitlement', 'Bulk Entitlement Upload']","items":{"type":"string"},"example":["Add Entitlement","Bulk Entitlement Upload"],"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"calloutURL":{"type":"string","description":"The client URL to which the webhook sends the event data in the form of a JSON payload.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver data to the configured URL.","example":"POST"},"authProfile":{"description":"Details of the authentication profile associated with the webhook.\n **Note:** If both Id and name of the authentication profile are specified, Id takes priority over the name.","properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the authentication profile associated with the webhook."},"name":{"type":"string","description":"Name of the authentication profile associated with the webhook.","example":"authProfileName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"acceptDataType":{"type":"string","description":"Set to application/json. Indicates that the webhook's request body format is JSON.","example":"application/json"},"status":{"type":"string","description":"Whether the webhook is enabled or not. Only an enabled webhook posts the event data to the client URL. \n Possible values: ENABLE, DISABLE \nDefault: ENABLE ","example":"ENABLE"},"triggerCondition":{"type":"string","description":"Specifies the JEXL expression that defines the trigger condition for the webhook. If no condition is specified, the webhook is triggered for every event. \nYou can define a trigger condition only for the following events: Entitlement Added, Entitlement Updated, Activation Added, and Activation Updated. \nSpecify a valid JEXL expression with the following supported operators:\n\n- <u>Comparison: `==` (equal to), `!=` (not equal to)</u>: Use comparison operators to compare values in a condition. For example:\n  - `entitlement.state == 'ENABLE'`\n    The condition evaluates true only if the entitlement's state is 'ENABLE'.\n  - `entitlement.state != 'CLOSE'`\n    The condition evaluates true when the entitlement's state is not 'CLOSE'.\n\n\n- <u>Logical: `&&` (AND), `||` (OR)</u>: Use logical operators to combine multiple subconditions and create complex conditional expressions. For example:\n  - `(entitlement.state == 'ENABLE') && (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if both subconditions are true: the entitlement's state is 'ENABLE' and the customer's name is 'TestCustomer'.\n  - `(entitlement.state == 'ENABLE') || (entitlement.customer.name == 'TestCustomer')`\n    The condition evaluates true only if either subcondition is true: the entitlement's state is 'ENABLE' or the customer's name is 'TestCustomer'.\n\n\n- <u>Grouping: parentheses `()`</u>:  Use parentheses to group subconditions and control the evaluation order in JEXL expressions. For example: ((entitlement.customer.name == 'TestCustomer' && entitlement.state == 'ENABLE') || entitlement.contact.externalId == 'UserExternalId')\n This condition evaluates true if either of the following is true. Because of the parentheses, the && part is grouped and evaluated first:\n  - Both subconditions inside the parentheses are true, the customer's name is 'TestCustomer' and the entitlement's state is 'ENABLE', or \n  - The contact’s externalId equals 'UserExternalId'.\n\n\n- <u>JSON Path Navigation Operators</u>: Use the following supported JSON path operators to traverse the Entitlement/Activation JSON structures:\n  - <u>.(dot)</u>: For example: \n`entitlement.customer.name == 'TestCustomer'`\nThe condition evaluates true only when the customer’s name exactly matches 'TestCustomer'.\n  - <u>[&#42;](array wildcard)</u>: For example: entitlement.productKeys<wbr>.productKey[&#42;].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if at least one product’s ‘nameVersion.name’ within ‘entitlement.productKeys<wbr>.productKey’ matches 'TestProduct'.\n  - <u>[index](indexed array access)</u>: For example: entitlement.productKeys<wbr>.productKey[1].item.<wbr>itemProduct.product.nameVersion.name == 'TestProduct'\nThe condition evaluates true if the second product’s nameVersion.name within entitlement.productKeys<wbr>.productKey matches 'TestProduct'.\n\n\n- <u>Single Quotes</u>: Use single quotes ('string literals') when specifying values in your conditions. For example:\n`entitlement.state == 'ENABLE'`\nThe condition evaluates true when the entitlement's state is 'ENABLE'.\n\nNote:\n- If a trigger condition is defined through the Sentinel EMS REST API and includes symbols other than [&#42;], it can be updated only through the API, not through the Sentinel EMS vendor portal.","example":"entitlement.customer.name == 'TestCustomer'"},"includeData":{"type":"boolean","description":"Whether to include previous and current states of the entity (for which the event is triggered) in the JSON payload sent to the client URL.\n Possible values: true, false \n Default: true","example":true},"maxRetrial":{"type":"integer","description":"The number of times a webhook attempts to deliver the event data to the client URL. After that, the webhook delivery is marked as failed. To get details of failed events, use the <a href=?Configuration/searchFailedEvent target=_self>Search Failed Events</a>  or <a href=?Configuration/getFailedEvent target=_self>Get Failed Event</a>  endpoint.","example":3},"creationDate":{"description":"Creation date of the webhook.","example":"2019-12-19 06:43","type":"string"},"lastModifiedDate":{"description":"Last modified date of the webhook.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"name"},"description":{"type":"string","description":"Description of the webhook.","example":"webhook"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Webhook","operationId":"deleteWebhook","description":"Delete the given webhook.","parameters":[{"name":"id","in":"path","description":"Unique identifier of the webhook. Possible values are: \n - id \n - name (For example: name=TestWebhook)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/authProfiles":{"post":{"tags":["Configuration"],"summary":"Add Authentication Profile","description":"Add a new basic or OAuth authentication profile that is required for calling out external application end points. Authentication profiles are used to authenticate to the external applications called out by webhooks or other services.","operationId":"addAuthProfile","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}},{"in":"query","name":"validateEndpoint","description":"Whether or not to validate the credentials provided while creating an authentication profile. When set to true, the authentication profile credentials are validated using the **validationURL** for basic authentication and **accessTokenURL** for OAuth. It is recommended to set validateEndpoint to true for validating profiles. \nDefault: false\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["authProfile"],"properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Unique name to identify the authentication profile.","example":"name"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"}},"nullable":true}}}}},"description":"Details of the authentication profile you want to add."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Authentication Profiles","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchAuthProfile","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the authentication profile. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name or key that uniquely identifies the authentication profile.","schema":{"type":"string"}},{"name":"authenticationType","in":"query","description":"Type of the authentication profile.<br/> Valid values: BasicAuth, OAuth","schema":{"type":"string"}},{"name":"userName","in":"query","description":"Name of the basic authentication profile.","schema":{"type":"string"}},{"name":"clientId","in":"query","description":"OAuth client ID of the authentication profile.","schema":{"type":"string"}},{"name":"accessTokenUrl","in":"query","description":"The URL from which an OAuth access token is requested.","schema":{"type":"string"}},{"name":"validationUrl","in":"query","description":"The URL using which credentials of a basic authentication profile are validated.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search authentication profiles.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search authentication profiles.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","authenticationType","creationDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","authenticationType","creationDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"authProfiles":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"authprofile":{"items":{"required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/authProfiles/{id}":{"get":{"tags":["Configuration"],"summary":"Get Authentication Profile","description":"Retrieve a specific authentication profile based on its unique identifier.","operationId":"getProfileId","parameters":[{"name":"id","in":"path","description":"Unique identifier of the authentication profile. Possible values:  \n - id \n - name (For example: name=TestAuthProfile)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Authentication Profile","description":"Update an existing authentication profile completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateAuthProfile","parameters":[{"name":"id","in":"path","description":"Unique identifier of the authentication profile. Possible values:  \n - id \n - name (For example: name=TestAuthProfile)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}},{"in":"query","name":"validateEndpoint","description":"Whether or not to validate the credentials provided while creating an authentication profile. When set to true, the authentication profile credentials are validated using the **validationURL** for basic authentication and **accessTokenURL** for OAuth. It is recommended to set validateEndpoint to true for validating profiles. \nDefault: false\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["authProfile"],"properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}}}}}}},"description":"Authentication profile details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Authentication Profile","description":"Perform a partial update of the specific authentication profile by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateAuthProfile","parameters":[{"name":"id","in":"path","description":"Unique identifier of the authentication profile. Possible values:  \n - id \n - name (For example: name=TestAuthProfile)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}},{"in":"query","name":"validateEndpoint","description":"Whether or not to validate the credentials provided while creating an authentication profile. When set to true, the authentication profile credentials are validated using the **validationURL** for basic authentication and **accessTokenURL** for OAuth. It is recommended to set validateEndpoint to true for validating profiles. \nDefault: false\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["authProfile"],"properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}}}}}}},"description":"Authentication profile details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"authProfile":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the authentication profile.","example":"00000000-0000-0000-0000-000000000000"},"authenticationType":{"type":"string","description":"Type of the authentication profile. Its value is case-sensitive. You cannot change the authentication type once the profile is created.\n Valid values: BasicAuth, OAuth \n Default: BasicAuth","example":"BasicAuth"},"BasicAuth":{"description":"Details of the basic authentication profile.","properties":{"userName":{"type":"string","description":"The username to be used for authentication.","example":"admin"},"password":{"type":"string","description":"The password to be used for authentication.","example":"Ems@12345"},"validationUrl":{"type":"string","description":" The client URL to validate the authentication profile settings. If validateEndpoint is true, a request is sent to this URL with the given credentials to validate the profile.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"OAuth":{"description":"Details of the OAuth profile. It includes information that is used to request an authentication token from the client. Note that OAuth uses the client credentials grant type.","properties":{"clientId":{"type":"string","description":"OAuth client ID that is the public identifier of an application or service.","example":"admin"},"scope":{"type":"string","description":"Access permissions of an authentication profile.","example":"XXXXXXX"},"clientSecret":{"type":"string","description":"OAuth client secret that is confidential to the application and the authorization server.","example":"XXXXXXX"},"accessTokenUrl":{"type":"string","description":"URL of the authorization server that issues the token using client ID and client secret. If validateEndpoint is true, a request is sent to this URL with the given credentials.","example":"http://ems.com/api/v5/entitlements"}},"nullable":true},"creationDate":{"description":"Creation date of the authentication profile.'","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Date when the authentication profile was last modified.","example":"2026-07-07 07:07","type":"string"},"deployed":{"description":"Whether the authentication profile is associated with a webhook.","example":false,"type":"boolean"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Authentication Profile","operationId":"deleteAuthProfile","description":"Delete an authentication profile that is not associated with any webhook.","parameters":[{"name":"id","in":"path","description":"Unique identifier of the authentication profile. Possible values:  \n - id \n - name (For example: name=TestAuthProfile)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks/events":{"get":{"tags":["Configuration"],"summary":"Search Events","description":"Retrieve a list of webhook events that were previously processed by Sentinel EMS, based on the specified filters. You can search for failed events, successful events, or both — within a given date range, for a particular webhook, or for a specific event.\n","operationId":"searchEvents","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the webhook event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookId","in":"query","description":"Auto-generated unique identifier of the webhook. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookName","in":"query","description":"Unique name of the webhook.","schema":{"type":"string"}},{"name":"eventId","in":"query","description":"Unique identifier of the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"eventName","in":"query","description":"Name of the event for which the webhook is delivered.","schema":{"type":"string"}},{"name":"activityName","in":"query","description":"Name of the activity associated with the webhook event. Specify one or more comma-separated activities (maximum 50).","schema":{"type":"string"}},{"name":"entityId","in":"query","description":"Unique identifier of the entity associated with the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"requestId","in":"query","description":"Unique identifier of the HTTP request. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"state","in":"query","description":"Delivery status of the webhook event. Possible values:<ul> <li> <b>SUCCESSFUL</b>: Return events that were successfully delivered to the target endpoint.</li><li> <b>FAILED</b>: Return events where the webhook delivery attempt failed, for example, due to timeout, server error, or connectivity issues.</li><li> <b>IN_PROGRESS</b>: Return events for which the webhook delivery is in progress.</li> </ul>","schema":{"type":"string","enum":["SUCCESSFUL","FAILED","IN_PROGRESS"]}},{"name":"creationDateFrom","in":"query","description":"Start of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["eventName","entityType","webhookName","httpMethod","eventDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["eventName","entityType","webhookName","httpMethod","eventDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"events":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"event":{"items":{"properties":{"id":{"type":"string","description":"Unique failed event ID obtained using the Search Failed Events endpoint.","example":"00000000-0000-0000-0000-000000000000"},"webhookId":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"webhookName":{"type":"string","description":"Name that uniquely identifies the webhook subscription.","example":"Product Added Subscription"},"eventId":{"type":"string","description":"Unique identifier of the event as generated by Sentinel EMS.","example":"00000000-0000-0000-0000-000000000000"},"entityId":{"type":"string","description":"Unique identifier of the entity.","example":"00000000-0000-0000-0000-000000000000"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. For a complete list of event names, refer to <a href=\"https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Sentinel EMS User Guide</a>.","example":"Product Added"},"activityName":{"type":"string","description":"Name of the activity associated with the webhook event. Specify one or more comma-separated activities (maximum 50).","example":"Add Draft Entitlement"},"entityType":{"type":"string","description":"Unique name of the entity for which the event occurred.","example":"Product"},"requestId":{"type":"string","description":"Unique identifier of the HTTP request that is sent to Sentinel EMS and from Sentinel EMS to other services, enabling them to correlate requests and responses.","example":"00000000-0000-0000-0000-000000000000"},"requestURL":{"type":"string","description":"URL of the Sentinel EMS endpoint that is called for CRUD operations.","example":"http://localhost:8080/ems/api/v5/products"},"calloutURL":{"type":"string","description":"URL of the application or service to which the webhook delivers the event data.","example":"localhost:8080"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver event data.","example":"POST"},"eventDate":{"description":"Date and time when the event occurred.","example":"2026-07-07 07:07","type":"string"},"state":{"type":"string","description":"Delivery status of the webhook event. Possible values:<ul> <li> <b>SUCCESSFUL</b>: Return events that were successfully delivered to the target endpoint.</li><li> <b>FAILED</b>: Return events where the webhook delivery attempt failed, for example, due to timeout, server error, or connectivity issues.</li><li> <b>IN_PROGRESS</b>: Return events for which the webhook delivery is in progress.</li> </ul>  ","example":"FAILED"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks/events/{id}":{"get":{"tags":["Configuration"],"summary":"Get Event","description":"Retrieve a specific event using its unique identifier.","operationId":"getEvent","parameters":[{"name":"id","in":"path","description":"Auto-generated unique identifier of the webhook event. You can specify up to 50 values separated by commas.  \n - id\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique failed event ID obtained using the Search Failed Events endpoint.","example":"00000000-0000-0000-0000-000000000000"},"webhookId":{"type":"string","description":"Auto-generated unique identifier of the webhook.","example":"00000000-0000-0000-0000-000000000000"},"webhookName":{"type":"string","description":"Unique name of the webhook.","example":"name"},"eventId":{"type":"string","description":"Unique identifier of the event as generated by Sentinel EMS.","example":"00000000-0000-0000-0000-000000000000"},"activityName":{"type":"string","description":"Name of the activity associated with the webhook event. Specify one or more comma-separated activities (maximum 50).","example":"Add Draft Entitlement"},"eventName":{"type":"string","description":"Name of the event associated with the webhook. The event name is case-sensitive. For a complete list of event names, refer to <a href=\"https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/webhooks.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Sentinel EMS User Guide</a>.","example":"Namespace Updated"},"entityId":{"type":"string","description":"Unique identifier of the entity.","example":"00000000-0000-0000-0000-000000000000"},"entityType":{"type":"string","description":"Unique name of the entity for which the event occurred.","example":"Namespace"},"requestId":{"type":"string","description":"Add a space before starting the last line and update it to: You can specify up to 50 values separated by commas.","example":"00000000-0000-0000-0000-000000000000"},"requestURL":{"type":"string","description":"URL of the Sentinel EMS endpoint that is called for CRUD operations.","example":"localhost:8080"},"calloutURL":{"type":"string","description":"URL of the application or service to which the webhook delivers the event data.","example":"localhost:8080"},"calloutHTTPCode":{"type":"string","description":"The HTTP response status code received from the callout URL when the webhook was delivered. It helps diagnose whether the webhook was successfully received or if there was an error","example":"502"},"httpMethod":{"type":"string","description":"Set to POST. Indicates that the webhook uses the HTTP POST method to deliver event data.","example":"PUT"},"eventDate":{"description":"Date and time when the event occurred.","example":"2026-07-07 07:07","type":"string"},"previousState":{"type":"string","description":"JSON data indicating the state of the entity before the event.","example":"{\"namespace\":{\"id\":\"df379acd-c5ff-4668-b0c4-436db7b12e01\",\"creationDate\":\"2022-03-13 16:09\",\"lastModifiedDate\":\"\",\"name\":\"Namespace5\",\"description\":\"1116\",\"state\":\"DRAFT\",\"refId1\":\"125\",\"refId2\":\"116\"}}"},"currentState":{"type":"string","description":"JSON data indicating the state of the entity after the event.","example":"{\"namespace\":{\"id\":\"df379acd-c5ff-4668-b0c4-436db7b12e01\",\"creationDate\":\"2022-03-13 16:09\",\"lastModifiedDate\":\"\",\"name\":\"Namespace5\",\"description\":\"1116\",\"state\":\"DRAFT\",\"refId1\":\"125\",\"refId2\":\"116\"}}"},"state":{"type":"string","description":"Delivery status of the webhook event. Possible values:<ul> <li> <b>SUCCESSFUL</b>: Return events that were successfully delivered to the target endpoint.</li><li> <b>FAILED</b>: Return events where the webhook delivery attempt failed, for example, due to timeout, server error, or connectivity issues.</li><li> <b>IN_PROGRESS</b>: Return events for which the webhook delivery is in progress.</li> </ul>","example":"FAILED"},"comment":{"type":"string","description":"Additional remarks related to the operation as stored in the Transaction History.","example":"comment"}},"type":"object"}}}},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks/events/retry":{"post":{"tags":["Configuration"],"summary":"Retry Events","description":"Enable Sentinel EMS to re-attempt delivery of previous webhook events, whether they were delivered successfully, failed, or both, based on the specified filter criteria. This is useful in cases where event receivers need to reprocess data due to network issues or integration errors, regardless of the original webhook delivery status. You can choose to retry specific events, events within a given date range, or events associated with a particular webhook.","operationId":"retryEvents","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the webhook event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookId","in":"query","description":"Auto-generated unique identifier of the webhook. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookName","in":"query","description":"Unique name of the webhook.","schema":{"type":"string"}},{"name":"eventId","in":"query","description":"Unique identifier of the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"eventName","in":"query","description":"Name of the event for which the webhook is delivered.","schema":{"type":"string"}},{"name":"activityName","in":"query","description":"Name of the activity associated with the webhook event. Specify one or more comma-separated activities (maximum 50).","schema":{"type":"string"}},{"name":"state","in":"query","description":"Delivery status of the webhook event. Possible values:<ul> <li> <b>SUCCESSFUL</b>: Retry events that were successfully delivered to the target endpoint.</li><li> <b>FAILED</b>: Retry events where the webhook delivery attempt failed, for example, due to timeout, server error, or connectivity issues.</li><li> <b>ALL</b>: Retry both successful and failed events.</li> </ul>  \n\nDefault: FAILED\n\n","schema":{"type":"string","enum":["SUCCESSFUL","FAILED","ALL"]}},{"name":"entityId","in":"query","description":"Unique identifier of the entity associated with the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"requestId","in":"query","description":"Unique identifier of the HTTP request. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}}],"responses":{"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n","content":{"application/json":{"schema":{"properties":{"count":{"description":"Total number of records.","type":"integer","example":0}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/webhooks/events/bulkMarkSuccess":{"post":{"tags":["Configuration"],"summary":"Mark as Bulk Successful","description":"Manually mark previously failed events as successful. Use this when you’ve successfully processed specific failed events and want to remove them from the failed events list to prevent further automatic retries. \n","operationId":"eventsMarkedSuccessful","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the webhook event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookId","in":"query","description":"Auto-generated unique identifier of the webhook. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"webhookName","in":"query","description":"Unique name of the webhook.","schema":{"type":"string"}},{"name":"eventId","in":"query","description":"Unique identifier of the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"eventName","in":"query","description":"Name of the event for which the webhook is delivered.","schema":{"type":"string"}},{"name":"activityName","in":"query","description":"Name of the activity associated with the webhook event. Specify one or more comma-separated activities (maximum 50).","schema":{"type":"string"}},{"name":"entityId","in":"query","description":"Unique identifier of the entity associated with the event. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"requestId","in":"query","description":"Unique identifier of the HTTP request. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the date range, in YYYY-MM-DD or YYYY-MM-DD HH:MM format (time is optional), in which the event occurred.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"properties":{"count":{"description":"Total number of records marked manually as successful.","type":"integer","example":0}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Webhooks are currently not part of your subscription plan.\nIf you are interested in the possibilities webhooks can unlock for you, please contact us via email at smsales@thalesgroup.com"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/templates":{"get":{"tags":["Configuration"],"summary":"Search Email Templates","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchTemplates","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the email template. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"key","in":"query","description":"Key that uniquely identifies the email template.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the email template.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the email template.","schema":{"type":"string"}},{"name":"localeCode","in":"query","description":"Locale code of the email template.","schema":{"type":"string"}},{"name":"language","in":"query","description":"Language of the email template.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search email templates.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search email templates.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are key, name, description, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["key","name","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are key, name, description, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["key","name","description","creationDate","lastModifiedDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"templates":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"template":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the email template.","example":"00000000-0000-0000-0000-000000000000"},"key":{"type":"string","description":"Key that uniquely identifies the email template.","example":"testTemplateKey"},"file":{"type":"string","description":"Path of the email template with the default locale.","example":"/ems/api/templates/key={templateKey}/file"},"creationDate":{"description":"Creation date of the email template.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the email template.","example":"2026-07-07 07:07","type":"string"},"locales":{"properties":{"locale":{"items":{"properties":{"localeCode":{"type":"string","description":"Locale Code of the email template.","example":"en"},"language":{"type":"string","description":"Language of the email template.","example":"english"},"file":{"type":"string","description":"Path of the locale file.","example":"/ems/api/templates/key={templateKey}/locale/{localeCode}/file"},"isDefault":{"type":"boolean","description":"Whether it is the default locale. Default: false","example":false},"isLTR":{"type":"string","example":""},"nativeLanguageName":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the email template.","example":"testTemplate"},"description":{"type":"string","description":"Description of the email template.","example":"Template Description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"tenantId":{"type":"string","example":""}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/templates/{templateId}":{"get":{"tags":["Configuration"],"summary":"Get Email Template","description":"Retrieve a specific email template based on its unique identifier.","operationId":"getTemplate","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the email template.","example":"00000000-0000-0000-0000-000000000000"},"key":{"type":"string","description":"Key that uniquely identifies the email template.","example":"testTemplateKey"},"file":{"type":"string","description":"Path of the email template with the default locale.","example":"/ems/api/templates/key={templateKey}/file"},"creationDate":{"description":"Creation date of the email template.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the email template.","example":"2026-07-07 07:07","type":"string"},"locales":{"properties":{"locale":{"items":{"properties":{"localeCode":{"type":"string","description":"Locale Code of the email template.","example":"en"},"language":{"type":"string","description":"Language of the email template.","example":"english"},"file":{"type":"string","description":"Path of the locale file.","example":"/ems/api/templates/key={templateKey}/locale/{localeCode}/file"},"isDefault":{"type":"boolean","description":"Whether it is the default locale. Default: false","example":false}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the email template.","example":"testTemplate"},"description":{"type":"string","description":"Description of the email template.","example":"Template Description"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Email Template","description":"Update an existing email template completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateTemplate","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the email template.","example":"00000000-0000-0000-0000-000000000000"},"key":{"type":"string","description":"Key that uniquely identifies the email template.","example":"testTemplateKey"},"file":{"type":"string","description":"Path of the email template with the default locale.","example":"/ems/api/templates/key={templateKey}/file"},"creationDate":{"description":"Creation date of the email template.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the email template.","example":"2026-07-07 07:07","type":"string"},"locales":{"properties":{"locale":{"items":{"properties":{"localeCode":{"type":"string","description":"Locale Code of the email template.","example":"en"},"language":{"type":"string","description":"Language of the email template.","example":"english"},"file":{"type":"string","description":"Path of the locale file.","example":"/ems/api/templates/key={templateKey}/locale/{localeCode}/file"},"isDefault":{"type":"boolean","description":"Whether it is the default locale. Default: false","example":false}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the email template.","example":"testTemplate"},"description":{"type":"string","description":"Description of the email template.","example":"Template Description"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Email Template","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateTemplate","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the email template.","example":"00000000-0000-0000-0000-000000000000"},"key":{"type":"string","description":"Key that uniquely identifies the email template.","example":"testTemplateKey"},"file":{"type":"string","description":"Path of the email template with the default locale.","example":"/ems/api/templates/key={templateKey}/file"},"creationDate":{"description":"Creation date of the email template.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the email template.","example":"2026-07-07 07:07","type":"string"},"locales":{"properties":{"locale":{"items":{"properties":{"localeCode":{"type":"string","description":"Locale Code of the email template.","example":"en"},"language":{"type":"string","description":"Language of the email template.","example":"english"},"file":{"type":"string","description":"Path of the locale file.","example":"/ems/api/templates/key={templateKey}/locale/{localeCode}/file"},"isDefault":{"type":"boolean","description":"Whether it is the default locale. Default: false","example":false}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the email template.","example":"testTemplate"},"description":{"type":"string","description":"Description of the email template.","example":"Template Description"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/templates/{templateId}/locales/{localeCode}":{"get":{"tags":["Configuration"],"summary":"Get Locale","description":"Retrieve a specific locale based on its unique email template key.","operationId":"getLocale","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true},{"name":"localeCode","in":"path","description":"Locale Code of the email template.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"localeCode":{"type":"string","description":"Locale Code of the email template.","example":"en"},"language":{"type":"string","description":"Language of the email template.","example":"english"},"file":{"type":"string","description":"Path of the locale file.","example":"/ems/api/templates/key={templateKey}/locale/{localeCode}/file"},"isDefault":{"type":"boolean","description":"Whether it is the default locale. Default: false","example":false}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Locales","description":"Replace a locale in an email template. If the given locale does not exist, it is added to the email template. If the locale already exists, it replaces the existing locale.","operationId":"updateTemplateLocale","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true},{"name":"localeCode","in":"path","description":"Locale code of the email template.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Locale","operationId":"deleteTemplateLocale","description":"Delete the given locale file.","parameters":[{"name":"templateId","in":"path","description":"Unique identifier of the email template. Possible values are: \n  - id \n  - key (For example: key=TestTemplateKey)\n","schema":{"type":"string"},"required":true},{"name":"localeCode","in":"path","description":"Locale code of the email template.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities":{"post":{"tags":["Configuration"],"summary":"Add Custom Entity","description":"Add a new custom entity.","operationId":"AddCustomEntity","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customEntity"],"properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the custom entity. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntity"},"entityType":{"type":"string","description":"Type of the custom entity.","example":"CUSTOMER"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"dataType":{"description":"Data type of the custom entity attribute.","example":"STRING","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"}}},"type":"array"}}}},"required":["name","entityType"],"nullable":true}}}}},"description":"Details of the custom entity to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"Custom entities created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Custom Entities","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomEntity","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the custom entity. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the custom entity.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","description","creationDate","lastModifiedDate"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: attributes","schema":{"type":"string"}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customEntities":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"customEntity":{"items":{"required":["name"],"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities/{id}":{"get":{"tags":["Configuration"],"summary":"Get Custom Entity","description":"Retrieve a specific custom entity based on its unique identifier.","operationId":"getCustomentity","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Custom Entity","description":"Perform a partial update of the custom entity based on the provided parameters. Any parameters not provided will be left unchanged.\n- If a custom entity has records associated with it, you can update its description, but you cannot update the details of its attributes. \n- If a custom entity does not have any records, you can update its own description and the details of its attributes.","operationId":"partialUpdateCustomEntity","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customEntity"],"properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"}},"nullable":true,"required":["id"]}}}}},"description":"Custom entity details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Custom Entity","description":"Delete a custom entity if it is not associated with any attribute.","operationId":"deleteCustomEntity","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Custom Entity","description":"Update an existing product completely. If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a custom entity has records associated with it, you can update its description, but you cannot update the details of its attributes.\n- If a custom entity does not have any records, you can update its own description and the details of its attributes.","operationId":"updateCustomEntity","parameters":[{"name":"id","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customEntity"],"properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"}},"required":["name","entityType","id"],"nullable":true}}}}},"description":"Details of the custom entity to be added."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"customEntity":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity.","example":"00000000-0000-0000-0000-000000000000"},"creationDate":{"description":"Creation date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity.","example":"2026-07-07 07:07","type":"string"},"attributes":{"properties":{"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}}},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the custom entity. You can specify up to 500 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity description"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities/{entityId}/attributes":{"post":{"tags":["Configuration"],"summary":"Add Entity Attribute","description":"Add a new custom entity attribute.","operationId":"AddCustomEntityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"dataType":{"description":"Data type of the custom entity attribute.","example":"STRING","type":"string","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"]},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Details of the custom entity attribute to be added. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"Custom entities attribute created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Entity Attribute","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomEntityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"attrId","in":"query","description":"Auto-generated unique identifier of the custom entity attribute.You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the custom entity attribute.","schema":{"type":"string"}},{"name":"unique","in":"query","description":"Whether the custom entity attribute is unique. \nDefault: false\n","schema":{"type":"boolean"}},{"name":"mandatory","in":"query","description":"Whether the custom entity attribute is mandatory.\nDefault: false\n","schema":{"type":"boolean"}},{"name":"dataType","in":"query","description":"Data type of the custom entity attribute.","schema":{"type":"string","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["name","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["name","creationDate","lastModifiedDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"attributes":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"attribute":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities/{entityId}/attributes/{attrId}":{"get":{"tags":["Configuration"],"summary":"Get Entity Attribute","description":"Retrieve a specific custom entity attribute based on its unique identifier.","operationId":"getCustomentityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"attrId","in":"path","description":"Unique identifier of the custom entity attribute. Possible values are: \n - id \n - name (For example: name=TestCustomEntityAttribute)","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Entity Attribute","description":"Update a custom entity attribute based on the provided parameters. Any parameters not provided will be left unchanged.\nYou can update name, description, regularExpression, mandatory, and unique parameters.\n","operationId":"partialUpdateCustomEntityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"attrId","in":"path","description":"Unique identifier of the custom entity attribute. Possible values are: \n - id \n - name (For example: name=TestCustomEntityAttribute)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","type":"string","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"]},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"Custom entity attribute details to be updated. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Entity Attribute","description":"Delete a custom entity attribute if it does not have any record associated with it.","operationId":"deleteCustomEntityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"attrId","in":"path","description":"Unique identifier of the custom entity attribute. Possible values are: \n - id \n - name (For example: name=TestCustomEntityAttribute)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Entity Attribute","description":"Replace the attributes of a custom entity with the given attributes.","operationId":"updateCustomEntityAttribute","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"attrId","in":"path","description":"Unique identifier of the custom entity attribute. Possible values are: \n - id \n - name (For example: name=TestCustomEntityAttribute)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","type":"string","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"]},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"Custom entity attribute details to be updated. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity attribute.","example":"00000000-0000-0000-0000-000000000000"},"dataType":{"description":"Data type of the custom entity attribute.","enum":["STRING","INTEGER","BOOLEAN","DATE","JSON"],"type":"string"},"unique":{"description":"Whether the custom entity attribute is unique.","default":false,"example":false,"type":"boolean"},"mandatory":{"description":"Whether the custom entity attribute is mandatory.","default":false,"example":false,"type":"boolean"},"regularExpression":{"description":"Valid values for the custom entity attribute in the form of a regular expression.\nNote: Regular expressions are not supported for Date and Boolean data types, and ignored if specified.","example":".*","type":"string"},"creationDate":{"description":"Creation date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the custom entity attribute.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"CustomEntityAttribute"},"description":{"description":"Description of the custom entity attribute. You can specify up to 500 alphanumeric characters. The following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"Custom Entity Attribute description","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities/{entityId}/records":{"post":{"tags":["Configuration"],"summary":"Add Custom Entity Record","description":"Add a new custom entity record.","operationId":"AddCustomEntityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the custom entity attribute. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :\n","example":"CustomEntityAttribute"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Details of the custom entity record to be added. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Custom entities record created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Configuration"],"summary":"Search Custom Entity Records","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n  ","operationId":"searchCustomEntityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"recordId","in":"query","description":"Auto-generated unique identifier of the custom entity record. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"in":"query","name":"raw","description":"You can search on custom entity records.\nFollowing is a sample URI: \n`GET /ems/api/v5/customEntities/{entityId}/records?CE_ATTR_NAME.address=delhi`\n\nAs shown in the above URI, you can use the following prefixes to perform searches using custom entity records:\n- CE_ATTR_NAME: Perform search on a custom entity record.\n\nThe rules to be followed when using custom entity records are:\n- All prefixes are case-sensitive.\n- To provide multiple values:\n  -  Use **&** separator.\n","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["creationDate","lastModifiedDate"]}},{"in":"query","name":"includeCount","description":"Specifies whether the response should include the count parameter, representing the total number of records matching the search criteria. Set this parameter to false to exclude the count parameter from the response. This can reduce database load and improve response time for large datasets.\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"records":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"record":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customEntities/{entityId}/records/{recordId}":{"get":{"tags":["Configuration"],"summary":"Get Custom Entity Record","description":"Retrieve a specific custom entity record based on its unique identifier.","operationId":"getCustomentityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"recordId","in":"path","description":"Unique identifier of the custom entity record. Possible values are: \n  - recordId","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Configuration"],"summary":"Update Custom Entity Record","description":"Update a custom entity record based on the provided parameters. Any parameters not provided will be left unchanged.\nYou can update only value","operationId":"partialUpdateCustomEntityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"recordId","in":"path","description":"Auto-generated unique identifier of the custom entity record.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Custom entity record details to be updated. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Configuration"],"summary":"Replace Custom Entity Record","description":"Replace the custom entity records with the given records.","operationId":"updateCustomEntityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"recordId","in":"path","description":"Auto-generated unique identifier of the custom entity record.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Custom entity record details to be updated. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. \n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the custom entity record.","example":"00000000-0000-0000-0000-000000000000"},"attribute":{"properties":{"name":{"type":"string","description":"Name of the attribute.","example":"AttributeName"},"value":{"description":"Value of the custom entity attribute. The value of a custom entity attribute must follow these rules based on its data type:\n - Date data type: The value must be in yyyy-mm-dd format.\n - JSON data type: If the request body is in JSON format, the value must include escape characters. Example:  {  \\ \" entityIdentifier \\ \": \\ \" 00000000-0000-0000-0000-000000000000\\ \",\\ \"entityType \\ \"}\n - Date and Boolean data types: Regular expressions are not supported and will be ignored if specified.\n - String data type: The value can contain up to 2,000 characters.","example":"AttributeValue"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"creationDate":{"description":"Creation date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Modified date of the custom entity attribute record.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Configuration"],"summary":"Delete Custom Entity Record","description":"Delete a custom entity record.","operationId":"deleteCustomEntityRecord","parameters":[{"name":"entityId","in":"path","description":"Unique identifier of the custom entity. Possible values are: \n  - id \n  - name (For example: name=TestCustomEntity)","schema":{"type":"string"},"required":true},{"name":"recordId","in":"path","description":"Auto-generated unique identifier of the custom entity record.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/memory":{"post":{"tags":["Catalog"],"summary":"Add Memory","operationId":"addMemory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement. \n Add a new memory file. \nMemory is a functional component that can be added to a product.\n For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"integer","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"Details of the memory file to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"string","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"Memory file created.\nThe unique identifier (id) of the new memory file is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"get":{"tags":["Catalog"],"summary":"Search Memory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement. \nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchMemoryList","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the memory file. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"fileName","in":"query","description":"Unique name of the memory file.","schema":{"type":"string"}},{"name":"fileId","in":"query","description":"File ID of the memory file.","schema":{"type":"integer"}},{"name":"namespaceName","in":"query","description":"Name of the namespace. You must provide the exact namespace name for a successful search.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the memory file.\nPossible values:\n- ACTIVE: Represents active memory files. You can associate only active memory files with a product.\n- END_OF_LIFE: Represents obsolete memory files. You cannot add obsolete memory files to products.","schema":{"type":"string"}},{"name":"fileType","in":"query","description":"Type of the data stored in the memory file. \n Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the memory file.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are fileName, fileId, description, fileType, state, deployed, refId1, refId2, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["fileName","fileId","description","fileType","state","deployed","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are fileName, fileId, description, fileType, state, deployed, refId1, refId2, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["fileName","fileId","description","fileType","state","deployed","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search memory.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search memory.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"memoryFiles":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"memory":{"items":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"string","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/ems/api/v5/memory/{memoryId}":{"get":{"tags":["Catalog"],"summary":"Get Memory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement.\n Retrieve a specific memory file based on its unique identifier.","operationId":"getMemory","parameters":[{"name":"memoryId","in":"path","description":"Unique identifier of the memory file. Possible values are: \n  - id","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"string","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"put":{"tags":["Catalog"],"summary":"Replace Memory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement.\n Completely update an existing memory file. For deployed memory files, you can modify only the following: refId1, refId2, and description. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.","operationId":"updateMemory","parameters":[{"name":"memoryId","in":"path","description":"Unique identifier of the memory file. Possible values are: \n  - id","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"integer","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"Details of the memory file to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"string","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"patch":{"tags":["Catalog"],"summary":"Update Memory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement. \nPerform a partial update of the specific resource by setting the values of the parameters provided. For deployed memory files, you can modify only the following: refId1, refId2, and description. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateMemory","parameters":[{"name":"memoryId","in":"path","description":"Unique identifier of the memory file. Possible values are: \n  - id","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"integer","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"Details of the memory file to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["namespace","fileName","fileId","state"],"properties":{"namespace":{"properties":{"name":{"example":"DEMOMA","type":"string","description":"Name of the namespace to which the memory file belongs."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"type":"object"},"id":{"type":"string","description":"Auto-generated unique identifier of the memory.","example":"00000000-0000-0000-0000-000000000000"},"fileName":{"type":"string","description":"Unique name of the memory file. You can specify up to 50 alphanumeric characters.","example":"memoryFile"},"fileId":{"type":"string","description":"File ID that your application uses to refer to the memory file. Each memory file associated with a product must have a unique file ID. The memory file ID must be in the following range: 1-65471","example":123},"deployed":{"example":false,"description":"Whether the memory file is associated with a product.\nDefault: false","type":"boolean"},"state":{"example":"ACTIVE","description":"State of the memory file. \n Possible values: \n- ACTIVE: Represents active memory files. You can associate only active memory files with a product. \n- END_OF_LIFE: Represents obsolete memory files. You cannot associate obsolete memory files with a product.\n You can restore the state from END_OF_LIFE to ACTIVE if required.\nDefault: ACTIVE","type":"string"},"fileType":{"example":"READ_WRITE","description":"Type of the data stored in the memory file. Possible values: \n- READ_WRITE: Data that can be updated at runtime. \n- READ_ONLY: Data that can be read at runtime but cannot be changed. \n- READ_WRITE_ONCE: Data that can be updated only once at runtime and then is treated as read-only. \nDefault: READ_ONLY","type":"string"},"fileSize":{"example":"100","description":"Size of the memory file in bytes.\n ","type":"string"},"segmentName":{"type":"string","description":"Name of the memory segment. You can specify up to 50 alphanumeric characters.","example":"memorySegment"},"size":{"example":"100","description":"Size of the memory segment in bytes.\n ","type":"string"},"offset":{"example":"0","description":"The hexadecimal starting point of the memory file segment.","type":"string"},"text":{"example":"text","description":"Contents of the memory file in the hexadecimal format. The memory text length should be within the memory segment size, and the combined value of the memory segment size and offset must not exceed the memory file size.","type":"string"},"refId1":{"example":"refId1","description":"First reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"refId2":{"example":"refId2","description":"Second reference identifier of the memory file as used by external ERP/CRM systems.","type":"string"},"creationDate":{"description":"Creation date of the memory file.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the memory file.","example":"2026-07-07 07:07","type":"string"},"description":{"example":"Memory description","description":"Description of the memory file.","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"delete":{"tags":["Catalog"],"summary":"Delete Memory","description":"\n**Note:** Memory management applies only to Sentinel LDK enforcement. \n Delete a memory file if it is not used in any product and if it is in the ACTIVE state.","operationId":"deleteMemory","parameters":[{"name":"memoryId","in":"path","description":"Unique identifier of the memory file. Possible values are: \n  - id","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/ems/api/v5/keys":{"get":{"tags":["Keys"],"summary":"Search Sentinel Keys","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement. \nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchKeys","parameters":[{"name":"id","in":"query","description":"Unique identifier of the Sentinel key.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the Sentinel key.\nPossible values:\n- ENABLED: Represents active keys.\n- DISABLED: Represents disabled keys.\n- CLONED: Represents cloned keys.\n- VIRTUAL_CLOCK_ERROR: Represents keys with virtual clock in error state.\n- BLOCKED: Represents blocked keys.\n- OUT_OF_SYNC: Represents keys whose state in Sentinel EMS is not synced with Sentinel LDK cloud license server.","schema":{"type":"string"}},{"name":"marketGroupName","in":"query","description":"Name of the market group associated with the Sentinel key. You must provide the exact market group name for a successful search.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Unique identifier of the customer associated with the Sentinel key.","schema":{"type":"string"}},{"name":"customerName","in":"query","description":"Name of the customer associated with the Sentinel key.","schema":{"type":"string"}},{"name":"keyType","in":"query","description":"Type of the Sentinel key.","schema":{"type":"string"}},{"name":"hostedService","in":"query","description":"Whether the Sentinel key is a service-hosted cloud licensing key (CL key).\n Default: false","schema":{"type":"boolean"}},{"name":"eId","in":"query","description":"User-specified or auto-generated identifier of the entitlement associated with the Sentinel key.","schema":{"type":"string"}},{"name":"groupActivationId","in":"query","description":"Unique identifier of the group activation. This is useful when searching for a key for which a service-hosted license was generated earlier.","example":"00000000-0000-0000-0000-000000000000","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are id, state, marketGroup, customerIdentifier, customerName, keyType, groupActivationId, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","state","marketGroup","customerIdentifier","customerName","keyType","groupActivationId","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are id, state, marketGroup, customerIdentifier, customerName, keyType, groupActivationId, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","state","marketGroup","customerIdentifier","customerName","keyType","groupActivationId","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search Sentinel keys.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search Sentinel keys.","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: entitlements","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"properties":{"keys":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"603805726"},"state":{"example":"ENABLED","description":"State of the Sentinel key.\nPossible values:\n- ENABLED: Represents active keys.\n- DISABLED: Represents disabled keys.\n- CLONED: Represents cloned keys.\n- VIRTUAL_CLOCK_ERROR: Represents keys with virtual clock in error state.\n- BLOCKED: Represents blocked keys.\n- OUT_OF_SYNC: Represents keys whose state in Sentinel EMS is not synced with Sentinel LDK cloud license server.","type":"string"},"marketGroup":{"type":"string","description":"Name of the market group associated with the Sentinel key.","example":"DEMOMA","nullable":true},"customerName":{"type":"string","description":"Name of the customer associated with the Sentinel key.","example":"LdkCustomer"},"customerIdentifier":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer associated with the Sentinel key.","type":"string"},"keyType":{"example":"Sentinel-HL-NetTime-250+","description":"Type of the Sentinel key.","type":"string"},"hostedService":{"example":true,"description":"Whether the Sentinel key is a service-hosted cloud licensing key (CL key).\n**Legacy Compatibility**: Returns string \"true\"/\"false\", not boolean type. This preserves backward compatibility with existing API consumers.","type":"boolean"},"pendingUpdates":{"example":false,"description":"Whether any license updates are pending for the Sentinel key. Returns true if updates are available and have not been applied or not acknowledged; returns false if no updates are pending.\n**Legacy Compatibility**: Returns string \"true\"/\"false\", not boolean type. This preserves backward compatibility with existing API consumers.","type":"boolean"},"creationDate":{"description":"Creation date of the Sentinel key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the Sentinel key.","example":"2026-07-07 07:07","type":"string"},"entitlements":{"properties":{"entitlement":{"description":"Details of entitlements associated with the key.","items":{"properties":{"id":{"description":"Unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"eId":{"description":"A unique friendly name for the entitlement.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/{keyId}/clearClone":{"post":{"tags":["Keys"],"summary":"Clear Clone","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement.\n Change the Sentinel key status from CLONED to ENABLED. The URL of the latest V2CP file is returned in the response.\n This endpoint is applicable for only Sentinel HL (Driverless configuration) keys.","operationId":"clearClone","parameters":[{"name":"keyId","in":"path","description":"Unique identifier of the Sentinel key that is in the CLONED state.","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"The URL for downloading the resultant V2CP file that contains the latest license information.","example":"/keys/603805726/latestV2CP"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/{keyId}/resetVirtualClock":{"post":{"tags":["Keys"],"summary":"Reset Virtual Clock","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement.\n Reset the virtual clock in a Sentinel key to the date and time of the current machine where you are generating the V2CP file. The virtual clock time is set in UTC.\n You can reset the virtual clock for only those Sentinel HL (Driverless configuration) keys for which the key state is marked to VIRTUAL_CLOCK_ERROR during the C2V file check-in.\n After the reset, the state of the Sentinel key is changed from VIRTUAL_CLOCK_ERROR to ENABLED. The output is the URL of the latest V2CP file.","operationId":"resetVirtualClock","parameters":[{"name":"keyId","in":"path","description":"Unique identifier of the Sentinel key that is in the VIRTUAL_CLOCK_ERROR state.","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"The URL for downloading the resultant V2CP file that contains the latest license information.","example":"/keys/603805726/latestV2CP"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/decodeC2V":{"post":{"tags":["Keys"],"summary":"Decode C2V","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement. You must use the [required version](https://docs.sentinel.thalesgroup.com/softwareandservices/ldk/LDKdocs/RN/en/10.0/Default.htm#cshid=1017) of Sentinel LDK Run-time Environment (RTE). \nDecode the C2V file to a readable format.\n","operationId":"decodeC2V","requestBody":{"content":{"application/json":{"schema":{"properties":{"hasp_info":{"description":"Contains license information.","properties":{"haspscope":{"description":"Defines the scope of the license.","properties":{"hasp":{"properties":{"id":{"type":"string","description":"ID of the Sentinel key.","example":"591751327"},"vendor":{"description":"Contains the software vendor information.","properties":{"id":{"type":"string","description":"Contains the unique ID of the software vendor.","example":"37515"}},"nullable":true},"update_counter":{"type":"string","description":"The sequential number for the license update in the V2CP file. The update counter is stored in the Sentinel key, in each license update in the V2CP file, and in Sentinel EMS to ensure that updates are installed in the correct sequence without missing any updates. For example, if there are five updates, all updates are installed in ascending order (1,2,3,4,5) and no update may be skipped.","example":"1"}},"nullable":true}},"nullable":true},"c2v":{"description":"Element that contains data on the current status of the deployed Sentinel key."}},"nullable":true}},"type":"object"}}},"description":"Contains the C2V file content, which is in XML format, wrapped within the sentinelKey tag."},"responses":{"200":{"description":"The C2V file is successfully decoded. <br/> The decoded C2V file is returned in the response (if returnResource is set to true). For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#C2VTags.htm' target='_blank'>description of tags present in the C2V file</a>."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/checkin":{"post":{"tags":["Keys"],"summary":"Check In C2V","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement. You must use the [required version](https://docs.sentinel.thalesgroup.com/softwareandservices/ldk/LDKdocs/RN/en/10.0/Default.htm#cshid=1017) of Sentinel LDK Run-time Environment (RTE).\nAdd or update the Sentinel Key information in Sentinel EMS based on the given Customer-to-Vendor (C2V) file. The key state is returned after the C2V file check in. \n\nThe C2V file is received from a customer and contains data about the device on which the licensed application is running. To obtain a C2V file, the customer needs to apply the latest Vendor-to-Customer Package (V2CP) file using Sentinel Admin Control Center or the Sentinel Remote Update System (RUS) utility.\n\nIf the Sentinel key already exists in Sentinel EMS, the C2V file check in is allowed for only non-enabled keys for which the license update information is in sync with Sentinel EMS. If there are pending updates for the key, check in is not allowed. In such cases, the customer needs to get the latest V2CP file and apply it to regenerate the C2V file. \n\nYou cannot check in the C2V file for unlocked products and for keys that are not updated using Sentinel EMS. \n","operationId":"checkinC2V","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the decoded C2V in the response body. \nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"hasp_info":{"description":"Contains license information.","properties":{"haspscope":{"description":"Defines the scope of the license.","properties":{"hasp":{"properties":{"id":{"type":"string","description":"ID of the Sentinel key.","example":"591751327"},"vendor":{"description":"Contains the software vendor information.","properties":{"id":{"type":"string","description":"Contains the unique ID of the software vendor.","example":"37515"}},"nullable":true},"update_counter":{"type":"string","description":"The sequential number for the license update in the V2CP file. The update counter is stored in the Sentinel key, in each license update in the V2CP file, and in Sentinel EMS to ensure that updates are installed in the correct sequence without missing any updates. For example, if there are five updates, all updates are installed in ascending order (1,2,3,4,5) and no update may be skipped.","example":"1"}},"nullable":true}},"nullable":true},"c2v":{"description":"Element that contains data on the current status of the deployed Sentinel key."}},"nullable":true}},"type":"object"}}},"description":"Contains the C2V file content in XML format, wrapped within the sentinelKey tag. \nNote: This API endpoint supports XML and JSON request payloads. For JSON requests, embed the C2V XML content as an escaped string within the sentinelKey field, while preserving the original XML structure. The XML must be properly escaped with backslashes to conform to JSON encoding rules (for example, escaping double quotes, line breaks, and special characters)."},"responses":{"200":{"description":"The C2V file is successfully checked in. <br/> The decoded C2V file is returned in the response (if returnResource is set to true). For more details, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/WSG/Default.htm#C2VTags.htm' target='_blank'>description of tags present in the C2V file</a>."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/{keyId}/latestV2CP":{"get":{"tags":["Keys"],"summary":"Get Latest V2CP","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement. You must use the [required version](https://docs.sentinel.thalesgroup.com/softwareandservices/ldk/LDKdocs/RN/en/10.0/Default.htm#cshid=1017) of Sentinel LDK Run-time Environment (RTE).\nGet the latest Vendor-to-Customer Package (V2CP) file for the given key ID. The V2CP file contains license information for an activated product and is returned as a file attachment that you can download, as shown in the response header (Content-Disposition: attachment; filename=\"example.v2cp\").  \nIf there are no pending updates for the given key ID, then status code 204 is returned.","operationId":"latestV2CP","parameters":[{"name":"keyId","in":"path","description":"The unique ID of the Sentinel key for which you want to download the V2CP file.","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"Contains the bundled pending updates. Save the response in a Vendor-to-Customer Package (V2CP) file and apply it using Runtime API or Admin Control Center.","properties":{"haspscope":{"description":"Defines the scope of the license.","properties":{"vendor":{"properties":{"id":{"type":"string","description":"Unique ID of the software vendor.","example":"37515"},"hasp":{"properties":{"id":{"type":"string","description":"Unique ID of the license.","example":"502293227330790017"}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"v2cp":{"description":"The encoded content of the Vendor-to-Customer Package (V2CP) file for the specified Sentinel key ID.","example":"UEsDBB...AAAAA=","type":"string"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/{keyId}/enable":{"post":{"tags":["Keys"],"summary":"Enable Sentinel Key","description":"\n**Note:** Sentinel key management applies only to Sentinel LDK enforcement.\n Enable a Sentinel key that is in the DISABLED state. The key state is changed to ENABLED. The URL of the latest V2CP file is returned in the response.\n You can enable only Sentinel HL (Driverless configuration) and CL (cloud-enabled SL Admin Mode) keys.","operationId":"enable","parameters":[{"name":"keyId","in":"path","description":"Unique identifier of the Sentinel key that is in the DISABLED state.","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"The URL for downloading the resultant V2CP file that contains the latest license information.","example":"/keys/603805726/latestV2CP"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/{keyId}/syncState":{"post":{"tags":["Keys"],"summary":"Synchronize Sentinel Key State","description":"\n    **Note:** Sentinel key management applies only to Thales-hosted cloud licensing (CL) keys of Sentinel LDK enforcement. \n    The key state is changed from OUT_OF_SYNC to ENABLED.","operationId":"syncState","parameters":[{"name":"keyId","in":"path","description":"Unique identifier of the Sentinel key that is in the OUT_OF_SYNC state.","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"603805726"},"state":{"example":"ENABLED","description":"State of the Sentinel key.\nPossible values:\n- ENABLED: Represents active keys.\n- DISABLED: Represents disabled keys.\n- CLONED: Represents cloned keys.\n- VIRTUAL_CLOCK_ERROR: Represents keys with virtual clock in error state.\n- BLOCKED: Represents blocked keys.\n- OUT_OF_SYNC: Represents keys whose state in Sentinel EMS is not synced with Sentinel LDK cloud license server.","type":"string"},"marketGroup":{"type":"string","description":"Name of the market group associated with the Sentinel key.","example":"DEMOMA","nullable":true},"customerName":{"type":"string","description":"Name of the customer associated with the Sentinel key.","example":"LdkCustomer"},"customerIdentifier":{"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the customer associated with the Sentinel key.","type":"string"},"keyType":{"example":"Sentinel-HL-NetTime-250+","description":"Type of the Sentinel key.","type":"string"},"hostedService":{"example":true,"description":"Whether the Sentinel key is a service-hosted cloud licensing key (CL key).\n**Legacy Compatibility**: Returns string \"true\"/\"false\", not boolean type. This preserves backward compatibility with existing API consumers.","type":"boolean"},"pendingUpdates":{"example":false,"description":"Whether any license updates are pending for the Sentinel key. Returns true if updates are available and have not been applied or not acknowledged; returns false if no updates are pending.\n**Legacy Compatibility**: Returns string \"true\"/\"false\", not boolean type. This preserves backward compatibility with existing API consumers.","type":"boolean"},"creationDate":{"description":"Creation date of the Sentinel key.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the Sentinel key.","example":"2026-07-07 07:07","type":"string"},"entitlements":{"properties":{"entitlement":{"description":"Details of entitlements associated with the key.","items":{"properties":{"id":{"description":"Unique identifier of the entitlement.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"eId":{"description":"A unique friendly name for the entitlement.","example":"00000000-0000-0000-0000-000000000000","type":"string"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/keys/fetchUpdates":{"post":{"tags":["Keys"],"summary":"Get License Updates","description":"**Note:** Sentinel key management applies only to Sentinel LDK enforcement. You must use the [required version](https://docs.sentinel.thalesgroup.com/softwareandservices/ldk/LDKdocs/RN/en/10.0/Default.htm#cshid=1017) of Sentinel LDK Run-time Environment (RTE). Does not require login.\nGet pending license updates for the Sentinel key based on the Customer-to-Vendor (C2V) file received from a customer. Any pending updates are combined into a package and returned in a Vendor-to-Customer file (V2CP) file.<br/><br/>If the C2V contains revoked products, then the request also syncs the revoked products with Sentinel EMS.\nWhen revoking products, this endpoint:\n- Syncs the revoked products with Sentinel EMS.\n- Changes the status of any associated activations to **Revocation Confirmed.**\n- Re-credits the available activation quantity in the relevant entitlement line items to the pre-activation quantity.\n- Generates a revocation V2CP file that users can apply to remove the revoked products from their system, including any associated dynamic memory files.<br/>\n\n**Prerequisites for syncing revoked products with Sentinel EMS:**\n  - You must have the C2V file containing the revoked products from the customer or end user's system. \n  - The relevant entitlements must meet the following criteria:\n    - The **state** must be set to **ENABLE (Complete).**\n    - **The Allow Activation (revocationAllowed)** attribute value must be set to **Yes (true).**\n","operationId":"fetchUpdates","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"Contains the bundled pending updates. Save the response in a Vendor-to-Customer Package (V2CP) file and apply it using Runtime API or Admin Control Center.","properties":{"haspscope":{"description":"Defines the scope of the license.","properties":{"vendor":{"properties":{"id":{"type":"string","description":"Unique ID of the software vendor.","example":"37515"},"hasp":{"properties":{"id":{"type":"string","description":"Unique ID of the license.","example":"502293227330790017"}},"nullable":true}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"v2cp":{"description":"The encoded content of the Vendor-to-Customer Package (V2CP) file for the specified Sentinel key ID.","example":"UEsDBB...AAAAA=","type":"string"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/productKeys/{pkId}/associatedKeys":{"put":{"tags":["Keys"],"summary":"Associate Sentinel Keys","description":"**Note:** Associating product keys with Sentinel keys applies only to Sentinel LDK enforcement.<br/>\nAssociate one or more Sentinel keys with the specified product key. This operation replaces all existing associations.<br/>\n**<b>Authentication & Authorization:</b>**\nAuthentication is supported via JWT (Bearer Token) and HTTP Basic Authentication for the following vendor user login types only. This endpoint is not supported for any other login type.\n- **Vendor User (Administrator):** Only authentication is required.\n- **Vendor User (Standard):** Both authentication and authorization are required. After successful authentication, the following authorization checks are performed:\n    - The vendor user must have entitlement modification permissions.\n    - The specified product key must belong to a market group that the vendor user can access.\n    - All Sentinel keys must belong to market groups to which the user has access.\n","operationId":"associateSentinelKeys","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKey"],"properties":{"productKey":{"description":"Contains the list of Sentinel keys to associate with the specified product key.","properties":{"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"items":{"type":"object","nullable":true},"type":"array"},"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Contains the list of Sentinel key IDs to associate with the product key."},"responses":{"200":{"description":"Sentinel keys successfully associated with the product key.","content":{"application/json":{"schema":{"properties":{"productKey":{"description":"Contains the list of Sentinel keys to associate with the specified product key.","properties":{"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"items":{"type":"object","nullable":true},"type":"array"},"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Keys"],"summary":"Update Sentinel Key Association","description":"**Note:** Associating product keys with Sentinel keys applies only to Sentinel LDK enforcement.<br/>\nAdd one or more Sentinel keys to an existing product key association. Existing associations are not removed.<br/>\n**<b>Authentication & Authorization:</b>**\nAuthentication is supported via JWT (Bearer Token) and HTTP Basic Authentication for the following vendor user login types only. This endpoint is not supported for any other login type.\n- **Vendor User (Administrator):** Only authentication is required.\n- **Vendor User (Standard):** Both authentication and authorization are required. After successful authentication, the following authorization checks are performed:\n    - The vendor user must have entitlement modification permissions.\n    - The specified product key must belong to a market group that the vendor user can access.\n    - All Sentinel keys must belong to market groups to which the user has access.\n","operationId":"updateSentinelKeyAssociation","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["productKey"],"properties":{"productKey":{"description":"Contains the list of Sentinel keys to associate with the specified product key.","properties":{"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"items":{"type":"object","nullable":true},"type":"array"},"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Contains the list of Sentinel key IDs to add to the product key association."},"responses":{"200":{"description":"Sentinel keys successfully added to the product key association.","content":{"application/json":{"schema":{"properties":{"productKey":{"description":"Contains the list of Sentinel keys to associate with the specified product key.","properties":{"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"YYIcXYADY3R2oQaABGEjVUqiCYABAIEBAIIBAKMVgAEAgRAAAAAAAAAAAAAAAAAA AAAApoIcKoAICrW2x0uuxhGjghwcoIIcGICCAQADBMAb/Bwwj/mqo8NTlCNKdPPE q8yh52NodWY/2bKJvNpUGkh7Jb4eA3aJ+w46PYnoEIwEf+rg8Yqmtxd2OORO6lpV ydfR7997xtwYBNn/FJoMFaWd3i6w3+P2TuEyF/GN26juvivc7V07k9vAV6EcCtmr 1Vm9/+Yki3P/wc0KT1Zp4JVyH7J+upZ2JOucpRKRWuWGurAo9+UonzSXhBAA/zZ2 43GUeMZYTROuVtKZb+J7QXu3vApzNTPUYh8nv0AcibKrtxlqSfxy1AQcEuG2PcjD qc87fmM1I30l6EPXRKdgf+M2ehCWnQMoQHwKgJYuBuyZFs6n+k4GcoXQTbTGgYIb EHawhIElrxwy/lo+6CtpT4TsBmmN7bThFWC2OmqDVGmDIt5veijAfThkMR7+IvmA beev/13+zYuMRMm5S2IFq5G5BTOUSsaJvrup5kKoUIS+R39oDgfATX56xnEXXqfy clEepKvJGwNgZ2MroA4JAKNn47tWKApl/zUWvjRbfh7R3g6No6WQNGIYAzUMgZ5B 3AvchtU5r4Ih9rRm0HkpMYBJR7UZdkZ6p/UnBlRTE+dgmO5joacTkm38swjoLfRA CnNCkaL9x2eqtwi6GyIyOjRsAewMgsCDkIMitte6O4TXC1aVB6o3C5pCG7owtSKj ndbSU+5ZoHOBakeTWYieT7fedAD6Ebj1YTA0U3qHXPDD7ZS1TlEybLMhMq5QJodq oLV0IRnk285uz4PtYR5KtIDgim4XX1k15NgLR3QJW9B6YpXwQsRekKN198MuF1U7 FEDFS8YkSmBfU0rE28asqlaJ2uzFATebKybpTDmpiex7iNdwsKDy0RP8NkWsEIW5 bqx2vps7SL19yi5sxEjE5x2CKxG5GqBBaAcCgWU+UqvgaOe46VqAfespApf4Gvk0 nc4goOLG9eeLW0dhjWSwq5M+R+GGEAjtN0bJ1E+X8/dB/TKNt8zcfYS88V0a9LG+ Zcsj0rSR5YcCMyTnHn+dryohE5PcCc1gcRK1GtA9HTDkIssh1G9yW2E+m/b9/PgV S7hNdtEc0Jgq8zD/KDjWhafPaArxoixAT9SadqaejRBY3uphvrnovIXTJqsGgHNi nT9FlyJQzbCGDo8SUeJAlY88TAhjFFNHOaJahnTqgoBR75/EL4psLmPbmr1607f1 nfhIPL1eikoUuvSf5s4cTFNOYEix1+NjD3ArVnpL0QUR00odQls0GbaGYiKaZbx+ YnAufiSUAubcMlfaiaDuPScu0RN8txq8HkeU48P0/6Pfa5RgD+I1+pmOkUARXxXN h07mTHoBdDNdIlUAabOHddQKoFC05fH1JTDodKOBvo3ap/LkPpsY3eZyhruWitgq 56ZkRZiOIe1ACePQESrT4xVqAI5iL3X34dYLG/awYipYb3kNJBr3B5AKjLMWGP1q 1yXfKBPKTAo6eBuNi4ojHcj9tFlE//XiIwzfTU4iE7weRt0of+hfRugnDjEqlYQv ImQi9u6NSPeyKO7FnO298CcANrl8dcG7vl1ykR27G+vhYrSF8Ta4NR7ERbD2mc5R LKrYm3CILAjq40LOetu3xX7ACEjAgxGtXBuWFHTo57JpwHjAuGnx37rJfAom6q2K mqSI+Ag/KfMrHsR4gObKrbvChoa+ctvpgLaeKXqUKtMra73o1+mD1PoFgtwTzuTK sEq59sTRrF14OdeACvIVzn9Uuo6mqNEKF2QCNrs1ZNCGmKE1VI7Qd5viTmGz+G1r 2J282ROX4ZBaHqVV6UdcxE2U3w7Gg7xIEEKyafVFvQq+bKCTOB8nhBwheJHb4Xrx Y4C9oPKSy+q1lGPz0DR/OUJwwqsgxmQdK57Z6pS5MqTp3PpyqBbO8FjilQ+H3elq zzg3D3LtVt8l0+hiCa18CdE+gkdof+d/8GeWJAmOq+GcG1YB+lep2ypStzcEWlje Q6B24V4IrruPbJXxqNEbqVGs/8QYPlKbK1NVPRmjoKPBnYyrELJ5DXqtkyjKLgD3 R8NNTRUTIDoLKZqpdwFDpeTS5lnsPwPIHac8eB5zc8JMdQOi6e6mqXqDmKuvOL92 yz/3HXSzUhC7vRjcLZQB2/Wx22XL5jjGiT/FOcyuk/AcvyaNAkbeymvYstkCKDqI FbJDznkFZcuporFn5wupGxGL8eoHqHdT4Gc+LorRUeGyKLfiKH1oOZPVRPH8Rv/Z 7b4HVwVnoNF0edUBt4oAYB1bkPmBuEdA4udkw6CIlKwcBjzAgysSq29ZuyQOmdIw aVHcUrHsJVpCP2nC/AxWpd/VAyzlsmyWxyrO4qzJrCiBXBjs4kcTB1TEHak79Asp /UDvBrcY147V6DLZNBa5u41bZoTxEvGhp/EfhiNkQEfLUSrtL/VCH7sO8TWgoJbY L94+rNBtYMdtpb1CCnmU9lPgMm54DnHJtwJ7ST3M7GWfmCrpApa7drPy+pRzndAG dMefoBUGj2zQw2Fk2vDfNOWsvvQWEIyARtWSUjNBZG97MtT30jQKbwsSX6k5SBjW o1P41cnpBj0DMKeDjlC2z4tEdYb6D7XHch95A7ADcrtbZklS1zYS0zbnbdt5OqOa 5JRv/ao3D1hsAl4OsaSpLXAQ/pKDSgZFlaMj2hLVdk+gh1U6sn6StTEBwDWcdz8V GMbSXunMpG9zO1+sSfRDX50LCuoXgiMXQQvyQVyJiTNvaJ+2inGHT4cc99gSgJzI t8V1W3B5MmVla6bBUE+DIGYGqgtEPIKg+4y1Wl0xiNSIf1POjGy8dgWb/dEy5mJf RiRSxnf8OerbKVLixIgeKLvo52UdTsOk6O7H/MGry+kPGmMFREIV5Z6ZUXp1hWvv lhorVKWIu87hPL5j0C35fYfYemxg15oqoCVwCHTRrEz2UYNEDbZMMBnLbRVHKWaQ MdI+AqUwHEdyZbiNmAWXucCKz7o+I/seMlQ1Grp50ZGMwgf/UzD7mZVv5GQuRWHj XaCErS+nwZOh7oKHGPuPyvGissIMwEXwIr+EIesShr7J7xbPcFXtqGlg/sw55pHB uxRcevN8NfHA2N3z7rpDp9D14n10MMqDN/hMVxubWm2nPuuCxl8Fvg5lqF9qqdVU 91BF9cN1z0WY8/yp70dy1BHR52oAJq3z+imNA1PH49xKecd+Vb3tFkcZVS/ZvXkl SeD5Af1c0IYel22IsKytdSK9hidHpO01OR68ddV0b4/Zllf/P4ZtrM0kxEa9AqK+ loYP2ZuyCgMrOGIg7OXoRf+8fScBt27pfn52Cp0w2dmYrXIMFZiQWt2NfeU8gOoh VuPq2dQm1uiaqBAb8U++VwTQ5dNDCs8oxlmT1sjVOOMQTKUeAZJ62EqeLa0rTbW4 Xbt30nwhnJu1MBXX/BtvSAbXaPCHLqO2XRoib2Z8ztBKCLFHu+syx1fAQTOD7OM0 zGrwRwPAfcikwxdwY7Vj5+WkhZJ9jyo6g8sbnMAefoIGJUu49DODT/4iRiju41C2 FhMp5ijPgRxy73gdY+kSfTJIh397t2izH3ncnrNzvKRw9eC7Fpn1I5HUhZU5AzHx VVls4it1oKFsdWVPBL+Xww+scgL96rSJhPbkq9RcqJFC8S9LHgdunjWJ+ABfvq8m Cf2U59BYvC/LpkPv9T3GrF2RnHC3sPPbRxvsqYCYG9yu2cgWvzQb0MUa6IES96xs GagwlpSoYFfpZEtBLjOm2KTmijfUWfDEXq++4DjydvGQbaj2+PNmWo1S3P2lCoON 4O1WtdrhCMscB4Xv7UphUv5mZftxwdZdG4K7lcnRdOB5n5mLTuyQs4FpSf87lBCA rrOlZ1Wc22TNROZYZ07+9Q/aJShHCxUnBerA0NR6KR8uUz9mVDzFgYs57RlMxLlO mpmI4FkqPGCkEUG4Q4TY+f0TtHVDZID/f3zzxdexlGUHIRJftjl2QAu0fEOXhIA5 dNNty3CZYjQCD+cXEU7EkFzgN75nBIvbuCJxZ3NKLTH26flGW/QArnD6XMEgqe/7 WVGTgokAD7/YYETXKoD6W9EFy0Hrd4ESQzcuc7JVCaDeSotE+mxXeSkaV5Q8T6oL fp7RWYnmfp7yM29Nhg5b5aP3fjNmOaeTsJHLIP5WrYw/1kEyVRCGCP9hGkgEB+lC 5avEx6hwlVh0Gue5X8cm6dggPxVe2Di6VJsJY1wnPcPEBLX8puwla0jKskbkvtgj Xjv/QYFWxaLrITN9qmgHRp97hWgAijWAt1USVEG+3GZzPnXTRgiaCmm2ZNUXXPDM 2zu7qcn48fFevyG7u0iS2OuPwELW82e7zLdZULQ3msvjnXdJKvMLn0YiFF2Q7CHg g8cHYrRabtaM5EN1UYT7t2gPJScR731K3aEtCtl5NL/0+j8v42yCpEubuJhKsJc2 eJm6ZGxmJRt7d3Vup69OKqZHjdd06ayMxZsRf22S9g0FneDbVCZkKuUaDxmvesRI 7Ph1MPUqLdStAHzY/R9BE5P57V3+Gtkr6ffuDXwvWuSNBS6nivTMbEl1CWH45G94 guWC5Q+t6CpJm40jF4wLlxs7+gCQjS1YE7uC92ifR7kNvgXjXPFClI0KP4C2VNqj 7hD+0/iXGptaFWMP+sNQwx8fDQkUguZ1v53PJuqjg4ren5L5XQ0xN8+WeuhfgKSu /HJTKlYwVeH5GipcyZvXmHIHlrA9J6Lkv7vNzMEvl9GQXKpKxsvQwvO14R8OKQlC OjWMdCf4rrc1px9MMMXcKDtB7T3z9NsLZK03BfIPPbOkYQQIeIuTWERdmpksQ772 3TPOPl4V8v5qglr/FBa1UtUPGaWK01KR7gYpfDf6aF8pA+t7kVJdYyhczURQBl5J J3vqD9DeBvTq5kuqLIqZdsYM43+d7Y2S/sjS1tJPBZiqL/9QChvVwJWcu0cL3G9n 3rTZOnjrYPI4QhlXbZoBoarOvtSCGkAZ3dQk5W51qj7eW00J/w11e0d/3Fqp9WSX 1kjShk6c3CVWppoX0OH7NQUVzeoeO5S2hxlm2esgIkJEdA7REJVXGmQ7HXuOkKg9 Zs57hhnogEomARKxo6/XuWiBDm+cH52ziXdp02wtzN9mjtYexzezm0bCzfCoeyn4 zdbol6JpYdpY9cFrJkHEqdGk/uzASRe9NIK34nxP2FTKbPgVDUhYQCLACcnmTGoj vyY7vQWNNyl6MaQ4+YenXlhyOQH8HsTxvTZ+eAd+ETTvSkRTGDuJEVCjDNPdSo55 Q5I/O8CSEKqwqBnx+BXWFdBFVKBUfdFwwBAX2lm57TIJ9fB+w/0ZtIuVB7tBn320 4qENsEN9no7Cl2TPo5gDUW2CIcqs2eoHhF/tIv+SXYYtXLCrUdRWTSVTZKhpFoNl 0rkodSa/dYXVLfwnQj6OxlshqB3l8kmNoQ3BWt/Zb+QvQUoOW+Bvp142/UrLLigS 76y8oeM8OaiILXodiaF/Fv6+7S4ETM9Wmp7vKQD3bbME3lvHTUhMk/M3GHhe1SRI WcX8jnwt6e+pNIbikOKRs8i5f+QyALS+I42uhAASvVdZ/LwMRCLUq/k3J7e1PaaA uwRgsEP3fUwKCpiv74QhAqkfuaTIht+kRc45gF+EDIW+Tkb0g/yyAF8C9zPwamAk //fd5ixiygKLwC9WCibichg+FNCqZtHEEw15AmBXM0Io7yOBedz9x775ieCdLeB9 68Nd4Szk25ca013Qqk2fh8K7tWnj3l4lZBBLpvl0SYSqSST8IQ1aWJ26WpzALewr R5z8BYwLdGxEEqurPU8CO6+Bk47MOs0KnzmiqgeSb1K2MOkS1AfLPf7aix4vF/IH 0o2JPy44WZOc0nfQ7hdwD/S96WA1244ksPdAsujFYx/w1tl78NmLAPFRrs69Tkat 8BkfYyLZZPSfJYdFhl6VqPErwXOS4+pqLbO5XYAESJlLhkQP6drjxpwssjhrCFnB Kdyxt8tyOIYx3bxwvWE5FUfbgaTPUITZvn6Z8Qq8U1+eeeOcl2OfbiOys619dxNu OaCwvciwVZ159QlTwr+AM2A5wCT9i9XVG1Nl8YXdLmlFZT0nSzA4ceaU9hEIPaX1 Taew0HwR9RKBAs1AtdM90dBftr1tqKLn+YA2x/gh3v99n7ZRqu9aNVep4+wEC/IL Tfr+dF4C981iQZDHycJtbvGHvlx1GcxbK6hPRza0iaQAumHMaMiWUTl4nG9v2JxY TUUp0duNo0N+PcH+fPPuB371VFOuxTBrUstk13fnu/4Hn/HLc6mZN6EXM5hI5n1U StFoQ4UtBPOnKejsL7CYrvaJhz9Bk8us9/GNA9zQu8im1G1Gaq+aeQfpAv43iVoH m9tYAahH9Vmo47vi6VGmuF+gOvEJRP0BMQhIBRP7FRzD4pnyQ0xsrhn9SPAA3DM5 urN9mYDpdOmwwfGm9PMO1KRxaORr3j+Fqp2Pao7JlY9SQEDBwtc/FiB+2bpzcTgz BujbhLqL1Cf1SLkEn7WlpUpIzbTq+zBu9RlT89s+N+5h4+az2NI9AsR8luy+oEMc SHoOmUC9613EmbAOputd8bBhGElxGOKILIWeni/CPG7/4aXXouOxsblPIy3HKqjl XPI1rylHfOXAKtdjaydPB8eD5IL2ltcl15fQDWrI3epYP3jhB63NWZucljgCqV+m HRuvi5BSn3pbz0QzFHDrWtDzNY23PJSChr+BEJujSpazwjTIV2UWh3K87X9yWM93 qGr7Is6VxwDivJGQGCrFXN73aFK7eHUyxu6K5jU1/92TPNiEIvq+H368fMPzgjVH +UjXfhWPI9/YWk541IXCaImZbU5NMRK14jddiIgmq7Dcp6pSDQXc8VHxVKAU6szy SIDXIMghl9gErJYZEgziTl6iX5LFCnzaTPxOOgIQINRJ+98cfnsm4dhMBPNr1VUH 28zs5waHBvpPTT8k8DJtuCTLJrQS5jHobKbCjhkhzBmDAuwqMQqt+MluSAAVRFEg 4rQPN+KOH0jLHOH7Akl5Hqb53gEWq0ewos3Dhf6TI/PxmP0vu5VSUSEffHEh1wk+ Key6365I1Vmadt9UJhGkb45a+qj8tlxiaLg/EuSnJwAArKYAwa1OZDEGVwy7SXJA LRzu+ox9MW9M488CC+e5voofZ63ep6TmPS9UU2bywQ43Byg7gKxV41zNZH+x1zdZ F5QtvJYUhAwz/s/1u3YPOMnysxzkUrRMQK/HsGPKaMkr14PH3qrmf2dl8p03nn4A 9mGNDfU3hW8whjMARX8DxXNML3Rr9W4vRqL3ptjzXY1Lv/hXiCs+z0f+CyMsZKYA elikx2NRqv8AUpKsDH2gWbS4yIkno5KxlQH1/OXy0WNwcaxzylPsuwyS6zNB8zme ceqmgYIrbkVO7+Gtmytg5nN2+7fIRTb8dfTB7g3Ccfm5jaYtFqd1i9bGJeSPKiyd 7j3u4nraS7IF9jW3HjcFNKQWOSt+iOcpobv7qnvCk0jEShBdWVoDZ0CC624x0WQz eV5B0AzbouMgmMZiVXJWVTAoc1rYBKn6UZR8aMIA7WgddHbdkcWr49tPo10gBGKI ag1ViD31SBu8izoWjBg6HeTkPCvnfMyRmHxOyfo8fnN8p+2WjBhAHYxpy6MvdHBA oykfcTtHizLRWNUL/p/B8I46S4VQPwkhou0asBaGV3XR5H6xDmXfZZ0OopCNmhuP KLmbNMeFXOIAjwCLRn/AnBl8BwTt1C+5IvoAQtp1/SaTlFXnPyBpE/DMpqvO0XXK 5Owf7S/iNMH7V9BGv2DBwmIH+bE8zLxdWnJcmldRfJ2i7O+FZ5VlHPoTTv8YuhsO L3z9is1VvFqKccnBd64sQ0Ezhp6arrHY46c73+iTIo1sQLJgaY0MJnWVKt22RI/E 6Pr5ZiO+NeLWBJsUwGMNc6Wj52g2d/oXS4+/sUZBPVWDln100xPPW3k7GC6i44U1 1GWcxyx7YbUUqX836AZIpEMW6RFEwQoGQkW0RWQu/RvsvXwnriwh8jGcdjfEgw7f TNxX84OBudOQJ38+tbQlwoCy70L1uNhJ1IknlhsD4MtavcwoBPyfYy5+bCXFwtPo c2lzpn0xVBqfAvnzINvcZjdnf2d7M8a/pi91rjgwDpHxCPRJPXo900h+Eg2JXS15 ctEyiRhYiEC88KCVQq0LIWFMDCaxc6H1HVA+6GT9OPWNZZHdUc1cFU3blrfVSBt5 hSH684SXUGltDWHlGsGhggKRh2IZ6JKV69Oct/zF0unaXZgc9Ckonu6USCS3EciV 5AbupIRrJoEjAt995eFNuNHnwOo29W378mI+hGHs5bD6gxnkYI/E7fFpzU3NdxED uvDlZfsf92vulPnAgTHNrmAYWUftIrwtk4J4013WsxrC0Tl1frTTaN5Jsr+PIHQH +M7HGkgJmzmtIca95rl2rP8W+HmkxSuoZAtROkxRotTZzq+TpMecZ7504z0YjVsB jucbTNRYiCqnKnWv+tRWTDDqiJEWtcWOYcTL/maqa7DKFlB2kywIfdC0TT6z6yOB 2zxXZoE/EBm4JTjLcEA9RUUaQUTyeqm81lW7tQ7L0kzDx1Mx4x/tj2DBaCuZBrv2 vloHh8KnlIBO1rkoMILQ+wGqnJBXZGF8a3gm3jJYFwkWz5rpRFFAKak04+uQ4/rj vLPx3+JmSqukruU83u5hzWicJbFJmPftN4C4uFRtcp6w31ClJ124Vj0x2V6M5L2R kwYZfvxnzObZ5FPEMY9Rd+2B0cmLYLu6cgFeJDNFrwHR9oTpHVVzcn7PQEb0iXBA W8qZmcWp1TcDhxL2MLbLTeDMPGnSDMkf3AHinXGZEym6aSGAqWqjTRUlX3TrIcCz xNvg2t+RjL4rOqXEJDWJFpH844oDqDSvFflAfDcfuIhJOJmPlCSdbqZgSNgsjqXd fjyZQqbUx11X5BHyhZkD9kxdpeMgWiz2AUmH7eDxjeESpyGfi5URpgwuWYZVJlfJ VoE7+G/oR5o9vgCX6xgzyC8cCPfz1+M50DNLgGiIBaW5ibXCMlZlyYDGLrS9y5cN b8MBQRymo+07gITr9T+KFNCJeK1HMrszizXE/IvDC5q1aU/eGLq3N7WDNT/hVVw9 Hri7Mj8P3TKPcmeYQ+Q1bdLDl2DxqKyE1Hdddmel9ii4RqNbLgmfO/oGXVwdjnfX AhnJe8Kc8ZRDLQsfksxbwxH7Xi8w1wGKVA8EiJ2VC8CW7NDZwhP+WqS6dlReu+Rz KG8RzO5Jvs83meeqQ9R9flgYOQVEiH3dBdlWSadOcMM9RpwjVERNCGF3XeVFIcfC G/naDzoOikXr33nHUC3u64xMkspQ0BnjpC6L9mvPMEA9hsNvgikpTkvz3SwFggzs 9SiMTIRcMllaGJUR6kh7QiUUfLUojYG2CX5aZNrfJ8ZLNEAeDNJakthmCuZrbB48 FLQCOBg3fN+ZEo5c6NVQMx2oGMmlxnrdNQ8swAVQh/oGIIURUBQ1B7/xPsXeRhX6 cqlBwQVNY8ZLXzwcF8WbmiXN8DvSklLLDBsJB2keQ4BcsGXXfG8ao+EpKRUMwwhc LBIpJESejlp7iQwMR+v7NhpWifJdwHv8gFvJt8AUceseLINwpItN3HM9gSRhCMP/ 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"items":{"type":"object","nullable":true},"type":"array"},"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Keys"],"summary":"Get Associated Sentinel Keys","description":"**Note:** Associating product keys with Sentinel keys applies only to Sentinel LDK enforcement.<br/>\nRetrieve the list of Sentinel keys associated with the specified product key.<br/>\n**<b>Authentication & Authorization:</b>**\nAuthentication is supported via JWT (Bearer Token) and HTTP Basic Authentication for the following vendor user login types only. This endpoint is not supported for any other login type.\n- **Vendor User (Administrator):** Only authentication is required.\n- **Vendor User (Standard):** Both authentication and authorization are required. After successful authentication, the following authorization checks are performed:\n    - The vendor user must have entitlement modification permissions.\n    - The specified product key must belong to a market group that the vendor user can access.\n    - All Sentinel keys must belong to market groups to which the user has access.\n","operationId":"getAssociatedSentinelKeys","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"List of associated Sentinel keys retrieved successfully.","content":{"application/json":{"schema":{"properties":{"productKey":{"description":"Contains the list of Sentinel keys to associate with the specified product key.","properties":{"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"items":{"type":"object","nullable":true},"type":"array"},"associatedKey":{"description":"List of Sentinel keys to associate with the specified product key. Any duplicate Sentinel keys are ignored.","example":[{"key":{"keyId":"142435564646546"}},{"key":{"c2v":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}}],"items":{"properties":{"key":{"properties":{"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"142435564646546"},"c2v":{"type":"string","description":"The encoded content of the Customer-to-Vendor (C2V) file that was generated on the client system. The C2V file includes the system fingerprint, the current license state, and secure session data for the specified Sentinel key ID.","example":"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 5mCaQ2abb5cWhPz4Hm9Z50s="}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Keys"],"summary":"Remove Sentinel Key Association","description":"**Note:** Associating product keys with Sentinel keys applies only to Sentinel LDK enforcement.<br/>\nRemove all Sentinel key associations from the specified product key.<br/>\n**<b>Authentication & Authorization:</b>**\nAuthentication is supported via JWT (Bearer Token) and HTTP Basic Authentication for the following vendor user login types only. This endpoint is not supported for any other login type.\n- **Vendor User (Administrator):** Only authentication is required.\n- **Vendor User (Standard):** Both authentication and authorization are required. After successful authentication, the following authorization checks are performed:\n    - The vendor user must have entitlement modification permissions.\n    - The specified product key must belong to a market group that the vendor user can access.\n    - All Sentinel keys must belong to market groups to which the user has access.\n","operationId":"removeSentinelKeyAssociation","parameters":[{"name":"pkId","in":"path","description":"Unique identifier of the product key. Possible values are: \n  - pkId (For example: 00000000-0000-0000-0000-000000000000)\n  - externalId (For example: externalId=itemExternalId)\n","schema":{"type":"string"},"required":true},{"name":"keyId","in":"query","description":"Unique identifier of the Sentinel key to remove from the association.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}}],"responses":{"200":{"description":"Sentinel key associations successfully removed from the product key."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/activatedProducts":{"get":{"tags":["ActivatedProducts"],"summary":"Search Activated Products","description":"\n **Note:** This endpoint is relevant only for Sentinel LDK enforcement. \n Retrieve a list of activated products that match the given query parameters. \n If you do not specify any query parameters, the endpoint returns all records.","operationId":"searchActivatedProducts","parameters":[{"name":"name","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the product.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique identifier (id) of the customer who activated the products.","schema":{"type":"string"}},{"name":"keyId","in":"query","description":"Unique identifier of the Sentinel key.","schema":{"type":"string"}},{"name":"hostedService","in":"query","description":"Whether the product is associated with a Thales-hosted cloud-licensing key (CL key).","schema":{"type":"boolean"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are name, identifier, customerId and keyId.","schema":{"type":"string","enum":["name","identifier","customerId","keyId"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are name, identifier, customerId and keyId.","schema":{"type":"string","enum":["name","identifier","customerId","keyId"]}}],"responses":{"200":{"description":"<i>OK</i> - Operation successful\n","content":{"application/json":{"schema":{"description":"List of the activated products.","properties":{"activatedProducts":{"type":"object","properties":{"count":{"description":"Total number of the activated products.","type":"integer","example":1},"activatedProduct":{"items":{"properties":{"identifier":{"type":"string","description":"Unique identifier of the activated product.","example":"7788"},"keys":{"description":"List of the Sentinel keys associated with the activated product.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel keys associated with the activated product.","example":"612418576471321700"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"Name of the activated product.","example":"TestProduct"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningPlans":{"post":{"tags":["Provisioning"],"summary":"Add Provisioning Plan","description":"Add a new provisioning plan.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"addPlan","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningPlan"],"properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Unique name of the provisioning plan."},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"state":{"type":"string","example":"ENABLE","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"}},"required":["name"],"nullable":true}}}}},"description":"Details of the provisioning plan to be added.\n"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"Provisioning plan created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Provisioning"],"summary":"Search Provisioning Plans","description":"Retrieve a list of provisioning plans that match the given query parameters.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"searchPlans","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the provisioning plan. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the provisioning plan.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the provisioning plan.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the provisioning plan.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search provisioning plan.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search provisioning plan.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["identifier","name","description","creationDate","modifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["identifier","name","description","creationDate","modifiedDate"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"provisioningPlans":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"provisioningPlan":{"items":{"required":["name"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningPlans/{planId}":{"get":{"tags":["Provisioning"],"summary":"Get Provisioning Plan","description":"Retrieve a specific provisioning plan based on its unique identifier.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"getPlan","parameters":[{"name":"planId","in":"path","description":"Unique identifier of the provisioningPlan. Possible values are:\n - id  \n - name (For example: name=planName)\n - identifier (For example: identifier=planIdentifier)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Provisioning"],"summary":"Replace Provisioning Plan","description":"Completely replace the provisioning plan. You can modify only enabled or disabled provisioning plan.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"updatePlan","parameters":[{"name":"planId","in":"path","description":"Unique identifier of the provisioningPlan. Possible values are:\n - id  \n - name (For example: name=planName)\n - identifier (For example: identifier=planIdentifier)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningPlan"],"properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."}},"required":["name"],"nullable":true}}}}},"description":"Details of the provisioning plan to be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Provisioning"],"summary":"Update Provisioning Plan","description":"Perform a partial update of the provisioning plan.You can modify only enabled or disabled provisioning plan.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"partialUpdatePlan","parameters":[{"name":"planId","in":"path","description":"Unique identifier of the provisioningPlan. Possible values are:\n - id  \n - name (For example: name=planName)\n - identifier (For example: identifier=planIdentifier)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningPlan"],"properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."}},"nullable":true}}}}},"description":"Details of the provisioning plan to be updated.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"Unique identifier of the provisioning plan."},"state":{"type":"string","description":"State of the provisioning plan. \nPossible values are:\n\n- ENABLE: The plan can be associated with the provisioning product.\n- DISABLE: The plan cannot be associated with the provisioning product. The disabled plan can be enabled again. \n- CLOSE: Specifies that the provisioning plan is obsolete and cannot be used for product association. The closed provisioning plan cannot be enabled again. \nDefault: ENABLE\n\nNote: When creating a provisioning plan, set the state to either ENABLE or DISABLE. You cannot create a plan with the state set to CLOSE."},"specFormat":{"type":"string","description":"Format of the provisioning plan.\n Valid value: JSON","example":"JSON"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.  It contains a set of static and/or dynamic expressions specified in a given format that includes whatever is required for provisioning. Enter the content in JSON format. You can use dynamic expressions to replace attribute values. For more details on how to use static values and dynamic expression in a provisioning plan, refer to <a href=https://docs.sentinel.thalesgroup.com/softwareandservices/ems/EMSdocs/UG/provisioningPlans.htm target=_blank>Sentinel EMS User Guide</a>.","example":"Plan in JSON format."},"creationDate":{"description":"Creation date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning plans.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","example":"provisioning plan description","description":"A user-friendly description of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Provisioning"],"summary":"Delete Provisioning Plan","operationId":"deletePlan","description":"Delete a provisioning plan that is not associated with any product. To delete a plan, you must first remove its associations.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","parameters":[{"name":"planId","in":"path","description":"Unique identifier of the provisioningPlan. Possible values are:\n - id  \n - name (For example: name=planName)\n - identifier (For example: identifier=planIdentifier)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningMethods":{"post":{"tags":["Provisioning"],"summary":"Add Provisioning Method","description":"Adds a new provisioning method. You can specify either CALLOUT or EMAIL as the method type.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"addMethod","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningMethod"],"properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"name":{"type":"string","example":"TestMethod","description":"Unique name of the provisioning method. You can enter up to a maximum of 50 characters."},"state":{"type":"string","example":"ENABLE","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"}},"required":["name"],"nullable":true}}}}},"description":"Details of the provisioning method to be added.\n - The `type` field determines the attributes to provide.\n  - If `type = CALLOUT`: configure `calloutAttributes`.\n  - If `type = EMAIL`: configure `emailAttributes`.\n"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"provisioningMethod created\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Provisioning"],"summary":"Search Provisioning Methods","description":"Retrieve all or a list of provisioning methods that match the given query parameters.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"searchMethods","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the provisioning method. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the provisioning method.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Unique identifier of the provisioning method.","schema":{"type":"string"}},{"name":"description","in":"query","description":"Description of the provisioning method.","schema":{"type":"string"}},{"name":"calloutURL","in":"query","description":"endpoint url used while used while creating a method.","schema":{"type":"string"}},{"name":"authProfileName","in":"query","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search provisioning methods.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search provisioning methods.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["identifier","name","description","creationDate","modifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["identifier","name","description","creationDate","modifiedDate"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"provisioningMethods":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"provisioningMethod":{"items":{"required":["name"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningMethods/{methodId}":{"get":{"tags":["Provisioning"],"summary":"Get Provisioning Method","description":"Retrieve a specific provisioning method based on its unique identifier.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"getMethod","parameters":[{"name":"methodId","in":"path","description":"Unique identifier of the provisioning method. Possible values are:\n - id  \n - name (For example: name=methodName)\n - identifier (For example: identifier=methodIdentifier)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Provisioning"],"summary":"Replace Provisioning Method","description":"Completely replace the provisioning method. You cannot change the type of an existing provisioning method.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"updateMethod","parameters":[{"name":"methodId","in":"path","description":"Unique identifier of the provisioning method. Possible values are:\n - id  \n - name (For example: name=methodName)\n - identifier (For example: identifier=methodIdentifier)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningMethod"],"properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."}},"required":["name"],"nullable":true}}}}},"description":"Details of the provisioning method to be updated.\nThe type field determines the attributes to provide. You must set calloutAttributes for the CALLOUT type and emailAttributes for the EMAIL type."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Provisioning"],"summary":"Update Provisioning Method","description":"Update the provisioning method details. You cannot change the type of an existing provisioning method.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"partialUpdateMethod","parameters":[{"name":"methodId","in":"path","description":"Unique identifier of the provisioning method. Possible values are:\n - id  \n - name (For example: name=methodName)\n - identifier (For example: identifier=methodIdentifier)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningMethod"],"properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."}},"nullable":true}}}}},"description":"Details of the provisioning method to be updated.\nThe type field determines the attributes to provide. You must set calloutAttributes for the CALLOUT type and emailAttributes for the EMAIL type."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or system-generated identifier of the provisioning method."},"state":{"type":"string","description":"State of the provisioning method. Possible values:\n\n- ENABLE: The provisioning method can be associated with a provisioning-enabled product.\n- DISABLE: The provisioning method cannot be associated with a provisioning-enabled product. A disabled method can be enabled again.\n- CLOSE: The provisioning method is obsolete and cannot be associated with a provisioning-enabled product. A closed provisioning method cannot be enabled again.\nDefault: ENABLE\n\nNote: When creating a provisioning method, set the state to either ENABLE or DISABLE. You cannot create a method with the state set to CLOSE."},"calloutAttributes":{"description":"Required only when type of the provisioning method is set to \\\"CALLOUT\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"emailAttributes":{"description":"Required only when type of the provisioning method is set to \\\"EMAIL\\\".","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Webhook ID returned from webhook."},"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. If no email addresses are specified at the method level, To recipients must be specified at the provisioning product association level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses at the provisioning product association level is optional."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses at the provisioning product association level is optional."}},"nullable":true},"creationDate":{"description":"Creation date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"modifiedDate":{"description":"Last modified date of the provisioning method.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"type":{"type":"string","description":"Type of the provisioning method. Possible values:\n\n- CALLOUT: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- EMAIL: Requires you to configure the email attributes to specify the receiver of the provisioning request.\nDefault: CALLOUT","example":"CALLOUT"},"description":{"type":"string","example":"provisioning method description","description":"A user-friendly description of the provisioning method."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Provisioning"],"summary":"Delete Provisioning Method","operationId":"deleteMethod","description":"Delete an existing provisioning method that is not associated with any product.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","parameters":[{"name":"methodId","in":"path","description":"Unique identifier of the provisioning method. Possible values are:\n - id  \n - name (For example: name=methodName)\n - identifier (For example: identifier=methodIdentifier)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/productConsumerAuthorizations/{productConsumerAuthorizationId}/consumers":{"delete":{"description":"Remove a user from an existing product-user association using the contactId. \n \nNote: \n - Only the specified user is removed; all other user associations remain unaffected. \n - Use this endpoint only if the Enable User-Product Association administration console property is set to Yes, and there is at least one product for which the named user limit is disabled.","tags":["Customer"],"summary":"Remove Association","operationId":"removeAssociation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"productConsumerAuthorizationId","in":"path","description":"Auto-generated unique identifier of the product-user association. Possible values are: \n  - id \n  - productIdentifier (For example: productIdentifier=10)\n","schema":{"type":"string"},"required":true},{"name":"contactId","in":"query","description":"Unique identifier for the contact to be dissociated.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningAssociations":{"get":{"tags":["Provisioning"],"summary":"Search Product Associations","description":"Retrieve a list of provisioning products that match the given query parameters.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"searchProductAssociations","parameters":[{"name":"productId","in":"query","description":"Auto-generated unique identifier of the product.","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"User-defined identifier of the product.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"productVersion","in":"query","description":"Version of the product.","schema":{"type":"string"}},{"name":"planId","in":"query","description":"Auto-generated unique identifier of the provisioning plan.","schema":{"type":"string"}},{"name":"planIdentifier","in":"query","description":"User-defined or auto-generated unique identifier of the provisioning plan.","schema":{"type":"string"}},{"name":"planName","in":"query","description":"Name of the provisioning plan.","schema":{"type":"string"}},{"name":"methodId","in":"query","description":"Unique identifier of the provisioning method.","schema":{"type":"string"}},{"name":"methodIdentifier","in":"query","description":"User-defined or auto-generated unique identifier of the provisioning method.","schema":{"type":"string"}},{"name":"methodName","in":"query","description":"Name of the provisioning method.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search provisioning products.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search provisioning products.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["productName","provisioningPlan","provisioningMethod","planId","methodId","lastAssociatedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["productName","provisioningPlan","provisioningMethod","planId","methodId","lastAssociatedDate"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"provisioningAssociations":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"provisioningAssociation":{"items":{"properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"},"name":{"type":"string","example":"TestProduct"}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."}},"nullable":true},"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"calloutAttributes":{"type":"object","nullable":true,"properties":{"calloutId":{"type":"string","example":""},"calloutURL":{"type":"string","example":""},"authProfileId":{"type":"string","example":""},"authProfileName":{"type":"string","example":""}}}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningAssociations/{productId}":{"patch":{"tags":["Provisioning"],"summary":"Update Product Association","description":"Update an existing provisioning–product association.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"partialUpdateProductAssociationapi","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the provisioning Product. Possible values are:\n - id  \n - productNameVersion (For example: productNameVersion=TestProduct:1.0)\n - productIdentifier (For example: productIdentifier=1)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningAssociation":{"type":"object","properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."}},"nullable":true},"provisioningMethod":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}}}},"required":["provisioningAssociation"]}}},"description":"Provisioning product association details to be updated. When provisioning method type is:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"required":["productName"],"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Provisioning"],"summary":"Replace Product Association","description":"Completely replace the method and plan associated with a provisioning product.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"updateProductAssociationapi","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the provisioning Product. Possible values are:\n - id  \n - productNameVersion (For example: productNameVersion=TestProduct:1.0)\n - productIdentifier (For example: productIdentifier=1)\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningAssociation":{"type":"object","properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"required":["productName"],"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."}},"nullable":true},"provisioningMethod":{"properties":{"id":{"example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}}}},"required":["provisioningAssociation"]}}},"description":"Provisioning product association details to be updated. When provisioning method type is:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"required":["productName"],"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Provisioning"],"summary":"Get Product Association","description":"Retrieve a specific provisioning–product association based on its unique identifier.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"getProductAssociation","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the provisioning Product. Possible values are:\n - id  \n - productNameVersion (For example: productNameVersion=TestProduct:1.0)\n - productIdentifier (For example: productIdentifier=1)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the product."},"productIdentifier":{"type":"string","example":"1","description":"User-defined identifier of product."},"productNameVersion":{"required":["productName"],"properties":{"productName":{"type":"string","description":"Name of the product.","example":"TestProduct"},"version":{"type":"string","description":"Version of the product.","example":"1.0"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"productType":{"type":"string","example":"default","description":"Type of the product. You can enable provisioning for only default products."},"provisioningPlan":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning plan."},"identifier":{"type":"string","example":"TestIdentifier","description":"User-defined or auto-generated unique identifier of the provisioning plan."},"name":{"type":"string","example":"TestPlan","description":"Name of the provisioning plan."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"provisioningMethod":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique identifier of the provisioning method."},"identifier":{"type":"string","example":"TestIdentifier","description":"Auto-generated unique identifier of the provisioning method."},"emailAttributes":{"properties":{"toEmail":{"type":"string","example":"user1@example.com,user2@example.com","description":"A comma-separated list of up to 5 To email addresses. The To parameter must include at least 1 address. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"ccEmail":{"type":"string","example":"cc1@example.com,cc2@example.com","description":"A comma-separated list of up to 5 Cc email addresses. Configuring Cc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."},"bccEmail":{"type":"string","example":"bcc1@example.com,bcc2@example.com","description":"A comma-separated list of up to 5 Bcc email addresses. Configuring Bcc email addresses is optional. Email addresses specified at the provisioning method level are carried over to the provisioning product association level. You can modify the list at the association level by adding or removing addresses. Changes made at the association level are not reflected at the method level."}},"nullable":true},"name":{"type":"string","example":"TestMethod","description":"Name of provisioning method."},"type":{"type":"string","example":"EMAIL","description":"Type of the provisioning method. Possible values:\n - CALLOUT, no need to configure calloutAttributes at the provisioning product association level.  \n - EMAIL, add or override the emailAttributes values at the provisioning product association level.\n"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"lastAssociatedDate":{"description":"Date of associating the provisioning plan or method with the product.","example":"2026-07-07 07:07","type":"string"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Provisioning"],"summary":"Delete Product Association","operationId":"deleteProductAssociatioapi","description":"Delete an existing provisioning-product association.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","parameters":[{"name":"productId","in":"path","description":"Unique identifier of the provisioning Product. Possible values are:\n - id  \n - productNameVersion (For example: productNameVersion=TestProduct:1.0)\n - productIdentifier (For example: productIdentifier=1)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/entitledProductIdentifiers":{"get":{"tags":["Customer"],"summary":"Search Entitled Product Identifiers","description":"Retrieves a list of activated products—along with attributes such as product name, identifier, and version—across all enforcements for the specified customer, based on the provided query parameters.\n Previously, this endpoint returned the entitled products related to Sentinel LDK for the specified customer.\n If no query parameters are specified, the endpoint returns all records.\n\n <br/> **<b>Authentication and Authorization</b>**  \n - Vendor User \n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ◦\tAdministrator Vendor Users and Service Accounts: Can retrieve the product list.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ◦ Standard Vendor Users with Customer Management permissions: Can retrieve the products list based on their market group. \n - Customer User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve the activated products for the customer they belong to.","operationId":"searchEntitledProductIdentifiers","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer.","schema":{"type":"string"},"required":true},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Name of the product.","schema":{"type":"string"}},{"name":"hostedService","in":"query","description":"Indicates whether the product is hosted on the Thales cloud license server or on-premises. Set to true to retrieve only cloud-hosted products; set to false to retrieve both cloud-hosted and on-premises products.\nDefault: false\n","schema":{"type":"boolean","enum":[false,true]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are productIdentifier, name.","schema":{"type":"string","enum":["productIdentifier","name"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are productIdentifier, name.","schema":{"type":"string","enum":["productIdentifier","name"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entitledProductIdentifiers":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of activated products retrieved for the specified customer.","example":1},"entitledProductIdentifier":{"items":{"properties":{"productIdentifier":{"type":"string","description":"The unique identifier of the product.","example":"1"},"version":{"type":"string","description":"Provides the base product version.","example":"1"},"customer":{"description":"Details about the customer associated with the activated product.","properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined unique identifier of the customer.","example":"EXT-ID-001"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"EXT-001"},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"name":{"type":"string","description":"The name of the product.","example":"Base Product Name"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/productConsumerAuthorizations":{"get":{"tags":["Customer"],"summary":"Search Associations","description":"Retrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchAssociations","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product. You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the product-user association. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"emailId","in":"query","description":"Unique email address of the user.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["productIdentifier"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["productIdentifier"]}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customer, consumers.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productConsumerAuthorizations":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of product and user association retrieved for the specified customer.","example":1},"productConsumerAuthorization":{"items":{"properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"00000000-0000-0000-0000-000000000000"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"}},"type":"object"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"post":{"tags":["Customer"],"summary":"Add Association","operationId":"addAssociation","description":"Create a new product and user association for the customer.\n\nUse this endpoint only if:\n- There is no existing association between the product and the customer. After the initial association, use the PATCH (Update Association) method to update user associations for the product and the PUT (Replace Association) method to remove them.\n- The product is already activated (regardless of whether product is with or without named user limit).\n- The Enable User-Product Association administration console property is set to Yes, and there is at least one product for which the named user limit is disabled.\n\nNote: If all products have the named user limit enabled, then you cannot associate users directly with the product. Use the Update Associated Access Grants or Replace Associated Access Grants endpoint to associate users with the license grant.\n","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customer":{"required":["customer"],"properties":{"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."}},"nullable":true},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product and user association to be added for a customer."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"productConsumerAuthorization":{"type":"object","properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"00000000-0000-0000-0000-000000000000"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"}},"type":"object"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"Product and user association created.\nThe unique identifier (id) of the new association is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/customers/{customerId}/productConsumerAuthorizations/{productConsumerAuthorizationId}":{"get":{"tags":["Customer"],"summary":"Get Association","description":"Retrieve a list of product and user associations matching the given parameters for the customer.","operationId":"getAssociation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"productConsumerAuthorizationId","in":"path","description":"Auto-generated unique identifier of the product-user association. Possible values are: \n  - id \n  - productIdentifier (For example: productIdentifier=10)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productConsumerAuthorization":{"type":"object","properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"00000000-0000-0000-0000-000000000000"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"}},"type":"object"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"Successful operation"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Customer"],"summary":"Replace Association","description":"Completely update an existing product and user association for the customer.\nTo remove a user from the product and user associations, use the Remove Association method.\n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\nUse this endpoint only if:\n- The product is already activated (regardless of whether product is with or without named user limit). \n- The Enable User-Product Association administration console property is set to Yes, and there is at least one product for which the named user limit is disabled. \n      \nNote: If all products have the named user limit enabled, then you cannot associate users directly with the product. Use the Update Associated Access Grants or Replace Associated Access Grants endpoint to associate users with the license grant.\n","operationId":"replaceAssociation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"productConsumerAuthorizationId","in":"path","description":"Auto-generated unique identifier of the product-user association. Possible values are: \n  - id \n  - productIdentifier (For example: productIdentifier=10)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.\nUse the same value for the productIdentifier parameter as specified for the productConsumerAuthorizationId parameter.","example":"10"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.\nUse the same value for the productIdentifier parameter as specified for the productConsumerAuthorizationId parameter.","example":"10"},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product and user association to be updated for a customer."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productConsumerAuthorization":{"type":"object","properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"00000000-0000-0000-0000-000000000000"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"}},"type":"object"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update Association","description":"Partially update an existing product and user association for the customer.\n- Any parameters not provided will be left unchanged.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\nUse this endpoint only if:\n- The product is already activated (regardless of whether product is with or without named user limit). \n- The Enable User-Product Association administration console property is set to Yes, and there is at least one product for which the named user limit is disabled.\n       \nNote: If all products have the named user limit enabled, then you cannot associate users directly with the product. Use the Update Associated Access Grants or Replace Associated Access Grants endpoint to associate users with the license grant.\n","operationId":"updateAssociation","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Auto-generated unique ID of the customer.","schema":{"type":"string"},"required":true},{"name":"productConsumerAuthorizationId","in":"path","description":"Auto-generated unique identifier of the product-user association. Possible values are: \n  - id \n  - productIdentifier (For example: productIdentifier=10)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"executedBy","description":"The user who initiated or performed the operation, when the authenticated (logged-in) user is a service account user.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.\nUse the same value for the productIdentifier parameter as specified for the productConsumerAuthorizationId parameter.","example":"10"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.\nUse the same value for the productIdentifier parameter as specified for the productConsumerAuthorizationId parameter.","example":"10"},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details of the product and user association to be updated for a customer."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"productConsumerAuthorization":{"type":"object","properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"}},"nullable":true},"customer":{"properties":{"id":{"type":"string","description":"Unique ID for the new product and user association.","example":"00000000-0000-0000-0000-000000000000"},"productIdentifier":{"type":"string","description":"Identifier of the product associated with a user.\nNote: When adding product and user association, it is mandatory to provide productIdentifier.","example":"10"},"enforcement":{"properties":{"id":{"type":"string","description":"Unique ID of the enforcement to which the associated product belongs.","example":"00000000-0000-0000-0000-000000000000"},"version":{"type":"string","description":"Version of the enforcement to which the associated product belongs.","example":"10.2"},"name":{"type":"string","description":"The name of the enforcement to which the associated product belongs.","example":"Sentinel LDK"}},"type":"object"},"customer":{"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the customer.","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer."},"externalId":{"type":"string","description":"Unique external identifier of the customer."},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"name":{"type":"string","description":"The name of the customer.","example":"TestCustomer"},"identifier":{"type":"number","description":"User-defined unique identifier of the customer.","example":""},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":""}},"nullable":true},"consumers":{"properties":{"consumer":{"items":{"properties":{"contact":{"description":"Details of the user you want to associate with the product.\nTo associate a user, specify at least one of the following parameters: id, emailId, or userId. When one or more of these parameters are specified, the priority order is id, emailId, and userId.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the user.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"name":{"type":"string","description":"Name of the user.\nNote: This is a read-only field.","example":"TestUser"},"userId":{"type":"string","description":"Unique ID of the user.","example":"userId"}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/provisioningRequests":{"get":{"tags":["Provisioning"],"summary":"Search Provisioning Requests","description":"Retrieve a list of provisioning requests that match the given query parameters.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"searchProvisionings","parameters":[{"name":"status","in":"query","description":"Status of the provisioning request.\nPossible Values are:\n\n- REQUEST_QUEUED: The provisioning request is created and queued for processing.\n- REQUEST_SENT: The provisioning request is sent to the receiver.\n- DISPATCH_FAILED: The provisioning request is not dispatched to the receiver.\n- IN_PROGRESS: The provisioning is under processing.\n- COMPLETED: The resource provisioning is complete.\n- FAILED: The resource provisioning failed.\n\nNote: Using the PATCH method, you can update the following statuses of a provisioning request: IN_PROGRESS, COMPLETED, FAILED.","schema":{"type":"string","enum":["REQUEST_QUEUED","REQUEST_SENT","DISPATCH_FAILED","IN_PROGRESS","COMPLETED","FAILED"]}},{"name":"methodName","in":"query","description":"Name of the provisioning method.","schema":{"type":"string"}},{"name":"planName","in":"query","description":"Name of the provisioning plan.","schema":{"type":"string"}},{"name":"productKey","in":"query","description":"Unique identifier of the provisioning product (or line item). You can specify multiple values separated by comma.","schema":{"type":"string"}},{"name":"productName","in":"query","description":"Name of the provisioning product (or line item).","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Unique identifier of the provisioning product (or line item). You can specify multiple values separated by comma. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product. You can specify multiple values separated by comma. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"productVersion","in":"query","description":"Version of the provisioning product (or line item).","schema":{"type":"string"}},{"name":"eId","in":"query","description":"User-specified or auto-generated identifier of the activation.","schema":{"type":"string"}},{"name":"aId","in":"query","description":"Unique identifier of the activation record.","schema":{"type":"string"}},{"name":"statusUpdateFrom","in":"query","description":"Start of the date range (YYYY-MM-DD format) in which the provisioning request status is updated.","schema":{"type":"string"}},{"name":"statusUpdateTo","in":"query","description":"Start of the date range (YYYY-MM-DD format) in which the provisioning request status is updated.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order.","schema":{"type":"string","enum":["productId","productName","statusId","eId","aId","actQuantity","statusUpdatedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order.","schema":{"type":"string","enum":["productId","productName","statusId","eId","aId","actQuantity","statusUpdatedDate"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"provisioningRequests":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"provisioningRequest":{"items":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique ID of the provisioning request.","format":"uuid"},"status":{"description":"Status of the provisioning request.\nPossible Values are:\n\n- REQUEST_QUEUED: The provisioning request is created and queued for processing.\n- REQUEST_SENT: The provisioning request is sent to the receiver.\n- DISPATCH_FAILED: The provisioning request is not dispatched to the receiver.\n- IN_PROGRESS: The provisioning is under processing.\n- COMPLETED: The resource provisioning is complete.\n- FAILED: The resource provisioning failed.\n\nNote: Using the PATCH method, you can update the following statuses of a provisioning request: IN_PROGRESS, COMPLETED, FAILED.","example":"2026-07-07 07:07","type":"string"},"activatedQuantity":{"example":2,"description":"Activated quantity of the product.","type":"integer"},"privateInfo":{"type":"string","example":"Refer to online documentation.","description":"Additional information related to change in the status of provisioning request. For example, URL of the provisioning instance or instructions on how to access and use the instance."},"comments":{"type":"string","example":"Additional remarks","description":"Additional comments related to the provisioning request."},"pkId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the product key."},"entitlement":{"properties":{"eId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the entitlement."}},"type":"object"},"aId":{"type":"string","description":"Activation Id of the product.","example":"00000000-0000-0000-0000-000000000000"},"statusUpdatedDate":{"description":"Status update date range of the provisioning request.","example":"2026-07-07 07:07","type":"string"},"createDateTime":{"description":"Date of creating the provisioning request.","example":"2026-07-07 07:07","type":"string"},"product":{"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the provisioning product (or line item). You can specify multiple values separated by comma."},"identifier":{"type":"string","example":"1","description":"Unique identifier of the provisioning product (or line item). You can specify multiple values separated by comma."},"version":{"type":"string","description":"Version of the provisioning product (or line item).","example":"1.0"},"name":{"type":"string","example":"TestProduct","description":"Name of the provisioning product (or line item)."}},"type":"object"},"provisioningPlan":{"description":"Description of the plan associated with the provisioning request.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the provisioning plan.","example":"00000000-0000-0000-0000-000000000000"},"planSpecifications":{"type":"string","description":"Details of the provisioning plan, such as number of connectors and the deployment type.","example":"Provisioning details"},"name":{"type":"string","description":"Name of the provisioning plan.","example":"TestPlan"}},"nullable":true},"provisioningMethod":{"description":"Description of the method associated with the provisioning request.","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the provisioning method.","example":"00000000-0000-0000-0000-000000000000"},"calloutAttributes":{"description":"Applicable when the type of the provisioning method is set to \"callout\"","properties":{"calloutId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the receiver of the provisioning request."},"calloutURL":{"type":"string","example":"www.example.com/mycallout","description":"The endpoint URL of the receiver of the provisioning request."},"authProfileId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the authentication profile associated with the provisioning method. Only basic authentication profiles are supported."},"authProfileName":{"type":"string","example":"TestAuthProfileName","description":"The <a href=?Configuration/addAuthProfile target=_self>authentication profile</a> name of the receiver of the provisioning request. Only basic authentication profiles are supported."}},"nullable":true},"name":{"type":"string","description":"Name of the provisioning method.","example":"TestMethod"},"type":{"type":"string","description":"Type of the provisioning method.\nPossible values:\n\n- callout: Requires you to configure the callout attributes to specify the receiver of the provisioning request.\n- email: Meant for future implementation. Currently not supported.","example":"callout"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true},"manualRetryCount":{"type":"integer","example":0}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/cloneProtectionSchemes":{"post":{"tags":["Catalog"],"summary":"Add Custom Scheme","operationId":"addCustomScheme","description":"**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant only for custom clone protection schemes.\n\nAdd a new custom clone protection scheme for physical or virtual machines.\nA clone protection scheme prevents unauthorized application usage by protecting against the cloning of physical or virtual machines.\n\n\n**When to use a custom clone protection scheme?**:\n\nSoftware vendors with customized devices that utilize proprietary fingerprints and run on the Linux operating system cannot use the Platform Default clone protection scheme. To address this, you can implement a custom clone protection scheme that allows you to lock the application to a secure identifier of your choice.\n\nWhen deploying on VMware ESXi servers, you can use a custom clone protection scheme to lock applications to Fully Qualified Domain Names (FQDN) instead of the Platform Default scheme for greater flexibility.\n","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["cloneProtectionScheme"],"properties":{"cloneProtectionScheme":{"properties":{"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"name":{"description":"Name of the clone protection scheme containing 1-18 characters.\n\nWhen creating a custom clone protection scheme, you must not use names reserved for predefined schemes: PMType1, PMType2, PMType3, PMType4, and FQDN for physical machines, and VMType1, VMType2, VMType3, VMType4, and FQDN for virtual machines.\n\n**Note:** The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to `PHYSICAL` and another scheme with the same name but `machineType` set to `VIRTUAL`.","type":"string","example":"VMCustomScheme"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","required":["minimumRequiredCriteria"],"properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true}},"required":["machineType","schemeType","name","customScheme"],"nullable":true}}}}},"description":"Details of the clone protection scheme to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"cloneProtectionScheme":{"properties":{"id":{"description":"Unique identifier of the clone protection scheme.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["machineType","schemeType","name"],"nullable":true}}}}},"description":"Clone protection scheme created. The unique identifier (id) of the new clone protection scheme is returned in the response."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"get":{"tags":["Catalog"],"summary":"Search Custom Schemes","description":"\n**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant for Platform Default and custom clone protection schemes. \nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchCustomSchemeList","parameters":[{"name":"id","in":"query","description":"Auto-generated unique identifier of the clone protection scheme. You must provide an exact value for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Unique name of the clone protection scheme.\n **Note**: For the **PLATFORM_DEFAULT** schemeType, the name is **PlatformDefault**.","schema":{"type":"string"}},{"name":"machineType","in":"query","description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","schema":{"type":"string","enum":["PHYSICAL","VIRTUAL"]}},{"name":"schemeType","in":"query","description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","schema":{"type":"string","enum":["CUSTOM","PLATFORM_DEFAULT"]}},{"name":"description","in":"query","description":"description of the clone protection scheme.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are id, name, machineType, and schemeType.\n\n **Note**: In ascending order, records for the **PLATFORM_DEFAULT** scheme type appear first, followed by the **CUSTOM** scheme type.","schema":{"type":"string","enum":["id","name","machineType","schemeType","description","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are id, name, machineType, and schemeType.\n\n **Note**: In descending order, records for the **CUSTOM** scheme type appear first, followed by the **PLATFORM_DEFAULT** scheme type.","schema":{"type":"string","enum":["id","name","machineType","schemeType","description","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search clone protection schemes.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search clone protection schemes.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cloneProtectionSchemes":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of clone protection scheme retrieved.","example":1},"cloneProtectionScheme":{"items":{"required":["machineType","schemeType","name"],"properties":{"id":{"description":"Unique identifier of the clone protection scheme.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/ldk/api/v5/cloneProtectionSchemes/{cloneProtectionSchemeId}":{"get":{"tags":["Catalog"],"summary":"Get Custom Scheme","description":"\n**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant for Platform Default and custom clone protection schemes.\nRetrieve a specific clone protection scheme based on its unique identifier.\n","operationId":"getCustomScheme","parameters":[{"name":"cloneProtectionSchemeId","in":"path","description":"Unique identifier (id) of the clone protection scheme.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"cloneProtectionScheme":{"properties":{"id":{"description":"Unique identifier of the clone protection scheme.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["machineType","schemeType","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"put":{"tags":["Catalog"],"summary":"Replace Custom Scheme","description":"\n**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant only for custom clone protection schemes.\nCompletely update an existing custom clone protection scheme. You can update a clone protection scheme if it is not associated with any product.\n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"replaceCustomScheme","parameters":[{"name":"cloneProtectionSchemeId","in":"path","description":"Unique identifier (id) of the clone protection scheme.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["cloneProtectionScheme"],"properties":{"cloneProtectionScheme":{"properties":{"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","required":["minimumRequiredCriteria"],"properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"required":["machineType","schemeType","name","customScheme"],"nullable":true}}}}},"description":"Details of the custom clone protection scheme to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"cloneProtectionScheme":{"properties":{"id":{"description":"Unique identifier of the clone protection scheme.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["machineType","schemeType","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"patch":{"tags":["Catalog"],"summary":"Update Custom Scheme","description":"\n**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant only for custom clone protection schemes.\nPerform a partial update of the custom clone protection scheme by setting the parameter values. You can update a clone protection scheme if it is not associated with any product. \n- Any parameters not provided will be left unchanged.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"updateCustomScheme","parameters":[{"name":"cloneProtectionSchemeId","in":"path","description":"Unique identifier (id) of the clone protection scheme.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["cloneProtectionScheme"],"properties":{"cloneProtectionScheme":{"properties":{"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"description":"Name of the clone protection scheme containing 1-18 characters.\n\nWhen creating a custom clone protection scheme, you must not use names reserved for predefined schemes: PMType1, PMType2, PMType3, PMType4, and FQDN for physical machines, and VMType1, VMType2, VMType3, VMType4, and FQDN for virtual machines.\n\n**Note:** The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to `PHYSICAL` and another scheme with the same name but `machineType` set to `VIRTUAL`.","type":"string","example":"VMCustomScheme"}},"nullable":true}}}}},"description":"Details of the custom clone protection scheme to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"cloneProtectionScheme":{"properties":{"id":{"description":"Unique identifier of the clone protection scheme.","type":"string","example":"00000000-0000-0000-0000-000000000000"},"machineType":{"description":"Specifies whether the clone protection scheme applies to physical or virtual machines. The value is case-sensitive.\n\nPossible values:\n- **PHYSICAL**: The clone protection scheme applies to physical machines.\n- **VIRTUAL**: The clone protection scheme applies to virtual machines.\n\n**Note**: The combination of `name` and `machineType` values is unique. For example, you can have a scheme named `TestScheme` with `machineType` set to **PHYSICAL** and another scheme with the same name but `machineType` set to **VIRTUAL**.","type":"string","example":"VIRTUAL"},"schemeType":{"description":"Type of the clone protection scheme. The value is case-sensitive.\n\nPossible values:\n- **CUSTOM**: A user-defined clone protection scheme created by configuring a set of criteria within the `customScheme` object, including the minimum number of criteria that must match for license validation.\n- **PLATFORM_DEFAULT**: Automatically applies the most appropriate clone protection scheme based on various parameters, such as the application’s environment and RTE version number.\n\n**Note**: You can create, update, replace, and delete custom clone protection schemes. The PLATFORM_DEFAULT scheme is pre-defined and cannot be edited or deleted.","type":"string","example":"CUSTOM"},"customScheme":{"description":"The set of criteria to include in a custom clone protection scheme. You must include at least one criterion and set the minimum number of required criteria to at least 1, but not exceeding the total number of enabled criteria.","properties":{"sid":{"description":"Whether to include SID (Security Identifier) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"machineId":{"description":"Whether to include machine ID in a custom clone protection scheme. This ID refers to the motherboard (on a PC) or an Android device serial number.\n\n**Default:** `false`","type":"boolean"},"cpu":{"description":"Whether to include CPU information (excluding CPU UID) in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"fqdn":{"description":"Whether to include FQDN (Fully Qualified Domain Name) in a custom clone protection scheme. Not supported for Android.\n\n**Default:** `false`","type":"boolean"},"ipAddress":{"description":"Whether to include IP address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"hardDisk":{"description":"Whether to include hard disk details in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"vmGenerationId":{"description":"Whether to include the VM generation ID of Windows VM in a custom clone protection scheme. Supported only for the `VIRTUAL` `machineType`.\n\n**Default:** `false`","type":"boolean"},"ethernetAddress":{"description":"Whether to include MAC address in a custom clone protection scheme.\n\n**Default:** `false`","type":"boolean"},"minimumRequiredCriteria":{"description":"Minimum number of criteria that must match when validating the license. You can set a number between 1 and the total number of enabled criteria (set to true). For example, if you enabled four criteria, enter a number from 1 to 4.\n\n**Default:** `1`","type":"integer","example":2},"strictCheckingCriteria":{"description":"Whether to enforce strict checking criteria for clone protection. This validates the license using all of the enabled criteria that are present when a license is generated.\n\n**Default:** `false`","type":"boolean","example":true},"custom_id_1":{"description":"A vendor-defined custom fingerprint that you can use instead of the default fingerprint mechanism. Use custom fingerprints when operating in specialized environments where licenses must be bound using vendor-defined system identifiers, such as proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can set this value on its own, or combine it with other fingerprint values depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"custom_id_2":{"description":"An additional vendor-defined custom fingerprint that you can use along with other fingerprint identifiers instead of the default fingerprint mechanism. Use this field when multiple vendor-defined system identifiers are required to bind licenses in specialized environments, such as when combining proprietary hardware information, virtual environment attributes, or software environment hashes.\nYou can use this value on its own or with custom_id_1 or other fingerprint values, depending on the custom clone protection scheme configuration.","type":"boolean","example":true},"description":{"description":"Description for the custom clone protection scheme. You can use this parameter to document the purpose or details of the custom clone protection scheme. You can specify up to 512 characters.","type":"string","example":"Description of the custom ID fields"}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["machineType","schemeType","name"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"delete":{"tags":["Catalog"],"summary":"Delete Custom Scheme","description":"\n**Note:** Clone protection management applies only to Sentinel LDK SL keys. This endpoint is relevant only for custom clone protection schemes.\nDelete a clone protection scheme that is not associated with any product.\n","operationId":"deleteCustomScheme","parameters":[{"name":"cloneProtectionSchemeId","in":"path","description":"Unique identifier (id) of the clone protection scheme.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/ems/api/v5/provisioningRequests/{provisioningId}/statusUpdate":{"patch":{"tags":["Provisioning"],"summary":"Update Provisioning Request Status","description":"Update the status of the provisioning request.\nNote: This endpoint works with only admin credentials and for standard users with catalog permissions.","operationId":"updateProvisioningStatus","parameters":[{"name":"provisioningId","in":"path","description":"Unique identifier of the provisioning request.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["provisioningRequest"],"properties":{"provisioningRequest":{"properties":{"aId":{"type":"string","description":"Unique identifier of the activation record.","example":"00000000-0000-0000-0000-000000000000"},"provisioningId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique ID of the provisioning request.","format":"uuid"},"status":{"type":"string","description":"Status of the provisioning request.\nPossible Values are:\n\n- REQUEST_QUEUED: The provisioning request is created and queued for processing.\n- REQUEST_SENT: The provisioning request is sent to the receiver.\n- DISPATCH_FAILED: The provisioning request is not dispatched to the receiver.\n- IN_PROGRESS: The provisioning is under processing.\n- COMPLETED: The resource provisioning is complete.\n- FAILED: The resource provisioning failed.\n\nNote: Using the PATCH method, you can update the following statuses of a provisioning request: IN_PROGRESS, COMPLETED, FAILED.","example":"IN_PROGRESS"},"statusUpdateDate":{"description":"Date when the status of the provisioning request was updated.","example":"2026-07-07 07:07","type":"string"},"privateInfo":{"type":"string","example":" Refer to online documentation.","description":"Additional information related to change in the status of provisioning request. For example, URL of the provisioning instance or instructions on how to access and use the instance."},"comments":{"type":"string","example":"Additional remarks","description":"Additional comments related to the provisioning request."}},"nullable":true,"required":["provisioningId"]}}}}},"description":"Provisioning status and other optional details to be updated. The status value is mandatory in the request. If only optional fields, such as privateInfo and comments need an update, specify the original value of status in the request."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningRequest":{"properties":{"aId":{"type":"string","description":"Unique identifier of the activation record.","example":"00000000-0000-0000-0000-000000000000"},"provisioningId":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Auto-generated unique ID of the provisioning request.","format":"uuid"},"status":{"type":"string","description":"Status of the provisioning request.\nPossible Values are:\n\n- REQUEST_QUEUED: The provisioning request is created and queued for processing.\n- REQUEST_SENT: The provisioning request is sent to the receiver.\n- DISPATCH_FAILED: The provisioning request is not dispatched to the receiver.\n- IN_PROGRESS: The provisioning is under processing.\n- COMPLETED: The resource provisioning is complete.\n- FAILED: The resource provisioning failed.\n\nNote: Using the PATCH method, you can update the following statuses of a provisioning request: IN_PROGRESS, COMPLETED, FAILED.","example":"IN_PROGRESS"},"statusUpdateDate":{"description":"Date when the status of the provisioning request was updated.","example":"2026-07-07 07:07","type":"string"},"privateInfo":{"type":"string","example":" Refer to online documentation.","description":"Additional information related to change in the status of provisioning request. For example, URL of the provisioning instance or instructions on how to access and use the instance."},"comments":{"type":"string","example":"Additional remarks","description":"Additional comments related to the provisioning request."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["status"],"nullable":true}}}}},"description":"Resource created successfully"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts":{"post":{"tags":["Customer"],"summary":"Add Machine Account","operationId":"addAccount","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nCreate a new machine account for a customer.\nA machine account refers to the end user of a customer who uses the licensed application. Each machine account is associated with a single identity, which is represented by an identity string.\n","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["account"],"properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Unique name of the machine account created for a customer. You can specify up to 64 alphanumeric characters.","example":"TestMachineAccount"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"Details of the machine account to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"Machine account created.\nThe unique identifier (id) of the new machine account is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"get":{"tags":["Customer"],"summary":"Search Machine Accounts","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchAccounts","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Unique name of the machine account.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique identifier (id) of the customer. You can specify up to 50 values separated by commas.","schema":{"type":"string"}},{"name":"notificationEmail","in":"query","description":"Email address of end users who receive machine account-related notification emails.","schema":{"type":"string"}},{"name":"state","in":"query","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n","schema":{"type":"string"}},{"name":"identityCode","in":"query","description":"Unique identifier of the client identity for the machine account.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are id, name, notificationEmail, state, customerId, identityCode, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","name","notificationEmail","customerId","state","identityCode","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are are id, name, notificationEmail, state, customerId, identityCode, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","name","notificationEmail","customerId","state","identityCode","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search machine account.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search machine account.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accounts":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"account":{"items":{"required":["name","customerId"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts/{accountId}":{"get":{"tags":["Customer"],"summary":"Get Machine Account","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\n Retrieve a specific machine account based on its unique identifier.","operationId":"getAccount","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Customer"],"summary":"Replace Machine Account","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\n Completely update an existing machine account. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"updateAccount","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["account"],"properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"required":["name","customerId"],"nullable":true}}}}},"description":"Details of the machine account file to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Customer"],"summary":"Update Machine Account","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nPerform a partial update of the given machine account by setting the values of the parameters provided.\n- Any parameters not provided will be left unchanged.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n","operationId":"partialUpdateAccount","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["account"],"properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}}}}},"description":"Details of the machine account file to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Customer"],"summary":"Delete Machine Account","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nDelete a machine account.","operationId":"deleteAccount","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts/{accountId}/syncState":{"post":{"tags":["Customer"],"summary":"Synchronize Machine Account","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nSynchronize the state of a machine account in Sentinel EMS and the Sentinel LDK cloud license server. This operation syncs the information of client identities in Sentinel LDK cloud license server based on the machine account data available in Sentinel EMS.\n","operationId":"synchronizeAccount","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the machine account.","example":"00000000-0000-0000-0000-000000000000"},"notificationEmail":{"example":"TestEmailAddress@example.com","description":"Email address of end users to whom notification emails are sent when a machine account is created or updated. \nMandatory if sendNotification is set to true.","type":"string"},"customerId":{"type":"string","description":"Globally unique identifier (id) of the customer.","example":"00000000-0000-0000-0000-000000000000"},"state":{"example":"ENABLE","description":"State of the machine account. \n Possible values: \n- ENABLE: The machine account is enabled to access the protected applications. \n- DISABLE: The machine account cannot access protected applications.\n- DELETE: An intermediate state indicating that the machine account has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the machine account synchronization, the machine account details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":true,"description":"Whether the machine account state in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeAccount'>Synchronize Account</a> endpoint.","type":"boolean"},"sendNotification":{"example":false,"description":"Whether to send notification emails to end users when a machine account is created or updated. If set to true, you must set the **notificationEmail** parameter value. \n\nDefault: false","type":"boolean"},"creationDate":{"description":"Creation date of the machine account.","example":"2026-07-07 07:07","type":"string"},"createdBy":{"description":"Name of the user who created the machine account.","example":"TestUserName","type":"string"},"lastModifiedDate":{"description":"Last modified date of the machine account.","example":"2026-07-07 07:07","type":"string"},"permissions":{"properties":{"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that are allowed to access the license server machine. Each machine is automatically registered the first time it accesses the license server machine. \n Possible values:\n - 1 to 10 \n - Unlimited \n\nDefault: 5","example":"5","enum":["Unlimited","1","2","3","4","5","6","7","8","9","10"]},"allowOnlineConnectionToLicenses":{"type":"boolean","description":"Enables a remote machine to consume a license from the license server machine. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"licenseDetaching":{"properties":{"isAllowed":{"type":"boolean","description":"Enables a client machine to detach a license (a network seat) for a protected application from the license server machine whenever a license is required. \n Possible values:\n - true \n - false \n\nDefault: true","example":true},"allowConcurrency":{"type":"boolean","description":"Enables a machine to detach one or more network seats with concurrency from the license server machine. These seats can then be accessed concurrently on the machine that receives the detached license. \n Possible values:\n - true \n - false \n\nDefault: true","example":true}},"nullable":true},"expirationDate":{"description":"Date on which the identity of the machine account expires.","example":"2026-07-07 07:07","type":"string"},"accessTo":{"description":"Details of keys and products accessible to the machine account.","properties":{"allCustomerKeys":{"type":"boolean","description":"Whether the machine account can access all the keys and products of the customer. If set to false, you must specify at least one key that the machine account can access. You can also restrict the access to specific products stored in each key.\n\nDefault: true","example":true},"keys":{"description":"List of keys that a machine account can access. Mandatory if allCustomerKeys is set to false.","properties":{"key":{"items":{"properties":{"id":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"937979462715909343"},"productIdentifier":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"53"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"nullable":true}},"nullable":true},"credentials":{"properties":{"identity":{"properties":{"identityCode":{"type":"string","description":"Unique identifier of the product associated with the Sentinel key.","example":"65GB2BQ"},"identitySecret":{"type":"string","description":"The password of the client identity associated with the machine account.","example":"oBWAAQCBEDsE+ekO/IfPdeXcSUs5kAo"},"identityString":{"type":"string","description":"A unique string assigned to each client identity. For a remote machine that does not have the Run-time Environment installed, the user must enter this identity string manually in the license manager configuration file to use the protected application.","example":"ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"},"identityLink":{"type":"string","description":"The link to install the identity string on a user's registered machine.","example":"http://localhost:1947/int/install.html?identity=ZTBT6VQ:oBWAAQCBEDBbEjOVF5oLz1qgyJfKS8U@cloudserver.example.com"}},"nullable":true}},"nullable":true},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["name","customerId"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts/{accountId}/registeredMachines":{"get":{"tags":["Customer"],"summary":"Search Registered Machines","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchRegisteredMachines","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"name":"registrationDate","in":"query","description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible values are id, name, notificationEmail, state, customerId, identityCode, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","name","notificationEmail","customerId","state","identityCode","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible values are are id, name, notificationEmail, state, customerId, identityCode, creationDate and lastModifiedDate.","schema":{"type":"string","enum":["id","name","notificationEmail","customerId","state","identityCode","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search machine account.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search machine account.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"List of registered machines for a machine account.","properties":{"registeredMachines":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"registeredMachine":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts/{accountId}/registeredMachines/{registeredMachineId}":{"patch":{"tags":["Customer"],"summary":"Update Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nPerform a partial update of a registered machine for a machine account by setting the values of the parameters provided.\nAny parameters not provided will be left unchanged.\nIf a parameter is set to blank, the existing value will be replaced with blank.\nIf a parameter is set to a valid value, the existing value will be replaced by the given value.","operationId":"partialUpdateRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"}},"nullable":true}},"type":"object"}}},"description":"Details of the registered machine to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Customer"],"summary":"Delete Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nRemove the association between a machine account and the registered machine. This action is not recommended. To enforce that only the allowed number of registered machines connect to the cloud server, we recommend that you disable a registered machine instead of deleting it.\n","operationId":"deleteRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/accounts/{accountId}/registeredMachines/{registeredMachineId}/syncState":{"post":{"tags":["Customer"],"summary":"Synchronize Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL.\nSynchronize the state of registered machines of a given machine account in Sentinel EMS and the Sentinel LDK cloud license server.\nThis operation syncs the information of registered machines in Sentinel LDK cloud license server based on the data available in Sentinel EMS.\n","operationId":"synchronizeRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"accountId","in":"path","description":"Unique identifier (id) of the machine account.","schema":{"type":"string"},"required":true},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/registeredMachines":{"get":{"tags":["Customer"],"summary":"Search Registered Machines","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nRetrieve a list of records that match the given query parameters. \nIf you do not specify any query parameters, the endpoint returns all records.\n","operationId":"searchUserRegisteredMachines","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"registrationDate","in":"query","description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the user.","schema":{"type":"string"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.","schema":{"type":"string","enum":["Exact"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"sortByAsc","in":"query","description":"Column name by which results are to be filtered in ascending order. Possible value is registrationDate.","schema":{"type":"string","enum":["registrationDate"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results are to be filtered in descending order. Possible value is registrationDate.","schema":{"type":"string","enum":["registrationDate"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"List of registered machines for a user.","properties":{"registeredMachines":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"registeredMachine":{"items":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"}},"nullable":true},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/registeredMachines/{registeredMachineId}":{"delete":{"tags":["Customer"],"summary":"Delete Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nPermanently remove a specific machine from the list of registered machines for the user, preventing unauthorized access and application usage. \nThis action is not recommended. To enforce that only the allowed number of registered machines connect to the cloud server, we recommend that you disable a registered machine instead of deleting it.","operationId":"deleteUserRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/registeredMachines/{registeredMachineId}/syncState":{"post":{"tags":["Customer"],"summary":"Synchronize Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nSynchronize the state of registered machines of a given user in Sentinel EMS and the Sentinel LDK cloud license server. \nThis operation syncs the information of registered machines in Sentinel LDK cloud license server based on the data available in Sentinel EMS.","operationId":"synchronizeUserRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/registeredMachines/{registeredMachineId}/enable":{"post":{"tags":["Customer"],"summary":"Enable Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nRe-enable a registered machine that is marked as disabled, allowing the end user to run the protected applications on that machine.","operationId":"enableUserRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/registeredMachines/{registeredMachineId}/disable":{"post":{"tags":["Customer"],"summary":"Disable Registered Machine","description":"\n**Note:** This endpoint is applicable only to Sentinel LDK CL. \nDisable a registered machine to deactivate old or unused devices, preventing unauthorized application usage.","operationId":"disableUserRegisteredMachine","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique ID of the user.","schema":{"type":"string"}},{"name":"registeredMachineId","in":"path","description":"Unique identifier (id) of the registered machine.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the registered machine.","example":"00000000-0000-0000-0000-000000000000"},"machineName":{"type":"string","description":"Unique name of the registered machine.","example":"productionMachine"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"192.65.19.205"},"hostUserName":{"example":"adminUser","description":"Name or the label that identifies the registered machine on a network.","type":"string"},"state":{"example":"ENABLE","description":"State of the registered machine. \n Possible values: \n- ENABLE: The registered machine is allowed to access protected applications. \n- DISABLE: The registered machine cannot access protected applications.\n- DELETE: An intermediate state indicating that the registered machine has been marked as deleted in Sentinel EMS but is pending deletion in Sentinel LDK cloud license server. After the synchronization, the machine details are deleted from the Sentinel LDK cloud license server.\n\nDefault: ENABLE","type":"string"},"inSync":{"example":false,"description":"Whether the state of the registered machine in Sentinel EMS is in sync with the Sentinel LDK cloud license server. Since synchronization might take a few seconds, the value of this parameter is false initially, and changes to true after the synchronization is complete. You can also do a manual synchronization using the <a rel='noopener noreferrer' target='_self' href='?Customer/synchronizeUserRegisteredMachine'>Synchronize Registered Machine</a> endpoint.","type":"boolean"},"registrationDate":{"description":"Date (in the YYYY-MM-DD format) when the registered machine is associated with the machine account.","example":"2026-07-07 07:07","type":"string"},"lastModifiedDate":{"description":"Last modified date of the registered machine.","example":"2026-07-07 07:07","type":"string"},"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.<p>The value should be URL encoded if it contains any reserved characters.</p>","example":"TestContact@example.com"},"userId":{"type":"string","description":"Unique ID of the user used to log in to Sentinel EMS.","example":"userId"},"maxNumOfRegisteredMachines":{"type":"string","description":"The maximum number of registered machines that can run the protected application. A client machine is automatically registered the first time it accesses the cloud license server to run the protected application. ","example":"2"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true},"localeName":{"type":"string","example":"English"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/features":{"get":{"tags":["CloudLM"],"summary":"Search Features","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRetrieve all features that match the given parameters.\n If the feature information (feature name or feature name-feature version combination) is not specified in the API, then the licFromFreePool field may also include expired sessions.","operationId":"getFeaturesList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureName","in":"query","schema":{"type":"string","maxLength":24},"description":"Name of the feature."},{"name":"featureVersion","in":"query","schema":{"type":"string","maxLength":11},"description":"Version of the feature."},{"name":"searchPattern","in":"query","schema":{"type":"string","enum":["Exact","Like","Normal"],"pattern":"^[Ee][Xx][Aa][Cc][Tt]$|^[Ll][Ii][Kk][Ee]$|^[Nn][Oo][Rr][Mm][Aa][Ll]$"},"description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets."},{"name":"pageStartIndex","in":"query","schema":{"type":"number","minimum":0,"maximum":1999,"default":0},"description":"Starting index of the returned records."},{"name":"pageSize","in":"query","schema":{"type":"number","minimum":1,"maximum":2000,"default":10},"description":"Number of records to return per page."},{"name":"sortByAsc","in":"query","schema":{"type":"string","enum":["featureName","featureVersion"],"pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Vv][Ee][Rr][Ss][Ii][Oo][Nn]$"},"description":"Field name to sort results in ascending order. "},{"name":"sortByDesc","in":"query","schema":{"type":"string","enum":["featureName","featureVersion"],"pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Vv][Ee][Rr][Ss][Ii][Oo][Nn]$"},"description":"Field name to sort results in descending order."}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"features":{"properties":{"count":{"type":"integer","description":"The total number of features with the RMS Cloud LM for the given criteria.","example":1},"feature":{"items":{"properties":{"featureName":{"type":"string","maxLength":24,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1"},"licType":{"type":"number","description":"Normal(0) or Trial(1).","example":0},"numLicenses":{"type":"number","description":"Total hard limit for this feature.","example":1000},"totalResv":{"type":"number","description":"The number of licenses reserved using group reservations.","example":1000},"licFromResv":{"type":"number","description":"The number of reserved licenses issued to clients.","example":1000},"qlicFromResv":{"type":"number","description":"The number of reserved licenses issued to queued clients.","example":1000},"licFromFreePool":{"type":"number","description":"The number of licenses issued to clients. However, suppose the feature information (feature name or feature name-feature version combination) is not specified in the API. In that case, the licFromFreePool field may contain information about expired sessions as well.","example":1000},"qlicFromFreePool":{"type":"number","description":"The number of unreserved licenses issued to queued clients.","example":1000},"isNodeLocked":{"type":"number","description":"Not applicable.","example":-1},"sharingCrit":{"type":"number","description":"Contains the license sharing criteria, which can be one of the following values: 0 - No sharing. 1 - License sharing on the basis of a common user name. 2 - License sharing on the basis of the system where the licensed feature is being run. 3 - License sharing on the basis of the x-display ID of a UNIX system. 4 - License sharing on the basis of a custom license sharing mechanism you implemented.","example":0},"lockingCrit":{"type":"number","description":"Contains any of the following information regarding the locking criteria applicable to the license: 0 - No locking 1 - SNTL_LOCK_ID_PROM 2 - SNTL_LOCK_IP_ADDR 4 - SNTL_LOCK_DISK_ID 8 - SNTL_LOCK_HOSTNAME 16  - SNTL_LOCK_ETHERNET 128 - SNTL_LOCK_PORTABLE_SERV 256 - SNTL_LOCK_CUSTOM 1024  - SNTL_LOCK_CUSTOMEX 2048  - SNTL_LOCK_HARD_DISK_SERIAL 4096  - SNTL_LOCK_CPU_INFO 8192  - SNTL_LOCK_UUID Or an ORed value representing any of the criteria combinations.","example":0},"holdingCrit":{"type":"number","description":"Contains the license holding criteria, which can be one of the following values: 0 - No held licenses. 1 - The client application specifies the hold time. 2 - The license code specifies the hold time.","example":0},"numSubnets":{"type":"number","description":"The number of subnets provided for the site.","example":0},"siteLicenseInfo":{"type":"string","description":"A space-separated list of subnet wildcard specifications.","example":"*.*.*.*"},"holdTime":{"type":"number","description":"The hold time specified for licenses issued for this feature.","example":0},"vendorInfo":{"type":"string","description":"The vendor-defined information string.","example":"Vendor"},"clLockInfo":{"type":"string","description":"Locking information of clients in a space-separated string of host IDs a/or IP addresses. If licenses-per-node restrictions have been specified, they are also returned in parentheses with each host ID/IP address. "},"keyLifeTime":{"type":"number","description":"Total license lifetime (in seconds) for this feature.","example":300},"sharingLimit":{"type":"number","description":"The limit on how many copies of the licensed application can share the same license.","example":10},"softNumLicenses":{"type":"number","description":"Total soft limit (for alerts) on the number of concurrent users of this feature.","example":100},"isStandalone":{"type":"number","description":"Contains any of the following information regarding the license type: 0 - for a network license. 1 - for a standalone license. 2 - for a repository license.","example":0},"checkTimeTamper":{"type":"number","description":"Not applicable.","example":-1},"isAdditive":{"type":"number","description":"Contains any of the following information regarding the license type: 0 - for an additive license. 1 - for an exclusive license. 2 - for an aggregate license.","example":1},"isRedundant":{"type":"number","description":"Not applicable.","example":-1},"majorityRule":{"type":"number","description":"Not applicable.","example":-1},"numServers":{"type":"number","description":"Not applicable.","example":-1},"isCommuter":{"type":"number","description":"Whether license commute action is allowed or not. Contains any of the following value: 0 - The commute action is not allowed. 1 - The commute action is allowed.","example":0},"logEncryptLevel":{"type":"number","description":"Contains any of the following values about the encryption level in the network license for the License Manager’s usage log file: 0 - The system administrator is allowed to set the encryption level. 1 - Transaction data will be logged for this license code with no encryption. 2 - Transaction data will be readable by the customer, but tampering with or deleting an entry can be detected. 3 - Transaction data will be readable by the customer except for license usage data (which will be encrypted), but tampering with or deleting an entry can be detected. 4 - All transaction data for the license code will be encrypted. Tampering with or deleting an entry will not be prevented, but can be detected.","example":0},"avgQueueTime":{"type":"number","description":"Not applicable.","example":-1},"queueLength":{"type":"number","description":"Length of the queue.","example":0},"totLicReqd":{"type":"number","description":"Required number of licenses for all queued clients.","example":0},"commutedKeys":{"type":"number","description":"The number of commuter keys that have been checked out.","example":100},"commuterKeysLeft":{"type":"number","description":"The number of commuter keys left.","example":10},"serverLockingInfo":{"type":"string","description":"Not applicable."},"commuterMaxCheckoutDays":{"type":"number","description":"The maximum number of days a commuter license can be checked out for.","example":0},"commutedFromServer":{"type":"string","description":"The License Manager from which the commuted license is obtained."},"gracePeriodFlag":{"type":"number","description":"Contains the flag value that defines whether grace period for a license is available or not 0 - When the grace period is not allowed. 1 - When the standard grace period is provided.","example":0},"gracePeriodCalendarDays":{"type":"number","description":"The number of days the grace period will last for.","example":1},"gracePeriodElapsedHours":{"type":"number","description":"The number of hours the grace period will last for.","example":1},"localRequestLockCritFlag":{"type":"number","description":"Contains the flag value that defines whether the local license request locking criteria is used or not for the commuter, repository, and grace license\n  0 - Local license request criteria is not used.\n  1 - Local license request criteria is used.","example":0},"localRequestLockCritRequired":{"type":"number","description":"The ORed decimal value of necessary criteria that must be met for making the licenses available to a local client.","example":4},"localRequestLockCritFloat":{"type":"number","description":"The ORed decimal value of desired criteria that must be met for making the licenses available to a local client.","example":0},"localRequestLockCritMinNum":{"type":"number","description":"The minimum number of locking license criteria that must be met for making the licenses available to a local client.","example":1},"isGraceLicense":{"type":"number","description":"Contains the value that determines the current state of the license, whether the license is being used in network or on a local system with grace period enabled\n  0 - When the license is on the local system with grace period enabled.\n  1 - When the license is a network license. ","example":0},"licenseVersion":{"type":"number","description":"Stores the Sentinel RMS license version.","example":19},"plainVendorInfo":{"type":"string","description":"The public vendor information included in the license.","example":"plainVendorInfo"},"trialExecutionCount":{"type":"number","description":"The number of executions count set. However, this is not supported as of now.","example":0},"trialExecutionsLeft":{"type":"number","description":"The remaining number of executions. However, this is not supported as of now.","example":0},"trialCurrentStatus":{"type":"number","description":"Contains any of the following values about the status of the trial license at the given time 0 - The license has never been requested and therefore the trial period has not yet begun. 1 - License is requested at least once, but some trial usage is still left. 2 - Usage limit of trial license is exhausted.","example":0},"vmDetection":{"type":"number","description":"Not applicable.","example":0},"birthTime":{"type":"number","description":"For On-premises deployment, this is the license start date in time_t. For Cloud-Served - Lease deployment, this represents the start time of the lease period (and not of the license).","example":1561718731},"deathTime":{"type":"number","description":"For On-premises deployment, this is the license expiration date in time_t. For Cloud-Served - Lease deployment, this represents the expiration time of the lease period (and not of the license).","example":1593561599},"eid":{"type":"string","description":"Entitlement Id. This field is used internally by Sentinel products.","example":"abc"},"pid":{"type":"number","description":"Product Id. This field is used internally by Sentinel products.","example":1},"fid":{"type":"number","description":"Feature Id. This field is used internally by Sentinel products.","example":1},"aid":{"type":"string","description":"Authorization Id. This field is used internally by Sentinel products.","example":"abc"},"cloudUsageFlag":{"type":"number","description":"For On-premises deployment, this is 0. For Cloud-Served - Lease deployment, this decides whether the cloud-based usage data is being generated or not. The possible values are:\n  0 - The cloud-based usage data is not being generated.\n  1 - The cloud-based usage data is being generated.","example":0},"licSource":{"type":"number","description":"Not applicable.","example":-1},"trialDays":{"type":"number","description":"The number of trial days set. Valid only if trial days is enforced.","example":0},"trialSeconds":{"type":"number","description":"The number of trial hours set, converted into seconds. Valid only if trial hours is enforced.","example":0},"trialDaysLeft":{"type":"number","description":"The remaining number of trial days. Valid only if trial days is enforced.","example":0},"trialSecondsLeft":{"type":"number","description":"The remaining number of trial hours (in seconds). Valid only if trial hours is enforced.","example":0},"activationBirthTime":{"type":"number","description":"This field is used by SCL-Add-on for RMS for storing entitlement start date and time.\n - This field is relevant for version 17 (and above) licenses.\n - For license version(s) 16 and below, the default value (0) will be returned as the value for this field.","example":1561718731},"activationExpiryTime":{"type":"number","description":"This field is used by SCL-Add-on for RMS for storing Entitlement expiration date and time.\n - This field is relevant for version 17 (and above) licenses.\n - For license version(s) 16 and below, the default value (0) will be returned as the value for this field. ","example":1593561599},"userAccountLimit":{"type":"number","description":"This field is used by SCL-Add-on for RMS (cloudLM) for storing maximum number of users that can consume this license.\n - This field is relevant for version 23 (and above) licenses.","example":10}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/features/{featureId}/clients":{"get":{"tags":["CloudLM"],"summary":"Search Clients","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRetrieve all clients that match the given parameters.","operationId":"getClientList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).","required":true},{"name":"pageStartIndex","in":"query","schema":{"type":"number","default":0,"minimum":0},"description":"Starting index of the returned records. "},{"name":"pageSize","in":"query","schema":{"type":"number","default":10,"minimum":1},"description":"Number of records to return per page. "}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"clients":{"properties":{"count":{"type":"integer","description":"The total number of clients for the given featureId.","example":1},"client":{"items":{"properties":{"userName":{"type":"string","description":"The login name of the user using the application.","example":"John"},"hostId":{"type":"number","description":"Not applicable.","example":0},"group":{"type":"string","description":"Name of the reserved group to which the user belongs. If the user does not belong to an explicitly named group, DefaultGrp is returned."},"holdTime":{"type":"number","description":"Specifies the hold time, in seconds, if any.","example":0},"keyId":{"type":"string","description":"The internal ID of the license currently issued to the user’s application. After starting up, the License Manager issues licenses with unique IDs until it is restarted.","example":"2226424846"},"hostName":{"type":"string","description":"Name of the host/computer where the user is running the application. In case of standalone licensing, the “default-hostname” string will be returned.","example":"myComputer"},"xdisplayName":{"type":"string","description":"Name of the x-display where the user is displaying the application. In case of standalone licensing, the “default x-display name” string will be returned.","example":"default x-display name"},"vendorDefinedSharingId":{"type":"string","description":"A vendor-defined ID that can be used for license sharing decisions. In case of standalone licensing, the “default-sharing-ID” string will be returned.","example":"default-sharing-ID"},"numUnits":{"type":"number","description":"Number of units consumed by the client so far.","example":10},"isHolding":{"type":"number","description":"Returns 0, if the user’s current license is held after expiration. Otherwise returns 1.","example":1},"sharedClientCount":{"type":"number","description":"Total number of clients sharing this particular license, including the current client being queried. If sharing is disabled, isSharing will be 0.","example":0},"isCommuted":{"type":"number","description":"Returns 0, if the user has checked out the license from the network. Otherwise returns 1.","example":1},"totalTeamTokensResv":{"type":"number","description":"Total reserved units.","example":100},"reservedTeamTokensInUse":{"type":"number","description":"Units given to teams from reserved pool.","example":10},"unreservedTeamTokensInUse":{"type":"number","description":"Units given to teams from unreserved pool.","example":10},"startTime":{"type":"number","description":"The time at which the current license code was issued by the License Manager.","example":1561718731},"endTime":{"type":"number","description":"The time at which the user’s current license will expire if not renewed.","example":1593561599},"vendorUsageData":{"type":"string","description":"The vendor usage data set during login or refresh.","example":"Vendor usage data"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/features/{featureId}/licenses":{"get":{"tags":["CloudLM"],"summary":"Search Licenses","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRetrieve all licenses that match the given parameters.","operationId":"getLicensesList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Ii][Nn][Dd][Ee][Xx]=([0-9]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).\n- featureIndex (For example: featureIndex=0).","required":true},{"name":"pageStartIndex","in":"query","schema":{"type":"number","minimum":0,"maximum":255,"default":0},"description":"Starting index of the returned records. "},{"name":"pageSize","in":"query","schema":{"type":"number","minimum":1,"maximum":256,"default":10},"description":"Number of records to return per page. "}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"features":{"properties":{"count":{"type":"integer","description":"The total number of licenses for the given featureId.","example":1},"feature":{"items":{"properties":{"featureName":{"type":"string","maxLength":24,"description":"The name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"The version of the feature.","example":"V1"},"licType":{"type":"number","description":"Contains any of the following information regarding the license type: 0 - Normal. 1 - Trial.","example":0},"numLicenses":{"type":"number","description":"Total hard limit for this feature.","example":1000},"isNodeLocked":{"type":"number","description":"Not applicable.","example":-1},"sharingCrit":{"type":"number","description":"Contains the license sharing criteria, which can be one of the following values:\n  0 - No sharing.\n  1 - License sharing on the basis of a common user name.\n  2 - License sharing on the basis of the system where the licensed feature is being run.\n  3 - License sharing on the basis of the x-display ID of a UNIX system.\n  4 - License sharing on the basis of a custom license sharing mechanism you implemented.","example":0},"lockingCrit":{"type":"number","description":"Contains any of the following information regarding the locking criteria applicable to the license: 0 - No locking 1 - SNTL_LOCK_ID_PROM 2 - SNTL_LOCK_IP_ADDR 4 - SNTL_LOCK_DISK_ID 8 - SNTL_LOCK_HOSTNAME 16 - SNTL_LOCK_ETHERNET 128 - SNTL_LOCK_PORTABLE_SERV 256 - SNTL_LOCK_CUSTOM 1024 - SNTL_LOCK_CUSTOMEX 2048 - SNTL_LOCK_HARD_DISK_SERIAL 4096 - SNTL_LOCK_CPU_INFO 8192 - SNTL_LOCK_UUID Or an ORed value representing any of the criteria combinations.","example":0},"holdingCrit":{"type":"number","description":"Contains the license holding criteria, which can be one of the following values:\n  0 - No held licenses.\n  1 - The client application specifies the hold time.\n  2 - The license code specifies the hold time.","example":0},"numSubnets":{"type":"number","description":"The number of subnets provided for the site.","example":0},"siteLicenseInfo":{"type":"string","description":"A space-separated list of subnet wildcard specifications.","example":"*.*.*.*"},"holdTime":{"type":"number","description":"The hold time specified for licenses issued for this feature.","example":0},"vendorInfo":{"type":"string","description":"The vendor-defined information string.","example":"0"},"clLockInfo":{"type":"string","description":"Locking information of clients in a space-separated string of host IDs and/or IP addresses. If licenses-per-node restrictions have been specified, they are also returned in parentheses with each host ID/IP address."},"keyLifeTime":{"type":"number","description":"Total license lifetime (in seconds) for this feature.","example":300},"sharingLimit":{"type":"number","description":"The limit on how many copies of the licensed application can share the same license.","example":0},"softNumLicenses":{"type":"number","description":"Total soft limit (for alerts) on the number of concurrent users of this feature.","example":100},"isStandalone":{"type":"number","description":"Contains any of the following information regarding the license type: 0 - for a network license. 1 - for a standalone license. 2 - for a repository license.","example":0},"checkTimeTamper":{"type":"number","description":"Not applicable.","example":-1},"isAdditive":{"type":"number","description":"Contains any of the following information regarding the license type: 0 - for an additive license. 1 - for an exclusive license. 2 - for an aggregate license.","example":0},"numServers":{"type":"number","description":"Not applicable.","example":-1},"isRedundant":{"type":"number","description":"Not applicable.","example":-1},"majorityRule":{"type":"number","description":"Not applicable.","example":-1},"logEncryptLevel":{"type":"number","description":"Contains any of the following values about the encryption level in the network license for the License Manager’s usage log file: 0 - The system administrator is allowed to set the encryption level. 1 - Transaction data will be logged for this license code with no encryption. 2 - Transaction data will be readable by the customer, but tampering with or deleting an entry can be detected. 3 - Transaction data will be readable by the customer except for license usage data (which will be encrypted), but tampering with or deleting an entry can be detected. 4 - All transaction data for the license code will be encrypted. Tampering with or deleting an entry will not be prevented, but can be detected.","example":0},"serverLockingInfo":{"type":"string","description":"Not applicable."},"isCommuter":{"type":"number","description":"Whether license commute action is allowed or not. Contains any of the following value: 0 - The commute action is not allowed. 1 - The commute action is allowed.","example":0},"commuterMaxCheckoutDays":{"type":"number","description":"The maximum number of days a commuter license can be checked out for.","example":0},"commutedFromServer":{"type":"string","description":"The License Manager from which the commuted license is obtained."},"gracePeriodFlag":{"type":"number","description":"Contains the flag value that defines whether grace period for a license is available or not: 0 - When the grace period is not allowed. 1 - When the standard grace period is provided.","example":0},"gracePeriodCalendarDays":{"type":"number","description":"The number of days the grace period will last for.","example":0},"gracePeriodElapsedHours":{"type":"number","description":"The number of hours the grace period will last for.","example":0},"localRequestLockCritFlag":{"type":"number","description":"Contains the flag value that defines whether the local license request locking criteria is used or not for the commuter, repository, and grace license 0 - Local license request criteria is not used. 1 - Local license request criteria is used.","example":0},"localRequestLockCritRequired":{"type":"number","description":"The ORed decimal value of necessary criteria that must be met for making the licenses available to a local client.","example":4},"localRequestLockCritFloat":{"type":"number","description":"The ORed decimal value of desired criteria that must be met for making the licenses available to a local client.","example":0},"localRequestLockCritMinNum":{"type":"number","description":"The minimum number of locking license criteria that must be met for making the licenses available to a local client.","example":1},"licenseVersion":{"type":"number","description":"Contains the Sentinel RMS license version. The possible values are: 4294967295 - License version not defined. 0 - License version earlier than 7.0. 117440512 - RMS SDK v7.0 license - License v7. 117637120 - RMS SDK v7.3.0 license - License v8. 117637121 - RMS SDK v7.3.0.1 license - License v9. 134217728 - RMS SDK v8.0.0 license - License v10. 135266304 - RMS SDK v8.1.0 license - License v11. 136511488 - RMS SDK v8.2.3 license - License v12. 138412032 - RMS SDK v8.4.0 license - License v13. 139460608 - RMS SDK v8.5.0 license - License v14. 140509184 - RMS SDK v8.6.0 license - License v15. 150994944 - RMS SDK v9.0.0 license - License v16. 152043520 - RMS SDK v9.1.0 license - License v17. 153092096 - RMS SDK v9.2.0 license - License v18. 155254784 - RMS SDK v9.4.1 license - License v19. 156237824 - RMS SDK v9.5.0 license - License v20. 158334976 - RMS SDK v9.7.0 license - License v21. 268435456 - RMS SDK v10.0.0 license - License v22.","example":268435456},"plainVendorInfo":{"type":"string","description":"The public vendor information included in the license.","example":"plain vendor info"},"trialExecutionCount":{"type":"number","description":"Obsolete. Instead see - trialDaysLeft.","example":0},"trialExecutionsLeft":{"type":"number","description":"The number of executions count set. However, this is not supported as of now.","example":0},"trialCurrentStatus":{"type":"number","description":"The remaining number of executions. However, this is not supported as of now.","example":0},"licenseHash":{"type":"string","description":"The license hash identifier for the license code."},"licenseStorage":{"type":"string","description":"The file location where the license is stored."},"licenseState":{"type":"number","description":"Indicates whether this license is a part of the license table node or not.","example":0},"licensePrecedence":{"type":"number","description":"Indicates the priority of a particular trial license amongst the set of licenses having same feature-version combination.","example":0},"vmDetection":{"type":"number","description":"Not applicable.","example":0},"deferredRevocationTime":{"type":"number","description":"Any value other than zero denotes that the license has deferred revocation period associated. The value will be the time in seconds (since EPOCH) after which revocation will take place.","example":0},"birthTime":{"type":"number","description":"For On-premises deployment, this is the license start date in time_t. For Cloud-Served - Lease deployment, this represents the start time of the lease period (and not of the license).","example":1561718731},"deathTime":{"type":"number","description":"For On-premises deployment, this is the license expiration date in time_t. For Cloud-Served - Lease deployment, this represents the expiration time of the lease period (and not of the license).","example":1593561599},"eid":{"type":"string","description":"Entitlement Id. This field is used internally by Sentinel products.","example":"abc"},"pid":{"type":"number","description":"Product Id. This field is used internally by Sentinel products.","example":0},"fid":{"type":"number","description":"Feature Id. This field is used internally by Sentinel products.","example":0},"aid":{"type":"string","description":"Authorization Id. This field is used internally by Sentinel products.","example":"abc"},"cloudUsageFlag":{"type":"number","description":"For On-premises deployment, this is 0. For Cloud-Served - Lease deployment, this decides whether the cloud-based usage data is being generated or not. The possible values are:\n  0 - The cloud-based usage data is not being generated.\n  1 - The cloud-based usage data is being generated.","example":0},"licSource":{"type":"number","description":"Not applicable.","example":-1},"trialDays":{"type":"number","description":"The number of trial days set. Valid only if trial days is enforced.","example":0},"trialSeconds":{"type":"number","description":"The number of trial hours set, converted into seconds. Valid only if trial hours is enforced.","example":0},"trialDaysLeft":{"type":"number","description":"The remaining number of trial days. Valid only if trial days is enforced.","example":0},"trialSecondsLeft":{"type":"number","description":"The remaining number of trial hours (in seconds). Valid only if trial hours is enforced.","example":0},"activationBirthTime":{"type":"number","description":"This field is used by SCL-Add-on for RMS for storing entitlement start date and time. This field is relevant for version 17 (and above) licenses. For license version(s) 16 and below, the default value (0) will be returned as the value for this field. ","example":1561718731},"activationExpiryTime":{"type":"number","description":"This field is used by SCL-Add-on for RMS for storing Entitlement expiration date and time. This field is relevant for version 17 (and above) licenses. For license version(s) 16 and below, the default value (0) will be returned as the value for this field. ","example":1593561599},"licenseVendorInfo":{"type":"string","description":"The license vendor information included in the license (applicable to version 19 licenses and above).","example":"License Vendor Info"},"userAccountLimit":{"type":"number","description":"This field is used by SCL-Add-on for RMS (cloudLM) for storing maximum number of users that can consume this license. This field is relevant for version 23 (and above) licenses.","example":10}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"usageAllowance":{"type":"integer","example":0},"SAOT":{"type":"string","example":"false"}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/aboutMe":{"get":{"tags":["CloudLM"],"summary":"AboutMe","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nGet information of the RMS Cloud LM instance.","operationId":"aboutMe","security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"versionResponse":{"properties":{"version":{"type":"string","description":"Version information of the RMS Cloud LM."},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/licenseSessions":{"get":{"tags":["CloudLM"],"summary":"Search Sessions","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRetrieve all sessions that match the given parameters.","operationId":"getLicenseSessionsList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureName","in":"query","schema":{"type":"string","maxLength":24},"description":"Name of the feature."},{"name":"featureVersion","in":"query","schema":{"type":"string","maxLength":11},"description":"Version of the feature."},{"name":"userName","in":"query","schema":{"type":"string","maxLength":320},"description":"Name of the user."},{"name":"hostName","in":"query","schema":{"type":"string","maxLength":320},"description":"Name of the host machine."},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Field selection in the response. Provide comma-separated fields that need to be returned in the response."},{"name":"searchPattern","in":"query","schema":{"type":"string","pattern":"^[Ee][Xx][Aa][Cc][Tt]$|^[Ll][Ii][Kk][Ee]$|^[Nn][Oo][Rr][Mm][Aa][Ll]$","enum":["Exact","Like","Normal"]},"description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets."},{"name":"distinct","in":"query","schema":{"type":"string","enum":["true","false"]},"description":"Whether to fetch only distinct records."},{"name":"pageStartIndex","in":"query","schema":{"type":"number","default":0,"minimum":0},"description":"Starting index of the returned records. "},{"name":"pageSize","in":"query","schema":{"type":"number","default":10,"minimum":1},"description":"Number of records to return per page."},{"name":"sortByAsc","in":"query","schema":{"type":"string","enum":["licenseSessionId","featureName","featureVersion","hostName","sessionStartTime","units","userName","vendorDefinedSharingId","xdisplayName"],"pattern":"^[Ll][Ii][Cc][Ee][Nn][Ss][Ee][Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ii][Dd]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Vv][Ee][Rr][Ss][Ii][Oo][Nn]$|^[Hh][Oo][Ss][Tt][Nn][Aa][Mm][Ee]$|^[Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ss][Tt][Aa][Rr][Tt][Tt][Ii][Mm][Ee]$|^[Uu][Nn][Ii][Tt][Ss]$|^[Uu][Ss][Ee][Rr][Nn][Aa][Mm][Ee]$|^[Vv][Ee][Nn][Dd][Oo][Rr][Dd][Ee][Ff][Ii][Nn][Ee][Dd][Ss][Hh][Aa][Rr][Ii][Nn][Gg][Ii][Dd]$|^[Xx][Dd][Ii][Ss][Pp][Ll][Aa][Yy][Nn][Aa][Mm][Ee]$"},"description":"Field name to sort results in ascending order. "},{"name":"sortByDesc","in":"query","schema":{"type":"string","enum":["licenseSessionId","featureName","featureVersion","hostName","sessionStartTime","units","userName","vendorDefinedSharingId","xdisplayName"],"pattern":"^[Ll][Ii][Cc][Ee][Nn][Ss][Ee][Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ii][Dd]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]$|^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Vv][Ee][Rr][Ss][Ii][Oo][Nn]$|^[Hh][Oo][Ss][Tt][Nn][Aa][Mm][Ee]$|^[Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ss][Tt][Aa][Rr][Tt][Tt][Ii][Mm][Ee]$|^[Uu][Nn][Ii][Tt][Ss]$|^[Uu][Ss][Ee][Rr][Nn][Aa][Mm][Ee]$|^[Vv][Ee][Nn][Dd][Oo][Rr][Dd][Ee][Ff][Ii][Nn][Ee][Dd][Ss][Hh][Aa][Rr][Ii][Nn][Gg][Ii][Dd]$|^[Xx][Dd][Ii][Ss][Pp][Ll][Aa][Yy][Nn][Aa][Mm][Ee]$"},"description":"Field name to sort results in descending order."}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseSessions":{"properties":{"count":{"type":"integer","description":"The total number of sessions for the given featureId.","example":1},"licenseSession":{"items":{"properties":{"licenseSessionId":{"type":"string","maxLength":32,"description":"Unique identifier of the license session returned by the licenseSessions API.","example":"55816B18664F46B9B95A23AF1EB07FB9"},"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1"},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer"},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John"},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name"},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID"},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units required for login.","example":1000}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"post":{"tags":["CloudLM"],"summary":"Login","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nOnly an authorized user can access features of the licensed application. This request is used to authorize the user's access to a feature. Once an authorization is obtained, this request establishes a session between the licensed application and RMS Cloud License Manager. Thereafter, this session is used for exchanging information.","operationId":"loginSession","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["licenseSession"],"properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units required for login.","example":1000,"default":1},"usageCountMultiplier":{"type":"number","minimum":1,"maximum":2147483647,"default":1,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource.","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="}},"required":["featureName"],"nullable":true}}}}},"description":"Details for creating a Login session."},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"201":{"headers":{"location":{"schema":{"type":"string"},"description":"License Session Id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units required for login.","example":1000,"default":1},"usageCountMultiplier":{"type":"number","minimum":1,"maximum":2147483647,"default":1,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource.","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["featureName"],"nullable":true}}}}},"description":"<i>Created</i> \nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/licenseSessions/{licenseSessionId}/logout":{"post":{"tags":["CloudLM"],"summary":"Logout","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nReleases the license authorization session of a feature.","operationId":"logoutSession","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"in":"path","name":"licenseSessionId","schema":{"type":"string","pattern":"[0-9a-fA-F]{32}"},"description":"Unique identifier of the license session returned by the licenseSessions (Login) API. For example: 55816B18664F46B9B95A23AF1EB07FB9 ","required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["licenseSession"],"properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units requested at login.","example":1000,"default":1},"logoutUnits":{"type":"number","minimum":0,"maximum":4294967294,"description":"Units to logout.","example":1000,"default":0},"usageCountMultiplier":{"type":"number","minimum":0,"maximum":2147483647,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000,"default":0},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource, as returned in the last call to this session (login/refresh/logout).","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="}},"required":["featureName","resourceHash"],"nullable":true}}}}},"description":"Details for session logout."},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units requested at login.","example":1000,"default":1},"logoutUnits":{"type":"number","minimum":0,"maximum":4294967294,"description":"Units to logout.","example":1000,"default":0},"usageCountMultiplier":{"type":"number","minimum":0,"maximum":2147483647,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000,"default":0},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource, as returned in the last call to this session (login/refresh/logout).","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["featureName","resourceHash"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/licenseSessions/{licenseSessionId}/refresh":{"post":{"tags":["CloudLM"],"summary":"Refresh","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRefreshes the license authorization session of a feature obtained using the licenseSessions API.","operationId":"refreshSession","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"in":"path","name":"licenseSessionId","schema":{"type":"string","pattern":"[0-9a-fA-F]{32}"},"description":"Unique identifier of the license session returned by the licenseSessions (Login) API. For example: 55816B18664F46B9B95A23AF1EB07FB9 ","required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["licenseSession"],"properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units requested at login.","example":1000,"default":1},"refreshUnits":{"type":"number","minimum":0,"maximum":4294967294,"description":"Units required to refresh.","example":1000,"default":0},"usageCountMultiplier":{"type":"number","minimum":0,"maximum":2147483647,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000,"default":0},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource, as returned in the last call to this session (login/refresh/logout).","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="}},"required":["featureName","resourceHash"],"nullable":true}}}}},"description":"Details for refreshing session."},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"licenseSession":{"properties":{"featureName":{"type":"string","maxLength":24,"minLength":1,"description":"Name of the feature.","example":"F1"},"featureVersion":{"type":"string","maxLength":11,"description":"Version of the feature.","example":"V1","default":""},"hostName":{"type":"string","maxLength":320,"description":"Host name.","example":"myComputer","default":""},"userName":{"type":"string","maxLength":320,"description":"The login name of the user using the application.","example":"John","default":""},"xdisplayName":{"type":"string","maxLength":31,"description":"X-display name.","example":"default x-display name","default":""},"vendorDefinedSharingId":{"type":"string","maxLength":31,"description":"A vendor-defined ID that can be used for license sharing.","example":"default-sharing-ID","default":""},"sessionStartTime":{"type":"number","description":"The epoch start date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"sessionEndTime":{"type":"number","description":"The epoch end date and time of a session. For example, 1561718731 represents June 28, 2019, 09:25:31 UTC.","example":1561718731},"units":{"type":"number","minimum":1,"maximum":4294967294,"description":"Units requested at login.","example":1000,"default":1},"refreshUnits":{"type":"number","minimum":0,"maximum":4294967294,"description":"Units required to refresh.","example":1000,"default":0},"usageCountMultiplier":{"type":"number","minimum":0,"maximum":2147483647,"description":"This attribute is applicable to Cloud Served - Lease deployments. The usage count value is defined by the vendor to calculate usage during a particular licensing session. Usually, each session consumes one  count per a login-refresh-logout call sequence.  At times, vendor may  want to represent this consumption differently, then a usage count  multiplier value can be specified at the start of the session (login), update (refresh), and  its end (logout). For a particular session, login, refresh, and logout usage count values will be added (by Sentinel EMS end) to calculate the usage count  multiplier for   reports generation and billing purposes.","example":1000,"default":0},"vendorUsageData":{"type":"string","maxLength":255,"description":"Comment provided by the vendor to be recorded in the usage log.","example":"Vendor Usage Data","default":""},"keyLifeTime":{"type":"number","description":"Key lifetime of the license."},"resourceHash":{"type":"string","description":"The computed hash of the input resource, as returned in the last call to this session (login/refresh/logout).","maxLength":44,"minLength":44,"example":"jNaUF73O/t2B7UP8vShPHSWFHjOWdvlWX8uSoMzQgHY="},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["featureName","resourceHash"],"nullable":true}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/licenseSessions/terminate":{"post":{"tags":["CloudLM"],"summary":"Terminate Sessions by User/Host","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nTerminate the sessions that match the given parameters.","operationId":"terminateSessions","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["licenseSession"],"properties":{"licenseSession":{"properties":{"hostName":{"type":"string","maxLength":320,"minLength":1,"description":"Host name.","example":"myComputer"},"userName":{"type":"string","maxLength":320,"minLength":1,"description":"The login name of the user using the application.","example":"John"}},"required":["hostName","userName"],"nullable":true}}}}},"description":"Details for terminating sessions."},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/licenseSessions/{licenseSessionId}/terminate":{"post":{"tags":["CloudLM"],"summary":"Terminate Session by Session ID","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nTerminates the session that match the given parameters.","operationId":"terminateSession","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"in":"path","name":"licenseSessionId","schema":{"type":"string","pattern":"[0-9a-fA-F]{32}"},"description":"Unique identifier of the license session returned by the licenseSessions (Search Sessions) API. For example: 55816B18664F46B9B95A23AF1EB07FB9","required":true}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/rmslm/features/{featureId}/licensedUserAccounts":{"get":{"tags":["CloudLM"],"summary":"Search User Accounts","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nRetrieves the existing user accounts list for the feature name and/or version.","operationId":"getUserAccountsList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).","required":true},{"name":"pageStartIndex","in":"query","schema":{"type":"number"},"description":"Starting index of the returned records."},{"name":"pageSize","in":"query","schema":{"type":"number"},"description":"Number of records to return per page."}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licensedUserAccounts":{"properties":{"count":{"type":"integer","description":"The total number of user accounts attached with the given featureId.","example":1},"licensedUserAccount":{"items":{"properties":{"name":{"type":"string","description":"User Name","example":"myUserName"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["CloudLM"],"summary":"Add/Replace User Accounts","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nAdds the user accounts list or replaces the existing list completely for a feature name and/or version. In the case of list replacement:\n  -  The new list may have some of the user accounts that were already present in the preceding list. Here, the ongoing license sessions of the carried-forward user accounts, if any, will be maintained.\n  -  The associated license sessions of the deleted user accounts, if any, will be removed.","operationId":"putUserAccountsList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).","required":true}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"licensedUserAccounts":{"properties":{"licensedUserAccount":{"items":{"properties":{"name":{"minLength":1,"maxLength":320,"type":"string","description":"User Name","example":"myUserName"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details for adding/replacing the user accounts list"},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["CloudLM"],"summary":"Delete User Account","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nDeletes the specified user account from the existing list for the feature name and/or version. Upon deletion of the user account, any ongoing license sessions will be removed.","operationId":"deleteUserAccount","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).","required":true},{"name":"name","in":"query","schema":{"type":"string"},"description":"User account that is to be deleted."}],"security":[{"OAuth2_client_Credentials":[]}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["CloudLM"],"summary":"Update User Accounts","description":"\n**Note:** Cloud LM applies only to the SCL Add-on for Sentinel RMS enforcement. \nAppends the specified user accounts list to the existing list for the feature name and/or version.","operationId":"patchUserAccountsList","parameters":[{"name":"x-sntl-customer-id","in":"header","schema":{"type":"string","maxLength":100},"description":"Unique identifier of the customer."},{"name":"featureId","in":"path","schema":{"type":"string","pattern":"^[Ff][Ee][Aa][Tt][Uu][Rr][Ee][Nn][Aa][Mm][Ee]=([!-~]+)$"},"description":"Unique identifier of the feature. Possible values are:\n- featureName, featureVersion (For example: featureName=myFeature,featureVersion=1.0).\n- featureName  (For example: featureName=myFeature).","required":true}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"licensedUserAccounts":{"properties":{"licensedUserAccount":{"items":{"properties":{"name":{"minLength":1,"maxLength":320,"type":"string","description":"User Name","example":"myUserName"}},"type":"object","nullable":true},"type":"array"}},"nullable":true}},"type":"object"}}},"description":"Details for appending the user accounts list."},"security":[{"OAuth2_client_Credentials":[]}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorResponse":{"properties":{"errorCode":{"type":"number","example":210011},"errorDescription":{"type":"string","example":"Calling error"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"type":"object"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed"},"406":{"description":"Not Acceptable"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/token/api/v5/registrationTokens":{"post":{"tags":["Customer"],"summary":"Add Registration Token","description":"Add a new registration token.\n \n A registration token is required for on-premises applications to use cloud licensing. This is a bootstrap token that enables on-premises applications to obtain an auth token containing access token, refresh token, and ID token. In enterprise scenarios, it enables licensed applications to obtain their own individual auth tokens instead of requiring the administrator to create multiple users who need to consume the licensed application. \n \n A registration token is used to generate multiple auth tokens. Individual auth token is required by a client (application or service) to use Cloud LM licenses. \n \n For more details of registration token, refer to the <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/rms/RMSDocumentation/APIREF/Content/Connected%20(Cloud%20LM)%20REST%20API/AppendixA_CloudLM.htm?Highlight=%22registration%20token%22'>Sentinel RMS API Reference Guide</a>.\n \n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user creates registration tokens.","operationId":"addRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":0,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"}},"nullable":true}},"type":"object"}}},"description":"Details of the registration token to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"Registration Token created\n The auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]}]},"get":{"tags":["Customer"],"summary":"Search Registration Tokens","description":"Retrieve a list of records that match the given query parameters.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n ","operationId":"searchRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the registration token.","schema":{"type":"string"}},{"name":"registrationIdentifier","in":"query","description":"Unique identifier of the registration token.","schema":{"type":"string"}},{"name":"token","in":"query","description":"The registration token that is used to generate auth tokens.","schema":{"type":"string"}},{"name":"isEnabled","in":"query","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens. Possible values: true, false","schema":{"type":"boolean"}},{"name":"refId1","in":"query","description":"First reference identifier of the registration token.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the registration token.","schema":{"type":"string"}},{"name":"customerName","in":"query","description":"Name of the customer associated with the registration token.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Unique identifier of the customer.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \nPossible values: customerName, customerIdentifier, identifier, refId1, refId2, creationDate, lastModifiedDate","schema":{"type":"string","enum":["customerName","customerIdentifier","identifier","refId1","refId2","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \nPossible values: customerName, customerIdentifier, identifier, refId1, refId2, creationDate, lastModifiedDate","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search registration tokens.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search registration tokens.","schema":{"type":"string"}},{"name":"expirationDateFrom","in":"query","description":"Start of the expiration date range (in the YYYY-MM-DD format) to search registration tokens.","schema":{"type":"string"}},{"name":"expirationDateTo","in":"query","description":"End of the expiration date range (in the YYYY-MM-DD format) to search registration tokens.","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customer","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"registrationTokens":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"registrationToken":{"type":"string","nullable":true},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/token/api/v5/registrationTokens/{registrationTokenId}":{"get":{"tags":["Customer"],"summary":"Get Registration Token","description":"Retrieve a specific registration token based on its unique identifier.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"getRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"registrationTokenId","in":"path","description":"Unique identifier of the registration token. Possible values are: \n  - id \n - registrationToken (For example: registrationToken=regToken)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"put":{"tags":["Customer"],"summary":"Replace Registration Token","description":"Replace the registration token.\n - If a parameter is not provided, the existing value will be replaced by blank or default. \n - If a parameter is set to blank, the existing value will be replaced with blank. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"replaceRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"registrationTokenId","in":"path","description":"Unique identifier of the registration token. Possible values are: \n  - id \n - registrationToken (For example: registrationToken=regToken)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"}},"nullable":true}},"type":"object"}}},"description":"Registration token details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"patch":{"tags":["Customer"],"summary":"Update Registration Token","description":"Partially update a registration token by setting the values of the parameters provided. \n  You can modify the following details: customer, identifier, refId1, refId2, expirationDate, isEnabled, count.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"updateRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"registrationTokenId","in":"path","description":"Unique identifier of the registration token. Possible values are: \n  - id \n - registrationToken (For example: registrationToken=regToken)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"}},"nullable":true}},"type":"object"}}},"description":"Registration token details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"id":{"type":"string","description":"Auto-generated unique ID of the registration token.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"identifier":{"type":"string","description":"Unique identifier of the registration token. You can specify up to 100 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"registrationIdentifier","minLength":1,"maxLength":100},"token":{"type":"string","description":"The registration token that is used to generate auth tokens.The registration token is 'username:password' encoded in Base64. You need to decode it to get username and password required to generate an auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LWNiNw=="},"expirationDate":{"type":"string","description":"The date after which you cannot use the registration token. The expiration date must be between 1 to 30 days from the current date.\n Default: 7 days \n Maximum: 30 days. \n","example":"2026-07-07 07:07"},"count":{"type":"integer","description":"The number of auth tokens that can be generated with the registration token. After all the counts are used, a registration token cannot be used to generate auth tokens.","example":100,"default":1,"minimum":1,"maximum":1000000},"usedCount":{"type":"integer","description":"Number of auth tokens generated using the registration token.","example":1,"minimum":1,"maximum":1000000},"refId1":{"type":"string","description":"First reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId1","minimum":1,"maximum":255},"refId2":{"type":"string","description":"Second reference identifier of the registration token as used by external ERP/CRM systems. You can specify up to 255 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < > :","example":"refId2","minimum":1,"maximum":255},"isEnabled":{"type":"boolean","description":"Whether the registration token is enabled or disabled. Only an enabled registration token can be used to generate auth tokens.\n Possible values: true, false","example":true,"default":true},"creationDate":{"type":"string","description":"Date when the registration token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"Date when the registration token was last modified.","example":"2026-07-07 07:07"},"customer":{"description":"Note: Required for vendor login. For customer and end-user login, the customer associated with the logged-in user is used. \n","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the customer. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"User-defined or auto-generated unique identifier of the customer. \n","example":"identifier"},"externalId":{"type":"string","description":"Unique external identifier of the customer.","example":"externalId"},"name":{"type":"string","description":"Name of the customer. \n","example":"CustomEntityAttribute"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"delete":{"tags":["Customer"],"summary":"Delete Registration Token","description":"Delete a registration token.\n  **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"deleteRegistrationToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"registrationTokenId","in":"path","description":"Unique identifier of the registration token. Possible values are: \n  - id \n - registrationToken (For example: registrationToken=regToken)\n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/ldk/api/v5/licenseSessions":{"get":{"tags":["LDKLicense"],"summary":"Search Sessions","description":"Note: This endpoint is applicable only to Sentinel LDK CL.\n Retrieves a list of license sessions that match the given query parameters.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve the license sessions.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve the license sessions based on their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve license sessions only for users and machine accounts associated with their customer.\n","operationId":"SearchLicenseSession","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Unique ID of the customer. \n - Mandatory for Administrator Vendor Users, Service Accounts, and Standard Vendor Users with Customer Management permissions.\n - Optional for Customer Administrators.","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique identifier of the user consuming the license.","schema":{"type":"string"}},{"name":"identityCode","in":"query","description":"Unique identifier of the client identity for the machine account.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page. \n Default: 200","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Only **<b>Exact</b>** is supported as a valid value.","schema":{"type":"string","enum":["Exact"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"licenseSessions":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"licenseSession":{"items":{"properties":{"sessionId":{"type":"string","description":"Unique identifier of the license session.","example":"635643874"},"keyId":{"type":"string","description":"Unique identifier of the Sentinel key.","example":"494252232027326600"},"productIdentifier":{"type":"string","description":"Unique identifier of the product.","example":"44"},"featureIdentifier":{"type":"string","description":"Unique identifier of the feature.","example":"40"},"featureName":{"type":"string","description":"Name of the feature.","example":"TestFeatureName"},"userId":{"type":"string","description":"Unique identifier of the user consuming the license.<br><br> **Note:** The API response includes either a userID or an identityCode, depending on the type of licensing. For user-based licensing, the response contains the userID to identify the authorized user.","example":"TestUserId"},"identityCode":{"type":"string","description":"Unique identifier of the client identity for the machine account.<br><br> **Note:** The API response includes either a userID or an identityCode, depending on the type of licensing. For device-based licensing, it includes the identityCode to verify the authorized device.","example":"TestIdentityCode"},"machineName":{"type":"string","description":"Unique name of the registered machine. ","example":"82kz9c3"},"loginTime":{"type":"string","description":"Login time of the license session.","example":"2026-07-07 07:07"},"idleTimeout":{"type":"string","description":"Specifies the duration (in minutes) that a License Manager session can remain connected to a protection key without activity. A session is considered idle if there are no licensing API interactions, excluding keep-alive commands. Once the specified idle timeout is reached, the session is automatically terminated, and the associated license is released for use by other users.","example":"30"},"ipAddress":{"type":"string","description":"IP address of the registered machine.","example":"165.225.125.43"}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/licenseSessions/{sessionId}":{"delete":{"tags":["LDKLicense"],"summary":"Terminate Session","operationId":"DeleteLicenseSession","description":"Note: This endpoint is applicable only to Sentinel LDK CL.\n Terminates an existing license session based on the provided query parameters.\n <br/> **<b>Authentication and Authorization</b>** \n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can terminate the license sessions.\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management (Delete) permissions: Can terminate the license sessions based on their market group.\n - Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can terminate license sessions only for users and machine accounts associated with their customer.\n","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"sessionId","in":"path","description":"Unique identifier for the license session, returned by the licenseSessions API.","schema":{"type":"string"},"required":true},{"name":"customerId","in":"query","description":"Unique identifier of the customer. \n - Mandatory for Administrator Vendor Users, Service Accounts, and Standard Vendor Users with Customer Management permissions.\n - Optional for Customer Administrators.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/token/api/v5/authTokens":{"post":{"tags":["Customer"],"summary":"Add Auth Token","description":"Add a new authorization (auth) token. \n An auth token is required for on-premises applications to use cloud licensing. An auth token is generated using a <a href=?Customer/addRegistrationToken target=_self>registration token</a> which is sent as basic authentication.\n\nAn auth token consists of an access token, refresh token, and ID token. The access token is a JSON Web Token (JWT) with a short lifetime, required to use Cloud LM resources.  The refresh token is used to get new access token on or before an access token is expired. The ID token is used to parse and fetch the token endpoint to refresh it. \n\n Generally, this endpoint needs to be called with a valid registration token in the following cases: \n -  The first time the licensed application is installed. \n - On expiration of refresh token (in case the licensed application is not used for long, such as 1 year). \n - The administrator revoked the auth token earlier and the user now wants to use the licensed application again.\n\nFor more details, refer to <a href='https://docs.sentinel.thalesgroup.com/softwareandservices/rms/RMSDocumentation/APIREF/Content/Connected%20(Cloud%20LM)%20REST%20API/AppendixA_CloudLM.htm?Highlight=%22registration%20token%22'>Sentinel RMS API Reference Guide</a>.\n\n **Authentication and Authorization**: Registration token which is a combination of registration ID and registration secret is used as basic authentication. \n","operationId":"addAuthToken","parameters":[{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"system generated unique identifier for the auth token","format":"uuid","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlMmFmOmY2ZDE1ZDhkLTljZTctNDIzZi05Y2MwLWViYWFiOGYzYWNiNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"Auth Token details to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"System-generated unique identifier of the auth token.","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"token":{"properties":{"access_token":{"type":"string","description":"The access token (JWT) that is used to authenticate a service or device. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"refresh_token":{"type":"string","description":"The refresh token that is used to obtain new access tokens without the need to re-authenticate. \n","example":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwNmZiZGNkZS1iODg2LTRkYjMtYjMyOS1iZTM1NDkxNmJhZTYifQ.eyJpYXQiOjE2NzEwOTEwMTYsImp0aSI6ImY1YTE1NDYyLTlmMGMtNDI2Ni05MzhlLTMyOTU2YWE0MjVmNSIsImlzcyI6Imh0dHBzOi8va2Nwb3N0Z3JlLmhpZ2hlbmQuZW5nZy1zZXJ2aWNlcy5jb20vYXV0aC9yZWFsbXMvNjJkNWYzOWItZTE4Ni00MTgxLTliMTEtN2Q3NGM1MTYzZTE3IiwiYXVkIjoiaHR0cHM6Ly9rY3Bvc3RncmUuaGlnaGVuZC5lbmdnLXNlcnZpY2VzLmNvbS9hdXRoL3JlYWxtcy82MmQ1ZjM5Yi1lMTg2LTQxODEtOWIxMS03ZDc0YzUxNjNlMTciLCJzdWIiOiIwZGQ4OGU1OC1jMTA1LTQ5ZmQtYWY0Yy1mNzc2OWVlNWUyYmEiLCJ0eXAiOiJPZmZsaW5lIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgVXNlcl9pbmZvIG9mZmxpbmVfYWNjZXNzIGVtYWlsIiwic2lkIjoiNmFkNDNmOTUtOTBjZi00M2E4LWE0ZGItYjY3Y2NkODhkYmRiIn0.DUv9ONpPm37Oz6ATKl5xNhqthVj5z2_If7VHtdD1-NU"},"id_token":{"type":"string","description":"An artifact that proves that the user is authenticated. \n","example":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJkTUNDdVZXMlhhYUpEN21lTC1ZYjhVb0FxYlhLVzNZTnJaNjh3aHdRRkhRIn0.eyJleHAiOjE2NzEwOTEzMTYsImlhdCI6MTY3MTA5MTAxNiwiYXV0aF90aW1lIjowLCJqdGkiOiJmYzAwNzI4My1hNTMzLTQ3ODUtOWYxOS1mOGUyMTQ1OWJkMDAiLCJpc3MiOiJodHRwczovL2tjcG9zdGdyZS5oaWdoZW5kLmVuZ2ctc2VydmljZXMuY29tL2F1dGgvcmVhbG1zLzYyZDVmMzliLWUxODYtNDE4MS05YjExLTdkNzRjNTE2M2UxNyIsImF1ZCI6ImVtcy1zY2wtcHVibGljLWNsaWVudCIsInN1YiI6IjBkZDg4ZTU4LWMxMDUtNDlmZC1hZjRjLWY3NzY5ZWU1ZTJiYSIsInR5cCI6IklEIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImF0X2hhc2giOiJ2TjFyNTBkekFQQlFDLUNhdXRnWHlBIiwiYWNyIjoiMSIsInNpZCI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoicHJpeWFua2EtYjY2ZThjYzktYTY4My00OGMxLWIzZmYtMzVmNDRhZDJiZjM2IiwiZW1haWwiOiJwcml5YW5rYS1iNjZlOGNjOS1hNjgzLTQ4YzEtYjNmZi0zNWY0NGFkMmJmMzZAdGhhbGVzZ3JvdXAuY29tIn0.WS7nWqugvoYnzzc5ka2aEz0pe9wPK4tbJV-9XMxA5gd5ztLmNcxAOu9-pjXOkbLQRCZbDSTjRYLqcbePOgOC8UAKWEd8i8NJXZY3xhHn8oqiG0yRmI__ClPMuzxscnFWC1Ef9O2lSKoCEJzvF0jgSe_fU0_zmptTinfBA5d-hUXEMLxxIJskjS1bHt4DH40v2g3AYv1fZ-0AlcLeERaR9EW6Fe9p3-EfVk-219Bok_yVJRr2KDrDNcnlNmyGn16I-H27m-JF5LsW4V5dD-t0E7AVW9hvJkz71aw3KrlCbOOz_hdO5N6xLp3-WV389-ciHl8QG_K4GjABSZGoyweX3"},"token_type":{"type":"string","description":"The type of the token, typically just the string 'Bearer'.","example":"Bearer"},"session_state":{"type":"string","description":"The state of the session.","example":"6ad43f95-90cf-43a8-a4db-b67ccd88dbdb"},"scope":{"type":"string","description":"The scope of the access token.","example":"openid profile User_info offline_access email"},"expires_in":{"type":"string","description":"Time (in seconds) after which the access token expires.","example":"300"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"lastModifiedDate for Auth Token.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"Auth Token created\n The auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"basicAuthForAddAuth":[]}]},"get":{"tags":["Customer"],"summary":"Search Auth Token","description":"Retrieve a list of records that match the given query parameters.\nIf you do not specify any query parameters, the endpoint returns all records.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"searchAccessToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"id","in":"query","description":"Auto-generated unique identifier of the auth token.  You can specify up to 50 values separated by commas. You must provide exact values for a successful search.","schema":{"type":"string"}},{"name":"tokenType","in":"query","description":"Whether to retrieve the registration tokens for vendors or customers. If not set, registration tokens for customers are returned.","schema":{"type":"string","enum":["ISV","Customer"]}},{"name":"identifier","in":"query","description":"Unique identifier of the auth token.","schema":{"type":"string"}},{"name":"refId1","in":"query","description":"First reference identifier of the auth token.","schema":{"type":"string"}},{"name":"refId2","in":"query","description":"Second reference identifier of the auth token.","schema":{"type":"string"}},{"name":"fqdn","in":"query","description":"Fully Qualified Domain Name of the device or host.","schema":{"type":"string"}},{"name":"registrationToken","in":"query","description":"The registration token used to generate the auth token.","schema":{"type":"string"}},{"name":"systemUsername","in":"query","description":"The name used to log in to the system.","schema":{"type":"string"}},{"name":"macAddress","in":"query","description":"MAC address of the system.","schema":{"type":"string"}},{"name":"customerName","in":"query","description":"Name of the customer associated with the auth token.","schema":{"type":"string"}},{"name":"customerIdentifier","in":"query","description":"Unique identifier of the customer.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. \n Possible values: identifier,customerName, customerIdentifier, refId1, refId2, fqdn, systemUsername, macAddress, creationDate, lastModifiedDate.","schema":{"type":"string","enum":["identifier","customerName","customerIdentifier","refId1","refId2","fqdn","systemUserName","macAddress","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. \n Possible values: identifier, customerName, customerIdentifier, refId1, refId2, fqdn, systemUsername, macAddress, creationDate, and lastModifiedDate.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search auth token.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search auth token.","schema":{"type":"string"}},{"name":"embed","in":"query","description":"A comma-separated list of fields to return. You can reference parameters of nested objects with dot notation. Fields available are: customer","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"authTokens":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"authToken":{"items":{"properties":{"id":{"type":"string","description":"system generated unique identifier for the auth token","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlMmFmOmY2ZDE1ZDhkLTljZTctNDIzZi05Y2MwLWViYWFiOGYzYWNiNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"},"customAttributes":{"properties":{"customAttribute":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AttributeName","description":"Name of the custom attribute."},"value":{"type":"string","example":"AttributeValue","description":"Value of the custom attribute."}},"nullable":true}}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/token/api/v5/authTokens/{authTokenId}":{"get":{"tags":["Customer"],"summary":"Get Auth Token","description":"Retrieve a specific auth token based on its unique identifier.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint.\n","operationId":"getAccessToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"authTokenId","in":"path","description":"Unique identifier of the auth token. Its value is: \n  - id \n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"system generated unique identifier for the auth token","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlMmFmOmY2ZDE1ZDhkLTljZTctNDIzZi05Y2MwLWViYWFiOGYzYWNiNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"put":{"tags":["Customer"],"summary":"Replace Auth Token","description":"Update an auth token completely.. \n - If a parameter is not provided, the existing value will be replaced by blank or default.\n - If a parameter is set to blank, the existing value will be replaced with blank. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"replaceAccessToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"authTokenId","in":"path","description":"Unique identifier of the auth token. Its value is: \n  - id \n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"system generated unique identifier for the auth token","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlMmFmOmY2ZDE1ZDhkLTljZTctNDIzZi05Y2MwLWViYWFiOGYzYWNiNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"Auth token details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"System-generated unique identifier of the auth token.","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"token":{"properties":{"access_token":{"type":"string","description":"The access token (JWT) that is used to authenticate a service or device. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"refresh_token":{"type":"string","description":"The refresh token that is used to obtain new access tokens without the need to re-authenticate. \n","example":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwNmZiZGNkZS1iODg2LTRkYjMtYjMyOS1iZTM1NDkxNmJhZTYifQ.eyJpYXQiOjE2NzEwOTEwMTYsImp0aSI6ImY1YTE1NDYyLTlmMGMtNDI2Ni05MzhlLTMyOTU2YWE0MjVmNSIsImlzcyI6Imh0dHBzOi8va2Nwb3N0Z3JlLmhpZ2hlbmQuZW5nZy1zZXJ2aWNlcy5jb20vYXV0aC9yZWFsbXMvNjJkNWYzOWItZTE4Ni00MTgxLTliMTEtN2Q3NGM1MTYzZTE3IiwiYXVkIjoiaHR0cHM6Ly9rY3Bvc3RncmUuaGlnaGVuZC5lbmdnLXNlcnZpY2VzLmNvbS9hdXRoL3JlYWxtcy82MmQ1ZjM5Yi1lMTg2LTQxODEtOWIxMS03ZDc0YzUxNjNlMTciLCJzdWIiOiIwZGQ4OGU1OC1jMTA1LTQ5ZmQtYWY0Yy1mNzc2OWVlNWUyYmEiLCJ0eXAiOiJPZmZsaW5lIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgVXNlcl9pbmZvIG9mZmxpbmVfYWNjZXNzIGVtYWlsIiwic2lkIjoiNmFkNDNmOTUtOTBjZi00M2E4LWE0ZGItYjY3Y2NkODhkYmRiIn0.DUv9ONpPm37Oz6ATKl5xNhqthVj5z2_If7VHtdD1-NU"},"id_token":{"type":"string","description":"An artifact that proves that the user is authenticated. \n","example":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJkTUNDdVZXMlhhYUpEN21lTC1ZYjhVb0FxYlhLVzNZTnJaNjh3aHdRRkhRIn0.eyJleHAiOjE2NzEwOTEzMTYsImlhdCI6MTY3MTA5MTAxNiwiYXV0aF90aW1lIjowLCJqdGkiOiJmYzAwNzI4My1hNTMzLTQ3ODUtOWYxOS1mOGUyMTQ1OWJkMDAiLCJpc3MiOiJodHRwczovL2tjcG9zdGdyZS5oaWdoZW5kLmVuZ2ctc2VydmljZXMuY29tL2F1dGgvcmVhbG1zLzYyZDVmMzliLWUxODYtNDE4MS05YjExLTdkNzRjNTE2M2UxNyIsImF1ZCI6ImVtcy1zY2wtcHVibGljLWNsaWVudCIsInN1YiI6IjBkZDg4ZTU4LWMxMDUtNDlmZC1hZjRjLWY3NzY5ZWU1ZTJiYSIsInR5cCI6IklEIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImF0X2hhc2giOiJ2TjFyNTBkekFQQlFDLUNhdXRnWHlBIiwiYWNyIjoiMSIsInNpZCI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoicHJpeWFua2EtYjY2ZThjYzktYTY4My00OGMxLWIzZmYtMzVmNDRhZDJiZjM2IiwiZW1haWwiOiJwcml5YW5rYS1iNjZlOGNjOS1hNjgzLTQ4YzEtYjNmZi0zNWY0NGFkMmJmMzZAdGhhbGVzZ3JvdXAuY29tIn0.WS7nWqugvoYnzzc5ka2aEz0pe9wPK4tbJV-9XMxA5gd5ztLmNcxAOu9-pjXOkbLQRCZbDSTjRYLqcbePOgOC8UAKWEd8i8NJXZY3xhHn8oqiG0yRmI__ClPMuzxscnFWC1Ef9O2lSKoCEJzvF0jgSe_fU0_zmptTinfBA5d-hUXEMLxxIJskjS1bHt4DH40v2g3AYv1fZ-0AlcLeERaR9EW6Fe9p3-EfVk-219Bok_yVJRr2KDrDNcnlNmyGn16I-H27m-JF5LsW4V5dD-t0E7AVW9hvJkz71aw3KrlCbOOz_hdO5N6xLp3-WV389-ciHl8QG_K4GjABSZGoyweX3"},"token_type":{"type":"string","description":"The type of the token, typically just the string 'Bearer'.","example":"Bearer"},"session_state":{"type":"string","description":"The state of the session.","example":"6ad43f95-90cf-43a8-a4db-b67ccd88dbdb"},"scope":{"type":"string","description":"The scope of the access token.","example":"openid profile User_info offline_access email"},"expires_in":{"type":"string","description":"Time (in seconds) after which the access token expires.","example":"300"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"lastModifiedDate for Auth Token.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"patch":{"tags":["Customer"],"summary":"Update Auth Token","description":"Partially update an auth token by setting the values of the parameters provided. \n - Any parameters not provided will be left unchanged. \n - If a parameter is set to blank, the existing value will be replaced with blank. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint.\n","operationId":"updateAccessToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"authTokenId","in":"path","description":"Unique identifier of the auth token. Its value is: \n  - id \n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"system generated unique identifier for the auth token","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlMmFmOmY2ZDE1ZDhkLTljZTctNDIzZi05Y2MwLWViYWFiOGYzYWNiNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"Auth token details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string","description":"System-generated unique identifier of the auth token.","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"identifier":{"type":"string","description":"Unique identifier of the auth token. If not specified, the system generates the unique identifier. \n","minLength":1,"maxLength":100,"example":"auth-identifier"},"systemUserName":{"type":"string","description":"The name used to log in to the system. \n","minLength":1,"maxLength":255,"example":"systemUsername"},"fqdn":{"type":"string","description":"FQDN stands for Fully Qualified Domain Name. It is the complete domain name of a specific device or host, on the internet. The FQDN consists of two parts - the host name and the domain name. \n","minimum":1,"maximum":255,"example":"fqdn.com"},"macAddress":{"type":"string","description":"MAC address of a device that is used to track the device in a network. \n","minimum":1,"maximum":255,"example":"00:1B:44:11:3A:B7"},"refId1":{"type":"string","description":"First reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier that identifies the auth token in an external ERP or CRM system. \n","minimum":1,"maximum":255,"example":"refId2"},"token":{"properties":{"access_token":{"type":"string","description":"The access token (JWT) that is used to authenticate a service or device. \n","format":"uuid","example":"00000000-0000-0000-0000-000000000000"},"refresh_token":{"type":"string","description":"The refresh token that is used to obtain new access tokens without the need to re-authenticate. \n","example":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwNmZiZGNkZS1iODg2LTRkYjMtYjMyOS1iZTM1NDkxNmJhZTYifQ.eyJpYXQiOjE2NzEwOTEwMTYsImp0aSI6ImY1YTE1NDYyLTlmMGMtNDI2Ni05MzhlLTMyOTU2YWE0MjVmNSIsImlzcyI6Imh0dHBzOi8va2Nwb3N0Z3JlLmhpZ2hlbmQuZW5nZy1zZXJ2aWNlcy5jb20vYXV0aC9yZWFsbXMvNjJkNWYzOWItZTE4Ni00MTgxLTliMTEtN2Q3NGM1MTYzZTE3IiwiYXVkIjoiaHR0cHM6Ly9rY3Bvc3RncmUuaGlnaGVuZC5lbmdnLXNlcnZpY2VzLmNvbS9hdXRoL3JlYWxtcy82MmQ1ZjM5Yi1lMTg2LTQxODEtOWIxMS03ZDc0YzUxNjNlMTciLCJzdWIiOiIwZGQ4OGU1OC1jMTA1LTQ5ZmQtYWY0Yy1mNzc2OWVlNWUyYmEiLCJ0eXAiOiJPZmZsaW5lIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgVXNlcl9pbmZvIG9mZmxpbmVfYWNjZXNzIGVtYWlsIiwic2lkIjoiNmFkNDNmOTUtOTBjZi00M2E4LWE0ZGItYjY3Y2NkODhkYmRiIn0.DUv9ONpPm37Oz6ATKl5xNhqthVj5z2_If7VHtdD1-NU"},"id_token":{"type":"string","description":"An artifact that proves that the user is authenticated. \n","example":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJkTUNDdVZXMlhhYUpEN21lTC1ZYjhVb0FxYlhLVzNZTnJaNjh3aHdRRkhRIn0.eyJleHAiOjE2NzEwOTEzMTYsImlhdCI6MTY3MTA5MTAxNiwiYXV0aF90aW1lIjowLCJqdGkiOiJmYzAwNzI4My1hNTMzLTQ3ODUtOWYxOS1mOGUyMTQ1OWJkMDAiLCJpc3MiOiJodHRwczovL2tjcG9zdGdyZS5oaWdoZW5kLmVuZ2ctc2VydmljZXMuY29tL2F1dGgvcmVhbG1zLzYyZDVmMzliLWUxODYtNDE4MS05YjExLTdkNzRjNTE2M2UxNyIsImF1ZCI6ImVtcy1zY2wtcHVibGljLWNsaWVudCIsInN1YiI6IjBkZDg4ZTU4LWMxMDUtNDlmZC1hZjRjLWY3NzY5ZWU1ZTJiYSIsInR5cCI6IklEIiwiYXpwIjoiZW1zLXNjbC1wdWJsaWMtY2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImF0X2hhc2giOiJ2TjFyNTBkekFQQlFDLUNhdXRnWHlBIiwiYWNyIjoiMSIsInNpZCI6IjZhZDQzZjk1LTkwY2YtNDNhOC1hNGRiLWI2N2NjZDg4ZGJkYiIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoicHJpeWFua2EtYjY2ZThjYzktYTY4My00OGMxLWIzZmYtMzVmNDRhZDJiZjM2IiwiZW1haWwiOiJwcml5YW5rYS1iNjZlOGNjOS1hNjgzLTQ4YzEtYjNmZi0zNWY0NGFkMmJmMzZAdGhhbGVzZ3JvdXAuY29tIn0.WS7nWqugvoYnzzc5ka2aEz0pe9wPK4tbJV-9XMxA5gd5ztLmNcxAOu9-pjXOkbLQRCZbDSTjRYLqcbePOgOC8UAKWEd8i8NJXZY3xhHn8oqiG0yRmI__ClPMuzxscnFWC1Ef9O2lSKoCEJzvF0jgSe_fU0_zmptTinfBA5d-hUXEMLxxIJskjS1bHt4DH40v2g3AYv1fZ-0AlcLeERaR9EW6Fe9p3-EfVk-219Bok_yVJRr2KDrDNcnlNmyGn16I-H27m-JF5LsW4V5dD-t0E7AVW9hvJkz71aw3KrlCbOOz_hdO5N6xLp3-WV389-ciHl8QG_K4GjABSZGoyweX3"},"token_type":{"type":"string","description":"The type of the token, typically just the string 'Bearer'.","example":"Bearer"},"session_state":{"type":"string","description":"The state of the session.","example":"6ad43f95-90cf-43a8-a4db-b67ccd88dbdb"},"scope":{"type":"string","description":"The scope of the access token.","example":"openid profile User_info offline_access email"},"expires_in":{"type":"string","description":"Time (in seconds) after which the access token expires.","example":"300"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true},"registrationToken":{"type":"string","description":"The registration token used for generating the auth token.","example":"YWU4ZjZmZjAtMWU0MS00YjQ0LTkyMTYtNDFlMjA4N2RlNw=="},"creationDate":{"type":"string","description":"Date when the auth token was created.","example":"2026-07-07 07:07"},"lastModifiedDate":{"type":"string","description":"lastModifiedDate for Auth Token.","example":"2026-07-07 07:07"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]},"delete":{"tags":["Customer"],"summary":"Delete Auth Token","description":"Delete an auth token.\n\n **Authentication and Authorization**: A Sentinel EMS administrator, a standard vendor user with Customer Management edit permissions, or a customer's administrator user can use this endpoint. \n","operationId":"deleteauthToken","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"authTokenId","in":"path","description":"Unique identifier of the auth token. Its value is: \n  - id \n","schema":{"type":"string"},"required":true},{"name":"comments","in":"query","description":"Additional remarks related to the requested operation, to be stored in the Transaction History. This is mandatory if the Comments Required field is set to Required in the Administration Console.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}]}},"/token/api/v5/idpConfigurations":{"get":{"tags":["User"],"summary":"Get Identity Provider (IDP) Details","description":"Retrieve the Sentinel IDP information so that vendor applications can use OAuth2 flows to retrieve and refresh tokens.It returns token endpoint and realm name. Using the information returned from this endpoint, authorization and token endpoint are created as mentioned below:  \n* Authorization endpoint: [token endpoint]+ 'realms/' + [realm] + '/protocol/openid-connect/auth' \n  + Example: ```https://abc.prod.example.com/auth/realms/9d67b600-098e-7e52-73be-58e1ca1a154e/protocol/openid-connect/auth```\n* Token endpoint: [token endpoint]+ 'realms/' + [realm] + '/protocol/openid-connect/token' \n  +   Example: ```https://abc.prod.example.com/auth/realms/9d67b600-098e-7e52-73be-58e1ca1a154e/protocol/openid-connect/token```\n    \n**Authentication and Authorization**: Not required\n","operationId":"getIdpConfiguration","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"tokenEndPoint":{"type":"string","description":"The authentication server endpoint from which the clients request access tokens.","example":"https://kcpostgre.highend.engg-services.com/auth/"},"realm":{"type":"string","description":"Name of the realm to which the user belongs.","example":"00000000-0000-0000-0000-000000000000"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/token/api/v5/clients":{"post":{"tags":["User"],"summary":"Add Client","description":"Add a new OAuth client.\n An OAuth client refers to an application or service that can make requests for protected resources on behalf of the resource owner after the resource owner grants authorization. The resource owner can be the end user or the application itself (using machine-to-machine communication that does not involve the end user). There are two types of OAuth clients: confidential and public. Confidential clients are registered with a client secret, while public clients are not.\n\n **Authentication and Authorization**:  Only vendor administrators and service account users can use this endpoint. \n","operationId":"addClient","parameters":[{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["client"],"properties":{"client":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"app-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"name":{"type":"string","description":"Unique name of the client.","minLength":1,"maxLength":255,"example":"client1"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"}},"required":["name","grantType"]}}}}},"description":"Details of the OAuth client to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name","grantType"]}}}}},"description":"The OAuth client is created.\n The auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]},"get":{"tags":["User"],"summary":"Search Clients","description":"Retrieve a list of all OAuth clients.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"searchClients","parameters":[{"name":"clientId","in":"query","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\". You must provide an exact value for a successful search.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Unique name of the client.","schema":{"type":"string"}},{"name":"isEnabled","in":"query","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true, false","schema":{"type":"boolean"}},{"name":"clientType","in":"query","description":"Determines the access type of a client.\n Possible values: public, confidential","schema":{"type":"string"}},{"name":"grantType","in":"query","description":"Determines how a client application can obtain an access token.\n Possible Values: authorization_code, client_credentials \nNotes: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","schema":{"type":"string"}},{"name":"requestStatus","in":"query","description":"Status of the client creation request.\n Possible values: in_progress, completed","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. Possible values are clientId, name, isEnabled, clientType, grantType, requestStatus, creationDate, and lastModifiedDate.","schema":{"type":"string","enum":["clientId","name","isEnabled","clientType","grantType","requestStatus","creationDate","lastModifiedDate"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. Possible values are clientId, name, isEnabled, clientType, grantType, requestStatus, creationDate, and lastModifiedDate","schema":{"type":"string","enum":["clientId","name","isEnabled","clientType","grantType","requestStatus","creationDate","lastModifiedDate"]}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format) to search clients.","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format) to search clients.","schema":{"type":"string"}},{"name":"lastModifiedDateFrom","in":"query","description":"Start of the last modified date range (in the YYYY-MM-DD format) to search clients.","schema":{"type":"string"}},{"name":"lastModifieDateTo","in":"query","description":"End of the last modified date range (in the YYYY-MM-DD format) to search clients.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name","grantType"]}}}}},"description":"<i>OK</i> - Operation successful\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]}},"/token/api/v5/clients/{id}":{"get":{"tags":["User"],"summary":"Get Client","description":"Retrieve a specific client and its details based on its unique identifier.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"getclient","parameters":[{"name":"id","in":"path","description":"Unique identifier of the client. Possible values are: \n  - id  \n - clientId (For example: clientId=app-00000000-0000-0000-0000-000000000000)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name","grantType"]}}}}},"description":"<i>OK</i> - Operation successful\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]},"put":{"tags":["User"],"summary":"Replace Client","description":"Update an OAuth client completely. \n - If a parameter is not provided, the existing value will be replaced by blank or default.\n - If a parameter is set to blank, the existing value will be replaced with blank. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"replaceClient","parameters":[{"name":"id","in":"path","description":"Unique identifier of the client. Possible values are: \n  - id  \n - clientId (For example: clientId=app-00000000-0000-0000-0000-000000000000)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["client"],"properties":{"client":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"}},"required":["name","grantType"]}}}}},"description":"Updated details of an OAuth client."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name","grantType"]}}}}},"description":"<i>OK</i> - Operation successful\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]},"patch":{"tags":["User"],"summary":"Update Client","description":"Partially update an OAuth client by setting the values of the parameters provided. \n - Any parameters not provided will be left unchanged. \n - If a parameter is set to blank, the existing value will be replaced with blank. \n - If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"updateClient","parameters":[{"name":"id","in":"path","description":"Unique identifier of the client. Possible values are: \n  - id  \n - clientId (For example: clientId=app-00000000-0000-0000-0000-000000000000)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["client"],"properties":{"client":{"nullable":true,"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"}}}}}}},"description":"Updated details of an OAuth client."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the client.","example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"clientId":{"type":"string","description":"User-defined unique identifier of the client application. This is auto-generated if not defined. The clientId value is always prefixed with \"app-\".","minLength":1,"maxLength":100,"example":"00000000-0000-0000-0000-000000000000","format":"uuid"},"isEnabled":{"type":"boolean","description":"Whether the client is enabled or disabled. Only an enabled client can be used for authentication to consume resources.\n Possible values: true or false \n Default: true","example":true},"clientType":{"type":"string","description":"Determines the access type of a client.\n Possible values:\n - **public**:  A public client (for example, mobile apps and Javascript apps) cannot securely store a client secret. It uses the authorization code flow with PKCE verifier for authorization. For a public client, you must set the grantType to authorization_code and specify appropriate values for redirect_URI and pkceChallengeMethod.\n - **confidential**: A confidential client (for example, a web application with a secure backend) can store client credentials securely without exposing them to unauthorized parties. It can use either the client_credentials or the authorization_code grant to obtain access tokens.\n\n Default: confidential","example":"confidential"},"grantType":{"type":"string","description":"The grant type determines how a client application can obtain an access token.\n Possible values:\n - **authorization_code**:  In the authorization code web flow, when users authorize a client application, they get redirected to the client application with an intermediate code, called 'authorization code'. The client application then uses this authorization code to obtain the access token.\n - **client_credentials**:  In the client credentials web flow, a client application sends its own credentials (client ID and client secret) to obtain an access token.\n\n **Note**: For public clients, only the authorization_code grant type is supported. For confidential clients, both grant types are supported. The default grant type for confidential clients is client_credentials.","example":"authorization_code"},"pkceChallengeMethod":{"description":"PKCE (Proof Key for Code Exchange) uses a code challenge and verifier mechanism to ensure that the client making the token request is the same client that initiated the authorization process.\n Possible values:\n - **plain**:  The client application includes the plain code challenge in the authorization request. The code challenge is the same as the code verifier. Recommended only when it is not possible to use S256.\n - **S256**:  The client application includes the S256 code challenge in the authorization request. The code challenge is the SHA-256 hash of the code verifier, encoded using base64url. \n\n **Note**:  Supported only for public clients with the authorization_code grant type.","example":"plain"},"requestStatus":{"type":"string","description":"Status of the client creation request.\n Possible values: \n - **in_progress**: The client creation is in progress.\n - **completed**: The client is successfully created in Sentinel EMS. ","example":"completed"},"redirectUris":{"description":"List of redirect URLs for a client. You can specify up to 5 redirect URLs for a client.","properties":{"redirectUri":{"items":{"description":"Details of the redirect URL for a client.","properties":{"url":{"type":"string","description":"The URL where the authorization server redirects the user after a client is successfully authorized. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"webOrigins":{"description":"List of web origin URLs for a client. You can specify up to 5 web origin URLs for a client.","properties":{"webOrigin":{"items":{"description":"Details of the web origin URL for a client.","properties":{"url":{"type":"string","description":"The web origin URL is defined by the scheme (protocol), hostname (domain), and port of the URL used to access the web application. This is mandatory for the authorization_code grant type.","minLength":1,"maxLength":255,"example":"https://highend.engg-services.com"}},"type":"object","nullable":true},"type":"array"}},"nullable":true},"creationDate":{"type":"string","description":"Creation date of the client.","example":"2019-12-19 06:43"},"lastModifiedDate":{"type":"string","description":"Last modified date of the client.","example":"2019-12-19 06:43"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"description":{"type":"string","description":"Description of the client.","minLength":1,"maxLength":255,"example":"Sample Application"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"required":["id","name","grantType"]}}}}},"description":"<i>OK</i> - Operation successful\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]},"delete":{"tags":["User"],"summary":"Delete Client","description":"Delete an OAuth client.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Unique identifier of the client. Possible values are: \n  - id  \n - clientId (For example: clientId=app-00000000-0000-0000-0000-000000000000)\n","schema":{"type":"string"},"required":true}],"responses":{"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]}},"/token/api/v5/clients/{id}/clientSecret":{"get":{"tags":["User"],"summary":"Get Client Secret","description":"Retrieve the client secret based on the unique client identifier. The client secret is confidential to the application and the authorization server.\n\n **Note**: This endpoint is relevant only for confidential clients. An error is returned for public clients.\n\n **Authentication and Authorization**: Only vendor administrators and service account users can use this endpoint.","operationId":"getclientsecet","parameters":[{"name":"id","in":"path","description":"Unique identifier of the client. Possible values are: \n  - id  \n - clientId (For example: clientId=app-00000000-0000-0000-0000-000000000000)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string","description":"A secret confidential to the client.","example":"00000000-0000-0000-0000-000000000000"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"202":{"description":"<i>In Progress</i> - Generation started successfully or is still in progress\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}},"security":[{"OAuth2_AuthorizationCode":[]},{"OAuth2_client_Credentials":[]}]}},"/ems/api/v5/customers/{customerId}/licenseGrants/{licenseGrantId}/accessGrants":{"get":{"tags":["Activation"],"summary":"Search Associated Access Grants","description":"Retrieve access grants for a given customer and license grant ID.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve, update, and delete all access grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve, update, and delete all access grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve, update, and delete access grants only for their own customer.\n","operationId":"searchAssociatedAccessGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"in":"path","name":"licenseGrantId","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}},{"name":"sortByAsc","in":"query","description":"Column name by which results should be sorted in ascending order.","schema":{"type":"string","enum":["emailId","userId","name"]}},{"name":"sortByDesc","in":"query","description":"Column name by which results should be sorted in descending order.","schema":{"type":"string","enum":["emailId","userId","name"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessGrants":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}}}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}},"patch":{"tags":["Activation"],"summary":"Update Associated Access Grants","description":"Associate new access grants to a license grant in addition to the existing access grants. You can associate only one access grant at a time.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve, update, and delete all access grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve, update, and delete all access grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve, update, and delete access grants only for their own customer.\n","operationId":"partialUpdateAssociatedAccessGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"licenseGrantId","in":"path","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}}},"type":"array"}},"nullable":true},"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Access grant details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true},"accessGrant":{"items":{"required":["name"],"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Activation"],"summary":"Replace Associated Access Grants","description":"Replace the already associated access grants of a license grant with the given access grants.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve, update, and delete all access grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve, update, and delete all access grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve, update, and delete access grants only for their own customer.\n","operationId":"replaceAssociatedAccessGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"licenseGrantId","in":"path","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"required":["customer"],"properties":{"customer":{"properties":{"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}}},"type":"array"}},"nullable":true},"accessGrant":{"items":{"required":["name"],"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"Access grant details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"accessGrant":{"items":{"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"00000000-0000-0000-0000-000000000000"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"},"createdBy":{"type":"string","example":""},"lastModifiedBy":{"type":"string","example":""},"externalId":{"type":"string","example":""},"refId1":{"type":"string","example":""},"refId2":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"shippingDetails":{"type":"object","nullable":true},"billingDetails":{"type":"object","nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true},"externalCustomers":{"nullable":true},"externalContacts":{"nullable":true},"partnerUsers":{"type":"object","nullable":true}},"nullable":true},"accessGrant":{"items":{"required":["name"],"properties":{"consumer":{"description":"Contains details of all users associated with the license grant.","properties":{"contact":{"properties":{"id":{"type":"string","description":"Unique identifier of the user.","example":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"emailId":{"type":"string","description":"Unique email address of the user.","example":"TestUser@example.com"},"userId":{"type":"string","description":"Unique ID of the user.","example":"testuser"},"name":{"type":"string","description":"Name of the user.","example":"test user"}},"nullable":true}},"nullable":true}},"type":"object","nullable":true},"type":"array"}},"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["Activation"],"summary":"Delete Associated Access Grant","description":"Disassociate an access grant from a license grant of a customer.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve, update, and delete all access grants.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve, update, and delete all access grants for customers within their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve, update, and delete access grants only for their own customer.\n","operationId":"deleteAssociatedAccessGrant","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string"}},{"name":"customerId","in":"path","description":"Unique identifier of the customer. Possible values are: \n  - id \n  - name (For example: name=TestCustomer)\n    Note: It should be unique.\n  - identifier (For example: identifier=CIdentifier)\n  - externalId (For example: externalId=CExternalId)\n","schema":{"type":"string"},"required":true},{"name":"licenseGrantId","in":"path","description":"Unique identifier of the license grant.","schema":{"type":"string"},"required":true},{"name":"contactId","in":"query","description":"Unique identifier of the user","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/namespaces/{namespaceId}":{"get":{"tags":["Catalog"],"summary":"Get Namespace","description":"Retrieve a specific namespace based on its unique identifier.\n","operationId":"getNamespace","parameters":[{"name":"namespaceId","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"namespace":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"required":["namespace"],"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace Namespace","description":"Update an existing namespace completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- You cannot change the following: id, state, and name (of deployed namespaces).\n- The following parameters specified in the request body are ignored: id and state.\n- For the name parameter, the new value specified should be correct and unique. Blank and duplicate values are not allowed.\n","operationId":"updateNamespace","parameters":[{"name":"namespaceId","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"string","enum":["true","false"]}}],"requestBody":{"content":{"application/json":{"schema":{"required":["namespace"],"properties":{"namespace":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"required":["name"],"nullable":true}},"type":"object"}}},"description":"Namespace details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"namespace":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"required":["namespace"],"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Namespace","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateNamespace","parameters":[{"name":"namespaceId","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"string","enum":["true","false"]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"namespace":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"}},"nullable":true}},"type":"object"}}},"description":"Namespace details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"namespace":{"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"00000000-0000-0000-0000-000000000000"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT"},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"description":"Creation date of the namespace.","example":"2026-07-07 07:07","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"description":"Last modified date of the namespace.","example":"2026-07-07 07:07","type":"string"},"name":{"type":"string","description":"Name of the entity.","example":"TestName"},"externalId":{"type":"string","example":""},"description":{"type":"string","example":""},"customAttributes":{"nullable":true},"contacts":{"nullable":true},"fingerprints":{"nullable":true}},"nullable":true}},"required":["namespace"],"type":"object"}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Namespace","description":"Delete a namespace if it is in the draft state.","operationId":"deleteNamespace","parameters":[{"name":"namespaceId","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/measurementAggregatedData/{measurementModelId}":{"get":{"tags":["Catalog"],"summary":"Query Aggregated Measurement Data","description":"Queries aggregated usage data for a deployed measurement model from Kong OpenMeter.\n\n**Supported identifier formats**:\n- By GlobalId (UUID): `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By GlobalId (explicit): `id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By MMName: `name=Sample Model`\n- By MMIdentifier: `identifier=sample_identifier`\n\n**Requirements**:\n- Measurement model must be in ENABLE state with deployedState = DEPLOYED.\n- Time range must be valid (from < to).\n- Filter parameters must match the model's filterByAttributes.\n\n**Dynamic Filter Parameters**:\nAny query parameter besides `from` and `to` is treated as a filter parameter and validated against the model's `filterByAttributes` array.\n\n**Error Codes**:\n- **7001**: Invalid query parameters\n- **7002**: Invalid time range ('from' after 'to')\n- **7004**: Measurement model not deployed\n- **7005**: Measurement model not found\n- **7006**: OpenMeter external service error\n","operationId":"queryMeasurementAggregatedData","parameters":[{"name":"measurementModelId","in":"path","description":"Measurement model identifier. Accepts multiple formats:\n- GlobalId (UUID): `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By GlobalId: `id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By Name: `name=Sample Model`\n- By Identifier: `identifier=sample_identifier`\n","schema":{"type":"string"},"required":true},{"name":"from","in":"query","description":"**Required** - Start date/timestamp for the query window. Must be before `to` parameter.\n\n**Formats accepted**:\n- Date only (YYYY-MM-DD): `2026-02-01` (converted to `2026-02-01T00:00:00Z`)\n- Full ISO 8601 timestamp: `2026-02-01T10:30:00Z`\n","schema":{"type":"string"}},{"name":"to","in":"query","description":"**Required** - End date/timestamp for the query window. Must be after `from` parameter.\n\n**Formats accepted**:\n- Date only (YYYY-MM-DD): `2026-02-28` (converted to `2026-02-28T23:59:59Z`)\n- Full ISO 8601 timestamp: `2026-02-28T23:59:59Z`\n","schema":{"type":"string"}},{"name":"customerId","in":"query","description":"Filter by customer ID (optional). Only included if `customerId` is in the model's filterByAttributes array.","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Filter by product ID (optional). Only included if `productId` is in the model's filterByAttributes array.","schema":{"type":"string"}},{"name":"subscriptionId","in":"query","description":"Filter by subscription ID (optional). Only included if `subscriptionId` is in the model's filterByAttributes array.","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementAggregatedData"},"properties":{"customerId":{"type":"string","description":"Customer identifier extracted from query parameters (if provided).","example":"CUST-12345"},"measurementModel":{"type":"object","description":"Measurement model metadata.","properties":{"id":{"type":"string","description":"Measurement model's GlobalId (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Measurement model's display name.","example":"Sample Model Name"},"identifier":{"type":"string","description":"Measurement model's unique identifier (slug).","example":"sample_model_identifier"},"associatedFeature":{"type":"object","nullable":true,"description":"Associated feature metadata (null if not associated).","properties":{"id":{"type":"string","description":"Feature's GlobalId (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Feature's external identifier.","example":"EXT-FEATURE-001"},"identifier":{"type":"string","description":"Feature's FTRIdentifier (as string).","example":"3"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Feature name.","example":"Premium Feature"},"version":{"type":"string","description":"Feature version.","example":"1.0"}}}}},"associatedProduct":{"type":"object","nullable":true,"description":"Associated product metadata (null if not associated).","properties":{"id":{"type":"string","description":"Product's GlobalId (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Product's external identifier.","example":"EXT-PRODUCT-001"},"identifier":{"type":"string","description":"Product's PRDIdentifier (as string).","example":"16"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Product name.","example":"Enterprise Product"},"version":{"type":"string","description":"Product version.","example":"2.0"}}}}}}},"aggregatedData":{"type":"array","description":"Array of aggregated data windows from OpenMeter.","items":{"type":"object","properties":{"value":{"type":"number","format":"double","description":"Aggregated value for this time window.","example":150.5},"windowStart":{"type":"string","format":"date-time","description":"Start timestamp of this aggregation window (ISO 8601).","example":"2026-02-01T00:00:00Z"},"windowEnd":{"type":"string","format":"date-time","description":"End timestamp of this aggregation window (ISO 8601).","example":"2026-02-01T23:59:59Z"}}}}}}}},"description":"Aggregated measurement data with model metadata."},"400":{"description":"Bad Request - Invalid parameters or validation errors.\nError codes: 7001 (invalid parameters), 7002 (invalid time range), 7004 (model not deployed).\n"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found - Measurement model not found (error code 7005)."},"500":{"description":"Internal Server Error"},"502":{"description":"Bad Gateway - OpenMeter service error (error code 7006)."}}}},"/ems/api/v5/measurementModels":{"post":{"tags":["Catalog"],"summary":"Add Measurement Model","description":"Create a new measurement model with optional Feature/Product associations.\n\n**State Options**:\n- `DRAFT` (default): Creates model without deploying to OpenMeter\n- `ENABLE`: Creates model and immediately deploys to OpenMeter\n\n**Recreation After Soft Delete**:\n- You can create a new measurement model with the same name/identifier/externalId as a soft-deleted model (state=CLOSE)\n- Both records coexist: one CLOSE, one active (DRAFT/ENABLE)\n","operationId":"addMeasurementModel","requestBody":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"measurementModel":{"type":"object","properties":{"name":{"type":"string","maxLength":255,"description":"<span style=\"color:red\">**Required** *</span> - Display name for the measurement model.","example":"API Usage Tracker"},"identifier":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-zA-Z0-9_]{3,255}$","description":"<span style=\"color:red\">**Required** *</span> - Unique slug (3-255 characters, alphanumeric and underscores only, no hyphens).","example":"api_usage_tracker"},"description":{"type":"string","maxLength":1000,"description":"Optional description of the measurement model.","example":"Tracks API usage metrics"},"externalId":{"type":"string","maxLength":255,"description":"Optional external system reference ID.","example":"ext-api-001"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"<span style=\"color:red\">**Required** *</span> - Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"<span style=\"color:red\">**Required** *</span> - Event type for the measurement.","example":"api_call"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value, e.g., \"downloads\", \"bytes\").","example":"requests"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"<span style=\"color:red\">**Required** *</span> - Aggregation type.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE"],"default":"DRAFT","description":"State for the new measurement model:\n- DRAFT: Creates model without deploying to OpenMeter (default)\n- ENABLE: Creates model and deploys to OpenMeter immediately\n","example":"DRAFT"},"aggregationValueAttribute":{"type":"string","description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["customerId","productId"]},"associatedFeature":{"type":"object","nullable":true,"example":null,"description":"Feature association. Set to null to create without a feature association.","properties":{"featureId":{"type":"string","description":"Feature global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}},"associatedProduct":{"type":"object","nullable":true,"example":null,"description":"Product association. Set to null to create without a product association.","properties":{"productId":{"type":"string","description":"Product global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}}}}}}}},"description":"Details of the measurement model to be added."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the measurement model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","maxLength":255,"description":"Display name of the measurement model.","example":"Sample Measurement Model"},"identifier":{"type":"string","minLength":3,"maxLength":255,"description":"Unique slug/identifier (3-255 characters, alphanumeric and underscores only, no hyphens). Used as OpenMeter meter slug when deployed.","example":"sample_measurement_model"},"description":{"type":"string","maxLength":1000,"description":"Detailed description of the measurement model.","example":"Sample description for measurement model"},"externalId":{"type":"string","maxLength":255,"description":"External system reference ID.","example":"ext-api-12345"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"Event type for the measurement.","example":"sample-event-type"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value).","example":"units"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"Aggregation method.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE","CLOSE"],"description":"Lifecycle state of the measurement model.","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","nullable":true,"description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["attribute1","attribute2","attribute3"]},"associatedFeature":{"type":"object","nullable":true,"description":"Associated feature details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Feature global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Feature external ID.","example":"ext-feature-123"},"identifier":{"type":"string","description":"Feature identifier (as string).","example":"3"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Feature name.","example":"Sample Feature"},"version":{"type":"string","description":"Feature version.","example":"1.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Associated product details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Product global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Product external ID.","example":"ext-product-456"},"identifier":{"type":"string","description":"Product identifier (as string).","example":"16"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Product name.","example":"Sample Product"},"version":{"type":"string","description":"Product version.","example":"2.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"meterId":{"type":"string","nullable":true,"description":"OpenMeter meter ID (set when deployed to OpenMeter).","example":"01XXXXXXXXXXXXXXXXXX"},"deployedState":{"type":"string","enum":["DEPLOYED","FAILED","DELETED"],"nullable":true,"description":"OpenMeter deployment state lifecycle:\n- DEPLOYED: Successfully deployed to OpenMeter\n- FAILED: Deployment failed (API error, timeout, or validation error)\n- DELETED: Meter deleted/closed in OpenMeter\n"},"deployedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was deployed to OpenMeter."},"closedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was closed in OpenMeter."},"createdBy":{"type":"string","description":"Name of the user who created the measurement model.","example":"user@domain.com"},"creationDate":{"type":"string","format":"date-time","readOnly":true,"description":"Creation date of the measurement model.","example":"2026-01-01 10:00"},"modifiedBy":{"type":"string","description":"Name of the user who last modified the measurement model.","example":"admin@domain.com"},"modifiedDate":{"type":"string","format":"date-time","readOnly":true,"description":"Last modified date of the measurement model.","example":"2026-01-02 12:00"}}}}},"description":"Measurement Model created successfully.\nThe auto-generated unique identifier (id) of the new resource is returned in the response.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"409":{"description":"Conflict - A measurement model with the same name, identifier, or externalId already exists."},"422":{"description":"Unprocessable Entity - Validation error (e.g., aggregationValueAttribute required for SUM/AVG/MIN/MAX/UNIQUE_COUNT)."},"500":{"description":"Internal Server Error"}}},"get":{"tags":["Catalog"],"summary":"Search Measurement Model","description":"Retrieve measurement models with optional filtering and pagination.\n\n**Response Format**:\n- Always returns array format with count: `{\"measurementModels\": {\"count\": N, \"measurementModel\": [...]}}`\n\n**Filter Logic (AND Behavior)**:\n- All filters are combined with AND logic — a model must match ALL provided filters.\n\n**Soft Delete Behavior**:\n- By default, soft-deleted models (state=CLOSE) are excluded from results.\n- Use `includeClosed=true` to include soft-deleted models.\n","operationId":"searchMeasurementModels","parameters":[{"name":"id","in":"query","description":"Filter by measurement model IDs (comma-separated, max 50).","schema":{"type":"string"}},{"name":"name","in":"query","description":"Filter by measurement model name.","schema":{"type":"string"}},{"name":"identifier","in":"query","description":"Filter by measurement model identifier (slug).","schema":{"type":"string"}},{"name":"eventType","in":"query","description":"Filter by event type.","schema":{"type":"string"}},{"name":"externalId","in":"query","description":"Filter by external ID.","schema":{"type":"string"}},{"name":"featureId","in":"query","description":"Filter by feature association (UUID).","schema":{"type":"string"}},{"name":"productId","in":"query","description":"Filter by product association (UUID).","schema":{"type":"string"}},{"name":"state","in":"query","description":"Filter by lifecycle state.","schema":{"type":"string","enum":["DRAFT","ENABLE","CLOSE"]}},{"name":"featureAssociation","in":"query","description":"Filter without feature association (value must be \"none\"). Returns models with no feature association.","schema":{"type":"string","enum":["none"]}},{"name":"availableForFeature","in":"query","description":"Filter by feature association availability.\n- `true`: Returns models available for feature association (FeatureId IS NULL)\n- `false`: Returns models NOT available (already has feature association)\n","schema":{"type":"boolean"}},{"name":"availableForProduct","in":"query","description":"Filter by product association availability.\n- `true`: Returns models available for product association (ProductId IS NULL)\n- `false`: Returns models NOT available (already has product association)\n","schema":{"type":"boolean"}},{"name":"includeClosed","in":"query","description":"Include soft-deleted models (state=CLOSE) in results. Default: false.","schema":{"type":"boolean"}},{"name":"deployedState","in":"query","description":"Filter by OpenMeter deployment state.","schema":{"type":"string","enum":["DEPLOYED","FAILED","DELETED"]}},{"name":"createdBy","in":"query","description":"Name of the user who created the measurement model.","schema":{"type":"string"}},{"name":"creationDateFrom","in":"query","description":"Start of the creation date range (in the YYYY-MM-DD format).","schema":{"type":"string"}},{"name":"creationDateTo","in":"query","description":"End of the creation date range (in the YYYY-MM-DD format).","schema":{"type":"string"}},{"name":"lastModifiedBy","in":"query","description":"Name of the user who last modified the measurement model.","schema":{"type":"string"}},{"name":"sortByAsc","in":"query","description":"Field name to sort results in ascending order. Cannot be used together with sortByDesc.\n","schema":{"type":"string","enum":["id","name","identifier","description","externalId","creationDate","lastModifiedDate","state","deployedState"]}},{"name":"sortByDesc","in":"query","description":"Field name to sort results in descending order. Cannot be used together with sortByAsc.\n","schema":{"type":"string","enum":["id","name","identifier","description","externalId","creationDate","lastModifiedDate","state","deployedState"]}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Possible values are: \n  - Exact: Retrieves records that match the search string exactly.\n  - Like: Retrieves records for which the search string appears anywhere in the value.\n  - Normal: Retrieves records where the value begins with the given search string.  \n\nDefault: Normal\n\n Note: It is recommended to use the EXACT search pattern for an improved API response time especially in the case of large data sets. ","schema":{"type":"string","enum":["Exact","Like","Normal"]}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page.\n Default: As set in the **Default Max Records per Page (API Calls)** Administration Console property.\n","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"measurementModels":{"type":"object","properties":{"count":{"type":"integer","example":0},"measurementModel":{"type":"array","items":{"type":"object"}}}}},"xml":{"name":"measurementModels"}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"}}}},"/ems/api/v5/measurementModels/{measurementModelId}":{"get":{"tags":["Catalog"],"summary":"Get Measurement Model","description":"Retrieve a single measurement model by ID, name, identifier, or external ID.\n\n**Supported identifier formats**:\n- By GlobalId (UUID): `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By GlobalId (explicit): `id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n- By MMName: `name=Sample Metric`\n- By MMIdentifier: `identifier=sample-identifier`\n- By ExternalId: `externalId=ext-001`\n","operationId":"getMeasurementModel","parameters":[{"name":"measurementModelId","in":"path","description":"Measurement Model identifier. Supports multiple formats:\n- By GlobalId (UUID): plain UUID string\n- By GlobalId (explicit): `id=<guid>` format\n- By MMName: `name=<value>` format\n- By MMIdentifier: `identifier=<value>` format\n- By ExternalId: `externalId=<value>` format\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the measurement model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","maxLength":255,"description":"Display name of the measurement model.","example":"Sample Measurement Model"},"identifier":{"type":"string","minLength":3,"maxLength":255,"description":"Unique slug/identifier (3-255 characters, alphanumeric and underscores only, no hyphens). Used as OpenMeter meter slug when deployed.","example":"sample_measurement_model"},"description":{"type":"string","maxLength":1000,"description":"Detailed description of the measurement model.","example":"Sample description for measurement model"},"externalId":{"type":"string","maxLength":255,"description":"External system reference ID.","example":"ext-api-12345"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"Event type for the measurement.","example":"sample-event-type"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value).","example":"units"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"Aggregation method.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE","CLOSE"],"description":"Lifecycle state of the measurement model.","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","nullable":true,"description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["attribute1","attribute2","attribute3"]},"associatedFeature":{"type":"object","nullable":true,"description":"Associated feature details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Feature global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Feature external ID.","example":"ext-feature-123"},"identifier":{"type":"string","description":"Feature identifier (as string).","example":"3"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Feature name.","example":"Sample Feature"},"version":{"type":"string","description":"Feature version.","example":"1.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Associated product details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Product global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Product external ID.","example":"ext-product-456"},"identifier":{"type":"string","description":"Product identifier (as string).","example":"16"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Product name.","example":"Sample Product"},"version":{"type":"string","description":"Product version.","example":"2.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"meterId":{"type":"string","nullable":true,"description":"OpenMeter meter ID (set when deployed to OpenMeter).","example":"01XXXXXXXXXXXXXXXXXX"},"deployedState":{"type":"string","enum":["DEPLOYED","FAILED","DELETED"],"nullable":true,"description":"OpenMeter deployment state lifecycle:\n- DEPLOYED: Successfully deployed to OpenMeter\n- FAILED: Deployment failed (API error, timeout, or validation error)\n- DELETED: Meter deleted/closed in OpenMeter\n"},"deployedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was deployed to OpenMeter."},"closedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was closed in OpenMeter."},"createdBy":{"type":"string","description":"Name of the user who created the measurement model.","example":"user@domain.com"},"creationDate":{"type":"string","format":"date-time","readOnly":true,"description":"Creation date of the measurement model.","example":"2026-01-01 10:00"},"modifiedBy":{"type":"string","description":"Name of the user who last modified the measurement model.","example":"admin@domain.com"},"modifiedDate":{"type":"string","format":"date-time","readOnly":true,"description":"Last modified date of the measurement model.","example":"2026-01-02 12:00"}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["Catalog"],"summary":"Replace Measurement Model","description":"Replace entire measurement model (all fields required).\n\n**Identifier formats**: Accepts same formats as GET operation (id, name, identifier, or externalId).\n\n**Deployed Model Restrictions** (when state=ENABLE and deployedState=DEPLOYED):\nOnly these fields can be modified: `name`, `description`, `externalId`, `filterByAttributes`, `associatedFeature`, `associatedProduct`.\nAll other fields are **immutable** and will return 422 if modified.\n\n**Important Validation**:\n- Cannot re-enable a meter that is already deployed (state=ENABLE and deployedState=DEPLOYED).\n","operationId":"updateMeasurementModel","parameters":[{"name":"measurementModelId","in":"path","description":"Measurement Model identifier. Supports multiple formats:\n- By GlobalId (UUID): plain UUID string\n- By GlobalId (explicit): `id=<guid>` format\n- By MMName: `name=<value>` format\n- By MMIdentifier: `identifier=<value>` format\n- By ExternalId: `externalId=<value>` format\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"name":{"type":"string","maxLength":255,"description":"<span style=\"color:red\">**Required** *</span> - Display name for the measurement model.","example":"API Usage Tracker Updated"},"identifier":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-zA-Z0-9_]{3,255}$","description":"<span style=\"color:red\">**Required** *</span> - Unique slug (3-255 characters, alphanumeric and underscores only, no hyphens).","example":"api_usage_tracker"},"description":{"type":"string","maxLength":1000,"description":"Optional description of the measurement model.","example":"Updated description for API usage metrics"},"externalId":{"type":"string","maxLength":255,"description":"Optional external system reference ID.","example":"ext-api-001-updated"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"<span style=\"color:red\">**Required** *</span> - Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"<span style=\"color:red\">**Required** *</span> - Event type for the measurement.","example":"api_call"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value, e.g., \"downloads\", \"bytes\").","example":"requests"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"<span style=\"color:red\">**Required** *</span> - Aggregation type.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE"],"description":"Lifecycle state:\n- DRAFT: Model without OpenMeter deployment\n- ENABLE: Deploy to OpenMeter\n\nNote: Cannot re-enable a meter that is already deployed.\n","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["customerId","productId","region"]},"associatedFeature":{"type":"object","nullable":true,"description":"Feature association. Set to null to remove association.","properties":{"featureId":{"type":"string","description":"Feature global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Product association. Set to null to remove association.","properties":{"productId":{"type":"string","description":"Product global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}}}}}},"description":"Measurement model details to be replaced."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the measurement model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","maxLength":255,"description":"Display name of the measurement model.","example":"Sample Measurement Model"},"identifier":{"type":"string","minLength":3,"maxLength":255,"description":"Unique slug/identifier (3-255 characters, alphanumeric and underscores only, no hyphens). Used as OpenMeter meter slug when deployed.","example":"sample_measurement_model"},"description":{"type":"string","maxLength":1000,"description":"Detailed description of the measurement model.","example":"Sample description for measurement model"},"externalId":{"type":"string","maxLength":255,"description":"External system reference ID.","example":"ext-api-12345"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"Event type for the measurement.","example":"sample-event-type"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value).","example":"units"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"Aggregation method.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE","CLOSE"],"description":"Lifecycle state of the measurement model.","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","nullable":true,"description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["attribute1","attribute2","attribute3"]},"associatedFeature":{"type":"object","nullable":true,"description":"Associated feature details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Feature global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Feature external ID.","example":"ext-feature-123"},"identifier":{"type":"string","description":"Feature identifier (as string).","example":"3"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Feature name.","example":"Sample Feature"},"version":{"type":"string","description":"Feature version.","example":"1.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Associated product details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Product global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Product external ID.","example":"ext-product-456"},"identifier":{"type":"string","description":"Product identifier (as string).","example":"16"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Product name.","example":"Sample Product"},"version":{"type":"string","description":"Product version.","example":"2.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"meterId":{"type":"string","nullable":true,"description":"OpenMeter meter ID (set when deployed to OpenMeter).","example":"01XXXXXXXXXXXXXXXXXX"},"deployedState":{"type":"string","enum":["DEPLOYED","FAILED","DELETED"],"nullable":true,"description":"OpenMeter deployment state lifecycle:\n- DEPLOYED: Successfully deployed to OpenMeter\n- FAILED: Deployment failed (API error, timeout, or validation error)\n- DELETED: Meter deleted/closed in OpenMeter\n"},"deployedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was deployed to OpenMeter."},"closedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was closed in OpenMeter."},"createdBy":{"type":"string","description":"Name of the user who created the measurement model.","example":"user@domain.com"},"creationDate":{"type":"string","format":"date-time","readOnly":true,"description":"Creation date of the measurement model.","example":"2026-01-01 10:00"},"modifiedBy":{"type":"string","description":"Name of the user who last modified the measurement model.","example":"admin@domain.com"},"modifiedDate":{"type":"string","format":"date-time","readOnly":true,"description":"Last modified date of the measurement model.","example":"2026-01-02 12:00"}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict - Duplicate name, identifier, or externalId."},"422":{"description":"Unprocessable Entity - Validation error (e.g., immutable field changed on deployed model, cannot re-enable already deployed meter)."},"500":{"description":"Internal Server Error"}}},"patch":{"tags":["Catalog"],"summary":"Update Measurement Model","description":"Update specific fields of a measurement model (only provided fields are updated).\n\n**Identifier formats**: Accepts same formats as GET operation (id, name, identifier, or externalId).\n\n**Deployed Model Restrictions** (when state=ENABLE and deployedState=DEPLOYED):\nOnly these fields can be modified: `name`, `description`, `externalId`, `filterByAttributes`, `associatedFeature`, `associatedProduct`.\nAll other fields are **immutable** and will return 422 if modified.\n\n**Important Validation**:\n- Cannot re-enable a meter that is already deployed (state=ENABLE and deployedState=DEPLOYED).\n","operationId":"partialUpdateMeasurementModel","parameters":[{"name":"measurementModelId","in":"path","description":"Measurement Model identifier. Supports multiple formats:\n- By GlobalId (UUID): plain UUID string\n- By GlobalId (explicit): `id=<guid>` format\n- By MMName: `name=<value>` format\n- By MMIdentifier: `identifier=<value>` format\n- By ExternalId: `externalId=<value>` format\n","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"name":{"type":"string","maxLength":255,"description":"<span style=\"color:red\">**Required** *</span> - Display name for the measurement model.","example":"API Usage Tracker Updated"},"identifier":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-zA-Z0-9_]{3,255}$","description":"<span style=\"color:red\">**Required** *</span> - Unique slug (3-255 characters, alphanumeric and underscores only, no hyphens).","example":"api_usage_tracker"},"description":{"type":"string","maxLength":1000,"description":"Optional description of the measurement model.","example":"Updated description for API usage metrics"},"externalId":{"type":"string","maxLength":255,"description":"Optional external system reference ID.","example":"ext-api-001-updated"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"<span style=\"color:red\">**Required** *</span> - Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"<span style=\"color:red\">**Required** *</span> - Event type for the measurement.","example":"api_call"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value, e.g., \"downloads\", \"bytes\").","example":"requests"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"<span style=\"color:red\">**Required** *</span> - Aggregation type.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE"],"description":"Lifecycle state:\n- DRAFT: Model without OpenMeter deployment\n- ENABLE: Deploy to OpenMeter\n\nNote: Cannot re-enable a meter that is already deployed.\n","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["customerId","productId","region"]},"associatedFeature":{"type":"object","nullable":true,"description":"Feature association. Set to null to remove association.","properties":{"featureId":{"type":"string","description":"Feature global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Product association. Set to null to remove association.","properties":{"productId":{"type":"string","description":"Product global ID (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}}}}}},"description":"Measurement model fields to be partially updated."},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","xml":{"name":"measurementModel"},"required":["name","identifier","eventSourceSchemaId","eventType","aggregationType"],"properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the measurement model.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","maxLength":255,"description":"Display name of the measurement model.","example":"Sample Measurement Model"},"identifier":{"type":"string","minLength":3,"maxLength":255,"description":"Unique slug/identifier (3-255 characters, alphanumeric and underscores only, no hyphens). Used as OpenMeter meter slug when deployed.","example":"sample_measurement_model"},"description":{"type":"string","maxLength":1000,"description":"Detailed description of the measurement model.","example":"Sample description for measurement model"},"externalId":{"type":"string","maxLength":255,"description":"External system reference ID.","example":"ext-api-12345"},"eventSourceSchemaId":{"type":"string","format":"uuid","description":"Reference to Event Source Schema (UUID).","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"eventType":{"type":"string","description":"Event type for the measurement.","example":"sample-event-type"},"unit":{"type":"string","maxLength":100,"description":"Unit of measurement (simple string value).","example":"units"},"aggregationType":{"type":"string","enum":["COUNT","SUM","AVG","MIN","MAX","UNIQUE_COUNT","LATEST"],"description":"Aggregation method.","example":"COUNT"},"state":{"type":"string","enum":["DRAFT","ENABLE","CLOSE"],"description":"Lifecycle state of the measurement model.","example":"ENABLE"},"aggregationValueAttribute":{"type":"string","nullable":true,"description":"Attribute to aggregate (required for SUM/AVG/MIN/MAX/UNIQUE_COUNT/LATEST).","example":"sample_attribute"},"filterByAttributes":{"type":"array","items":{"type":"string"},"description":"Array of attribute names used for filtering.","example":["attribute1","attribute2","attribute3"]},"associatedFeature":{"type":"object","nullable":true,"description":"Associated feature details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Feature global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Feature external ID.","example":"ext-feature-123"},"identifier":{"type":"string","description":"Feature identifier (as string).","example":"3"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Feature name.","example":"Sample Feature"},"version":{"type":"string","description":"Feature version.","example":"1.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"associatedProduct":{"type":"object","nullable":true,"description":"Associated product details. Set to null to remove association.","properties":{"id":{"type":"string","format":"uuid","description":"Product global ID.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","nullable":true,"description":"Product external ID.","example":"ext-product-456"},"identifier":{"type":"string","description":"Product identifier (as string).","example":"16"},"nameVersion":{"type":"object","properties":{"name":{"type":"string","description":"Product name.","example":"Sample Product"},"version":{"type":"string","description":"Product version.","example":"2.0"}}},"associatedAt":{"type":"string","format":"date-time","nullable":true,"description":"When association was created."},"associatedBy":{"type":"string","nullable":true,"description":"User who created the association.","example":"admin@domain.com"}}},"meterId":{"type":"string","nullable":true,"description":"OpenMeter meter ID (set when deployed to OpenMeter).","example":"01XXXXXXXXXXXXXXXXXX"},"deployedState":{"type":"string","enum":["DEPLOYED","FAILED","DELETED"],"nullable":true,"description":"OpenMeter deployment state lifecycle:\n- DEPLOYED: Successfully deployed to OpenMeter\n- FAILED: Deployment failed (API error, timeout, or validation error)\n- DELETED: Meter deleted/closed in OpenMeter\n"},"deployedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was deployed to OpenMeter."},"closedAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when model was closed in OpenMeter."},"createdBy":{"type":"string","description":"Name of the user who created the measurement model.","example":"user@domain.com"},"creationDate":{"type":"string","format":"date-time","readOnly":true,"description":"Creation date of the measurement model.","example":"2026-01-01 10:00"},"modifiedBy":{"type":"string","description":"Name of the user who last modified the measurement model.","example":"admin@domain.com"},"modifiedDate":{"type":"string","format":"date-time","readOnly":true,"description":"Last modified date of the measurement model.","example":"2026-01-02 12:00"}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity - Validation error (e.g., immutable field changed on deployed model, cannot re-enable already deployed meter)."},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["Catalog"],"summary":"Delete Measurement Model","description":"Delete a measurement model with automatic cleanup.\n\n**Deletion Behavior**:\n- **Deployed models** (state=ENABLE, deployedState=DEPLOYED): **SOFT DELETE** — meter is closed in OpenMeter, state changed to CLOSE, record kept for audit purposes.\n- **Non-deployed models** (DRAFT): **HARD DELETE** — record is permanently removed from database.\n\n**Recreation After Soft Delete**:\n- After soft deleting a deployed model, you can create a new measurement model with the same name, identifier, or externalId.\n\n**Identifier formats**: Accepts same formats as GET operation (id, name, identifier, or externalId).\n","operationId":"deleteMeasurementModel","parameters":[{"name":"measurementModelId","in":"path","description":"Measurement Model identifier. Supports multiple formats:\n- By GlobalId (UUID): plain UUID string\n- By GlobalId (explicit): `id=<guid>` format\n- By MMName: `name=<value>` format\n- By MMIdentifier: `identifier=<value>` format\n- By ExternalId: `externalId=<value>` format\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/ems/api/v5/namespaces/{id}":{"get":{"tags":["Catalog"],"summary":"Get Namespace","description":"Retrieve a specific namespace based on its unique identifier.\n","operationId":"getNamespace_1","parameters":[{"name":"id","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"xml":{"name":"namespace"},"type":"object","required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestNamespace"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT","readOnly":true},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"readOnly":true,"description":"Creation date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"readOnly":true,"description":"Last modified date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"}}}}},"description":"<i>OK</i> - Operation successful\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"put":{"tags":["Catalog"],"summary":"Replace Namespace","description":"Update an existing namespace completely. \n- If a parameter is not provided, the existing value will be replaced by blank or default.\n- If a parameter is set to blank, the existing value will be replaced with blank.\n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n\n\n**Note**:\n- You cannot change the following: id, state, and name (of deployed namespaces).\n- The following parameters specified in the request body are ignored: id and state.\n- For the name parameter, the new value specified should be correct and unique. Blank and duplicate values are not allowed.\n","operationId":"updateNamespace_1","parameters":[{"name":"id","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"xml":{"name":"namespace"},"type":"object","required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestNamespace"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT","readOnly":true},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"readOnly":true,"description":"Creation date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"readOnly":true,"description":"Last modified date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"}}}}},"description":"Namespace details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"xml":{"name":"namespace"},"type":"object","required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestNamespace"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT","readOnly":true},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"readOnly":true,"description":"Creation date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"readOnly":true,"description":"Last modified date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"patch":{"tags":["Catalog"],"summary":"Update Namespace","description":"Perform a partial update of the specific resource by setting the values of the parameters provided. \n- Any parameters not provided will be left unchanged. \n- If a parameter is set to blank, the existing value will be replaced with blank. \n- If a parameter is set to a valid value, the existing value will be replaced by the given value.\n- For the values allowed for the fileSize, segmentName, size, offset, and text parameters of a memory file, refer to the memory-related sections of the Sentinel EMS User Guide.\n","operationId":"partialUpdateNamespace_1","parameters":[{"name":"id","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true},{"in":"query","name":"returnResource","description":"Whether to return the created/updated resource in the response body. \n Possible values:\n - true \n - false \n\nDefault: true\n","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"xml":{"name":"namespace"},"type":"object","required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestNamespace"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT","readOnly":true},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"readOnly":true,"description":"Creation date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"readOnly":true,"description":"Last modified date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"}}}}},"description":"Namespace details to be updated."},"responses":{"200":{"content":{"application/json":{"schema":{"xml":{"name":"namespace"},"type":"object","required":["name"],"properties":{"id":{"type":"string","description":"Auto-generated unique identifier of the namespace.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"name":{"type":"string","description":"Unique name of the namespace. You can specify up to 200 alphanumeric characters. \nThe following special characters are not allowed: % ^ & [ ] \\\" < >\n","example":"TestNamespace"},"state":{"type":"string","description":"State of the namespace. A namespace is initially created in the DRAFT stage. The state is changed to DEPLOYED when an entitlement is created with products belonging to the namespace.","enum":["DEPLOYED","DRAFT"],"example":"DRAFT","readOnly":true},"refId1":{"type":"string","description":"First reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId1"},"refId2":{"type":"string","description":"Second reference identifier of the namespace as used by external ERP/CRM systems.\n","example":"refId2"},"description":{"type":"string","description":"Description of the namespace. You can specify up to 500 alphanumeric characters including special characters.","example":"Namespace description"},"createdBy":{"type":"string","description":"Name of the vendor user who created the namespace.","example":"TestUserName"},"creationDate":{"readOnly":true,"description":"Creation date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"},"lastModifiedBy":{"type":"string","description":"Name of the vendor user who last modified the namespace.","example":"TestUserName"},"lastModifiedDate":{"readOnly":true,"description":"Last modified date of the namespace.","example":"2019-12-19 06:43","format":"date-time","type":"string"}}}}},"description":"<i>OK</i> - Operation successful\n"},"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}},"delete":{"tags":["Catalog"],"summary":"Delete Namespace","description":"Delete a namespace if it is in the draft state.","operationId":"deleteNamespace_1","parameters":[{"name":"id","in":"path","description":"Unique identifier of the namespace. Possible values are:  \n - id \n - name (For example: name=TestNamespace)\n","schema":{"type":"string"},"required":true}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ems/api/v5/partnerUsers/anonymous/resetPassword":{"patch":{"tags":["Partner"],"summary":"Forgot Partner User Password","description":"Reset the password of the partner user.","operationId":"resetPartnerUserPassword","parameters":[{"name":"emailId","in":"query","description":"Unique email address of the partner user.","schema":{"type":"string"}}],"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[]}},"/ems/api/v5/partners/{partnerId}/partnerUsers/{partnerUserId}/changePassword":{"patch":{"tags":["Partner"],"summary":"Change Partner User Password","description":"Change the password of the partner user. The current login session is closed after the password has been changed.","operationId":"changePartnerUserPassword","parameters":[{"name":"partnerId","in":"path","description":"Unique identifier of the partner. Possible values are: \n  - id \n  - name (For example: name=TestChannelPartner)\n    Note: It should be unique.\n  - identifier (For example: identifier=CPIdentifier)\n  - externalId (For example: externalId=CPExternalId)\n","schema":{"type":"string"},"required":true},{"name":"partnerUserId","in":"path","description":"Unique login ID of the partner user.","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"xml":{"name":"changePassword"},"type":"object","required":["oldPassword","newPassword"],"properties":{"oldPassword":{"type":"string","description":"Existing password of the partner user.","example":"Ems@12345"},"newPassword":{"type":"string","description":"New password of the partner user. \nThe password must contain the following:\n <ul> <li>8 to 30 characters</li> <li>Atleast one lowercase character (a-z)\n</li> <li>Atleast one uppercase character (A-Z)\n</li> <li>Atleast one number (0-9) or special character (! @ # $ % ^ & * ( ) _ - + = , .)</li> </ul> <p>The value should be URL encoded if it contains any reserved characters. </p>","example":"Ems@12345"},"logoutAllSessions":{"type":"boolean","description":"Optional parameter to terminate all active user sessions when changing password. \nIf true: All active sessions (across all devices/browsers) are terminated. \nIf false or omitted: Only the current HTTP session is invalidated (default behavior). \nPassword change succeeds even if session logout fails.","default":false,"example":true}}},"example":{"changePassword":{"oldPassword":"Ems@12345","newPassword":"NewEms@67890","logoutAllSessions":true}}}},"description":"Change password details of the partner user."},"responses":{"204":{"description":"<i>No Content</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}},"security":[]}},"/ems/api/v5/provisioningRequests/{provisioningId}/retry":{"patch":{"tags":["Provisioning"],"summary":"Retry Failed Provisioning Request","description":"Resends a previously failed provisioning request to the configured provisioning method.\n\n- Only provisioning requests with status FAILED or DISPATCH_FAILED are eligible for retry.\n- You can use this endpoint when a previous provisioning attempt failed due to transient issues (such as network errors or receiver downtime), or after resolving issues related to the provisioning method endpoint, authentication profile, or configuration.\n- The endpoint resends the original request to the callout URL configured in the provisioning method, increments manualRetryCount, and updates retryDateTime to the current timestamp.\n- If the retry succeeds, the status transitions to REQUEST_SENT or IN_PROGRESS, depending on the receiver response. If the retry fails, the status remains unchanged.\n\n**Note:** Only administrators and standard users with catalog permissions can invoke this endpoint.","operationId":"retryProvisioningRequest","parameters":[{"name":"provisioningId","in":"path","description":"Unique identifier of a provisioning request in FAILED or DISPATCH_FAILED status.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"xml":{"name":"provisioningRequestRetry"},"type":"object","properties":{"provisioningRequest":{"type":"object","description":"Details of the provisioning request.","properties":{"id":{"type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","description":"Auto-generated unique identifier of the provisioning request.","format":"uuid","readOnly":true},"status":{"type":"string","description":"Status of the provisioning request.\nPossible Values are:\n\n- REQUEST_QUEUED: The provisioning request is created and queued for processing.\n- REQUEST_SENT: The provisioning request is sent to the receiver.\n- DISPATCH_FAILED: The provisioning request is not dispatched to the receiver.\n- IN_PROGRESS: The provisioning is under processing.\n- COMPLETED: The resource provisioning is complete.\n- FAILED: The resource provisioning failed.\n\nNote: Using the PATCH method, you can update the following statuses of a provisioning request: IN_PROGRESS, COMPLETED, FAILED.","example":"DISPATCH_FAILED","readOnly":true},"statusUpdatedDate":{"type":"string","format":"date-time","description":"Timestamp when the status was last updated (typically during the retry operation).","example":"2026-05-05 08:52:35","readOnly":true},"createDateTime":{"type":"string","format":"date-time","description":"Original creation timestamp of the provisioning request. This does not change during retry.","example":"2028-02-02 08:50:48","readOnly":true},"retryDateTime":{"type":"string","format":"date-time","description":"Timestamp of the most recent retry attempt automatically.","example":"2026-05-05 08:52:35","readOnly":true},"retryCount":{"type":"integer","description":"Total number of retry attempts (both automatic system retries and manual retries via this endpoint). This count includes all retry operations performed on this provisioning request.","example":1,"readOnly":true},"manualRetryCount":{"type":"integer","description":"Number of manual retry attempts initiated through this endpoint. Incremented each time the provisioning request is successfully resent.","example":1,"readOnly":true},"eventId":{"type":"string","format":"uuid","description":"Unique identifier of the webhook event associated with the provisioning request. You can use this identifier to trace the event in logs and webhook delivery records.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true},"activatedQuantity":{"type":"integer","description":"Quantity of the product activated when the provisioning request was originally created.","example":112},"privateInfo":{"type":"string","description":"Additional information about what was set up during the provisioning. You can include details such as account or tenant information, system references, or notes from the target application.","example":""},"comments":{"type":"string","description":"Additional remarks related to the provisioning request status update.","example":""},"pkId":{"type":"string","format":"uuid","description":"Unique identifier of the product key associated with the provisioning request. Please also update in “Search” and “Update” endpoints.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"entitlement":{"type":"object","description":"Entitlement information associated with the provisioning request.Please also update in “Search” and “Update” endpoints.","properties":{"eId":{"type":"string","format":"uuid","description":"Unique identifier of the entitlement.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}},"aId":{"type":"string","format":"uuid","description":"Unique identifier of the activation associated with the provisioning request.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"product":{"type":"object","description":"Product information associated with the provisioning request.","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the product.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the product.","example":"ProdRTU1"},"version":{"type":"string","description":"Version of the product.","example":"1"}}},"provisioningPlan":{"type":"object","description":"Provisioning plan details associated with the provisioning request.","properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the provisioning plan.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the provisioning plan.","example":"TestPlan1"},"identifier":{"type":"string","format":"uuid","description":"User-defined or system-generated identifier of the provisioning plan.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}},"provisioningMethod":{"type":"object","description":"Provisioning method associated with the provisioning request","properties":{"id":{"type":"string","format":"uuid","description":"Auto-generated unique identifier of the provisioning method.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the provisioning method.","example":"TestMethod1"},"identifier":{"type":"string","format":"uuid","description":"User-defined or system-generated identifier of the provisioning method.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"type":{"type":"string","description":"Type of the provisioning method. Possible values: CALLOUT (request is sent to an external endpoint via HTTP/HTTPS), EMAIL (request is sent via email - future implementation).","example":"CALLOUT"},"calloutAttributes":{"type":"object","description":"Configuration for CALLOUT type provisioning methods. Contains endpoint and authentication details.","properties":{"calloutURL":{"type":"string","description":"The external endpoint URL where the retry request will be sent.","example":"www.example.com/mycallout"},"authProfileName":{"type":"string","description":"Name of the authentication profile used to authenticate with the external endpoint. Only basic authentication profiles are supported.","example":"AuthP1"}}},"emailAttributes":{"type":"object","description":"Configuration for EMAIL type provisioning methods. Currently not implemented.","properties":{}}}}}}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/ldk/api/v5/detachedLicenseSessions":{"get":{"tags":["LDKLicense"],"summary":"Search Detached Sessions","description":"Note: This endpoint is applicable only to Sentinel LDK CL.\n Retrieve active detached license sessions for Sentinel LDK products, including both manually detached and auto-detached licenses. Use this endpoint to monitor offline license consumption, identify users consuming detached network seats, and identify license sessions that can be released when needed.\n <br/> **<b>Authentication and Authorization</b>**\n  - Vendor User \n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Administrator Vendor Users and Service Accounts: Can retrieve the license sessions.\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦ Standard Vendor Users with Customer Management permissions: Can retrieve the license sessions based on their market group. \n- Customer User \n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ◦\tCustomer Administrators: Can retrieve license sessions only for users and machine accounts associated with their customer.\n","operationId":"SearchDetachedLicenseSession","parameters":[{"name":"x-sntl-customer-context","in":"header","description":"Customer context token to perform operations on behalf of another customer account.","schema":{"type":"string","maxLength":500}},{"name":"customerId","in":"query","description":"Unique ID of the customer. \n - Mandatory for Administrator Vendor Users, Service Accounts, and Standard Vendor Users with Customer Management permissions.\n - Optional for Customer Administrators.","schema":{"type":"string"}},{"name":"productIdentifier","in":"query","description":"Unique identifier of the product.","schema":{"type":"string"}},{"name":"userId","in":"query","description":"Unique identifier of the user consuming the license. Used to filter detached license sessions for user-based licensing.","schema":{"type":"string"}},{"name":"identityCode","in":"query","description":"Unique identifier of the client identity for the machine account. Used to filter detached license sessions for device-based licensing.","schema":{"type":"string"}},{"name":"pageStartIndex","in":"query","description":"Starting index of the returned records.\n Default: 0\n","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"Number of records to return per page. \n Default: 200","schema":{"type":"integer"}},{"name":"searchPattern","in":"query","description":"Search pattern for filtering results. Only **<b>Exact</b>** is supported as a valid value.","schema":{"type":"string","enum":["Exact"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"description":"Total number of records.","type":"integer","example":1},"detachedSession":{"type":"array","items":{"type":"object","properties":{"sessionId":{"type":"string","description":"Unique identifier of the detached license session.","example":635643874},"keyId":{"type":"string","description":"Unique identifier of the Sentinel key associated with the detached license session.","example":494252232027326600},"detachKeyId":{"type":"string","description":"Unique identifier of the detached Sentinel key created for offline usage.","example":494252232027326500},"productIdentifier":{"type":"string","description":"Unique identifier of the product.","example":44},"userId":{"type":"string","description":"Unique identifier of the user consuming the license.<br><br> **Note:** The API response includes either a userID or an identityCode, depending on the type of licensing. For user-based licensing, the response contains the userID to identify the authorized user.","example":"TestUserId"},"identityCode":{"type":"string","description":"Unique identifier of the client identity for the machine account.<br><br> **Note:** The API response includes either a userID or an identityCode, depending on the type of licensing. For device-based licensing, it includes the identityCode to verify the authorized device.","example":"TestIdentityCode"},"machineName":{"type":"string","description":"Unique name of the registered machine. ","example":"82kz9c3"},"expirationTime":{"type":"string","description":"Date and time when the detached license session expires.","example":"2026-06-11 12:21:17","format":"date-time"},"detachTime":{"type":"string","description":"Date and time when the license was detached from the license manager.","example":"2026-06-11 12:21:17"},"ipAddress":{"type":"string","description":"IP address of the machine using the detached license session.","example":"165.225.125.43"},"hostUserName":{"type":"string","description":"Operating system user name of the machine running the detached license session.","example":"testHost"}}}}}}}},"description":"<i>OK</i> - Operation successful\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}},"/token/scim/v2/ResourceTypes":{"get":{"tags":["User"],"summary":"ResourceTypes","description":"Returns the resource type definitions advertised by this service provider (e.g. User), describing the endpoint, schema, and schema extensions for each resource type, as defined in RFC 7643 §6.\nNo authentication required (unauthenticated per RFC 7644 §4).\n","operationId":"getScimResourceTypes","responses":{"200":{"description":"OK — Returns the static ResourceTypes JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime. Returns one resource type definition for the Vendor User resource.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","description":"SCIM schema identifier for ListResponse.","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:ListResponse"]},"totalResults":{"type":"integer","description":"Number of resource types returned.","example":1},"startIndex":{"type":"integer","description":"Index of the first result (1-based).","example":1},"itemsPerPage":{"type":"integer","description":"Number of results in this response.","example":1},"Resources":{"type":"array","description":"List of SCIM resource type definitions.","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the resource type.","example":"User"},"name":{"type":"string","description":"Name of the resource type.","example":"User"},"endpoint":{"type":"string","description":"Relative HTTP-addressable endpoint for the resource type.","example":"/users"},"description":{"type":"string","description":"Human-readable description of the resource type.","example":"Vendor User Resource"},"schema":{"type":"string","description":"URN of the primary schema for this resource type.","example":"urn:ietf:params:scim:schemas:core:2.0:User"},"schemaExtensions":{"type":"array","description":"Schema extensions applied to this resource type.","items":{"type":"object","properties":{"schema":{"type":"string","description":"URN of the schema extension.","example":"urn:sentinel:scim:schemas:extension:vendor:2.0:User"}}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":1,"startIndex":1,"itemsPerPage":1,"Resources":[{"id":"User","name":"User","endpoint":"/users","description":"Vendor User Resource","schema":"urn:ietf:params:scim:schemas:core:2.0:User","schemaExtensions":[{"schema":"urn:sentinel:scim:schemas:extension:vendor:2.0:User"}]}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/Schemas":{"get":{"tags":["User"],"summary":"Schemas","description":"Returns all SCIM 2.0 schema definitions supported by this service provider, including the core User schema (urn:ietf:params:scim:schemas:core:2.0:User) and the Sentinel vendor extension schema (urn:sentinel:scim:schemas:extension:vendor:2.0:User), as defined in RFC 7643 §7.\nNo authentication required (unauthenticated per RFC 7644 §4).\n","operationId":"getScimSchemas","responses":{"200":{"description":"OK — Returns the static Schemas JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime. Returns two schema definitions: the SCIM core User schema and the Sentinel vendor extension schema.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","description":"SCIM schema identifier for ListResponse.","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:ListResponse"]},"totalResults":{"type":"integer","description":"Number of schema definitions returned.","example":2},"startIndex":{"type":"integer","description":"Index of the first result (1-based).","example":1},"itemsPerPage":{"type":"integer","description":"Number of results in this response.","example":2},"Resources":{"type":"array","description":"List of SCIM schema definitions.","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique schema URN identifier.","example":"urn:ietf:params:scim:schemas:core:2.0:User"},"name":{"type":"string","description":"Short name of the schema.","example":"User"},"description":{"type":"string","description":"Human-readable description of the schema.","example":"User Schema"},"attributes":{"type":"array","description":"List of attributes defined by this schema.","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name."},"type":{"type":"string","description":"Attribute data type (string, boolean, complex, dateTime)."},"mutability":{"type":"string","description":"Mutability: readOnly, readWrite, immutable."},"multiValued":{"type":"boolean","description":"Whether the attribute is multi-valued."}}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":2,"startIndex":1,"itemsPerPage":2,"Resources":[{"id":"urn:ietf:params:scim:schemas:core:2.0:User","name":"User","description":"User Schema","attributes":[{"name":"id","type":"string","mutability":"readOnly"},{"name":"externalId","type":"string","mutability":"readWrite"},{"name":"userName","type":"string","mutability":"immutable"},{"name":"displayName","type":"string","mutability":"readWrite"},{"name":"active","type":"boolean","mutability":"readWrite"},{"name":"userType","type":"string","mutability":"readWrite"},{"name":"emails","type":"complex","mutability":"readWrite","multiValued":true},{"name":"roles","type":"complex","mutability":"readWrite","multiValued":true},{"name":"meta","type":"complex","mutability":"readOnly","multiValued":false}]},{"id":"urn:sentinel:scim:schemas:extension:vendor:2.0:User","name":"VendorUser","description":"Sentinel Vendor User Extension","attributes":[{"name":"isLocked","type":"boolean","mutability":"readWrite"},{"name":"expiresOn","type":"dateTime","mutability":"readWrite"},{"name":"refId1","type":"string","mutability":"readWrite"},{"name":"refId2","type":"string","mutability":"readWrite"},{"name":"identityProvider","type":"complex","mutability":"readWrite"},{"name":"marketGroups","type":"complex","mutability":"readWrite","multiValued":true}]}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/ServiceProviderConfig":{"get":{"tags":["User"],"summary":"ServiceProviderConfig","description":"Returns the SCIM 2.0 service provider configuration describing the features and capabilities supported by this implementation (supported operations, authentication schemes, filtering, sorting, bulk, etc.), as defined in RFC 7643 §5.\nNo authentication required (unauthenticated per RFC 7644 §4).\n","operationId":"getScimServiceProviderConfig","responses":{"200":{"description":"OK — Returns the static ServiceProviderConfig JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","description":"SCIM schema identifier for ServiceProviderConfig.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"]},"documentationUri":{"type":"string","description":"URL to the SCIM documentation.","example":"https://www.abc.dev.sentinelcloud.com/scim/docs"},"patch":{"type":"object","description":"Indicates whether PATCH is supported.","properties":{"supported":{"type":"boolean","example":true}}},"bulk":{"type":"object","description":"Indicates whether bulk operations are supported.","properties":{"supported":{"type":"boolean","example":false},"maxOperations":{"type":"integer","example":0},"maxPayloadSize":{"type":"integer","example":0}}},"filter":{"type":"object","description":"Indicates whether filtering is supported.","properties":{"supported":{"type":"boolean","example":true},"maxResults":{"type":"integer","description":"Maximum number of results per page.","example":200}}},"changePassword":{"type":"object","description":"Indicates whether password change via SCIM is supported.","properties":{"supported":{"type":"boolean","example":false}}},"sort":{"type":"object","description":"Indicates whether sorting is supported.","properties":{"supported":{"type":"boolean","example":true}}},"etag":{"type":"object","description":"Indicates whether ETags are supported.","properties":{"supported":{"type":"boolean","example":false}}},"authenticationSchemes":{"type":"array","description":"Supported authentication schemes.","items":{"type":"object","properties":{"type":{"type":"string","description":"Authentication scheme type.","example":"oauth2"},"name":{"type":"string","description":"Authentication scheme name.","example":"OAuth 2.0 Bearer Token"},"description":{"type":"string","example":"Bearer token authentication"},"primary":{"type":"boolean","description":"Whether this is the primary authentication scheme.","example":true}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"],"documentationUri":"https://www.abc.dev.sentinelcloud.com/scim/docs","patch":{"supported":true},"bulk":{"supported":false,"maxOperations":0,"maxPayloadSize":0},"filter":{"supported":true,"maxResults":200},"changePassword":{"supported":false},"sort":{"supported":true},"etag":{"supported":false},"authenticationSchemes":[{"type":"oauth2","name":"OAuth 2.0 Bearer Token","description":"Bearer token authentication","primary":true}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/Users":{"post":{"tags":["User"],"summary":"Create Vendor User","description":"Provisions a new Vendor (ISV) user; returns the created user representation with a server-assigned id (HTTP 201).\n","operationId":"createScimVendorUser","security":[{"OAuth2_client_Credentials":[]}],"requestBody":{"description":"Details of the SCIM vendor user to be created.","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"userName":"jsmith","displayName":"John Smith","active":true,"userType":"STANDARD","externalId":"ext-001","emails":[{"value":"jsmith@example.com","primary":true}],"roles":[{"display":"Admin"}],"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel"},"isLocked":false,"expiresOn":"2026-12-31T23:59:59Z","refId1":"ref-a","refId2":"ref-b","marketGroups":[{"name":"APAC"}]}}}}},"responses":{"201":{"description":"Created — Vendor user provisioned successfully. Response body contains the created user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"id":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","externalId":"ext-001","userName":"jsmith","displayName":"John Smith","active":true,"userType":"STANDARD","emails":[{"value":"jsmith@example.com","primary":true}],"roles":[{"value":"11111111-2222-3333-4444-555555555555","display":"Admin","type":"application","primary":false}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/Users/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"isLocked":false,"expiresOn":"2026-12-31T23:59:59Z","refId1":"ref-a","refId2":"ref-b","marketGroups":[{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"APAC"}]}}}}},"400":{"description":"Bad Request — Invalid payload, missing required field, or invalid filter syntax.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"409":{"description":"Conflict — User already exists (only when idempotent lookup also fails).\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/Users/search":{"get":{"tags":["User"],"summary":"Search Vendor Users","description":"Returns a paginated list of Vendor users, optionally filtered using SCIM filter syntax.\n","operationId":"searchScimVendorUsers","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"filter","in":"query","description":"SCIM filter expression. Supported operators: eq, sw, co, and.\n\nSupported attributes:\n- userName — Unique login identifier of the vendor user.\n- emails.value — Email address of the vendor user.\n- active — Account state (true or false).\n- id — Server-assigned unique identifier.\n- externalId — Caller-supplied external identifier. Matched client-side (not forwarded to EMS).\n\nExamples:\n- userName eq \"jsmith\"\n- userName sw \"js\" and active eq \"true\"\n","schema":{"type":"string"},"example":"userName eq \"jsmith\""},{"name":"startIndex","in":"query","description":"1-based index of the first result to return. Defaults to 1.","schema":{"type":"integer","default":1},"example":1},{"name":"count","in":"query","description":"Maximum number of results to return. Capped at 200.","schema":{"type":"integer","default":10,"maximum":200},"example":10}],"responses":{"200":{"description":"OK — Returns a paginated list of vendor users.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"totalResults":{"type":"integer","description":"Total number of matching results."},"startIndex":{"type":"integer","description":"Index of the first result returned (1-based)."},"itemsPerPage":{"type":"integer","description":"Number of results returned in this response."},"Resources":{"type":"array","description":"Array of Vendor User objects.","items":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":1,"startIndex":1,"itemsPerPage":10,"Resources":[{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","userName":"jsmith","displayName":"John Smith","active":true,"userType":"STANDARD","emails":[{"value":"jsmith@example.com","primary":true}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"isLocked":false}}]}}}},"400":{"description":"Bad Request — Invalid filter syntax or unsupported filter attribute/operator.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/Users/{id}":{"get":{"tags":["User"],"summary":"Get Vendor User","description":"Retrieves the SCIM representation of a single Vendor user by their server-assigned id.\n","operationId":"getScimVendorUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the vendor user (as returned in the id field on create or search).","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"responses":{"200":{"description":"OK — Returns the vendor user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"ext-001","userName":"jsmith","displayName":"John Smith","active":true,"userType":"STANDARD","emails":[{"value":"jsmith@example.com","primary":true}],"roles":[{"value":"11111111-2222-3333-4444-555555555555","display":"Admin","type":"application","primary":false}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"isLocked":false,"expiresOn":"2026-12-31T23:59:59Z","refId1":"ref-a","refId2":"ref-b","marketGroups":[{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"APAC"}]}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["User"],"summary":"Replace Vendor User","description":"Fully replaces a Vendor user's attributes; all writable fields must be supplied in the request body.\nuserName must match the existing value — it is immutable and any attempt to change it returns HTTP 400 mutability. identityProvider.name is required.\n","operationId":"replaceScimVendorUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the vendor user to replace.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"requestBody":{"description":"Full replacement representation of the vendor user. All writable fields should be included.","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"userName":"jsmith","displayName":"John Smith Updated","active":true,"userType":"STANDARD","externalId":"ext-001","emails":[{"value":"jsmith@example.com","primary":true}],"roles":[{"display":"Admin"}],"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel"},"isLocked":false,"expiresOn":"2027-12-31T23:59:59Z","refId1":"ref-a","refId2":"ref-b","marketGroups":[{"name":"APAC"}]}}}}},"responses":{"200":{"description":"OK — Returns the fully replaced vendor user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"ext-001","userName":"jsmith","displayName":"John Smith Updated","active":true,"userType":"STANDARD","emails":[{"value":"jsmith@example.com","primary":true}],"roles":[{"value":"11111111-2222-3333-4444-555555555555","display":"Admin","type":"application","primary":false}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-15T08:30:00.000Z","location":"https://<host>/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"isLocked":false,"expiresOn":"2027-12-31T23:59:59Z","refId1":"ref-a","refId2":"ref-b","marketGroups":[{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"APAC"}]}}}}},"400":{"description":"Bad Request — Missing required field, invalid payload, or attempt to change immutable userName.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"patch":{"tags":["User"],"summary":"Update Vendor User","description":"Partially updates a Vendor user using a SCIM Operations patch document (replace only).\nOnly the fields specified in the Operations array are updated.\n","operationId":"updateScimVendorUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the vendor user to update.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"requestBody":{"description":"SCIM PatchOp document. Only op: replace is supported.","content":{"application/json":{"schema":{"type":"object","required":["schemas","Operations"],"properties":{"schemas":{"type":"array","description":"Must be [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"].","items":{"type":"string"}},"Operations":{"type":"array","description":"List of patch operations to apply.","items":{"type":"object","required":["op","value"],"properties":{"op":{"type":"string","enum":["replace"],"description":"Operation type. Only replace is supported."},"path":{"type":"string","description":"Attribute path to update. Supported paths:\n- displayName\n- active\n- emails\n- externalId\n- userType\n- roles\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:isLocked\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:expiresOn\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:refId1\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:refId2\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:identityProvider.name\n- urn:sentinel:scim:schemas:extension:vendor:2.0:User:marketGroups\n\nImmutable (returns 400 mutability): userName, id, meta, meta.*, identityProvider.displayName\n"},"value":{"description":"New value for the targeted attribute."}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"displayName","value":"Jane Smith"},{"op":"replace","path":"active","value":false},{"op":"replace","path":"urn:sentinel:scim:schemas:extension:vendor:2.0:User:isLocked","value":true}]}}}},"responses":{"200":{"description":"OK — Returns the updated vendor user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the vendor user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Auto-generated unique identifier of the vendor user. Assigned by EMS on creation.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"External identifier assigned by the Identity Provider (IdP). Used for IdP-to-EMS user mapping.","example":"vendor_ext_001"},"userName":{"type":"string","description":"Unique login name of the vendor user. Maps to EMS loginId.\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"testVendorUser1"},"displayName":{"type":"string","description":"Full display name of the vendor user. Maps to EMS name field.","example":"Test Vendor User"},"active":{"type":"boolean","description":"Whether the vendor user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the vendor user.\n- STANDARD: A standard vendor user granted permissions via roles.\n- Administrator: A vendor user with administrative rights.\n\nDefault: STANDARD\n","example":"Standard"},"emails":{"type":"array","description":"Email addresses of the vendor user. Only the entry with primary set to true is used and mapped to EMS emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the vendor user. Maps to EMS emailId.","example":"testvendor@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Only the primary email is used.","example":true}}}},"roles":{"type":"array","description":"Roles associated with the vendor user.\n\n- On write: provide display (role name) to assign a role.\n- On read: value (EMS UUID) and type are returned by EMS.\n","items":{"type":"object","properties":{"value":{"readOnly":true,"type":"string","description":"EMS-assigned UUID of the role. Returned in response only.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"display":{"type":"string","description":"Name of the role to assign. Required on write.","example":"entitlementrole"},"type":{"readOnly":true,"type":"string","description":"Type of the role. Always returns application.","example":"application"},"primary":{"readOnly":true,"type":"boolean","description":"Whether this is the primary role. Always returns false.","example":false}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the vendor user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Equal to created if no modification has occurred.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"URI of this vendor user resource.","example":"/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"type":"object","description":"Sentinel vendor-specific extension attributes for the vendor user.","properties":{"isLocked":{"type":"boolean","description":"Whether the vendor user account is locked. A locked account cannot log in to the Sentinel EMS portal.","example":false},"expiresOn":{"type":"string","description":"Expiration date of the vendor user account in YYYY-MM-DD format. After this date, the user login is disabled.","example":"2026-12-31"},"refId1":{"type":"string","description":"First reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref1_value"},"refId2":{"type":"string","description":"Second reference identifier of the vendor user, as used by external ERP/CRM systems.","example":"ref2_value"},"identityProvider":{"type":"object","description":"Identity provider associated with the vendor user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on create and update.","example":"vendorIDP"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS from the name field. Read-only.","example":"Vendor IDP"}}},"marketGroups":{"type":"array","description":"Market groups associated with the vendor user.","items":{"type":"object","properties":{"id":{"type":"string","description":"EMS-assigned UUID of the market group. Read-only on CREATE; writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"mg1"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:vendor:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","userName":"jsmith","displayName":"Jane Smith","active":false,"userType":"STANDARD","emails":[{"value":"jsmith@example.com","primary":true}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-20T09:00:00.000Z","location":"https://<host>/scim/v2/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:vendor:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"isLocked":true}}}}},"400":{"description":"Bad Request — Invalid PatchOp syntax, unsupported path, or attempt to modify an immutable field.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["User"],"summary":"Delete Vendor User","description":"Permanently removes a Vendor user; returns HTTP 204 with no response body on success.\n","operationId":"deleteScimVendorUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the vendor user to delete.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"responses":{"204":{"description":"No Content — Operation successful.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/ResourceTypes":{"get":{"tags":["Customer"],"summary":"ResourceTypes","description":"Returns the resource type definitions for the Customer user endpoint (unauthenticated, per RFC 7644 §4).\n","operationId":"getScimCustomerResourceTypes","responses":{"200":{"description":"OK — Returns the static ResourceTypes JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime. Returns one resource type definition for the Customer User resource.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"description":"SCIM schema identifier for ListResponse."},"totalResults":{"type":"integer","description":"Number of resource types returned.","example":1},"Resources":{"type":"array","description":"List of SCIM resource type definitions.","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the resource type."},"name":{"type":"string","description":"Name of the resource type."},"endpoint":{"type":"string","description":"Relative HTTP-addressable endpoint."},"description":{"type":"string","description":"Human-readable description."},"schema":{"type":"string","description":"URN of the primary schema."},"schemaExtensions":{"type":"array","items":{"type":"object","properties":{"schema":{"type":"string"}}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":1,"Resources":[{"id":"User","name":"User","endpoint":"/users","description":"Customer User SCIM Resource","schema":"urn:ietf:params:scim:schemas:core:2.0:User","schemaExtensions":[{"schema":"urn:sentinel:scim:schemas:extension:customer:2.0:User"}]}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/Schemas":{"get":{"tags":["Customer"],"summary":"Schemas","description":"Returns all SCIM 2.0 schema definitions for the Customer user endpoint (unauthenticated, per RFC 7644 §4).\n","operationId":"getScimCustomerSchemas","responses":{"200":{"description":"OK — Returns the static Schemas JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime. Returns two schema definitions: the SCIM core User schema and the Sentinel customer extension schema.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"description":"SCIM schema identifier for ListResponse."},"totalResults":{"type":"integer","description":"Number of schema definitions returned.","example":2},"startIndex":{"type":"integer","example":1},"itemsPerPage":{"type":"integer","example":2},"Resources":{"type":"array","description":"List of SCIM schema definitions.","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique schema URN identifier."},"name":{"type":"string","description":"Short name of the schema."},"description":{"type":"string","description":"Human-readable description of the schema."},"attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"mutability":{"type":"string"},"multiValued":{"type":"boolean"}}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":2,"startIndex":1,"itemsPerPage":2,"Resources":[{"id":"urn:ietf:params:scim:schemas:core:2.0:User","name":"User","description":"User Schema","attributes":[{"name":"id","type":"string","mutability":"readOnly"},{"name":"externalId","type":"string","mutability":"readWrite"},{"name":"userName","type":"string","mutability":"immutable"},{"name":"displayName","type":"string","mutability":"readWrite"},{"name":"active","type":"boolean","mutability":"readWrite"},{"name":"userType","type":"string","mutability":"readWrite"},{"name":"locale","type":"string","mutability":"readWrite"},{"name":"emails","type":"complex","mutability":"readWrite","multiValued":true},{"name":"phoneNumbers","type":"complex","mutability":"readWrite","multiValued":true},{"name":"addresses","type":"complex","mutability":"readWrite","multiValued":true},{"name":"meta","type":"complex","mutability":"readOnly","multiValued":false}]},{"id":"urn:sentinel:scim:schemas:extension:customer:2.0:User","name":"CustomerUser","description":"Sentinel Customer User Extension","attributes":[{"name":"refId1","type":"string","mutability":"readWrite"},{"name":"refId2","type":"string","mutability":"readWrite"},{"name":"identityProvider","type":"complex","mutability":"readWrite"},{"name":"customer","type":"complex","mutability":"readWrite"},{"name":"customAttributes","type":"complex","mutability":"readWrite","multiValued":true},{"name":"marketGroup","type":"complex","mutability":"readWrite"}]}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/ServiceProviderConfig":{"get":{"tags":["Customer"],"summary":"ServiceProviderConfig","description":"Returns the SCIM 2.0 service provider configuration for the Customer user endpoint (unauthenticated, per RFC 7644 §4).\n","operationId":"getScimCustomerServiceProviderConfig","responses":{"200":{"description":"OK — Returns the static ServiceProviderConfig JSON document.\nStatic document — content is fixed at deploy time and never changes at runtime.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"description":"SCIM schema identifier for ServiceProviderConfig.","example":["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"]},"patch":{"type":"object","properties":{"supported":{"type":"boolean","example":true}}},"bulk":{"type":"object","properties":{"supported":{"type":"boolean","example":false},"maxOperations":{"type":"integer","example":0},"maxPayloadSize":{"type":"integer","example":0}}},"filter":{"type":"object","properties":{"supported":{"type":"boolean","example":true},"maxResults":{"type":"integer","example":200}}},"changePassword":{"type":"object","properties":{"supported":{"type":"boolean","example":false}}},"sort":{"type":"object","properties":{"supported":{"type":"boolean","example":true}}},"etag":{"type":"object","properties":{"supported":{"type":"boolean","example":false}}},"authenticationSchemes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"OAuth 2.0 Bearer Token"},"description":{"type":"string","example":"Bearer token authentication"},"specUri":{"type":"string","example":"http://www.rfc-editor.org/info/rfc6750"},"primary":{"type":"boolean","example":true}}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"],"patch":{"supported":true},"bulk":{"supported":false,"maxOperations":0,"maxPayloadSize":0},"filter":{"supported":true,"maxResults":200},"changePassword":{"supported":false},"sort":{"supported":true},"etag":{"supported":false},"authenticationSchemes":[{"name":"OAuth 2.0 Bearer Token","description":"Bearer token authentication","specUri":"http://www.rfc-editor.org/info/rfc6750","primary":true}]}}}},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/Users":{"post":{"tags":["Customer"],"summary":"Add User","description":"Provisions a new Customer (Contact) user; returns the created user representation with a server-assigned id (HTTP 201).\n","operationId":"createScimCustomerUser","security":[{"OAuth2_client_Credentials":[]}],"requestBody":{"description":"Details of the SCIM customer user to be created.","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"userName":"jdoe","displayName":"Jane Doe","active":true,"userType":"Standard","locale":"en-US","externalId":"ext-002","emails":[{"value":"jdoe@example.com","primary":true}],"phoneNumbers":[{"value":"+1-555-0100","primary":true}],"addresses":[{"type":"shipping","streetAddress":"123 Main St","locality":"Springfield","region":"IL","postalCode":"62701","country":"US"},{"type":"billing","streetAddress":"456 Elm St","locality":"Chicago","region":"IL","postalCode":"60601","country":"US"}],"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel"},"customer":{"name":"Acme Corp","externalId":"cust-001"},"customAttributes":[{"name":"department","value":"Engineering"}],"marketGroup":{"name":"Americas"},"refId1":"ref-x","refId2":"ref-y"}}}}},"responses":{"201":{"description":"Created — Customer user provisioned successfully. Response body contains the created user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"id":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","externalId":"ext-002","userName":"jdoe","displayName":"Jane Doe","active":true,"userType":"Standard","locale":"en-US","emails":[{"value":"jdoe@example.com","primary":true}],"phoneNumbers":[{"value":"+1-555-0100","primary":true}],"addresses":[{"type":"shipping","streetAddress":"123 Main St","locality":"Springfield","region":"IL","postalCode":"62701","country":"US"},{"type":"billing","streetAddress":"456 Elm St","locality":"Chicago","region":"IL","postalCode":"60601","country":"US"}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/customer/Users/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"customer":{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"Acme Corp","externalId":"cust-001","identifier":"ACME"},"customAttributes":[{"name":"department","value":"Engineering"}],"marketGroup":{"id":"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy","name":"Americas"},"refId1":"ref-x","refId2":"ref-y"}}}}},"400":{"description":"Bad Request — Invalid payload, missing required field, or invalid syntax.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"409":{"description":"Conflict — Customer user already exists.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/Users/search":{"get":{"tags":["Customer"],"summary":"Search Users","description":"Returns a paginated list of Customer users, optionally filtered using SCIM filter syntax.\n","operationId":"searchScimCustomerUsers","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"filter","in":"query","description":"SCIM filter expression. Supported operators: eq, sw, co, and.\n\nSupported attributes:\n- userName — Unique login identifier of the customer user (maps to EMS userId).\n- emails.value — Email address of the customer user.\n- active — Account state (true or false).\n- id — Server-assigned unique identifier.\n- externalId — Caller-supplied external identifier.\n\nExamples:\n- userName eq \"jdoe\"\n- emails.value eq \"jdoe@example.com\"\n","schema":{"type":"string"},"example":"userName eq \"jdoe\""},{"name":"startIndex","in":"query","description":"1-based index of the first result to return. Maps to EMS offset (0-based). Defaults to 1.","schema":{"type":"integer","default":1},"example":1},{"name":"count","in":"query","description":"Maximum number of results to return. Maps to EMS limit. Capped at 200.","schema":{"type":"integer","default":10,"maximum":200},"example":10}],"responses":{"200":{"description":"OK — Returns a paginated list of customer users.\n","content":{"application/json":{"schema":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"description":"SCIM schema identifier for ListResponse."},"totalResults":{"type":"integer","description":"Total number of matching results (from EMS contacts.count)."},"startIndex":{"type":"integer","description":"Index of the first result returned (1-based)."},"itemsPerPage":{"type":"integer","description":"Number of results returned in this response."},"Resources":{"type":"array","description":"Array of Customer User objects. Each entry has the same fields as the POST response body (HTTP 201).","items":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"totalResults":1,"startIndex":1,"itemsPerPage":10,"Resources":[{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","userName":"jdoe","displayName":"Jane Doe","active":true,"userType":"Standard","locale":"en-US","emails":[{"value":"jdoe@example.com","primary":true}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"customer":{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"Acme Corp"}}}]}}}},"400":{"description":"Bad Request — Invalid filter syntax or unsupported filter attribute/operator.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}}},"/token/scim/v2/customer/Users/{id}":{"get":{"tags":["Customer"],"summary":"Get User","description":"Retrieves the SCIM representation of a single Customer user by their server-assigned id.\n","operationId":"getScimCustomerUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the customer user (as returned in the id field on create or search).","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"responses":{"200":{"description":"OK — Returns the customer user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"ext-002","userName":"jdoe","displayName":"Jane Doe","active":true,"userType":"Standard","locale":"en-US","emails":[{"value":"jdoe@example.com","primary":true}],"phoneNumbers":[{"value":"+1-555-0100","primary":true}],"addresses":[{"type":"shipping","streetAddress":"123 Main St","locality":"Springfield","region":"IL","postalCode":"62701","country":"US"}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-01T10:00:00.000Z","location":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"customer":{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"Acme Corp","externalId":"cust-001","identifier":"ACME"},"customAttributes":[{"name":"department","value":"Engineering"}],"marketGroup":{"id":"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy","name":"Americas"},"refId1":"ref-x","refId2":"ref-y"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["Customer"],"summary":"Replace User","description":"Fully replaces a Customer user's attributes; all writable fields must be supplied in the request body.\nuserName must match the existing value — it is immutable and any attempt to change it returns HTTP 400 mutability. identityProvider.name is required. customer.id is never sent to EMS on PUT.\n","operationId":"replaceScimCustomerUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the customer user to replace.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"requestBody":{"description":"Full replacement representation of the customer user. All writable fields should be included.","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"userName":"jdoe","displayName":"Jane Doe Updated","active":true,"userType":"Standard","locale":"en-US","externalId":"ext-002","emails":[{"value":"jdoe@example.com","primary":true}],"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel"},"customer":{"name":"Acme Corp","externalId":"cust-001"},"marketGroup":{"name":"Americas"},"refId1":"ref-x","refId2":"ref-y"}}}}},"responses":{"200":{"description":"OK — Returns the fully replaced customer user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","externalId":"ext-002","userName":"jdoe","displayName":"Jane Doe Updated","active":true,"userType":"Standard","locale":"en-US","emails":[{"value":"jdoe@example.com","primary":true}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-15T08:30:00.000Z","location":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"sentinel","displayName":"Sentinel IDP"},"customer":{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"Acme Corp","externalId":"cust-001","identifier":"ACME"},"marketGroup":{"id":"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy","name":"Americas"},"refId1":"ref-x","refId2":"ref-y"}}}}},"400":{"description":"Bad Request — Missing required field, invalid payload, or attempt to change immutable userName.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"patch":{"tags":["Customer"],"summary":"Update User","description":"Partially updates a Customer user using a SCIM Operations patch document (replace only).\nOnly the fields specified in the Operations array are updated.\n","operationId":"updateScimCustomerUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the customer user to update.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"requestBody":{"description":"SCIM PatchOp document. Only op: replace is supported.","content":{"application/json":{"schema":{"type":"object","required":["schemas","Operations"],"properties":{"schemas":{"type":"array","description":"Must be [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"].","items":{"type":"string"}},"Operations":{"type":"array","description":"List of patch operations to apply.","items":{"type":"object","required":["op","value"],"properties":{"op":{"type":"string","enum":["replace"],"description":"Operation type. Only replace is supported."},"path":{"type":"string","description":"Attribute path to update. Supported paths:\n- displayName\n- active\n- emails\n- phoneNumbers\n- locale\n- addresses\n- externalId\n- userType\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:refId1\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:refId2\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:identityProvider.name\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:customer\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:customAttributes\n- urn:sentinel:scim:schemas:extension:customer:2.0:User:marketGroup\n\nImmutable (returns 400 mutability): userName, id, meta, meta.*, identityProvider.displayName, customer.id\n"},"value":{"description":"New value for the targeted attribute."}}}}}},"example":{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"displayName","value":"Jane Smith"},{"op":"replace","path":"active","value":false},{"op":"replace","path":"urn:sentinel:scim:schemas:extension:customer:2.0:User:identityProvider.name","value":"okta"}]}}}},"responses":{"200":{"description":"OK — Returns the updated customer user.\n","content":{"application/json":{"schema":{"type":"object","required":["schemas","userName","emails"],"properties":{"schemas":{"type":"array","description":"SCIM schemas for the customer user resource.","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"]},"id":{"readOnly":true,"type":"string","description":"Server-assigned unique identifier of the customer user. Mapped from EMS id or contactId.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"externalId":{"type":"string","description":"Caller-supplied external identifier. Maps to EMS externalId.","example":"ext-002"},"userName":{"type":"string","description":"Unique login identifier of the customer user. Maps to EMS userId (NOT loginId).\n\n- Must be 3 to 50 characters.\n- Allowed characters: A-Z, a-z, 0-9, dot (.), underscore (_), at (@), hyphen (-).\n- Immutable once created.\n","example":"jdoe"},"displayName":{"type":"string","description":"Display name of the customer user. Maps to EMS name field.","example":"Jane Doe"},"active":{"type":"boolean","description":"Whether the customer user is active.\n- true maps to EMS state ENABLE.\n- false maps to EMS state DISABLE.\n\nDefault: true\n","example":true},"userType":{"type":"string","description":"Type of the customer user. Maps to EMS contactType.\n\nDefault: Standard\n","example":"Standard"},"locale":{"type":"string","description":"User locale (e.g. en-US). Inbound en-US or en_US is normalized to en before sending to EMS. Outbound EMS en is expanded to en-US in the SCIM response.\n","example":"en-US"},"emails":{"type":"array","description":"Email addresses of the customer user. Only the entry with primary set to true is sent to EMS as emailId.","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"Email address of the customer user. Maps to EMS emailId.","example":"jdoe@example.com"},"primary":{"type":"boolean","description":"Indicates whether this is the primary email address. Must be true on at least one entry.","example":true}}}},"phoneNumbers":{"type":"array","description":"Phone numbers of the customer user. Only the primary entry is sent to EMS as phoneNumber. If no entry is marked primary, the first entry is used.","items":{"type":"object","properties":{"value":{"type":"string","description":"Phone number of the customer user. Maps to EMS phoneNumber.","example":"+1-555-0100"},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number. If no entry is marked primary, the first entry is used.","example":true}}}},"addresses":{"type":"array","description":"Addresses of the customer user. shipping type maps to EMS shippingDetails, billing maps to billingDetails.","items":{"type":"object","properties":{"type":{"type":"string","description":"Address type. Supported values: shipping, billing.","enum":["shipping","billing"],"example":"shipping"},"streetAddress":{"type":"string","description":"Street address. Maps to EMS address field inside shippingDetails or billingDetails.","example":"123 Main St"},"locality":{"type":"string","description":"City or locality. Maps to EMS city.","example":"Springfield"},"region":{"type":"string","description":"State or region. Maps to EMS state.","example":"IL"},"postalCode":{"type":"string","description":"Postal or ZIP code. Maps to EMS zip.","example":"62701"},"country":{"type":"string","description":"Country code. Maps to EMS country.","example":"US"}}}},"meta":{"type":"object","readOnly":true,"description":"Metadata about the customer user resource. All fields are read-only and server-assigned.","properties":{"resourceType":{"type":"string","description":"Type of the SCIM resource.","example":"User","readOnly":true},"created":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was created. Mapped from EMS creationDate or createdDate.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"lastModified":{"type":"string","format":"date-time","description":"ISO 8601 datetime when the resource was last modified. Mapped from EMS lastModifiedDate or modifiedDate. Defaults to created if blank.","example":"2024-06-01T10:00:00.000Z","readOnly":true},"location":{"type":"string","description":"Canonical URL of this customer user resource.","example":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true}}},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"type":"object","description":"Sentinel customer-specific extension attributes for the customer user.","properties":{"identityProvider":{"type":"object","description":"Identity provider associated with the customer user.","properties":{"name":{"type":"string","description":"Name of the identity provider. Required on POST and PUT.","example":"sentinel"},"displayName":{"readOnly":true,"type":"string","description":"User-friendly display name of the identity provider. Resolved by EMS. Read-only; immutable via PATCH.","example":"Sentinel IDP"}}},"customer":{"type":"object","description":"Customer association details. customer.id is readOnly on POST/PUT — never sent to EMS on create or full update. Writable only on PATCH for re-association.","properties":{"id":{"type":"string","description":"EMS-assigned customer ID. ReadOnly on POST/PUT. Writable on PATCH for re-association. The path customer.id in a PATCH operation is immutable and returns 400.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Customer name.","example":"Acme Corp"},"externalId":{"type":"string","description":"Customer external identifier.","example":"cust-001"},"identifier":{"type":"string","description":"EMS legacy customer identifier.","example":"ACME"}}},"customAttributes":{"type":"array","description":"Custom attributes associated with the customer user. Only attributes with a non-empty value are included in responses.","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute. Required when customAttributes is provided.","example":"department"},"value":{"type":"string","description":"Value of the custom attribute. Only attributes with a non-empty value are returned in responses.","example":"Engineering"}}}},"marketGroup":{"type":"object","description":"Market group associated with the customer user. Singular object — customer users have at most one market group.","properties":{"id":{"type":"string","description":"EMS-assigned market group ID. ReadOnly on POST/PUT. Writable on PATCH for re-association.","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"name":{"type":"string","description":"Name of the market group.","example":"Americas"}}},"refId1":{"type":"string","description":"Custom reference identifier 1.","example":"ref-x"},"refId2":{"type":"string","description":"Custom reference identifier 2.","example":"ref-y"}}}}},"example":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User","urn:sentinel:scim:schemas:extension:customer:2.0:User"],"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","userName":"jdoe","displayName":"Jane Smith","active":false,"userType":"Standard","locale":"en-US","emails":[{"value":"jdoe@example.com","primary":true}],"meta":{"resourceType":"User","created":"2024-06-01T10:00:00.000Z","lastModified":"2024-06-20T09:00:00.000Z","location":"https://<host>/scim/v2/customer/Users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"urn:sentinel:scim:schemas:extension:customer:2.0:User":{"identityProvider":{"name":"okta","displayName":"Okta IDP"},"customer":{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"Acme Corp"}}}}}},"400":{"description":"Bad Request — Invalid PatchOp syntax, unsupported path, or attempt to modify an immutable field.\n"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found — No user exists with the given id.\n"},"406":{"description":"Not Acceptable — Accept: application/xml was sent.\n"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["Customer"],"summary":"Delete User","description":"Permanently removes a Customer user; returns HTTP 204 with no response body on success.\n","operationId":"deleteScimCustomerUser","security":[{"OAuth2_client_Credentials":[]}],"parameters":[{"name":"id","in":"path","description":"Server-assigned unique identifier of the customer user to delete.","schema":{"type":"string"},"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","required":true}],"responses":{"204":{"description":"No Content — Operation successful.\n"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}}},"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"**Login Type**\n - Vendor Login: Use the user ID as the username.\n - Partner Login: Use the partner user ID prefixed with <i>partner-</i> as the username.\n - Customer Login using User Email: Use the user email address prefixed with <i>endUser-</i> as the username.\n - Customer Login using Product Key: Use <i>pkId</i> as the username and Product Key as the password.\n - Customer Login using Entitlement ID: Use <i>eId</i> as the username and Entitlement ID as the password.\n \n <b>Note:</b> If you are using your own identity provider (not Sentinel IDP), use one of the OAuth authorization options listed below."},"basicAuthForAddAuth":{"type":"http","scheme":"basic","description":"Decode the registration token to get username and password"},"OAuth2_client_Credentials":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"keycloak_url/realms/realm_name/protocol/openid-connect/token","scopes":{}}},"description":"Enter the OAuth client ID and client secret defined in the prerequisite below.\n\n<b>Prerequisite:</b>  In Sentinel EMS, create an OAuth client for use with the Sentinel EMS REST API Reference application (select Identities & Access > OAuth Clients), where: \n - Client Type: Confidential \n - Grant Type: Client Credentials"},"OAuth2_AuthorizationCode":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"keycloak_url/realms/realm_name/protocol/openid-connect/auth","tokenUrl":"keycloak_url/realms/realm_name/protocol/openid-connect/token","scopes":{}}},"description":"Enter the OAuth client ID and client secret defined in the prerequisite below.\n\n <b>Prerequisite:</b>  In Sentinel EMS, create an OAuth client for use with the Sentinel EMS REST API Reference application (select Identities & Access > OAuth Clients), where: \n -  Client Type: Public (because this is a single-page application (SPA)) \n - Grant Type: Authorization Code \n - Web Origins: Use the https://{vendor_portal_domain_name} format. \n - Redirect URI: Use the https://{vendor_portal_domain_name}/* format. \n - ONLY include PKCE in a production environment that uses a Public client. \n\n <b>Note:</b> \n -  If you get an 'invalid parameter:redirect_uri' error, then the client_id and/or redirect_uri values are incorrect. Fix the values and try again. \n -  If you want to change to another user, click 'Reset'. Then clear the cookies in the browser cache and set the credentials."},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key","description":"The API key that Sentinel EMS uses to authenticate requests from your client application for the data of entitled features. You must add an Authorization header containing your API key to your requests. The API key for a client application is available from Sentinel EMS Administration Console.<br><b>Note:</b> You need to ensure that the API key is distributed to only the authorized users."}}},"security":[{"basicAuth":[]},{"OAuth2_client_Credentials":[]},{"OAuth2_AuthorizationCode":[]}],"servers":[{"url":"https://api.example.com","description":"Server (update URL)"}]}