You can make a component conditional by using a condition construct. The value of a conditional construct is a boolean expression that evaluates to true or false. If the condition is true, the component is used to build its configuration objects. If the condition is false, the component is skipped, and no configuration objects are created through it. The boolean expression is often based on parameter values.
components: - name: servicegroup-comp type: ns::servicegroup condition: $parameters.svc-server-ips properties: name: $parameters.name + "-svcgrp" servicetype: HTTP <!--NeedCopy-->
In this example, if the user specifies a value for the optional parameter svc-server-ips, then the component, servicegroup-comp, is processed by the StyleBook engine. If the condition is false, that is, if the user does not provide a value to this parameter, a null value is assigned to this parameter and evaluates to false, then the StyleBook engine ignores the presence of this component, and no servicegroup is created.
Note that the boolean expression can be based on any valid expression supported in StyleBooks (for example, whether another component is present, or whether a parameter has a certain value).
The following example builds the configuration object of NITRO type ns::systemfile if the condition is evaluated to true.
components - name: pem_key_files type: ns::systemfile condition: "$components.der-certificate-files-comp or $components.pem-certificate-files-comp" properties: filecontent: $certificate.keyfile.contents fileencoding: "BASE64" filelocation: "/nsconfig/ssl" filename: $certificate.keyfile.filename <!--NeedCopy-->
In this example, the condition is a complex “OR” expression, where you want this configuration object to be created by the StyleBook only if two other components in the StyleBook have been processed (not skipped), therefore, creating a dependency between components.