osp.playbook
Playbook
type |
object |
|
properties |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
When executing a playbook, if multiple environments are defined, the user will be prompted to select one using a custom picker. A typical use case is to differentiate between Quality and Production playbooks. |
|
type |
array |
|
items |
||
|
The execution priority of the playbook, which determines the order in which playbooks are applied when template.execute.all command is used Note: Lower numeric values represent higher priority. |
|
type |
integer |
|
additionalProperties |
False |
|
TemplateEnvironment
type |
object |
||
properties |
|||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
||
type |
string |
||
|
### Playbook Environment Execution
|
||
type |
array |
||
items |
type |
string |
|
|
The list of tasks to execute in this playbook |
||
type |
array |
||
items |
oneOf |
||
|
A list of variablesFiles for use in paths, conditions, or for direct inclusion in Nunjucks templates. The evaluation order can be summarized as follows:
Conflict rules:
|
||
additionalProperties |
False |
||
SOURCE_DESTINATION_MIRRORING
type |
object |
|
properties |
||
|
type |
string |
enum |
SOURCE_DESTINATION_MIRRORING |
|
default |
SOURCE_DESTINATION_MIRRORING |
|
|
|
|
oneOf |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Root directory that will be scanned recursively. All regular files beneath this point are treated exactly like this :
|
|
type |
array |
|
items |
||
|
A list of variablesFiles for use in paths, conditions, or for direct inclusion in Nunjucks templates.
|
|
additionalProperties |
False |
|
JEXL_EVALUATION
type |
object |
|
properties |
||
|
type |
string |
enum |
JEXL_EVALUATION |
|
default |
JEXL_EVALUATION |
|
|
A JSON-based boolean expression that is evaluated using the JEXL (JavaScript Expression Language) engine. This expression supports dynamic evaluation using context variables provided at runtime. The result must be a boolean value (i.e., the expression must evaluate to true or false). Example: “evaluation”: “user.age > 18 && user.active == true” This expression will return true only if the user is over 18 and active. The available variables correspond to the current execution context, and are equivalent to the ones available in templates (e.g., when rendering using Nunjucks or other engines). They are injected at evaluation time. Any error in parsing or evaluation will be thrown as a runtime error. See the JEXL expression syntax documentation. |
|
type |
string |
|
additionalProperties |
False |
|
FileLocation
type |
object |
|
properties |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Target directory where the generated or copied file will be placed, e.g., /root/device/. The final filename is derived from the source filename: if the source ends with ‘.nunjucks’, this extension is removed. For instance, ‘config.yaml.nunjucks’ becomes ‘config.yaml’. |
|
oneOf |
||
|
Path to the source file used for rendering or copying. The expected format is: templates/sources/env/value.ospp.nunjucks. Files ending with ‘.nunjucks’ will be processed as Nunjucks templates and rendered with the current variable context. |
|
oneOf |
||
additionalProperties |
False |
|
RELATIVE
type |
object |
|
properties |
||
|
type |
string |
enum |
RELATIVE |
|
default |
RELATIVE |
|
|
A relative path, for example ‘root/’ or ‘templating/env/’. |
|
type |
string |
|
additionalProperties |
False |
|
EVALUATION
type |
object |
|
properties |
||
|
type |
string |
enum |
EVALUATION |
|
default |
EVALUATION |
|
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Dynamic path evaluation leveraging the full variable context through Nunjucks templating syntax. This enables the generation of file paths by combining values from available variables.
|
|
type |
string |
|
additionalProperties |
False |
|
CELL_PICKER
type |
object |
|
properties |
||
|
type |
string |
enum |
CELL_PICKER |
|
default |
CELL_PICKER |
|
|
Index of the CSV column (0-based) that contains the path value. Each CSV row must provide a valid path in this column, such as ‘templates/source’ or ‘root/example’. |
|
type |
integer |
|
additionalProperties |
False |
|
Variables
type |
object |
|
properties |
||
|
The inventory task supports declaring additional inventories which can be accessed as variables in Nunjucks templates.
|
|
type |
array |
|
items |
||
|
A list of variables available for use in paths, conditions, or for direct inclusion in Nunjucks templates. The evaluation order can be summarized as follows:
Conflict rules:
|
|
type |
array |
|
items |
||
|
A list of variablesFiles for use in paths, conditions, or for direct inclusion in Nunjucks templates. The evaluation order can be summarized as follows:
Conflict rules:
Variables files can have any valid JSON format and has no validation. |
|
type |
array |
|
items |
||
additionalProperties |
False |
|
CsvAsVariable
type |
object |
||
properties |
|||
|
A boolean condition that determines whether the variable must be included or nor. If the condition evaluates to false, the variables are not included. |
||
oneOf |
|||
|
Character used to indicate that a line is a comment in the CSV. Interpretation depends on “onlyUseFullLineComment”:
Default: no comment character defined. |
||
type |
string |
||
|
The character used as the CSV column separator. Default value is [“;”] |
||
type |
string |
||
default |
; |
||
|
The escape character used when parsing CSV fields. This character allows inserting special characters inside a field without breaking the CSV structure. For example, when the delimiter or quote character appears inside a value, the escape character prevents it from being interpreted as a structural element. Typical use cases include:
Notes:
Default value is [”"”] |
||
type |
string |
||
default |
“ |
||
|
Zero-based index of the line to be used as the CSV header. Defaults to 0, indicating the first line in the file. Default value is [0] |
||
type |
integer |
||
default |
0 |
||
|
Uses the headers defined in the configuration rather than those in the CSV file. When enabled, any headers present in the CSV are ignored. The configured headers are applied in left-to-right order. |
||
type |
array |
||
items |
type |
string |
|
|
The encoding used to read the CSV file. Allows handling different source encodings such as UTF-8, ISO-8859-1 (Latin1), etc. Default: UTF-8 (or the value provided by InputEncodingDefaultValue) Default value is [“utf-8”] |
||
type |
string |
||
default |
utf-8 |
||
|
Controls whether the comment character is recognized only at the start of a line. - true: only full-line comments (safe, recommended) - false: any occurrence of the comment character may be interpreted as a comment This option only has effect if “commentChar” is defined. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Allows inconsistent column counts across CSV records. By default, the CSV parser expects each record to contain the same number of fields as defined by the first record (or header). If a record contains fewer or more columns than expected, the parser throws an error. When relaxColumnCount is set to true, the parser tolerates records with a different number of columns and continues processing without raising an exception. Use cases include processing CSV files from unreliable or external sources, handling optional or missing fields in certain rows, and importing loosely structured or partially corrupted datasets. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Indicates whether empty lines in the CSV should be skipped. If true, lines with no values will not be included in the parsing result. Default: true Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Zero-based index of the line where the CSV data starts. Defaults to 1, which corresponds to the first line following the header. Default value is [1] |
||
type |
integer |
||
default |
1 |
||
|
Indicates whether leading and trailing whitespace should be removed from each parsed field value. When set to true, surrounding spaces are trimmed automatically. Example: Input CSV line: [name, age , city ] Without trim (false):
With trim (true):
Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
||
type |
string |
||
|
Relative path to the CSV file to be loaded, e.g., templates/inventory/my-inventory.csv. |
||
type |
string |
||
|
Identifier under which the CSV data will be accessible within the variable context. For example, if the variableName is ‘phone’, it can be referenced in Nunjucks as {{ phone.private }}. |
||
type |
string |
||
additionalProperties |
False |
||
Variable
type |
object |
|
properties |
||
|
A boolean condition that determines whether the variable must be included or nor. If the condition evaluates to false, the variables are not included. |
|
oneOf |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
The variable’s key, which can be referenced in source files using the syntax {{ key }}. For example, if the key is “hostname”, it would be accessed as {{ hostname }}. |
|
type |
string |
|
|
A list of variables available for use in paths, conditions, or for direct inclusion in Nunjucks templates. The evaluation order can be summarized as follows:
Conflict rules:
|
|
additionalProperties |
False |
|
VariableFile
type |
object |
|
properties |
||
|
A boolean condition that determines whether the variable must be included or nor. If the condition evaluates to false, the variables are not included. |
|
oneOf |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
The relative path to the file to include in format templates/sources/…/myfile |
|
type |
string |
|
additionalProperties |
False |
|
CSV_INVENTORY
type |
object |
||
properties |
|||
|
type |
string |
|
enum |
CSV_INVENTORY |
||
default |
CSV_INVENTORY |
||
|
|
||
oneOf |
|||
|
Character used to indicate that a line is a comment in the CSV. Interpretation depends on “onlyUseFullLineComment”:
Default: no comment character defined. |
||
type |
string |
||
|
The character used as the CSV column separator. Default value is [“;”] |
||
type |
string |
||
default |
; |
||
|
The escape character used when parsing CSV fields. This character allows inserting special characters inside a field without breaking the CSV structure. For example, when the delimiter or quote character appears inside a value, the escape character prevents it from being interpreted as a structural element. Typical use cases include:
Notes:
Default value is [”"”] |
||
type |
string |
||
default |
“ |
||
|
Zero-based index of the line to be used as the CSV header. Defaults to 0, indicating the first line in the file. Default value is [0] |
||
type |
integer |
||
default |
0 |
||
|
Uses the headers defined in the configuration rather than those in the CSV file. When enabled, any headers present in the CSV are ignored. The configured headers are applied in left-to-right order. |
||
type |
array |
||
items |
type |
string |
|
|
The encoding used to read the CSV file. Allows handling different source encodings such as UTF-8, ISO-8859-1 (Latin1), etc. Default: UTF-8 (or the value provided by InputEncodingDefaultValue) Default value is [“utf-8”] |
||
type |
string |
||
default |
utf-8 |
||
|
Controls whether the comment character is recognized only at the start of a line. - true: only full-line comments (safe, recommended) - false: any occurrence of the comment character may be interpreted as a comment This option only has effect if “commentChar” is defined. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Allows inconsistent column counts across CSV records. By default, the CSV parser expects each record to contain the same number of fields as defined by the first record (or header). If a record contains fewer or more columns than expected, the parser throws an error. When relaxColumnCount is set to true, the parser tolerates records with a different number of columns and continues processing without raising an exception. Use cases include processing CSV files from unreliable or external sources, handling optional or missing fields in certain rows, and importing loosely structured or partially corrupted datasets. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Indicates whether empty lines in the CSV should be skipped. If true, lines with no values will not be included in the parsing result. Default: true Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Zero-based index of the line where the CSV data starts. Defaults to 1, which corresponds to the first line following the header. Default value is [1] |
||
type |
integer |
||
default |
1 |
||
|
Indicates whether leading and trailing whitespace should be removed from each parsed field value. When set to true, surrounding spaces are trimmed automatically. Example: Input CSV line: [name, age , city ] Without trim (false):
With trim (true):
Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
||
type |
string |
||
|
IterateOn allows performing nested iterations. For example, you can iterate over a CSV file and, for each row, execute another loop. The variables are accessible in evaluation named as {{iterateOn_[name_of_col]}}. |
||
oneOf |
|||
|
|||
type |
array |
||
items |
|||
|
This task is list-based: each line of the inventory generates one or multiple files according to complex rules. Only CSV files are supported as inventory. The CSV file must include a header line, which can be located anywhere in the file. This header defines variable names for each column. The evaluation process follows these steps: * Preserve all variables defined in the environment * Add variables from the current task * Add each column of the current line as variables named after the header * For each line, execute all Rules by-line * Ignore any rule whose condition is not met * If Rules is defined, modify (exclude, include, etc.) the files to generate per line * Create the destination files and folders |
||
type |
string |
||
|
A list of variablesFiles for use in paths, conditions, or for direct inclusion in Nunjucks templates.
|
||
additionalProperties |
False |
||
CSV
type |
object |
||
properties |
|||
|
type |
string |
|
enum |
CSV |
||
default |
CSV |
||
|
Character used to indicate that a line is a comment in the CSV. Interpretation depends on “onlyUseFullLineComment”:
Default: no comment character defined. |
||
type |
string |
||
|
The character used as the CSV column separator. Default value is [“;”] |
||
type |
string |
||
default |
; |
||
|
The escape character used when parsing CSV fields. This character allows inserting special characters inside a field without breaking the CSV structure. For example, when the delimiter or quote character appears inside a value, the escape character prevents it from being interpreted as a structural element. Typical use cases include:
Notes:
Default value is [”"”] |
||
type |
string |
||
default |
“ |
||
|
Zero-based index of the line to be used as the CSV header. Defaults to 0, indicating the first line in the file. Default value is [0] |
||
type |
integer |
||
default |
0 |
||
|
Uses the headers defined in the configuration rather than those in the CSV file. When enabled, any headers present in the CSV are ignored. The configured headers are applied in left-to-right order. |
||
type |
array |
||
items |
type |
string |
|
|
The encoding used to read the CSV file. Allows handling different source encodings such as UTF-8, ISO-8859-1 (Latin1), etc. Default: UTF-8 (or the value provided by InputEncodingDefaultValue) Default value is [“utf-8”] |
||
type |
string |
||
default |
utf-8 |
||
|
Controls whether the comment character is recognized only at the start of a line. - true: only full-line comments (safe, recommended) - false: any occurrence of the comment character may be interpreted as a comment This option only has effect if “commentChar” is defined. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Allows inconsistent column counts across CSV records. By default, the CSV parser expects each record to contain the same number of fields as defined by the first record (or header). If a record contains fewer or more columns than expected, the parser throws an error. When relaxColumnCount is set to true, the parser tolerates records with a different number of columns and continues processing without raising an exception. Use cases include processing CSV files from unreliable or external sources, handling optional or missing fields in certain rows, and importing loosely structured or partially corrupted datasets. Default value is [false] |
||
type |
boolean |
||
default |
False |
||
|
Indicates whether empty lines in the CSV should be skipped. If true, lines with no values will not be included in the parsing result. Default: true Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Zero-based index of the line where the CSV data starts. Defaults to 1, which corresponds to the first line following the header. Default value is [1] |
||
type |
integer |
||
default |
1 |
||
|
Indicates whether leading and trailing whitespace should be removed from each parsed field value. When set to true, surrounding spaces are trimmed automatically. Example: Input CSV line: [name, age , city ] Without trim (false):
With trim (true):
Default value is [true] |
||
type |
boolean |
||
default |
True |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
||
type |
string |
||
|
Relative path to the CSV file to be loaded, e.g., templates/inventory/my-inventory.csv. |
||
type |
string |
||
additionalProperties |
False |
||
RuleByLine
type |
object |
|
properties |
||
|
A boolean condition that determines whether file generation should occur for a given CSV line. If the condition evaluates to false, the line will be skipped. |
|
oneOf |
||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Defines the destination path where the generated file(s) will be saved for each CSV line. |
|
oneOf |
||
|
Optional set of rules to modify or filter the generation process. These rules enable custom logic such as excluding certain files or directories, facilitating reuse of the same source in multiple contexts without duplicating files. |
|
type |
array |
|
items |
||
|
Specifies the source path whose content will be used to generate one or more files for each CSV line. If the source is a directory, its contents will be processed recursively. |
|
oneOf |
||
additionalProperties |
False |
|
ConditionalRules
type |
object |
||
properties |
|||
|
A boolean condition that determines whether file generation should occur for a given CSV line. If the condition evaluates to false, the line will be skipped. |
||
oneOf |
|||
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
||
type |
string |
||
|
|
||
type |
array |
||
items |
oneOf |
||
additionalProperties |
False |
||
AddFile
type |
object |
|
properties |
||
|
type |
string |
enum |
AddFile |
|
default |
AddFile |
|
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Defines the destination path where the generated file(s) will be saved for each CSV line. |
|
oneOf |
||
|
|
|
oneOf |
||
additionalProperties |
False |
|
AddNode
type |
object |
|
properties |
||
|
type |
string |
enum |
AddNode |
|
default |
AddNode |
|
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Define the source folder to include in the generation process.
|
|
oneOf |
||
|
|
|
oneOf |
||
additionalProperties |
False |
|
ExcludeFile
type |
object |
|
properties |
||
|
type |
string |
enum |
ExcludeFile |
|
default |
ExcludeFile |
|
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Define the path of file to exclude expected format is templates/sources/value.ospp |
|
oneOf |
||
additionalProperties |
False |
|
ExcludeNode
type |
object |
|
properties |
||
|
type |
string |
enum |
ExcludeNode |
|
default |
ExcludeNode |
|
|
Note for integrators: this entry is for documentation purposes only and has no functional effect. |
|
type |
string |
|
|
Defines the directory path to exclude (subfolders within this directory will also be excluded). The expected format is, for example, templates/sources/. |
|
oneOf |
||
additionalProperties |
False |
|