linkThe license object
Below you will find the various attributes for the license resource, as well as the license resource's relationships. A license is an implementation of a product's policy.
linkAttributes
linkdata.attributes.name
stringThe name of the license. This can be used to distinguish licenses from each other.
linkdata.attributes.key
stringdefault=auto-generatedA unique pre-determined key for the license. License keys are immutable values. Cannot be used on legacy encrypted licenses. This attribute will be automatically generated or popped from the remaining pool if left blank and the chosen scheme supports auto-generated keys. Depending on the policy's cryptographic scheme (if any), the key attribute may be required for a 'seed' dataset to embed into the final key, and the key may have other requirements that must be met regarding dataset length and formatting. The key and its signature may be
base64url
encoded, depending on the chosen scheme.linkdata.attributes.expiry
timestamp (iso8601)When the license will expire. Calculated from the license's policy, i.e.
time.now + policy.duration
, at the time of creation and/or renewal.linkdata.attributes.status
stringread onlyThe license's status, for filtering purposes and to ascertain overall status at-a-glance. An active license is a license that has been created, validated, checked out, or checked in within the last 90 days. An expiring license is a license that is expiring within the next 3 days. One of:
ACTIVE
,INACTIVE
,EXPIRING
,EXPIRED
,SUSPENDED
, orBANNED
.This is not a replacement for license validation. This is for status at-a-glance, but does not supplement or replace license validation. It has no effect on whether or not it can be used.linkdata.attributes.uses
integerdefault=0The license's current usage count. This can be incremented, decremented, or reset using the license's usage-related actions. Cannot exceed
2,147,483,647
, which is the maximum value of a 4 byte integer.linkdata.attributes.protected
booleandefault=inheritedWhether or not the license is protected. A protected license disallows users the ability to activate and manage machines themselves, useful in situations where you want to allow machine creation for a protected account or policy. If the license's policy is protected, they automatically inherit that value when left blank.
linkdata.attributes.suspended
booleanWhether or not the license is suspended. A suspended license will always fail validation.
linkdata.attributes.floating
booleanread onlyWhether or not the license is floating. This is inherited from the policy.
linkdata.attributes.scheme
stringread onlyThe cryptographic encryption/signature scheme used on the license's key. Can be used to implement offline licensing by securely storing arbitrary data within a license's key.
linkdata.attributes.strict
booleanread onlyWhether or not the license is strict. This is inherited from the policy.
linkdata.attributes.maxMachines
integerThe maximum number of machines the license can have associated with it. This is by default inherited from the policy, but can be overridden on a per-license basis.
linkdata.attributes.maxProcesses
integerThe maximum number of machine processes the license can have associated with it. This is by default inherited from the policy, but can be overridden on a per-license basis.
linkdata.attributes.maxUsers
integerThe maximum number of users the license can have associated with it. This is by default inherited from the policy, but can be overridden on a per-license basis.
linkdata.attributes.maxCores
integerThe maximum number of machine CPU cores the license can have associated with it. The count is the sum of all cores for the license's machines. This is by default inherited from the policy, but can be overridden on a per-license basis.
linkdata.attributes.maxUses
integerThe maximum number of uses the license is allowed to have. This is by default inherited from the policy, but can be overridden on a per-license basis.
linkdata.attributes.requireHeartbeat
booleanread onlyWhether or not machines require heartbeat pings. This is inherited from the policy.
linkdata.attributes.requireCheckIn
booleanread onlyWhether or not the license will require check-in at a predefined interval to continue to pass validation i.e. if a license misses a check-in, it will be invalidated. This is inherited from the policy.
linkdata.attributes.lastCheckIn
timestamp (iso8601)read onlyWhen the license was last checked-in. This is
null
if the policy does not require check-ins.linkdata.attributes.nextCheckIn
timestamp (iso8601)read onlyThe time at which the license is required to check-in by. This is
null
if the policy does not require check-ins.
linkRelationships
linkdata.relationships.environment
individualent onlyThese relationships are only available for accounts on an Ent tier.The environment that the license belongs to.
linkdata.relationships.group
individualoptionalThe group the license belongs to. By default, this is inherited from the license's user, if present.
Example object
{ "data": { "id": "b18e3f3a-330c-4d8d-ae2e-014db21fa827", "type": "licenses", "links": { "self": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827" }, "attributes": { "name": null, "key": "6DFB15-6597FC-B7DBB6-E34DAB-9D77C0-V3", "expiry": "2022-03-15T19:27:50.440Z", "status": "ACTIVE", "uses": 0, "protected": false, "version": "1.0.0", "suspended": false, "scheme": null, "encrypted": false, "floating": false, "strict": false, "maxMachines": 5, "maxProcesses": null, "maxUsers": null, "maxCores": 64, "maxUses": null, "requireHeartbeat": false, "requireCheckIn": false, "lastValidated": "2021-03-15T19:27:50.440Z", "lastCheckOut": null, "lastCheckIn": null, "nextCheckIn": null, "metadata": {}, "created": "2017-01-02T20:26:53.464Z", "updated": "2017-01-02T20:26:53.464Z" }, "relationships": { "account": { "links": { "related": "/v1/accounts/<account>" }, "data": { "type": "accounts", "id": "<account>" } }, "product": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/product" }, "data": { "type": "products", "id": "eb4e14a7-ea41-4ede-b3fe-5e835c17156b" } }, "policy": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/policy" }, "data": { "type": "policies", "id": "70af414d-6152-4ff1-892b-15a40ada6b4e" } }, "group": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/group" }, "data": null }, "owner": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/owner" }, "data": { "type": "users", "id": "e8bf27c0-5f9c-4135-a65c-f52706c5fd4c" } }, "users": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/users" }, "meta": { "count": 0 } }, "machines": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/machines" }, "meta": { "count": 2 } }, "tokens": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/tokens" } }, "entitlements": { "links": { "related": "/v1/accounts/<account>/licenses/b18e3f3a-330c-4d8d-ae2e-014db21fa827/entitlements" } } } }}