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.