Purchased Pool Licenses¶
Overview¶
You can use this API to activate, reactivate, or deactivate a purchased pool license from BIG-IQ. You can alternatively activate a purchased pool license by using the License Initial Activation API. Initial-activation can make it easier to activate pool-style licenses because you do not need knowledge about the type of license registration key. To use the purchased pool license API you must have a administrator, device manager, or license manager role. I
You must activate a purchased pool license before you can use BIG-IQ to assign it to a BIG-IP. When assigned as a license member, that BIG-IP is counted as occupying a seat of the purchased pool license. The value of the totalDeviceLicenses field indicates the total numbers seats offered by the purchased pool license and freeDeviceLicenses tracks how many seats are currently unfilled and still available. You can assign an activated purchased pool license to a BIG-IP using the Purchased Pool License Members API or by using the License Assign/Revoke API.
REST Endpoint: /mgmt/cm/device/licensing/pool/purchased-pool/licenses¶
Requests¶
GET /mgmt/cm/device/licensing/pool/purchased-pool/licenses¶
Request Parameters¶
None
Query Parameters¶
None
Response¶
The JSON in the GET’s response can contain the following parameters.
HTTP/1.1 200 OK
Name | Type | Description |
---|---|---|
baseRegKey | string | The base registration key of the license. |
dossier | string | For manual activation, this provides a dossier you can use to retrieve the license text from the F5 licensing web portal. |
eulaText | string | The text of the end user license agreement (EULA). |
freeDeviceLicenses | number | The number of purchased pool license seats which are still available. |
licenseState | object | Information about the license. |
authVers | string | A license version. |
evaluationStartDateTime | string | Formatted Date/Time when license evaluation started. For example, “2017-02-16T00:00:00-08:00” |
evaluationEndDateTime | string | Formatted Date/Time when license evaluation ended. For example, “2017-03-20T00:00:00-07:00” |
exclusivePlatform | array | A list of compatible platforms. |
featureFlags | object array | Features of license. |
featureName | string | Name of the license feature. |
featureValue | string | Value for the license feature. |
licensedDateTime | string | Formatted Date/Time when licensed. For example, “2017-02-17T00:00:00-08:00” |
licenseEndDateTime | string | Formatted Date/Time when license was ended. For example, “2017-03-20T00:00:00-07:00” |
licenseStartDateTime | string | Formatted Date/Time when license was started. For example, “2017-02-16T00:00:00-08:00” |
licensedVersion | string | A license version. |
platformId | string | A list of platforms for this license. For example, [“BIG-IQ Pool”]. |
registrationKey | string | The registration key for this license. |
serviceCheckDateTime | string | Formatted Date/Time of last service check. For example, “2017-02-17T00:00:00-08:00” |
vendor | string | The provider of this license. |
licenseText | string | The license text received from the F5 licensing web portal. |
method | string | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
name | string | Name you have chosen for this license. |
privateKey | string | A value for internal use. |
publicKey | array | A value for internal use. |
registeredKey | array | A value for internal use. |
selfLink | string | A url to the initial activation. You can poll for the status of this specific activation by sending a GET request to the selfLink url. |
sortName | string | This value is used by the UI. |
state | string | The license’s state. For example, “LICENSED”. |
totalDeviceLicenses | number | The total number of seats offered by this purchased pool license. |
uuid | string | An unique identifier for the license. |
Permissions¶
Role | Allow |
---|---|
device_manager | Yes |
License_Manager | Yes |
POST /mgmt/cm/device/licensing/pool/purchased-pool/licenses¶
To start the activation of a purchased pool license, you can send a POST request to the purchased-pool/licenses collection. The JSON in the request can contain the following parameters.
Request Parameters¶
Name | Type | Required | Description |
---|---|---|---|
baseRegKey | string | Yes | The base registration key of the license. |
name | string | Yes | Name you have chosen for this license. |
method | string | Yes | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
Query Parameters¶
None
Response¶
The JSON in the POST’s response can contain the following parameters.
HTTP/1.1 200 OK
Name | Type | Description |
---|---|---|
baseRegKey | string | The base registration key of the license. |
dossier | string | For manual activation, this provides a dossier you can use to retrieve the license text from the F5 licensing web portal. |
eulaText | string | The text of the end user license agreement (EULA). |
freeDeviceLicenses | number | The number of purchased pool license seats which are still available. |
licenseState | object | Information about the license. |
authVers | string | A license version. |
evaluationStartDateTime | string | Formatted Date/Time when license evaluation started. For example, “2017-02-16T00:00:00-08:00” |
evaluationEndDateTime | string | Formatted Date/Time when license evaluation ended. For example, “2017-03-20T00:00:00-07:00” |
exclusivePlatform | array | A list of compatible platforms. |
featureFlags | object array | Features of license. |
featureName | string | Name of the license feature. |
featureValue | string | Value for the license feature. |
licensedDateTime | string | Formatted Date/Time when licensed. For example, “2017-02-17T00:00:00-08:00” |
licenseEndDateTime | string | Formatted Date/Time when license was ended. For example, “2017-03-20T00:00:00-07:00” |
licenseStartDateTime | string | Formatted Date/Time when license was started. For example, “2017-02-16T00:00:00-08:00” |
licensedVersion | string | A license version. |
platformId | string | A list of platforms for this license. For example, [“BIG-IQ Pool”]. |
registrationKey | string | The registration key for this license. |
serviceCheckDateTime | string | Formatted Date/Time of last service check. For example, “2017-02-17T00:00:00-08:00” |
vendor | string | The provider of this license. |
licenseText | string | The license text received from the F5 licensing web portal. |
method | string | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
name | string | Name you have chosen for this license. |
privateKey | string | A value for internal use. |
publicKey | array | A value for internal use. |
registeredKey | array | A value for internal use. |
selfLink | string | A url to the initial activation. You can poll for the status of this specific activation by sending a GET request to the selfLink url. |
sortName | string | This value is used by the UI. |
state | string | The license’s state. For example, “LICENSED”. |
totalDeviceLicenses | number | The total number of seats offered by this purchased pool license. |
uuid | string | An unique identifier for the license. |
Permissions¶
Role | Allow |
---|---|
device_manager | Yes |
License_Manager | Yes |
PATCH /mgmt/cm/device/licensing/pool/purchased-pool/licenses/<id>¶
After starting activation, you can continue, complete, or retry activation by sending a PATCH request to the endpoint of the specific purchased pool license.
Request Parameters¶
Name | Type | Required | Description |
---|---|---|---|
eulaText | string | Yes when automatic activation asks you to accept the EULA. | The text of the end user license agreement (EULA). |
licenseText | string | Yes when manual activation asks you to provide the license text. | The license text received from the F5 licensing web portal. |
state | string | Yes to reactivate a license this must be “RELICENSE”. Yes to accept the EULA this must be “ACCEPTED_EULA”. | The license’s state. |
method | string | Yes | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
Query Parameters¶
None
Response¶
The JSON in the body of the response can contain the following parameters.
HTTP/1.1 200 OK
Name | Type | Description |
---|---|---|
baseRegKey | string | The base registration key of the license. |
dossier | string | For manual activation, this provides a dossier you can use to retrieve the license text from the F5 licensing web portal. |
eulaText | string | The text of the end user license agreement (EULA). |
freeDeviceLicenses | number | The number of purchased pool license seats which are still available. |
licenseState | object | Information about the license. |
authVers | string | A license version. |
evaluationStartDateTime | string | Formatted Date/Time when license evaluation started. For example, “2017-02-16T00:00:00-08:00” |
evaluationEndDateTime | string | Formatted Date/Time when license evaluation ended. For example, “2017-03-20T00:00:00-07:00” |
exclusivePlatform | array | A list of compatible platforms. |
featureFlags | object array | Features of license. |
featureName | string | Name of the license feature. |
featureValue | string | Value for the license feature. |
licensedDateTime | string | Formatted Date/Time when licensed. For example, “2017-02-17T00:00:00-08:00” |
licenseEndDateTime | string | Formatted Date/Time when license was ended. For example, “2017-03-20T00:00:00-07:00” |
licenseStartDateTime | string | Formatted Date/Time when license was started. For example, “2017-02-16T00:00:00-08:00” |
licensedVersion | string | A license version. |
platformId | string | A list of platforms for this license. For example, [“BIG-IQ Pool”]. |
registrationKey | string | The registration key for this license. |
serviceCheckDateTime | string | Formatted Date/Time of last service check. For example, “2017-02-17T00:00:00-08:00” |
vendor | string | The provider of this license. |
licenseText | string | The license text received from the F5 licensing web portal. |
method | string | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
name | string | Name you have chosen for this license. |
privateKey | string | A value for internal use. |
publicKey | array | A value for internal use. |
registeredKey | array | A value for internal use. |
selfLink | string | A url to the initial activation. You can poll for the status of this specific activation by sending a GET request to the selfLink url. |
sortName | string | This value is used by the UI. |
state | string | The license’s state. For example, “LICENSED”. |
totalDeviceLicenses | number | The total number of seats offered by this purchased pool license. |
uuid | string | An unique identifier for the license. |
Permissions¶
Role | Allow |
---|---|
device_manager | Yes |
License_Manager | Yes |
DELETE /mgmt/cm/device/licensing/pool/purchased-pool/licenses/<id>¶
To deactivate a license, you can send a DELETE request to the endpoint.
Request Parameters¶
None
Query Parameters¶
None
Response¶
HTTP/1.1 200 OK
The JSON in the body of the response can include the following parameters.
HTTP/1.1 200 OK
Name | Type | Description |
---|---|---|
baseRegKey | string | The base registration key of the license. |
dossier | string | For manual activation, this provides a dossier you can use to retrieve the license text from the F5 licensing web portal. |
eulaText | string | The text of the end user license agreement (EULA). |
freeDeviceLicenses | number | The number of purchased pool license seats which are still available. |
licenseState | object | Information about the license. |
authVers | string | A license version. |
evaluationStartDateTime | string | Formatted Date/Time when license evaluation started. For example, “2017-02-16T00:00:00-08:00” |
evaluationEndDateTime | string | Formatted Date/Time when license evaluation ended. For example, “2017-03-20T00:00:00-07:00” |
exclusivePlatform | array | A list of compatible platforms. |
featureFlags | object array | Features of license. |
featureName | string | Name of the license feature. |
featureValue | string | Value for the license feature. |
licensedDateTime | string | Formatted Date/Time when licensed. For example, “2017-02-17T00:00:00-08:00” |
licenseEndDateTime | string | Formatted Date/Time when license was ended. For example, “2017-03-20T00:00:00-07:00” |
licenseStartDateTime | string | Formatted Date/Time when license was started. For example, “2017-02-16T00:00:00-08:00” |
licensedVersion | string | A license version. |
platformId | string | A list of platforms for this license. For example, [“BIG-IQ Pool”]. |
registrationKey | string | The registration key for this license. |
serviceCheckDateTime | string | Formatted Date/Time of last service check. For example, “2017-02-17T00:00:00-08:00” |
vendor | string | The provider of this license. |
licenseText | string | The license text received from the F5 licensing web portal. |
method | string | The activation method. Possible values are “AUTOMATIC” and “MANUAL”. The default value is “AUTOMATIC”. |
name | string | Name you have chosen for this license. |
privateKey | string | A value for internal use. |
publicKey | array | A value for internal use. |
registeredKey | array | A value for internal use. |
selfLink | string | A url to the initial activation. You can poll for the status of this specific activation by sending a GET request to the selfLink url. |
sortName | string | This value is used by the UI. |
state | string | The license’s state. For example, “LICENSED”. |
totalDeviceLicenses | number | The total number of seats offered by this purchased pool license. |
uuid | string | An unique identifier for the license. |
Permissions¶
Role | Allow |
---|---|
device_manager | Yes |
License_Manager | Yes |
Examples¶
GET to query existing purchased pool licenses¶
You can send a GET request to the purchased-pool/licenses collection to list all the existing purchased pool licenses.
GET https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses
Response¶
The JSON in the response to the GET can look similar to the following example.
{
"items": [ ... list of purchase pool licenses ... ],
"generation": 7,
"kind": "cm:device:licensing:pool:purchased-pool:licenses:licensepoolworkercollectionstate",
"lastUpdateMicros": 1487328656734798,
"selfLink": "https://localhost/mgmt/cm/device/licensing/pool/purchased-pool/licenses"
}
POST to start purchased pool license activation¶
Send a POST request to the collection endpoint to start activation.
POST https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses
The JSON in the body of the POST request can look similar to the following example. For manual activation, the value of method can be set to “MANUAL”. The default value of method is “AUTOMATIC” and requires connectivity to the F5 licensing server.
{
"baseRegKey": "R8573-25996-57909-24167-3331348",
"name": "my license",
"method": "AUTOMATIC"
}
Response¶
The JSON in the body of the POST’s response can look similar to the following example.
HTTP/1.1 200 OK
{
"uuid": "ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c",
"baseRegKey": "R8573-25996-57909-24167-3331348",
"method": "AUTOMATIC",
"name": "my license",
"dossier": "82b215e883...",
"sortName": "Purchased Pool",
"state": "GETTING_EULA",
"publicKey": [
48,
-126,
1,
...
],
"privateKey": "HC57Vph6Ke...",
"registeredKey": [
-116,
-30,
50,
...
],
"generation": 1,
"lastUpdateMicros": 1487329927179822,
"kind": "cm:device:licensing:pool:purchased-pool:licenses:licensepoolworkerstate",
"selfLink": "https://localhost/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c"
}
Note the id and selfLink values for the specific activation task. After starting activation can send GET requests to the task’s endpoint and poll the task’s status.
GET to poll the purchased pool license state¶
You can send GET requests to the license endpoint to poll for the current state of the activation.
GET https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c
Response¶
The response to the GET can look similar to the following after BIG-IQ has retrieved the end user license agreement (EULA).
HTTP/1.1 200 OK
{
"eulaText": "END USER LICENSE AGREEMENT\r\nDOC-0355-08\r\n\r\nIMPORTANT - READ BEFORE...",
"state": "WAITING_FOR_EULA_ACCEPTANCE",
...
}
After starting an automatic activation, you can continue polling with GET requests until the value of state eventually transitions from “GETTING_EULA” to “WAITING_FOR_EULA_ACCEPTANCE” and the body of the response includes eulaText. The desired final status of an activated purchased pool license is “LICENSED”.
PATCH to reactivate a purchased pool license¶
After a purchased pool license is activated, you can reactivate it by sending a PATCH request to the license endpoint. For example, you can need to reactivate a license after adding an add-on key.
PATCH https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c
The body of the PATCH request can set the value of method to “RELICENSE”.
{
"state": "RELICENSE",
"method": "AUTOMATIC"
}
After the PATCH completes, you can send GET requests to poll the license state until the value of state transitions to “LICENSED”.
Response¶
HTTP/1.1 200 OK
{
"state": "LICENSED",
"totalDeviceLicenses": 25,
"freeDeviceLicenses": 25,
"licenseText": "#\nAuth vers :...",
"licenseState": {
"vendor": "F5, Inc.",
"licensedDateTime": "2017-02-17T00:00:00-08:00",
"licensedVersion": "5.2.0",
"evaluationStartDateTime": "2017-02-16T00:00:00-08:00",
"evaluationEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseStartDateTime": "2017-02-16T00:00:00-08:00",
"registrationKey": "R8573-25996-57909-24167-3331348",
"platformId": "BIG-IQ Pool",
"authVers": "5b",
"serviceCheckDateTime": "2017-02-17T00:00:00-08:00",
"exclusivePlatform": [
"BIG-IQ Pool"
],
"featureFlags": [
{
"featureName": "gtm_rate_fallback",
"featureValue": "1000"
},
...
},
...
}
PATCH to accept the EULA and continue automatic activation¶
To continue automatic activation you can send a PATCH request to the specific activation.
PATCH https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c
The body of the PATCH request can look similar to the following example.
{
"eulaText": "END USER LICENSE AGREEMENT\r\nDOC-0355-08\r\n\r\nIMPORTANT - READ BEFORE...",
"state":"ACCEPTED_EULA"
}
After the PATCH completes, poll for the status of the activation by sending a GET requests to the license endpoint until the value of state transitions to “LICENSED”.
Response¶
HTTP/1.1 200 OK
{
"state": "LICENSED",
"totalDeviceLicenses": 25,
"freeDeviceLicenses": 25,
"licenseText": "#\nAuth vers :...",
"licenseState": {
"vendor": "F5, Inc.",
"licensedDateTime": "2017-02-17T00:00:00-08:00",
"licensedVersion": "5.2.0",
"evaluationStartDateTime": "2017-02-16T00:00:00-08:00",
"evaluationEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseStartDateTime": "2017-02-16T00:00:00-08:00",
"registrationKey": "R8573-25996-57909-24167-3331348",
"platformId": "BIG-IQ Pool",
"authVers": "5b",
"serviceCheckDateTime": "2017-02-17T00:00:00-08:00",
"exclusivePlatform": [
"BIG-IQ Pool"
],
"featureFlags": [
{
"featureName": "gtm_rate_fallback",
"featureValue": "1000"
},
...
},
...
}
PATCH to provide license text and continue manual activation¶
To continue manual activation you can send a PATCH request to the license endpoint and provide in the body the value of licenseText you have obtained from the F5 licensing web portal.
PATCH https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c
The body of the PATCH request can look similar to the following example.
{
"licenseText": "..."
}
Response¶
HTTP/1.1 200 OK
{
"state": "LICENSED",
"totalDeviceLicenses": 25,
"freeDeviceLicenses": 25,
"licenseText": "#\nAuth vers :...",
"licenseState": {
"vendor": "F5, Inc.",
"licensedDateTime": "2017-02-17T00:00:00-08:00",
"licensedVersion": "5.2.0",
"evaluationStartDateTime": "2017-02-16T00:00:00-08:00",
"evaluationEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseEndDateTime": "2017-03-20T00:00:00-07:00",
"licenseStartDateTime": "2017-02-16T00:00:00-08:00",
"registrationKey": "R8573-25996-57909-24167-3331348",
"platformId": "BIG-IQ Pool",
"authVers": "5b",
"serviceCheckDateTime": "2017-02-17T00:00:00-08:00",
"exclusivePlatform": [
"BIG-IQ Pool"
],
"featureFlags": [
{
"featureName": "gtm_rate_fallback",
"featureValue": "1000"
},
...
},
...
}
After the PATCH completes, poll for the status of the activation by sending a GET requests to the license endpoint until the value of state transitions to “LICENSED”.
DELETE to deactivate a purchased pool license¶
To deactivate a purchased pool license you can send a DELETE request to the license’s endpoint.
DELETE https://<BIG-IQ>/mgmt/cm/device/licensing/pool/purchased-pool/licenses/ae74294e-f3f2-4ad3-86bc-ab3fdb5dfe4c