Show / Hide Table of Contents

# License (ELM) API

memoQ Server offers licensing of clients centrally. There are two kinds of licensing modes: ELM and CAL. Both are serviced through this API, although some operations may not apply to both modes.

The ELM API provides the following functionality:

- Manage license assignments if the server is using ELM licensing
  - List license assignments
  - Assign a license to a user
  - Change the expiry of a license assignment
  - Revoke a license assignment
- Manage license permissions
  - List license permissions
  - Adding license permissions to a user or group
  - Change the expiry of a license permission
  - Revoke a license permission
- List project license permissions
- List ELM/CAL license pools

## License types

The ELM management supports the following types of licenses:

- MemoQTranslatorPro
- MemoQPM

The so called memoQ Translator Light and CustomerPortal licenses are special. These licenses are not assignable directlyand are available for query only.

## Reported errors

When using the ELM API make sure to enable advanced error handling mode (see Section 2.5).

The functions above report various types of errors. Besides the generally used UnexpectedFault and GenericFault one ELM specific fault is used: ELMFault. It has an ErrorCode member so that the caller can differentiate between different types of ELM related errors. Using older WS technologies it is difficult to access the ErrorCode: you can check the fault code instead, which has the same value as the ELMFault.ErrorCode. Possible fault types, ErrorCode/fault code values with their fault message are the following:

Fault type | Fault code (same as ErrorCode in case of ELMFault) | Fault message
--- | --- | ---
ELMFault | ELM+LicenseDoesNotExist | The license does not exist.
ELMFault | ELM+LicenseIsReturned | The license is returned, this operation is invalid for it.
ELMFault | ELM+ExpiryIsBackInTime | Expiry cannot be set to a value back in time.
ELMFault | ELM+UserDoesNotExist | The user does not exist.
ELMFault | ELM+UserOrGroupDoesNotExist | The user/group does not exist.
ELMFault | ELM+ProductDoesNotExist | The product does not exist.
ELMFault | ELM+ProductNotAvailableForAssignment | This license type is not available for direct assignment.
ELMFault | ELM+NoLicenseIsAvailable | There is no available free license.
ELMFault | ELM+ValidLicenseAlreadyExistsForUser | A valid (unexpired and unreturned) license already exists for the user.
ELMFault | ELM+WebTransLicenseCanNotBeRevoked | WebTrans or Plugin licenses can not be revoked.
ELMFault | ELM+ValidPermissionAlreadyExistsForUser | A valid (unexpired) license already exists for the user.
ELMFault | ELM+PermissionDoesNotExist | The permission does not exist.
ELMFault | ELM+ServerUsingCALLicensing | The server is using CAL licensing.
GenericFault | Generic | The message of the original exception is used as fault message.
UnexpectedFault | Unexpected | The message of the original exception is used as fault message.