iApps LX Blocks¶
Templates are a data block that represent possible configuration values and their defaults. A template serves as the basis for the creation of block instances. When you work with a template, you can provide a name in the JSON body to uniquely identify your extension and populate the minimum set of properties necessary. Templates are also used by the iApps® LX BIG-IP GUI to populate the field entries.
Instances are block copies of templates with values that represent a current or future configuration state.
About the JSON block structure¶
The JSON block must follow a pre-defined tier-level JSON property structure. In the top-tier level, there are four required properties:
- name
- state
- inputProperties
- configurationProcessorReference
The name property is used to identify the JSON block and is user-defined. The state property indicates if the block is bound to the configuration or in a transition state. Possible current states include TEMPLATE, UNBOUND, BINDING,UNBINDING, BOUND, ERROR. Initially, the state is user-defined, but as the block is processed, the system becomes responsible for setting the state. For more information about the block state engine, see iApps LX State Engine.
The inputProperties are user-defined and must follow a pre-defined structure (second-tier level of properties). The configurationProcessorReference are system defined.
Refer to the iApps LX Block Reference for a full listing and description of the JSON block properties.
Example of JSON block structure
About the inputProperties¶
The inputProperties properties are in the second-tier of the JSON block structure. They are user-defined RestPropertyState fields written in a JSON array. You can define or modify the inputProperties as long as they adhere to these structural guidelines. You can create additional levels of inputProperties, forming an embedded,recursive structure.
Within an array, the typical input properties include an identifier, a type, a value, and possibly a metadata object.
Note
To ensure that the inputProperties will be processed as expected by the configuration processor, users should verify that all inputProperties follow a valid syntax.