iApps LX Block Reference¶
The following is a detailed example of an iApps LX Block:
{
"id": "7b9a5ed3-4be3-4059-95cd-40282dd048b2",
"name": "Block Example",
"state": "TEMPLATE",
"inputProperties": [
{
"id": "input1",
"type": "STRING",
"value": "",
"metaData": {
"description": "What ever you want",
"displayName": "Input 1",
"isRequired": true
}
},
{
"id": "input2",
"type": "NUMBER",
"value": 1,
"metaData": {
"description": "What ever you want",
"displayName": "Input 1",
"isRequired": false,
"uiType": "dropdown",
"uiHints" : {
"list": {
"dataList": [ 1, 2, 3, 4 ]
}
}
}
}
],
"configurationProcessorReference": {
"link": "https://localhost/mgmt/shared/iapp/proccesors/noop"
},
"auditProcessorReference": {
"link": "https://localhost/mgmt/shared/iapp/proccesors/noop"
},
"statsProcessorReference": {
"link": "https://localhost/mgmt/shared/iapp/proccesors/noop"
},
"subBlocks": {
"blocks": [
{
"link": "https://localhost/mgmt/tm/shared/iapp/blocks/http-app1-uuid"
},
{
"link": "https://localhost/mgmt/tm/shared/iapp/blocks/http-app2-uuid"
}
],
"initialBlocks": [
{
"link": "https://localhost/mgmt/tm/shared/iapp/blocks/http-app1-uuid"
},
{
"link": "https://localhost/mgmt/tm/shared/iapp/blocks/http-app2-uuid"
}
]
},
"dataProperties": [
{
"id": "data_input1",
"type": "STRING",
"value": "one"
},
{
"id": "data_input2",
"type": "NUMBER",
"value": 2
},
],
"restrictedId": "7abcded3-4be3-4059-95cd-40282dd0f03f",
"error": "This would only exist if the state is set to ERROR",
"audit": {
"intervalSeconds": 30,
"policy": "ENFORCE_CONFIGURED"
},
"configProcessorTimeoutSeconds": 30,
"statsProcessorTimeoutSeconds": 15,
"configProcessorAffinity": {
"processorPolicy": "LOAD_BALANCED",
"affinityProcessorReference": {
"link": "https://localhost/mgmt/shared/iapp/processors/affinity/load-balanced"
}
},
"presentationHtmlReference": {
"link": "https://localhost/iapps/myiapplx/index.html"
}
The following table lists the top level attributes.
JSON block top-tier attributes table
Property Name | Type | Description | Required (Y/N) |
---|---|---|---|
id | UUID | A unique generated identifier for the iApps LX block that also identifies an endpoint REST requests. | N |
name | string | A user-defined unique name for an iApps LX block(instantiated) so it is differentiated from other blocks based on the same not instantiated block (template). | Y |
state | BlockState.State Enum | Indicates if a block of data is bound to the configuration or in a transition state. Possible current states (TEMPLATE, UNBOUND, BINDING,UNBINDING, BOUND, ERROR) of the block. | Y |
inputProperties | List<RestProperty> | User-defined properties used to configure the block. See the inputProperties table. | Y |
configurationProcessorReference | RestReference | Identifies a link to a config (configuration) processor and operates on an iApps block instance to add, modify, or remove a configuration of a BIG-IP or an external system. | Y |
auditProcessorReference | RestReference | Used for auditing out of band changes on the configuration managed by the block. | N |
statsProcessorReference | RestReference | Used to trigger a stats update on the block. Data is collected, processed and then POSTed back to the parent block’s /stats. | N |
subBlocks | SubBlocksGraph | Input configuration properties used to describe all the settings of this block from a user perspective side Note: This property is deprecated. | N |
dataProperties | List<RestProperty> | Properties used by the back-end to store necessary configuration that is not user facing. | N |
transientProperties | List<RestProperty> | Properties used to send a signal from the Client API, Audit processor, GUI that is transient until consumed by the configuration processor. When block reaches UNBOUND or BOUND state, property is not persisted, when reaches an ERROR state property is persisted. | N |
restrictedProperties | List<RestProperty> | Group of input properties used to persist sensitive data. The restrictedProperties data is obfuscated when persisted. May need to add passwords to iApp LX block. | N |
restrictedID | UUID | Reference to the obfuscated persisted data. | N |
restrictedHash | String | Hash value of encrypted data used to determine if value is different. | N |
error | String | if state=ERROR,the string describing the problem. | N |
audit | AuditState | Settings that control the audit detection process. | N |
configProcessorTimeoutSeconds | NUMBER | If null, will be set to default of 30 seconds If <= 0 is default and means infinite wait If > 0 after this time period if the config processor has not called back from a POST/ DELETE event, the configuration task will go to an ERROR state. | N |
statsProcessorTimeoutSeconds | NUMBER | If null, will be set to default of 15 seconds If <= 0 is default and means infinite wait If > 0 after this time period if the stats processor has not called back from a POST/ DELETE event, the stats task will go to an ERROR state. | N |
sourcePackage | SourcePackageState | The name of the package that created the instantiated iApps LX data block (template) It is used as a way to match templates with the rpm packages that created the template. This allows the template block to be removed when a package is uninstalled. | N |
configProcessorAffinity | Affinity | A processor’s affinity policy. | N |
presentationHtmlReference | RestReference | HTML file reference used to override default GUI presentation of the block. Relative path of presentation file in worker directory or under /usr/local/rest/presentation. | N |
baseReference | RestReference | For a template created by the template loader, this is a reference to the json file that contained the template. For a service created from a template, this is a reference to the template that provided the default properties and processors. | Recommended |
Second-tier inputProperties table
Property Name | Type | Description | Example |
---|---|---|---|
id | string | Unique name to identify the property. | virtual address |
type | valueType Enum | Property types include: STRING, NUMBER, BOOLEAN, JSON, REFERENCE, PROPERTIES | REFERENCE |
value | object | The value of the property depending on the specified type. | For REFERENCE type: { “link” : “https:: /localhost/abc”} |
metadata | object | Additional JSON data useful for the configuration processor. |