ADC (object)

A declarative configuration for an ADC such as F5 BIG-IP

Properties (* = required):

name type(s) default allowed values description
$schema string   “uri” formatted string URL of schema against which to validate. Used by validation in your local environment only (via Visual Studio Code, for example)
/*/ object     Declares a Tenant
class* string   “ADC” Indicates this JSON document is an ADC declaration
Common object     Special tenant Common holds objects other tenants can share
constants object     Declaration metadata and/or named values for (re-)use by declaration objects
controls object     Options to control configuration process
id string   “^[^x00-x20x22’<>x5c^`|x7f]*$” Unique identifier for this declaration (max 255 printable chars with no spaces, quotation marks, angle brackets, nor backslashes)
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
schemaVersion* string   “3.33.0”, “3.32.0”, “3.31.0”, “3.30.0”, “3.29.0”, “3.28.0”, “3.27.0”, “3.26.0”, “3.25.0”, “3.24.0”, “3.23.0”, “3.22.0”, “3.21.0”, “3.20.0”, “3.19.0”, “3.18.0”, “3.17.0”, “3.16.0”, “3.15.0”, “3.14.0”, “3.13.0”, “3.12.0”, “3.11.0”, “3.10.0”, “3.9.0”, “3.8.0”, “3.7.0”, “3.6.0”, “3.5.0”, “3.4.0”, “3.3.0”, “3.2.0”, “3.1.0”, “3.0.0” Version of ADC Declaration schema this declaration uses
scratch string     Holds some system data during declaration processing
target object     Trusted target for config when configuring with BIG-IQ
updateMode string “selective” “complete”, “selective” When set to ‘selective’ (default) AS3 does not modify Tenants not referenced in the declaration. Otherwise (‘complete’) AS3 removes unreferenced Tenants.

ADC./*/ (object)

Declares a Tenant

Properties (* = required):

name type(s) default allowed values description
/*/ object     Application declaration main schema
class* string   “Tenant”  
constants object     Named values for (re-)use by declaration objects
controls object     Options to control configuration process
defaultRouteDomain integer 0 0 - 65535 Selects the default route domain for IP traffic to and from this Tenant’s application resources (note: affects declared IP addresses which do not include a %RD route-domain specifier). You must choose an existing route domain–this option cannot create one. Route domain 0 (default) is always available
enable boolean true true, false Tenant handles traffic only when enabled (default)
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
optimisticLockKey string “”   When you deploy a declaration with a non-empty ‘key’ value here, that activates an optimistic lock on changes to this Tenant. If the key in your declaration does not match the key AS3 computes for the most-recent previous declaration, then AS3 will NOT update this Tenant and will return an error code. To use optimistic locking, first retrieve a declaration using option ‘showHash=true’ to get the current per-Tenant keys. Make any changes you desire, then deploy your updated declaration. Deployment of each Tenant with a key will succeed only if that Tenant has not been modified since the time you retrieved the declaration. (To overwrite all previous changes to a Tenant simply do NOT include any opportunistic-lock key for that Tenant when you deploy a declaration. That is the default.) Note that only keys computed by AS3 may be used here– you cannot generate your own. If ‘showHash=true’ is used on a POST then the optimisticLockKey will be shown as a part of the output (This helps to avoid the need to do a GET request).
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
Shared object     Special application Shared holds objects other applications can share,Application declaration main schema
verifiers object     Data (in ‘key’:’value’ properties) used to verify automated tests. Ordinary declarations do not need this

ADC./*/./*/ (object)

Application declaration main schema

Properties (* = required):

name type(s) default allowed values description
/*/        
class* string   “Application”  
constants object     Named values for (re-)use by declaration objects
enable boolean true true, false Application handles traffic only when enabled (default)
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
schemaOverlay string     BIG-IQ name for a supplemental validation schema is applied to the Application class definition before the main AS3 schema
serviceMain       Primary service of the application
template string “generic”   Each application type has certain required and default elements and selects appropriate setup of various ADC/Security features

ADC./*/./*/.constants (object)

Named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class* string   “Constants”  

ADC./*/./*/.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC./*/.constants (object)

Named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class* string   “Constants”  

ADC./*/.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC./*/.controls (object)

Options to control configuration process

Properties (* = required):

name type(s) default allowed values description
class string “Controls” “Controls”  
fortune boolean false true, false If true, AS3 will activate Zoltar mode and read you your fortune
logLevel string “error” “emergency”, “alert”, “critical”, “error”, “warning”, “notice”, “info”, “debug” Controls the amount of detail in logs produced while configuring this Tenant (default is whole-declaration Controls/logLevel value)
trace boolean false true, false If true, AS3 creates a detailed trace of the configuration process for this Tenant for subsequent analysis (default is whole-declaration Controls/trace value). Warning: trace files may contain sensitive configuration data
traceResponse boolean false true, false If true, the response will contain the trace files

ADC./*/.Shared (object)

Special application Shared holds objects other applications can share Application declaration main schema

Properties (* = required):

name type(s) default allowed values description
/*/        
class* string   “Application”  
constants object     Named values for (re-)use by declaration objects
enable boolean true true, false Application handles traffic only when enabled (default)
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
schemaOverlay string     BIG-IQ name for a supplemental validation schema is applied to the Application class definition before the main AS3 schema
serviceMain       Primary service of the application
template* string “generic”   Each application type has certain required and default elements and selects appropriate setup of various ADC/Security features

ADC./*/.Shared.constants (object)

Named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class* string   “Constants”  

ADC./*/.Shared.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC./*/.verifiers (object)

Data (in ‘key’:’value’ properties) used to verify automated tests. Ordinary declarations do not need this

ADC.Common (object)

Special tenant Common holds objects other tenants can share

Properties (* = required):

name type(s) default allowed values description
class string “Tenant” “Tenant”  
constants object     Named values for (re-)use by declaration objects
controls object     Options to control configuration process
enable boolean   true If declared, you must enable the Common tenant
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
optimisticLockKey string “”   When you deploy a declaration with a non-empty ‘key’ value here, that activates an optimistic lock on changes to this Tenant. If the key in your declaration does not match the key AS3 computes for the most-recent previous declaration, then AS3 will NOT update this Tenant and will return an error code. To use optimistic locking, first retrieve a declaration using option ‘showHash=true’ to get the current per-Tenant keys. Make any changes you desire, then deploy your updated declaration. Deployment of each Tenant with a key will succeed only if that Tenant has not been modified since the time you retrieved the declaration. (To overwrite all previous changes to a Tenant simply do NOT include any opportunistic-lock key for that Tenant when you deploy a declaration. That is the default.) Note that only keys computed by AS3 may be used here– you cannot generate your own. If ‘showHash=true’ is used on a POST then the optimisticLockKey will be shown as a part of the output (This helps to avoid the need to do a GET request).
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
Shared object     Special application Shared holds objects other applications can share,Application declaration main schema
verifiers object     Data (in ‘key’:’value’ properties) used to verify automated tests. Ordinary declarations do not need this

ADC.Common.constants (object)

Named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class* string   “Constants”  

ADC.Common.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC.Common.controls (object)

Options to control configuration process

Properties (* = required):

name type(s) default allowed values description
class string “Controls” “Controls”  
fortune boolean false true, false If true, AS3 will activate Zoltar mode and read you your fortune
logLevel string “error” “emergency”, “alert”, “critical”, “error”, “warning”, “notice”, “info”, “debug” Controls the amount of detail in logs produced while configuring this Tenant (default is whole-declaration Controls/logLevel value)
trace boolean false true, false If true, AS3 creates a detailed trace of the configuration process for this Tenant for subsequent analysis (default is whole-declaration Controls/trace value). Warning: trace files may contain sensitive configuration data
traceResponse boolean false true, false If true, the response will contain the trace files

ADC.Common.Shared (object)

Special application Shared holds objects other applications can share Application declaration main schema

Properties (* = required):

name type(s) default allowed values description
/*/        
class* string   “Application”  
constants object     Named values for (re-)use by declaration objects
enable boolean true true, false Application handles traffic only when enabled (default)
label string   “^[^x00-x1fx22#&*<>?x5b-x5d`x7f]*$” Optional friendly name for this object. Allows 0-64 chars, excluding a few likely to cause trouble with string searching, JS, TCL, or HTML
remark string   “^[^x00-x1fx22x5cx7f]*$” Arbitrary (brief) text pertaining to this object. Allows 0-64 chars, excluding only control characters, double-quote, and backslash. This is permissive enough that you should worry about XSS attacks
schemaOverlay string     BIG-IQ name for a supplemental validation schema is applied to the Application class definition before the main AS3 schema
serviceMain       Primary service of the application
template* string “generic”   Each application type has certain required and default elements and selects appropriate setup of various ADC/Security features

ADC.Common.Shared.constants (object)

Named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class* string   “Constants”  

ADC.Common.Shared.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC.Common.verifiers (object)

Data (in ‘key’:’value’ properties) used to verify automated tests. Ordinary declarations do not need this

ADC.constants (object)

Declaration metadata and/or named values for (re-)use by declaration objects

Properties (* = required):

name type(s) default allowed values description
/*/ boolean, integer, number, string, array, object   true, false, -∞ - -Infinity  
class string “Constants” “Constants”  
timestamp string   “date-time” formatted string Date+time (this version of) declaration was created (optional but recommended)
version number, string   -∞ - -Infinity Version number of declaration; update when you change contents but not ID (optional but recommended)

ADC.constants./*/ (boolean, integer, number, string, array, object)

Allowed values: true, false, -∞ - -Infinity

ADC.controls (object)

Options to control configuration process

Properties (* = required):

name type(s) default allowed values description
archiveId number, string   -∞ - -Infinity Read-only property present when you GET a declaration from configuration system. Archived versions of declaration are identified by a combination of ‘id’ and ‘archiveId’
archiveTimestamp string   “date-time” formatted string Read-only property present when you GET a declaration from configuration system. Indicates when this version (see archiveId) of declaration was archived
class string “Controls” “Controls”  
dryRun boolean false true, false Boolean that indicates if this declaration will be run as a dry-run. If true, the declaration will NOT make any changes to the system, but will respond with whether or not it would.
logLevel string “error” “emergency”, “alert”, “critical”, “error”, “warning”, “notice”, “info”, “debug” Controls the amount of detail in logs produced by the configuration process using RFC 5424 severity levels (default is ‘error’). May be overridden on a per-Tenant basis
trace boolean false true, false If true, AS3 creates a detailed trace of the configuration process for subsequent analysis (default false). May be overridden on a per-Tenant basis. Warning: trace files may contain sensitive configuration data
traceResponse boolean false true, false If true, the response will contain the trace files
userAgent string     User Agent information to include in TEEM report

ADC.target (object)

Trusted target for config when configuring with BIG-IQ

Properties (* = required):

name type(s) default allowed values description
/*/        
address string   “f5ip” formatted string IP address of managed device to be configured
hostname string     Host name of managed device to be configured