# BitRock InstallBuilder User Guide 9: Appendices

BitRock Team
`<support@bitrock.com>`

## 1. Appendix A: Actions

<action> - Common Properties
property | default value | allowed values | description
`abortOnError` | `1` | 0, 1 | Whether or not to abort the installation on an error while executing the action.
`breakpoint` | `0` | 0, 1 | Breakpoint
`customErrorMessage` | `` | string | Show a custom error message.
`explanation` | `` | text | Additional text to show when the action is displayed on the final page action list.
`progressText` | `` | string | Text to show on the progress bar or final page action List
`ruleEvaluationLogic` | `and` | and, or | Boolean operator for rule concatenation
`run` | `1` | 0, 1 | Whether or not to run the related action or not
`show` | `1` | 0, 1 | Show or hide the checkbutton in the final page action list
`showMessageOnError` | `1` | 0, 1 | Whether or not to show an error message when an error occurs.
`onErrorActionList` | `` | `<action>` | List of actions to execute if the action fails
`ruleList` | `` | `<rule>` | List of rules to satisfy in order to evaluate the current element

### Dialog Actions

<consoleWrite>
Write text to console
property | default value | allowed values | description
`text` | `` | text | Text to write
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showChoiceQuestion>
Prompt a choice question dialog to the user.
property | default value | allowed values | description
`defaultValue` | `` | string | Default value
`text` | `` | text | Information message that will be shown
`title` | `Choose an option` | string | Dialog title
`variable` | `` | string | Variable to store choice
`optionList` | `` | `<option>` | Predefined list of options that allows the user to select a value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showInfo>
Prompt an info dialog to the user.
property | default value | allowed values | description
`text` | `` | text | Information message that will be shown
`title` | `${msg(MessageDialog.Info)}` | string | Title of the dialog window
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showPasswordQuestion>
Ask the user to enter a password.
property | default value | allowed values | description
`text` | `` | text | Question message that will be shown.
`title` | `` | string | Dialog window title.
`variable` | `` | string | Variable name where the password will be stored.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showProgressDialog>
Display an indeterminate progressmeter in a popup window to execute a list of actions.
property | default value | allowed values | description
`height` | `100` | positive integer or zero | Popup window height
`title` | `Please wait` | string | Title of the progress dialog window
`width` | `300` | positive integer or zero | Popup window width
`actionList` | `` | `<action>` | Actions to Execute
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showQuestion>
Prompt a question to the user. The result is stored as yes or no in the given variable name.
property | default value | allowed values | description
`default` | `yes` | yes, no | Default answer, it can be yes or no.
`text` | `` | text | Question message that will be shown.
`title` | `${msg(MessageDialog.Question)}` | string | Title of the dialog window
`variable` | `` | string | Variable name where the result will be stored
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showStringQuestion>
Ask the user a question.
property | default value | allowed values | description
`text` | `` | string | Question message that will be shown.
`title` | `` | string | Dialog window title.
`variable` | `` | string | Variable name where the answer will be stored.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showText>
Display a read-only text dialog to the user.
property | default value | allowed values | description
`height` | `600` | positive integer or zero | Text window height
`htmlText` | `` | text | HTML text that will be shown in Qt mode. Note that regular text still needs to be provided in case the installer is run in another mode
`text` | `` | text | Text that will be shown.
`title` | `` | string | Dialog title.
`width` | `500` | positive integer or zero | Text window width
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showWarning>
Shows a warning dialog with the given text.
property | default value | allowed values | description
`text` | `Warning message goes here` | text | Warning message that will be shown.
`title` | `${msg(MessageDialog.Warning)}` | string | Title of the dialog window
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<throwError>
Generate an error inside the installer so the installer will exit. The only exception to this is when abortOnError equals zero or the action is inside a validationActionList, in which case it will prompt an error dialog to the user, but will not exit the installer.
property | default value | allowed values | description
`text` | `Unknown Error` | text | Error message
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Environment Actions

<addDirectoryToPath>
Add a directory to the system path. This will modify the registry on windows and the appropiate shell initialization files on Unix systems
property | default value | allowed values | description
`insertAt` | `end` | beginning, end | Where to insert the new directory in the PATH (currently Unix only)
`path` | `` | string | Path to the directory
`scope` | `system` | system, user | Select user path or system path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addEnvironmentVariable>
Add a system environment variable.This will modify the registry on windows and the appropiate shell initialization files on Unix systems
property | default value | allowed values | description
`name` | `` | string | Environment variable name.
`scope` | `system` | system, user | Scope.
`username` | `` | string | User to modify the environment for. If empty, the current user will be used
`value` | `` | string | Variable name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addFonts>
Add fonts to the Windows system
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addLibraryToPath>
Add a path in which the system will search for shared libraries on Linux
property | default value | allowed values | description
`path` | `` | string | Path to add to the system search for dynamic libraries on Linux
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteEnvironmentVariable>
Delete an environment variable from the system.
property | default value | allowed values | description
`name` | `` | string | Environment variable name.
`scope` | `system` | system, user | Scope.
`username` | `` | string | User to modify the environment for. If empty, the current user will be used
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<pwd>
Get the current working directory
property | default value | allowed values | description
`variable` | `` | string | Variable to which to save the current working directory.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeDirectoryFromPath>
Remove a directory from the System Path. This will modify the System Path
property | default value | allowed values | description
`path` | `` | string | Path to the directory
`scope` | `system` | system, user | Select user path or system path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeFonts>
Remove fonts from the Windows system
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setEnvironmentVariable>
Set the value of a system environment variable. If it does not exist yet, a new one will be created. The variable will not exist once the installer has finished.
property | default value | allowed values | description
`name` | `` | string | Variable name
`value` | `` | string | Variable value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### File Manipulation Actions

<addDirectoriesToUninstaller>
Add directories to the uninstaller.
property | default value | allowed values | description
`addContents` | `0` | 0, 1 | Whether or not to add directory contents to the uninstaller
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addFilesToUninstaller>
Add files to uninstaller.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addTextToFile>
Append text to a file. If the file does not exist, it will be created.
property | default value | allowed values | description
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the file
`insertAt` | `end` | end, beginning | Whether to insert the text at the beginning or at the end of the file
`text` | `` | text | Text to append
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<dos2unix>
Convert plain text files in DOS/Mac format to Unix format.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<iniFileGet>
Extract property values out of a INI file.
property | default value | allowed values | description
`file` | `` | string | Path to INI file
`key` | `` | string | Property Key
`section` | `` | string | INI section
`variable` | `` | string | Variable name to save property to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<iniFileSet>
Set property values of a INI file.
property | default value | allowed values | description
`file` | `` | string | Path to INI file
`key` | `` | string | Property Key
`section` | `` | string | INI section
`value` | `` | string | Property Value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<propertiesFileGet>
Extract property values out of a properties file.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the property file
`key` | `` | string | Property key
`variable` | `` | string | Variable name to save property to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<propertiesFileSet>
Writes out property values to a properties file, creating a new file if it does not exist.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the property file
`key` | `` | string | Property key
`value` | `` | string | Value to set the key to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<readFile>
Read the contents of a file and save it in a variable.
property | default value | allowed values | description
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`name` | `` | string | Variable to which to save the file contents
`path` | `` | string | Path to the file you wish to read the contents from
`removeBOM` | `0` | 0, 1 | Whether or not to remove or not Byte Order Mark on Unicode files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeFilesFromUninstaller>
Remove files or directories from uninstaller.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<substitute>
Substitute a value in a file.
property | default value | allowed values | description
`encoding` | `binary` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, binary | Encoding of the files to substitute
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`type` | `regexp` | regexp, exact | Type of substitution, regular expression or exact
`substitutionList` | `` | `<substitution>` | List of patterns/values for a substitution
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unix2dos>
Convert plain text files in Unix format to DOS format.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<writeFile>
Create or replace a file with a certain text content.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`path` | `` | string | Path of the file to be created or replaced
`text` | `` | text | Text to write
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileCommentElement>
Comment entire subtree of an XML file
property | default value | allowed values | description
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileGet>
Read value of element or attribute from an XML file
property | default value | allowed values | description
`attribute` | `` | string | If present, the action will refer to the attribute instead of the element
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`variable` | `` | string | Variable where to start the result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileSet>
Set the value of an element or attribute in an XML file
property | default value | allowed values | description
`attribute` | `` | string | If present, the action will refer to the attribute instead of the element
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`value` | `` | string | Value to store in element or attribute
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<yamlFileGet>
Read value of element from a YAML file
property | default value | allowed values | description
`element` | `` | string | Path expression pointing to the selected element
`file` | `` | string | Path to YAML file
`variable` | `` | string | Variable where to start the result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<yamlFileSet>
Set the value of an element in a YAML file
property | default value | allowed values | description
`element` | `` | string | Path expression pointing to the selected element
`file` | `` | string | Path to YAML file
`value` | `` | string | Value to store in element
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### File System Actions

<copyFile>
Create a copy of a file. The destination file will be overwritten if it already exists
property | default value | allowed values | description
`destination` | `` | string | Path to where the file will be copied.
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`origin` | `` | string | Path to the original file.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createBackupFile>
Create a backup of a file or directory. The backup will be named with a .bak extension if no destination is specified. If a backup file already exists, new backups will be named .bak1, .bak2 and so on.
property | default value | allowed values | description
`destination` | `` | string | Path to the destination backup folder.
`path` | `` | string | Path to original file you wish to backup.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createDirectory>
Create a new directory
property | default value | allowed values | description
`path` | `` | string | Path to the new directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createShortcuts>
Creates one or more shortcuts in specified location.
property | default value | allowed values | description
`destination` | `` | string | Path to the location where you want to create the shortcuts.
`shortcutList` | `` | `<shortcut>` | List of shortcuts to create.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createSymLink>
Create a symbolic link to a file. It is the equivalent to the Unix ln command.
property | default value | allowed values | description
`linkName` | `` | string | Symbolic link name.
`target` | `` | string | Path to the file to which you want to create a symbolic link.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteFile>
Delete a file or directory (including its contents). The action does not throw an error if deleting a file or directory failed.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`path` | `` | string | Path to the file or directory to delete. It accepts patterns
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFileInfo>
Gets Information About File Or Directory
property | default value | allowed values | description
`followSymLinks` | `0` | 0, 1 | Whether or not to follow or not symbolic links
`path` | `` | string | Path
`type` | `and` | size, type | Type of information to retrieve
`variable` | `` | string | Variable to store result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getSymLinkTarget>
Get the destination path referenced by the given symbolic link. Returns an empty value if the file doesn’t exist or is not a symbolic link.
property | default value | allowed values | description
`link` | `` | string | Symbolic link path
`variable` | `` | string | Variable to store result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<renameFile>
Change the name of a file or directory
property | default value | allowed values | description
`destination` | `` | string | New name of the file.
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`origin` | `` | string | Original name of the file.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<touchFile>
Update the access and modification times of a file or directory. If the file does not exist, it can be specified whether to create an empty file or not. It is equivalent to the touch Unix command.
property | default value | allowed values | description
`createIfNotExists` | `1` | 0, 1 | Whether or not to create the file in case it does not exist
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`path` | `` | string | Path to the file/directory to be touched
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unpackDirectory>
Extract a directory from an installer before files are unpacked during the installation phase
property | default value | allowed values | description
`component` | `` | string | Project component where the directory you want to extract is located.
`destination` | `` | string | Path to the location where you want to extract the directory.
`folder` | `` | string | Project folder name where the directory you want to extract is located.
`origin` | `` | string | Directory name you want to extract.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unpackFile>
Extract files from an installer before files are unpacked during the installation phase
property | default value | allowed values | description
`component` | `` | string | Project component where the file you want to extract is located
`destination` | `` | string | Path to the location where you want to extract the file
`folder` | `` | string | Project folder name where where the file you want to extract is located
`origin` | `` | string | File name you want to extract
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unzip>
Extract content from a zip file to a destination folder.
property | default value | allowed values | description
`destinationDirectory` | `` | string | Path to the folder where you want the file content to be extracted. The folder must exist and must be writable
`zipFile` | `` | string | ZIP file that will be uncompressed
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<zip>
Pack one or more files to a zip file, relative to base directory.
property | default value | allowed values | description
`baseDirectory` | `` | string | Directory that all files will be packed relatively to
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`zipFile` | `` | string | ZIP file that will be created
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Flow Control Actions

<break>
Break current loop
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<continue>
Continue current loop
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<foreach>
Iterate over a set of values
property | default value | allowed values | description
`values` | `` | string | Space-separated values to iterate over
`variables` | `` | string | Space-separated list of variables that will be assigned a value with each iteration
`actionList` | `` | `<action>` | List of actions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<if>
Conditionally execute a group of actions
property | default value | allowed values | description
`conditionRuleEvaluationLogic` | `and` | and, or | Condition rule evaluation logic
`actionList` | `` | `<action>` | List of actions to execute if condition is true
`conditionRuleList` | `` | `<rule>` | List of conditions
`elseActionList` | `` | `<action>` | List of actions to execute if condition is false
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<while>
Execute a group of actions as long as conditions are met
property | default value | allowed values | description
`conditionRuleEvaluationLogic` | `and` | and, or | Condition rule evaluation logic
`actionList` | `` | `<action>` | List of actions
`conditionRuleList` | `` | `<rule>` | List of conditions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### HTTP Actions

<httpGet>
Access a URL and save the result into a file.
property | default value | allowed values | description
`filename` | `` | string | Filename to which to save the result to
`password` | `` | string | Password for URLs that require authentication
`url` | `` | string | URL to launch
`username` | `` | string | Username for URLs that require authentication
`httpHeadersList` | `` | `<httpHeader>` | List of headers for the request
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<httpPost>
Access a URL using HTTP POST and save the result into a file.
property | default value | allowed values | description
`filename` | `` | string | Filename to which to save the result to
`password` | `` | string | Password for URLs that require authentication
`url` | `` | string | URL to launch
`username` | `` | string | Username for URLs that require authentication
`httpHeadersList` | `` | `<httpHeader>` | List of headers for the request
`queryParameterList` | `` | `<queryParameter>` | List of variables that will be included in the POST query.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<httpProxyInit>
Configure proxy to be used by http actions
property | default value | allowed values | description
`exclude` | `127.0.0.1` | string | Space separated list of patters for urls that will be excluded from the proxy configuration
`password` | `` | string | Proxy server password
`port` | `` | string | Proxy server port
`server` | `` | string | Proxy server url
`username` | `` | string | Proxy server username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<launchBrowser>
Launch the default web browser with a given URL.
property | default value | allowed values | description
`url` | `` | string | URL of the page to be shown.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<urlDecode>
Decode a given text using URL formatting specifications and place the result in a variable.
property | default value | allowed values | description
`text` | `` | text | Text to decode
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<urlEncode>
Encode a given text using URL formatting specifications and place the result in a variable.
property | default value | allowed values | description
`text` | `` | text | Text to encode
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Installer Actions

<actionGroup>
Group a set of actions.
property | default value | allowed values | description
`actionList` | `` | `<action>` | List of actions to be grouped
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addChoiceOptions>
Add options to an existing choice parameter
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`optionList` | `` | `<option>` | List of options to give to a choice parameter
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addChoiceOptionsFromText>
Add options to an existing choice parameter from a given text
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`text` | `` | text | Text with the options to give to a choice parameter
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<componentSelection>
Select or deselect components for installation.
property | default value | allowed values | description
`deselect` | `` | string | Comma separated list of components you wish to deselect for installation.
`select` | `` | string | Comma separated list of components you wish to select for installation.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<decodeBase64>
Decode a string using base64.
property | default value | allowed values | description
`text` | `` | string | Text to process
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<encodeBase64>
Encode a string using base64.
property | default value | allowed values | description
`text` | `` | string | Text to process
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<exit>
Exit the installer/uninstaller.
property | default value | allowed values | description
`exitCode` | `0` | positive integer or zero | exit code returned by the installer/uninstaller
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<generateRandomValue>
Generate a random value.
property | default value | allowed values | description
`length` | `32` | positive integer or zero | Character length for the generated value.
`variable` | `` | string | Variable to which to save the generated value.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<globalVariables>
Mark a list of variables as global. Global variables defined or modified inside custom actions preserve their values after the execution while regular variables are not visible outside.
property | default value | allowed values | description
`names` | `` | string | Variable names
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<logMessage>
Write a message to the installation log. Useful for debugging purposes.
property | default value | allowed values | description
`enableTimeStamp` | `1` | 0, 1 | Whether to enable timestamp in the message or not.
`text` | `` | text | Message to include in log
`timeStampFormat` | `[%H:%M:%S]` | string | Format string for the optional timestamp. The string allows a number of field descriptors.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<mathExpression>
Calculate math expression
property | default value | allowed values | description
`text` | `` | string |
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<md4>
Generate a MD4 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the MD4 on.
`useNTLMFormat` | `1` | 0, 1 | Whether or not to create an NTLM compilant hash
`variable` | `` | string | Variable to which to save the MD4 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<md5>
Generate a MD5 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the MD5 on.
`variable` | `` | string | Variable to which to save the MD5 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeChoiceOptions>
Clear choice values for a parameter
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`options` | `` | string | Options to remove
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setEncryptionPassword>
Specifies and verifies password to use for copying files from installer
property | default value | allowed values | description
`password` | `` | string | Password to use; action will throw error if password specified does not match password from build time
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariable>
Set a installer variable. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`name` | `` | string | Variable name
`persist` | `0` | 0, 1 | Whether the variable will be available in the uninstaller as well.
`value` | `` | text | Value to set the variable to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariableFromRegEx>
Set a installer variable to the result of a regular expression. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`name` | `` | string | Name of the variable to set
`pattern` | `` | string | Pattern to match
`substitution` | `` | string | Value to replace matched text with
`text` | `` | text | Text to match
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariableFromScriptOutput>
Set a installer variable to the output of a script. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`exec` | `` | string | Path to the script to run
`execArgs` | `` | string | Arguments to pass to the script
`name` | `` | string | Name of the variable to set
`workingDirectory` | `` | string | Working directory. This is important for scripts that expect to be run from a specific location
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<sha1>
Generate a SHA-1 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the SHA-1 on.
`variable` | `` | string | Variable to which to save the SHA-1 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<sha256>
Generate a SHA-256 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the SHA-256 on.
`variable` | `` | string | Variable to which to save the SHA-256 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stringModify>
Perform one of the allowed transformations in the specified text, storing the result into a variable.
property | default value | allowed values | description
`logic` | `trim` | toupper, tolower, totitle, trimleft, trimright, trim | Transformation to perform.
`text` | `` | text | Text which will be transformed.
`variable` | `` | string | Variable name which will store the result.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<wait>
Pause the installation for given time
property | default value | allowed values | description
`ms` | `` | string | Number of milliseconds to wait
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Java Actions

<autodetectJava>
Autodetects an existing Java (tm) installation in the system and creates corresponding installer variables: java_executable java_vendor java_version java_version_major java_version_full java_bitness. If a valid java version was found, the variable java_autodetected will be set to 1
property | default value | allowed values | description
`promptUser` | `0` | 0, 1 | Prompt user to choose appropriate version
`selectionOrder` | `first` | first, oldest, newest | Order of the Java versions detected
`validVersionList` | `` | `<validVersion>` | List of supported Java versions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createJavaLaunchers>
Creates one or more Java launchers in specified location.
property | default value | allowed values | description
`destination` | `` | string | Path to the location where you want to create the launchers.
`javaLauncherList` | `` | `<javaLauncher>` | List of launchers to create.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### OSX-specific actions

<changeOSXAttributes>
Change OSX attributes of a file or directory. Trying to set an attribute on a read only file will result in a failure. Make sure the file is writable before attempting to change any attribute other than, of course, readOnly
property | default value | allowed values | description
`creator` | `` | string | Creator to set to file or directory
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`hidden` | `unchanged` | 1, 0, unchanged | Whether the file is visible or not
`readOnly` | `unchanged` | 1, 0, unchanged | Whether the file is read only or writable
`type` | `` | string | Type to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Registry Actions

<registryDelete>
Delete a registry entry. If the entry to delete is only a registry key and it does not exist, the action will be ignored. Deleting a registry value (key + name combination) that does not exist will trigger a regular error.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to delete
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryFind>
Retrieve the first registry hive and content matching a certain expression and store it as a list in an installer variable. If no match is found the variable will be created empty.
property | default value | allowed values | description
`dataPattern` | `*` | string | Pattern to match in the value
`findAll` | `0` | 0, 1 | Whether to look for the first occurrence or for all
`keyPattern` | `*` | string | Pattern to match key name with
`namePattern` | `*` | string | Pattern to match entry name with
`rootKey` | `HKEY_LOCAL_MACHINE\SOFTWARE` | string | Root key from which start the search
`searchDepth` | `0` | positive integer or zero | Maximum depth of the search. 0 will look just in the Root Key
`variable` | `` | string | Variable name to store the results
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGet>
Store the value of a registry key in an installer variable. If the key or name does not exist, then the variable will be created empty.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to read value from
`variable` | `` | string | Variable name to store registry value to
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGetKey>
Store in variable the first registry key that matches the given pattern, or set the variable to empty otherwise. The search is case-sensitive for the whole key provided.
property | default value | allowed values | description
`key` | `` | string | Registry key
`variable` | `` | string | Variable to store result
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGetMatch>
Store the value of the first match of a registry key matching a certain expression in an installer variable. If the key or name does not exist, then the variable will be created empty. The name can contain a wildcard expression (using *)
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to read value from
`variable` | `` | string | Variable name to store registry value to
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registrySet>
Create a new registry key or modify the value of an existing registry key.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to set or modify value to
`type` | `REG_SZ` | REG_BINARY, REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BIG_ENDIAN, REG_LINK, REG_MULTI_SZ, REG_RESOURCE_LIST | Type of key to add
`value` | `` | string | Value to set to the registry key
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Services Actions

<addUnixService>
This action allows you to create a new service in a Linux based system. Note that you will need to run the installer as root to be able to create new services.
property | default value | allowed values | description
`description` | `` | string | Product description
`name` | `` | string | Service Name
`program` | `` | string | Path to the program
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createOSXService>
Create Mac OS X service.
property | default value | allowed values | description
`abandonProcessGroup` | `0` | 0, 1 | Don’t kill the remaining processes with the same group ID.
`groupname` | `` | string | Groupname
`keepAlive` | `1` | 0, 1 | Keep process alive by launchctl
`program` | `` | string | Path to program
`programArguments` | `` | string | Arguments to pass to the program
`scope` | `user` | user, system | Scope of service
`serviceName` | `` | string | Identifier for the service name
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createWindowsService>
Register a program as a Windows service.
property | default value | allowed values | description
`account` | `` | string | User account under which the service should run. It takes the form domain\username. If the account is a local account, it may be specified as .\username or username. If this option is not specified, the service will run under the LocalSystem account.
`dependencies` | `` | string | Comma separated list of services that the created service depends on
`description` | `` | string | Program description
`displayName` | `` | string | Name displayed in the Windows service control panel
`password` | `` | string | Password for the user account if one is specified.
`program` | `` | string | Path to program
`programArguments` | `` | string | Arguments to pass to the program
`serviceName` | `` | string | Internal service name
`startType` | `auto` | auto, manual, disabled | Specify how the service should be started
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteOSXService>
Delete Mac OS X service.
property | default value | allowed values | description
`scope` | `user` | user, system | Scope of service
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteWindowsService>
Delete a Windows service
property | default value | allowed values | description
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getUniqueWindowsServiceName>
Return a unique service name
property | default value | allowed values | description
`displayName` | `` | string | Initial display name for the service
`selectedDisplayNameVariable` | `` | string | Variable to store the service display name
`selectedServiceNameVariable` | `` | string | Variable to store the Service name
`serviceName` | `` | string | Initial name for the service
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeUnixService>
This action allows you to remove a service in a Linux based system. Note that you will need to run the installer as root to be able to remove services.
property | default value | allowed values | description
`name` | `` | string | Service Name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<restartWindowsService>
Restart a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to start / stop.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<startOSXService>
Start Mac OS X service.
property | default value | allowed values | description
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<startWindowsService>
Start a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to start.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stopOSXService>
Stop Mac OS X service.
property | default value | allowed values | description
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stopWindowsService>
Stop a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to stop.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### System Actions

<addUnixDesktopStartUpItem>
Adds a program to be executed whenever a window manager session starts (only Linux KDE/Gnome supported).
property | default value | allowed values | description
`description` | `` | string | The description of the program.
`name` | `` | string | The name of this startup item.
`program` | `` | string | Path to the program to be executed when the session starts.
`programArguments` | `` | string | Arguments to be considered when running the program (only available for GNOME).
`username` | `${system_username}` | string | User to add the Startup item for. If empty, the current user will be used
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createTimeStamp>
This action allows you to create a timestamp using a custom format, storing the result in an installer variable.
property | default value | allowed values | description
`format` | `%Y%m%d` | string | Format string for the generated timestamp. The string allows a number of field descriptors.
`variable` | `` | string | Variable that will store the resulting timestamp.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<dirName>
Returns a name comprised of all of the path components in name excluding the last element. If name is a relative file name and only contains one path element, then returns ".". If name refers to a root directory, then the root directory is returned.
property | default value | allowed values | description
`path` | `` | string | The path from which the base directory will be retrieved.
`variable` | `` | string | Variable that will store the directory path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<findFile>
Search for a file in a directory and all the subdirectories.
property | default value | allowed values | description
`baseDirectory` | `` | string | Path to the directory in which to search for the file. It will search inside the directory and all of its subdirectories.
`followSymLinks` | `0` | 0, 1 | Whether or not to follow or not symbolic links
`pattern` | `` | string | Pattern for the file that will be searched. The pattern can contain wildcards (*,?).
`variable` | `` | string | Variable where the full path to the first matching file will be stored
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFreeDiskSpace>
Calculate the free disk (KiloBytes) space and save the value in the given variable. Returns -1 if free space cannot be determined.
property | default value | allowed values | description
`path` | `` | string | Path to the folder or disk
`units` | `KB` | KB, MB, GB | Size units for the returned value.
`variable` | `` | string | Variable to which to save the result of the calculation
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFreePort>
Returns the number of the first available port in a range of port numbers specified by initialPort and finalPort (both inclusive).
property | default value | allowed values | description
`finalPort` | `` | string | The final port number on the range (inclusive).
`initialPort` | `` | string | The initial port number on the range (inclusive).
`variable` | `` | string | Variable that will store the free port number.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getProcessUsingPort>
Gets Name Of Process Using Specified Port
property | default value | allowed values | description
`pidVariable` | `` | string | Variable to use for storing id of the process using the port
`port` | `` | string | TCP port to check
`variable` | `` | string | Variable to use for storing name of the process using the port
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getTotalDiskSpace>
Get the total disk (KiloBytes) space and save the value in the given variable. Returns -1 if total space cannot be determined.
property | default value | allowed values | description
`path` | `` | string | Path to the folder or disk
`units` | `KB` | KB, MB, GB | Size units for the returned value.
`variable` | `` | string | Variable to which to save the result of the calculation
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<kill>
This action allows you to kill a running process that matches one or several conditions. Windows support only.
property | default value | allowed values | description
`name` | `` | string | Name of the process, usually the executable filename.
`path` | `` | string | Path to the executable of the process.
`pid` | `` | string | ID of the process to be killed.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<locate>
Based on command given, locates binary and creates command that needs to be run.
property | default value | allowed values | description
`command` | `` | string | Command to locate
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<pathManipulation>
Performs change on the path and returns it in variable
property | default value | allowed values | description
`action` | `absolutize` | absolutize | Action to perform on the path
`path` | `` | string | The path to manipulate
`variable` | `` | string | Variable that will store the new path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<runProgram>
Run a program or script
property | default value | allowed values | description
`program` | `` | string | Path to program or script to run
`programArguments` | `` | string | Program arguments
`runAs` | `` | string | Run the program or script as a specific user id. It will only take effect on Unix system and when running the installer as root
`runAsShell` | `` | text | When configuring the runAs property, shell used to run the program.
`stdin` | `` | text | Text to send to program’s standard input.
`useMSDOSPath` | `1` | 0, 1 | Whether or not to use or not MSDOS program name path on Windows
`workingDirectory` | `` | string | Working directory. This is important for scripts that expect to be run from a specific location. By default, it will be the directory where the script or program is located
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<waitForPort>
Pause the installation for a maximum timeout until a server process is listening in the specified port
property | default value | allowed values | description
`port` | `` | string | TCP port to check
`state` | `in_use` | free, in_use | Wait for port to be free or in use.
`timeout` | `` | string | Maximum amount of time to wait (in milliseconds)
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### User and Group Actions

<addGroup>
Add a group to the system. Equal to the Unix groupadd command
property | default value | allowed values | description
`groupname` | `` | string | Group to add to the system
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addGroupToUser>
Add a supplementary group to a user. This way, the user is also member of that group. Make sure that the group already exists. If no username is given, then the current logged on user is selected.
property | default value | allowed values | description
`groupname` | `` | string | Groupname
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addUser>
Add a user to the system.
property | default value | allowed values | description
`homedir` | `` |  | Path to the users homedir
`password` | `` | string | Password for the user account.
`username` | `` | string | Username to add to the system
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addWindowsAccountRights>
Add rights to user or group on Windows
property | default value | allowed values | description
`account` | `` | string | User or group name
`rights` | `` | string | Account rights, separated by spaces; Example value: SeServiceLogonRight. A complete list can be obtained from http://msdn.microsoft.com/en-us/library/aa375728(v=VS.85).aspx
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeOwnerAndGroup>
Change the owner and group of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`group` | `` | string | Group to set to file or directory
`owner` | `` | string | Owner to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changePermissions>
Change permissions of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`permissions` | `` | string | Permissions to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteGroup>
Delete a group from the system. Equivalent to the Unix groupdel command
property | default value | allowed values | description
`groupname` | `` | string | Group name to delete.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteGroupFromUser>
Delete a supplementary group from a user.
property | default value | allowed values | description
`groupname` | `` | string | Groupname
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteUser>
Delete a user from the system. Equivalent to the Unix userdel command
property | default value | allowed values | description
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getPermissions>
Get permissions of a file or directory
property | default value | allowed values | description
`file` | `` | string | File or directory to retrieve permissions
`variable` | `permissions` | string | Variable name to save permissions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeWindowsAccountRights>
Remove rights from user or group on Windows
property | default value | allowed values | description
`account` | `` | string | User or group name
`rights` | `` | string | Account rights, separated by spaces; Example value: SeServiceLogonRight. A complete list can be obtained from http://msdn.microsoft.com/en-us/library/aa375728(v=VS.85).aspx
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Windows-specific actions

<addScheduledTask>
Create a new task or modify the value of an existing one.
property | default value | allowed values | description
`dayOfMonth` | `1` | positive integer or zero | This parameter is used only for Task of MONTHLY type. It specifies the day of the month the task will be executed.
`disallowStartIfOnBatteries` | `1` | 0, 1 | Don’t start the task if the system is running on batteries
`duration` | `` | positive integer or zero | (minutes) How long the Task is active.
`endDate` | `` |  | (year-month-day) Specify the date on which the task becomes inactive.
`executionTimeLimit` | `72` | string | Maximum execution time in hours
`interval` | `` | positive integer or zero | (minutes) How often do you want to execute the given Task in specified duration time.
`name` | `` | string | Name of the Task
`password` | `` | string | The user password associated with the account specified in runAs parameter.
`period` | `1` | positive integer or zero | This parameter is used only for Task of DAILY/WEEKLY type. It specifies how often (every PERIOD days for type DAILY / every PERIOD weeks for type WEEKLY) the task will be executed.
`program` | `` |  | Path to program or script to run.
`programArguments` | `` | string | Program arguments.
`runAs` | `` | string | Run the Task as the specified user.
`runAsAdmin` | `0` | 0, 1 | Run with highest privileges.
`runOnlyIfLoggedOn` | `0` | 0, 1 | Run task only if the user specified by runAs parameter is logged on.
`startDate` | `` |  | (year-month-day) Specify the date on which the task becomes activated.
`startTime` | `` |  | (hours:minutes) The time the Task becomes activated.
`type` | `DAILY` | DAILY, WEEKLY, ONCE, ONIDLE, ONSTART, ONLOGON, MONTHLY | Type of the Task.
`weekDays` | `*` | string | Specifies days to run the task on (MON, TUE, … SUN) or * for all days of week
`workingDirectory` | `` |  | Working directory. This is important for scripts that expect to be run from a specific location. By default, it will be the directory where the script or program is located.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addSharedDLL>
Increment the reference count for a shared DLL.
property | default value | allowed values | description
`path` | `` | string | Path to the shared DLL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<associateWindowsFileExtension>
Define the set of actions (commands) that can be performed for the given file types.
property | default value | allowed values | description
`extensions` | `` | string | Space-separated list of extensions for which the given commands will be available.
`friendlyName` | `` | string | Friendly Name for the progID.
`icon` | `` | string | Path to the icon file that contains the icon to display.
`mimeType` | `` | string | MIME type associated to all the file extensions.
`progID` | `` | string | Programmatic Identifier to which the extensions are attached, contains the available commands to be invoked on each file type.
`scope` | `system` | user, system | Choose between system or user scope when installing the association
`commandList` | `` | `<command>` | List of commands that can be invoked on each given file type.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<autodetectDotNetFramework>
Autodetects an existing .NET (tm) installation in the system and creates corresponding installer variables: dotnet_version. If a valid .NET framework version was found, the variable dotnet_autodetected, will be set to 1
property | default value | allowed values | description
`validDotNetVersionList` | `` | `<validDotNetVersion>` | List of supported .NET versions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeExecutableResources>
Change resource information of a Windows executable
property | default value | allowed values | description
`path` | `` | string | Path to the Windows executable to modify
`windowsResourceComments` | `` | string | Comments for resources embedded in Windows executable
`windowsResourceCompanyName` | `` | string | Company Name for resources embedded in Windows executable
`windowsResourceFileDescription` | `` | string | File Description for resources embedded in Windows executable
`windowsResourceFileVersion` | `` | string | File version for resources embedded in Windows executable
`windowsResourceInternalName` | `` | string | Internal Name for resources embedded in Windows executable
`windowsResourceLegalCopyright` | `` | string | Legal Copyright for resources embedded in Windows executable
`windowsResourceLegalTrademarks` | `` | string | Legal Trademarks for resources embedded in Windows executable
`windowsResourceOriginalFilename` | `` | string | Original Filename for resources embedded in Windows executable
`windowsResourceProductName` | `` | string | Product Name for resources embedded in Windows executable
`windowsResourceProductVersion` | `` | string | Product Version for resources embedded in Windows executable
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeWindowsAttributes>
Change Windows attributes for a file or directory.
property | default value | allowed values | description
`archive` | `unchanged` | 1, 0, unchanged | Whether the file has or has not changed since the last backup.
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`hidden` | `unchanged` | 1, 0, unchanged | Whether the file is visible or not
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`readOnly` | `unchanged` | 1, 0, unchanged | Whether the file is read only or writable
`system` | `unchanged` | 1, 0, unchanged | Whether the file is a System file or a regular one
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<clearWindowsACL>
Clear Windows ACL permissions of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteScheduledTask>
Delete Windows Scheduled Task
property | default value | allowed values | description
`name` | `` | string | Name of the Task
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getWindowsACL>
Get Windows ACL permissions of a file or directory
property | default value | allowed values | description
`deniedPermissions` | `denied` | string | Variable name to save denied permissions
`file` | `` | string | File to retrieve ACL
`grantedPermissions` | `granted` | string | Variable name to save granted permissions
`username` | `` | string | User to retrieve ACL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getWindowsFileVersionInfo>
Get file information.
property | default value | allowed values | description
`path` | `` | string | Path to the file
`type` | `version` | codepage, flags, os, productversion, signature, structversion, type, version | Type of the file info.
`variable` | `` | string | Variable to save the file info to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeSharedDLL>
Decrements the reference count for a shared DLL. If it reaches zero, the file will be removed
property | default value | allowed values | description
`path` | `` | string | Path to the shared DLL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeWindowsFileAssociation>
Unregisters the associations between the given file types and any set of actions (commands) that may be defined on them.
property | default value | allowed values | description
`extensions` | `` | string | Space-separated list of extensions to remove.
`mimeType` | `` | string | MIME type to remove, associated to all the file extensions. It must be specified if you want to delete MIME associations added previously with associateWindowsFileExtension action.
`progID` | `` | string | Programmatic Identifier to remove, to which the extensions are attached.
`scope` | `system` | user, system | Choose between system or user scope when installing the association
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setWindowsACL>
Change Windows ACL permissions of a file or directory
property | default value | allowed values | description
`action` | `allow` | allow, deny | Whether to allow or deny permissions
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`permissions` | `generic_all` | string | Permissions for matching files or directories
`recurseContainers` | `0` | 0, 1 | Whether to apply recursively or not to container descendant
`recurseObjects` | `0` | 0, 1 | Whether to apply recursively or not to object descendant
`recurseOneLevelOnly` | `0` | 0, 1 | Just one level recursion if applicable
`self` | `1` | 0, 1 | Whether to apply or not to the specified file
`users` | `S-1-1-0` | string | Comma separated list of users to modify access permissions for
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<shutdown>
Shut down the machine (Windows only)
property | default value | allowed values | description
`delay` | `` | positive integer or zero | Delay in seconds before shut down.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<wow64FsRedirection>
Modifies the Windows x64 File System Redirection behavior. It mainly redirects %Windir%System32 to %Windir%SysWOW64 for 32-bit processes running on Windows x64 systems. A similar effect is also applied to Program Files
property | default value | allowed values | description
`action` | `disable` | enable, disable | Whether to enable or disable the File System Redirection
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

## 2. Appendix B: Rules

<antivirusTest>
Check whether or not antivirus is set up and running. Only available on Windows platform
property | default value | allowed values | description
`product` | `any` | any, windows_defender | Product to test, or any product
`type` | `enabled` | enabled, disabled | Type of test
`Common properties:` `negate`

<checkFreeDiskSpace>
Check whether or not enough free disk space is available
property | default value | allowed values | description
`logic` | `equals` | equals, does_not_equal, greater_or_equal, greater, less, less_or_equal | Comparison type
`path` | `` | string | Path to the folder or disk
`size` | `0` | positive integer or zero | Size of free disk space to check for
`units` | `KB` | KB, MB, GB | Size units for the checked value.
`Common properties:` `negate`

<compareText>
Compare a text with a value.
property | default value | allowed values | description
`logic` | `equals` | equals, contains, does_not_contain, does_not_equal | Comparison type
`nocase` | `0` | 0, 1 | Case insensitive comparison
`text` | `` | string | Text
`value` | `` | string | Value
`Common properties:` `negate`

<compareTextLength>
Compare the length of a text.
property | default value | allowed values | description
`length` | `` | string | Length to compare with
`logic` | `equals` | equals, does_not_equal, greater_or_equal, greater, less, less_or_equal | Comparison type
`text` | `` | string | Text to compare the length of
`Common properties:` `negate`

<compareValues>
Compare two values with each other.
property | default value | allowed values | description
`logic` | `equals` | equals, does_not_equal, greater_or_equal, greater, less, less_or_equal | Comparison type
`value1` | `` | string | First comparison operand
`value2` | `` | string | Second comparison operand
`Common properties:` `negate`

<compareVersions>
Compare two versions.
property | default value | allowed values | description
`logic` | `equals` | equals, does_not_equal, greater, greater_or_equal, less, less_or_equal | Test type
`version1` | `` | string | First comparison operand
`version2` | `` | string | Second comparison operand
`Common properties:` `negate`

<componentTest>
Perform check on a given component.
property | default value | allowed values | description
`logic` | `exists` | exists, does_not_exist, selected, not_selected, hidden, visible, editable, not_editable | Comparison type
`name` | `` | string | Name of the component
`Common properties:` `negate`

<fileContentTest>
Check whether a file contains or does not contain a text.
property | default value | allowed values | description
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, binary | Encoding of the text file
`logic` | `contains` | contains, does_not_contain | Test type
`path` | `` | string | Path to file that contains text for comparison
`text` | `` | string | Text to compare with
`Common properties:` `negate`

<fileExists>
Check for the existence of a given directory or file.
property | default value | allowed values | description
`path` | `` | string | File or directory path for the test, accepts wildcards.
`Common properties:` `negate`

<fileIsLocked>
Check if file is locked.
property | default value | allowed values | description
`path` | `` | string | File or directory path to check
`Common properties:` `negate`

<fileTest>
Perform test on a given directory or file.
property | default value | allowed values | description
`condition` | `exists` | exists, not_exists, writable, not_writable, readable, not_readable, executable, not_executable, is_directory, is_not_directory, is_symlink, is_not_symlink, is_file, is_not_file, is_empty, is_not_empty | Specifies the requirement to test over the given file
`path` | `` | string | File or directory path for the test
`Common properties:` `negate`

<firewallTest>
Check whether or not a firewall is set up and running. Only available on Windows platform
property | default value | allowed values | description
`type` | `enabled` | enabled, disabled | Type of test
`Common properties:` `negate`

<hostValidation>
Validates whether or not a given hostname or IP address meets the given condition
property | default value | allowed values | description
`condition` | `is_valid` | is_valid, is_not_valid | A valid host is one that can be resolved to an IP address and a valid IP is one that is syntactically correct
`host` | `` | string | Hostname or IP address to be checked
`type` | `any` | ip, ipv6, hostname, any | Type of host specification
`Common properties:` `negate`

<isFalse>
The rule returns false if value is one of 1, yes or true. Otherwise it evaluates to true.
property | default value | allowed values | description
`value` | `` | string | String to test if it is false
`Common properties:` `negate`

<isTrue>
The rule returns true if value is one of 1, yes or true. Otherwise it evaluates to false.
property | default value | allowed values | description
`value` | `` | string | String to test if it is true
`Common properties:` `negate`

<osxServiceTest>
Check whether or not a service exists and whether or not it is running. Checking if service exists requires Mac OS X version 10.4 or later. Checking if service is running requires Mac OS X 10.5 or later.
property | default value | allowed values | description
`condition` | `exists` | exists, not_exists, is_running, is_not_running | Condition to test for
`service` | `` | string | Name of service
`Common properties:` `negate`

<platformTest>
Compare the system platform with a given platform name.
property | default value | allowed values | description
`type` | `linux` | aix, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, hpux, hpux-ia64, hpux-parisc, irix-n32, linux, linux-ia64, linux-ppc, linux-s390, linux-s390x, linux-x64, linux-x86, openbsd, openbsd3, osx, osx-intel, osx-ppc, solaris, solaris-intel, solaris-sparc, unix, windows, windows-10, windows-2000, windows-2003, windows-2008, windows-2008-r2, windows-2012, windows-2012-r2, windows-7, windows-8, windows-8.1, windows-9x, windows-nt, windows-vista, windows-x64, windows-x86, windows-xp | Type of platform to test for
`Common properties:` `negate`

<portTest>
Allows you to test whether a port is free in the local machine.
property | default value | allowed values | description
`condition` | `can_bind` | can_bind, cannot_bind | Condition to test for
`port` | `` | string | A port number
`Common properties:` `negate`

<processTest>
Check if a particular process exists in the system. Currently only supported in Windows, Linux, OS X.
property | default value | allowed values | description
`logic` | `is_running` | is_running, is_not_running | Check whether or not the process is running.
`name` | `` | string | Exact process name that will be checked.
`Common properties:` `negate`

<programTest>
Check whether or not a program can be found in the system path.
property | default value | allowed values | description
`condition` | `is_in_path` | is_in_path, is_not_in_path | Condition to test for
`name` | `` | string | Program name
`Common properties:` `negate`

<regExMatch>
Compare a text with a regular expression.
property | default value | allowed values | description
`logic` | `matches` | matches, does_not_match | Whether or not the rule will apply if the regular expression matches.
`pattern` | `` | string | Regular expression
`text` | `` | string | Text
`Common properties:` `negate`

<registryTest>
Perform tests over a registry entry. You can provide either a key or a key and a name
property | default value | allowed values | description
`key` | `` | string | Registry key
`logic` | `exists` | exists, does_not_exist, is_empty, is_not_empty, is_type, is_not_type | Comparison type
`name` | `` | string | Entry name to test for existence
`type` | `REG_SZ` | REG_BINARY, REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BIG_ENDIAN, REG_LINK, REG_MULTI_SZ, REG_RESOURCE_LIST | Type of the key to check with the is_type or is_not_type logic
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `negate`

<resourceLimitTest>
Check if resource limit matches requirements.
property | default value | allowed values | description
`limitType` | `hard` | hard, soft | Limit type
`logic` | `less` | equals, does_not_equal, greater_or_equal, greater, less, less_or_equal, is_unlimited, is_not_unlimited | Comparison type
`type` | `open_files` | core_file_size, data_seg_size, file_size, max_locked_memory, max_memory_size, open_files, pipe_size, stack_size, cpu_time, max_user_processes, virtual_memory | Resource Type To Check
`value` | `0` | string | Value
`Common properties:` `negate`

<ruleGroup>
Group a set of rules.
property | default value | allowed values | description
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic
`ruleList` | `` | `<rule>` | List of rules to be grouped
`Common properties:` `negate`

<singleInstanceCheck>
Check if there is another instance of the installer being executed.
property | default value | allowed values | description
`logic` | `is_running` | is_running, is_not_running | Condition to check.
`Common properties:` `negate`

<stringTest>
Check the string type
property | default value | allowed values | description
`text` | `` | string | Text
`type` | `ascii` | ascii, digit, alphanumeric, empty, not_ascii, not_digit, not_alphanumeric, not_empty | Type of string
`Common properties:` `negate`

<userTest>
Check if a particular user exists in the system or has a valid password.
property | default value | allowed values | description
`logic` | `exists` | exists, not_exists, valid_password, invalid_password, is_windows_admin_account, is_windows_user_account, is_windows_guest_account | Specifies the requirement to test over the given username.
`password` | `` | string | If test logic is set to verify the password, the password to be checked. Currently only available on the Windows platform
`username` | `` | string | User name that will be checked. In the case of using Windows domains, it needs to be specified in the form username@DOMAIN
`Common properties:` `negate`

<windowsAccountTest>
Check whether or not a specified account has proper rights
property | default value | allowed values | description
`account` | `` | string | User or group name to check; if account does not exist, rule always returns false
`rights` | `` | string | Account rights to test for, separated by spaces; Example value: SeServiceLogonRight. A complete list can be obtained from http://msdn.microsoft.com/en-us/library/aa375728(v=VS.85).aspx
`Common properties:` `negate`

<windowsServiceTest>
Check whether a service exists and whether is running
property | default value | allowed values | description
`condition` | `exists` | exists, not_exists, is_running, is_not_running | Condition to test for
`service` | `` | string | Name of service
`Common properties:` `negate`

<rule> - Common Properties
property | default value | allowed values | description
`negate` | `0` | 0, 1 | Negate the rule result. This property does not allow variables.

## 3. Appendix C: Parameters

<booleanParameter>
Request a boolean value from the user.
property | default value | allowed values | description
`displayStyle` | `radiobuttons` | radiobuttons, checkbox-left, checkbox-right | Display style in GUI mode
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<booleanParameterGroup>
Allows you to create custom pages
property | default value | allowed values | description
`orientation` | `vertical` | vertical, horizontal | Set orientation for objects in the group. It can only be horizontal or vertical. If not specified, defaults to vertical.
`validationType` | `always` | always, ifSelected | Validation type
`parameterList` | `` | `<parameter>` | List of parameters to group
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<choiceParameter>
Ask the user to select a value among a predefined list.
property | default value | allowed values | description
`allowEmptyValue` | `1` | 0, 1 | Whether or not to allow an empty value. This property does not allow variables.
`displayType` | `` | combobox, radiobuttons | Choose an entry in a listbox or among a number of radiobuttons.
`ordering` | `` | default, alphabetical, alphabeticalreverse | Order in which the text of choices will be displayed at runtime
`width` | `` | string | Width in characters of the corresponding field in the GUI page. If not specified, it defaults to 40.
`optionList` | `` | `<option>` | Predefined list of options that allows the user to select a value
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<choiceParameterGroup>
Allows you to create custom pages
property | default value | allowed values | description
`orientation` | `vertical` | vertical, horizontal | Set orientation for objects in the group. It can only be horizontal or vertical. If not specified, defaults to vertical.
`unselectedOptionsBehavior` | `disable` | disable, none | How unselected options will behave. This property does not allow variables.
`parameterList` | `` | `<parameter>` | List of parameters to group
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<directoryParameter>
Ask the user to enter a directory
property | default value | allowed values | description
`allowEmptyValue` | `0` | 0, 1 | Whether or not to allow an empty value. This property does not allow variables.
`mustBeWritable` | `0` | 0, 1 | Whether or not to require that the directory must be writable.
`mustExist` | `0` | 0, 1 | Whether or not to require that the directory must already exist.
`osxBundlesAreFiles` | `0` | 0, 1 | Whether or not OS X bundles (*.app and *.bundle) will be considered files. The setting will just have effect on OS X, in other platforms they will be always considered directories
`width` | `` | string | Width in characters of the corresponding field in the GUI page. If not specified, it defaults to 40.
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<fileParameter>
Ask the user to enter a file
property | default value | allowed values | description
`allowEmptyValue` | `0` | 0, 1 | Whether or not to allow an empty value. This property does not allow variables.
`mustBeWritable` | `0` | 0, 1 | Whether or not to require that the file must be writable.
`mustExist` | `0` | 0, 1 | Whether or not to require that the file must already exist.
`osxBundlesAreFiles` | `0` | 0, 1 | Whether or not OS X bundles (*.app and *.bundle) will be considered files. The setting will just have effect on OS X, in other platforms they will be always considered directories
`width` | `` | string | Width in characters of the corresponding field in the GUI page. If not specified, it defaults to 40.
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<infoParameter>
Display a read-only text information page.
property | default value | allowed values | description
`htmlValue` | `` | text | HTML text that will be shown in Qt mode. Note that regular text still needs to be provided in case the installer is run in another mode
`trimMarginNumChars` | `` | string | Removes the specified number of characters from the left margin
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<labelParameter>
The label parameter displays a string of read-only text.
property | default value | allowed values | description
`image` | `` | string | Optional image to display
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<licenseParameter>
Display a license
property | default value | allowed values | description
`file` | `` | string | File that will be displayed as license
`fileEncoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | File encoding type
`htmlFile` | `` | string | HTML file that will be displayed as license
`wrapText` | `0` | 0, 1 | Wrap text. This property does not allow variables.
`licenseFileList` | `` | `<licenseFile>` | List of licenses
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<linkParameter>
The linkParameter displays an hyperlink-like label or a button, which executes an actionList when clicked.
property | default value | allowed values | description
`clickedActionList` | `` | `<action>` | List of actions to execute on click
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<parameterGroup>
Allows you to create custom pages
property | default value | allowed values | description
`orientation` | `vertical` | vertical, horizontal | Set orientation for objects in the group. It can only be horizontal or vertical. If not specified, defaults to vertical.
`parameterList` | `` | `<parameter>` | List of parameters to group
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<passwordParameter>
Allow the user to input a password.
property | default value | allowed values | description
`allowEmptyValue` | `1` | 0, 1 | Whether or not to allow an empty value. This property does not allow variables.
`askForConfirmation` | `1` | 0, 1 | If set to zero, the retype password field won’t be shown. This property does not allow variables.
`descriptionRetype` | `` | string | Description of retype field
`width` | `` | string | Width in characters of the corresponding field in the GUI page. If not specified, it defaults to 40.
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<stringParameter>
The string parameter allows you to request a text string from the user. It accepts all of the common options.
property | default value | allowed values | description
`allowEmptyValue` | `1` | 0, 1 | Whether or not to allow an empty value. This property does not allow variables.
`width` | `` | string | Width in characters of the corresponding field in the GUI page. If not specified, it defaults to 40.
`Common properties:` `name, title, description, explanation, value, default, ask, cliOptionName, cliOptionShow, cliOptionText, insertAfter, insertBefore, leftImage, ruleEvaluationLogic, postShowPageActionList, preShowPageActionList, ruleList, validationActionList`

<parameter> - Common Properties
Allows you to create custom pages
property | default value | allowed values | description
`name` | `` | string | Name of the parameter. This will be used to create the corresponding installer environment variable and command line option and because of that, it may only contain alphanumerical characters. This property does not allow variables.
`title` | `` | string | Title that will be displayed for the corresponding installer page. If none is specified, the description field will be used instead.
`description` | `` | text | Short description for the parameter
`explanation` | `` | text | Long description for the parameter
`value` | `` | string | Value for the parameter.
`default` | `` | string | Default value, in case one is not specified by the user.
`ask` | `1` | 0, 1 | Whether or not to show or not the page to the end user (it can still be set through the command line interface). This property does not allow variables.
`cliOptionName` | `` | string | Text to use for setting the value of the parameter through the command line interface. If none is used, it will default to the value of the name field.
`cliOptionShow` | `1` | 0, 1 | Whether or not the command line option will be shown in the command line when the help text is displayed. This property does not allow variables.
`cliOptionText` | `` | string | Text to use when displaying help options. If none is used, it will default to the value of the description field.
`insertAfter` | `` | string | Name of the page after the one in which this custom page will be installed
`insertBefore` | `` | string | Name of the page previous to the one in which this custom page will be installed
`leftImage` | `` | string | Image to show when displaying GUI installers with custom style
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic, by default rules are evaluated with and logic
`postShowPageActionList` | `` | `<action>` | List of actions to execute after clicking next
`preShowPageActionList` | `` | `<action>` | List of actions to execute before displaying the parameter
`ruleList` | `` | `<rule>` | Contains a set of rules or conditions
`validationActionList` | `` | `<action>` | List of validation actions to execute after clicking next

## 4. Appendix D: Project Properties and Lists

Project Properties - Build
property | default value | allowed values | description
`buildTag` | `IB: ${installer_builder_version}-${installer_builder_timestamp}` | string | Optional text that will be shown as part of the output of --version and that can be used to distinguish builds
`outputDirectory` | `` | string | Directory where the installers will be placed once they are built
`enableLinuxLegacySupport` | `0` | 0, 1 | If enabled, the generated Linux installer will support old versions of Linux (prior to Red Hat 9), but it may cause errors on recent versions of Linux with GTK UI mode.
`enableTimestamp` | `1` | 0, 1 | Whether or not to enable or disable generating a timestamp for the installer being built, which is shown on the --version command line option. Disabling this option is useful to guarantee that if all the files of your project remain untouched, the generated installer binaries will be identical for every build.
`osxPlatforms` | `osx-intel` | string | Space separated list of platforms that will be supported when generating OSX bundles. Can be osx-intel, osx-ppc and osx-10.2
`osxApplicationBundleIdentifier` | `com.bitrock.appinstaller` | string | Identifier used to uniquely identify your application
`componentsDirectory` | `${product_shortname}-${product_version}-components` | string | Name of the directory that will contain the component files created by the build process
`componentsUrl` | `` | string | URL to components; will be appended with component file name
`componentsDownloadDirectory` | `${system_temp_directory}` | string | Directory to put downloadable components in
`allowAddRemoveComponents` | `0` | 0, 1 | If enabled, allows adding or removing components by re-running installer or running uninstaller to uninstall parts of application
`createOsxBundleZip` | `0` | 0, 1 | Create a zip archive from OS X bundle to ease shipping of OS X installers
`createOsxBundleDmg` | `0` | 0, 1 | Create a DMG from OS X bundle to ease shipping of OS X installers

Project Properties - CDROM / DVD
property | default value | allowed values | description
`cdromDirectory` | `${product_shortname}-${product_version}-cdrom` | string | Name of the directory that will contain the CDROM files created by the build process
`cdromPlatforms` | `` | string | Space separated list of platforms that will be supported when generating CDROMs. If not specified, launchers will be created for all supported platforms.
`cdromDiskSize` | `700000000` | positive integer or zero | Disk CDROM size (bytes)
`cdromFirstDiskSize` | `650000000` | positive integer or zero | Size for the first CDROM disk. This is necessary because additional resources such as PDF files may be bundled in that first disk.
`compressPackedFiles` | `0` | 0, 1 | Compress files as they are packed into the installer file or CDROM media

Project Properties - Compression
property | default value | allowed values | description
`compressionAlgorithm` | `zip` | zip, lzma, lzma-ultra, lzham, lzham-ultra | Compression algorithm that will be used to pack the files inside the installer. LZMA compression is available only on Linux, Windows and OS X platforms
`lzmaUltraBlockSize` | `80` | string | Specifies block size for lzma-ultra compression in MB; the value should be between 50-250
`parallelDecompressionCores` | `8` | 1, 2, 3, 4, 5, 6, 7, 8 | Limit maximum number of CPU cores to use for LZMA Ultra decompression ; setting to 1 will disable the parallel decompression
`enableUpx` | `1` | 0, 1 | Only available for Windows installers; if disabled, the generated installer will be larger, but compliant with security best practices

Project Properties - Debugger
property | default value | allowed values | description
`enableDebugger` | `0` | 0, 1 | Allows launching debugger application on installation
`debuggerPassword` | `` | string | Password required to allow using the debugger

Project Properties - Encryption & SSL
property | default value | allowed values | description
`enableSslSupport` | `0` | 0, 1 | Allows connecting over HTTPS protocol
`sslCAFile` | `` | string | SSL Certificate Authority file to use for verifying remote peers
`enableEncryption` | `0` | 0, 1 | If enabled, installer payload is encrypted and a password needs to be passed before files can be unpacked and/or installed
`encryptionPassword` | `` | string | If encryption is enabled, password used for encrypting payload of the installer
`requirePasswordOnStartup` | `1` | 0, 1 | If enabled, installer will require entering correct password at installer startup

Project Properties - Images
property | default value | allowed values | description
`logoImage` | `` | string | 48x48 GIF or PNG logo image that will be placed at the top right corner of the installer. If no image is specified, the default image will be used
`leftImage` | `` | string | 163x314 GIF or PNG image that will be placed at the left side of the installer in the Welcome and Installation Finished pages. If no image is specified, the default image will be used
`splashImage` | `` | string | The GIF or PNG image that will appear when launching the installer
`wmImage` | `` | string | 48x48 GIF or PNG logo image that will be shown in the window manager task bar on Unix systems. If no image is specified, the default logo image will be used
`osxApplicationBundleIcon` | `` | string | ICNS file to include in the Application Bundle
`osxUninstallerApplicationBundleIcon` | `` | string | ICNS file to include in the Uninstaller Application Bundle
`osxDmgBackgroundImage` | `` | string | OS X DMG Background Image
`enableRetinaDisplayImages` | `0` | 0, 1 | Enable Retina Display Images
`windowsExecutableIcon` | `` | string | ICO file with an specific format -see below- to set the icon for the installer executable file on Windows systems.
`windowsUninstallerExecutableIcon` | `` | string | ICO file with an specific format -see below- to set the icon for the uninstaller executable file on Windows systems.

Project Properties - Installation
property | default value | allowed values | description
`requireInstallationByRootUser` | `0` | 0, 1 | Whether or not installation will require super user privileges (root on Linux, Administrator user on Windows and OS X). This setting will prevent the installer from running if the user is not root or Administrator on all operating systems except for OS X. In OS X, the regular authentication dialog window will be shown, asking the user for the administrator password so the installer can be run with root privileges
`requestedExecutionLevel` | `requireAdministrator` | requireAdministrator, asInvoker, highestAvailable | UAC execution level of the application on Windows
`windows64bitMode` | `0` | 0, 1 | Access to the 64bit registry and environment variables by default
`allowComponentSelection` | `0` | 0, 1 | Whether or not to allow individual component selection during installation
`installationType` | `normal` | normal, upgrade | Installation type. Normal is a regular installation process. Upgrade will not create an uninstaller or Start Menu Group.
`rebootRequired` | `0` | 0, 1 | Determines whether or not to ask the user to reboot after installation is completed (Windows-specific option).
`deleteOnExit` | `0` | 0, 1 | Whether or not to delete the installer binary once the installation has completed
`ignoreInvalidOptions` | `0` | 0, 1 | Ignore invalid options from the command line. Useful to share the same option file across installers.
`singleInstanceCheck` | `0` | 0, 1 | Check that only one installer instance is running. This property does not allow variables.
`replaceLockedFilesOnReboot` | `0` | 0, 1 | If set to true, trying to override a locked file on Windows will create a temporary file and mark it to be renamed after rebooting
`showDownloadableComponentsProxyPage` | `1` | 0, 1 | If enabled, installer will show proxy configuration page if one or more downloadable components will be downloaded

Project Properties - Language
property | default value | allowed values | description
`defaultLanguage` | `en` | sq, ar, es_AR, az, eu, pt_BR, en_GB, bg, fr_CA, ca, hr, cs, da, nl, en, et, fi, fr, de, el, he, hu, id, it, ja, kk, ko, lv, lt, es_MX, no, fa, pl, pt, ro, ru, sr, zh_CN, sk, sl, es, sv, th, zh_TW, tr, tk, va, vi, cy, auto | Default language for the installer
`allowLanguageSelection` | `0` | 0, 1 | Allow language selection. If this setting is enabled, the user will be required to specify the language for the installation
`allowedLanguages` | `` | string | Space-separated list of language codes for allowed installer languages
`languageSelectionStyle` | `default` | default, onlyNativeNames, onlyEnglishNames | Configures whether to display languages English name, native name or both in the language selection dialog

Project Properties - Logs
property | default value | allowed values | description
`logFileTimeStampFormat` | `` | string | The timestamp format used for the default installation log messages
`installationLogFile` | `` | string | Aternate path to store the installation log file.
`uninstallationLogFile` | `` | string | Alternate path to store the uninstallation log file.
`removeLogFile` | `0` | 0, 1 | This project property controls automatic deletion of the generated log file after installation. It is set to 0 by default. If set to 1, the installer will remove the log file
`removeUninstallationLogFile` | `0` | 0, 1 | This project property controls automatic deletion of the generated log file after uninstallation. It is set to 0 by default. If set to 1, the installer will remove the uninstallation log file
`debugLevel` | `2` | 0, 1, 2, 3, 4 | Sets the execution debug level. Values over the standard provide extra debug in the installationLog when using <runProgram> actions, and values under it prevent arguments to be logged

Project Properties - Look and Feel
property | default value | allowed values | description
`defaultInstallationMode` | `` | string | Default Installation Mode. Available installation modes can be found by running the installer from command line using the --help option
`allowedInstallationModes` | `` | string | Available Installation Mode. Available installation modes can be found by running the installer from command line using the --help option
`unattendedModeUI` | `none` | none, minimal, minimalWithDialogs | Select which UI mode to show during unattended installations. Selecting "none" shows nothing, performing a silent installation. Selecting "minimal" will show a simple graphical progressbar. Selecting "minimalWithDialogs" is the same as "minimal", but allowing also minimal interaction via dialogs such as showInfo and showWarning
`overrideGtkButtonText` | `0` | 0, 1 | Wizard buttons in GTK mode include wording provided by system settings. Enabling this setting will force the wording to be the same as in other modes (Next instead of Forward) . This property does not allow variables.
`enableLinuxXwindowXftSupport` | `1` | 0, 1 | If enabled, the generated Linux installer will support Xft for xwindow mode on Linux, but its size will increase by 500kB
`style` | `standard` | standard, custom | Whether or not to customize the graphical interface. If set to custom, then each screen in the installer will contain a leftImage that can be customized
`width` | `500` | string | Width in pixels of the installer window
`height` | `350` | string | Height in pixels of the installer window

Project Properties - Main
property | default value | allowed values | description
`fullName` | `` | string | The full product name, as it will be displayed in the installer
`shortName` | `` | string | The short version of product name, which will be used for naming certain directories and files. It can only contain alphanumeric characters. This property does not allow variables.
`version` | `` | string | Product version number, which will be used for naming certain directories and files.
`vendor` | `Name of your company` | string | Vendor name that will be used to generate native packages, register the application with the package database or the Windows Add/Remove/Program menu
`installerFilename` | `${product_shortname}-${product_version}-${platform_name}-installer.${platform_exec_suffix}` | string | Name of the installer created by the build process.
`saveRelativePaths` | `0` | 0, 1 | Determines whether or not to convert absolute paths to relative when saving project files. This is important if the same project file is used by multiple developers. The path will be relative to the location of the project file. This property does not allow variables.

Project Properties - Native Packages
property | default value | allowed values | description
`nativePackageName` | `` | string | Name used for the native package. If not present, the shortName project property will be used instead
`release` | `0` | string | Release number that will be used to generate native packages or register the application with the package database
`description` | `One-line description of your software` | string | Description that will be used to generate native packages or register the application with the package database
`summary` | `Place here a detailed description of your software` | string | Detailed description to be used to generate native packages or register the application with the package database
`registerWithPackageDatabase` | `0` | 0, 1 | Whether or not to register the application with the RPM package database on Linux
`rpmSpecFileTemplate` | `` | string | Create RPM using an external spec file
`debianCustomPackageDirectory` | `` | string | Path to a directory containing customized control and helper script for creating the DEB package

Project Properties - OS X Signing
property | default value | allowed values | description
`osxSigningPkcs12File` | `` | string | PKCS#12 File used to look for the signing keys on OS X
`osxSigningPkcs12Password` | `` | string | Password used for unlocking the OS X PKCS#12 File
`osxSigningTimestampServer` | `http://timestamp.apple.com/ts01` | string | Server used to timstamp OS X signatures
`osxSigningIdentity` | `` | string | Signing Identity
`osxSigningKeychainFile` | `` | string | Keychain used to look for the signing identity. If not provided, the standard keychain search path will be used

Project Properties - Readme & License
property | default value | allowed values | description
`readmeFile` | `` | string | Path to the README file that can be shown to the user after installation is completed
`readmeFileEncoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | Encoding of the README file
`licenseFile` | `` | string | Path to the license file that the user must accept in order to install the software
`htmlLicenseFile` | `` | string | Path to the HTML license file that the user must accept in order to install the software (only allowed in qt mode)
`licenseFileEncoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | Encoding of the license file
`wrapLicenseFileText` | `1` | 0, 1 | Wrap license file text displayed to the user

Project Properties - Rollback
property | default value | allowed values | description
`enableRollback` | `1` | 0, 1 | Enable temporary backup of existing files that are overwriten by the current installation. They will be restored if the installation fails
`rollbackBackupDirectory` | `` | string | Path to a directory where existing files will be stored if enableRollback property is enabled
`overwritePolicy` | `always` | always, never, onlyIfNewer | Whether or not to overwrite an existing destination file

Project Properties - Slideshow
property | default value | allowed values | description
`slideShowTiming` | `5` | string | Seconds for each slide during the installation
`slideShowLoop` | `1` | 0, 1 | Show slides continuously during the file copying step
`showFileUnpackingProgress` | `1` | 0, 1 | Whether or not to show detailed information about the file unpacking progress during GUI installation

Project Properties - Splash Screen
property | default value | allowed values | description
`disableSplashScreen` | `0` | 0, 1 | Disable the initial splash screen.
`splashScreenDelay` | `0` | positive integer or zero | Extra display time of the splash screen

Project Properties - Uninstaller
property | default value | allowed values | description
`uninstallerName` | `uninstall` | string | Name of uninstaller, without platform prefix (such as .exe)
`uninstallerDirectory` | `${installdir}` | string | Directory where the uninstaller will be created
`createUninstaller` | `1` | 0, 1 | Create uninstaller
`askForConfirmationOnUninstall` | `1` | 0, 1 | Ask for confirmation before starting uninstallation
`deleteLockedFilesOnReboot` | `1` | 0, 1 | During uninstallation certain files may not be removed because they are in use. This property controls whether or not they should be removed the next time Windows reboots

Project Properties - Unix
property | default value | allowed values | description
`defaultUnixOwner` | `` | string | Default Unix owner for files and directories
`defaultUnixGroup` | `` | string | Default Unix group for files and directories
`defaultUnixDirectoryPermissions` | `755` | string | Default Unix directory permissions in octal form
`defaultUnixFilePermissions` | `644` | string | Default Unix file permissions in octal form

Project Properties - Windows ARP Menu
property | default value | allowed values | description
`windowsARPRegistryPrefix` | `${project.fullName} ${project.version}` | string | Key name in which the application Add/Remove entry information will be stored
`createWindowsARPEntry` | `1` | 0, 1 | Whether or not entries in ARP on Windows should be created
`productDisplayName` | `${product_fullname}` | string | Application or Company name that will be shown in Add/Remove Programs on Windows
`productDisplayIcon` | `` | string | Application Icon (.ico format) that will be shown in Add/Remove Programs on Windows
`productUrlInfoAbout` | `` | string | Application or Company URL that will be shown in Add/Remove Programs on Windows
`productComments` | `` | string | Comments for the application that will be shown in Add/Remove Programs on Windows
`productContact` | `` | string | Contact info for the application that will be shown in Add/Remove Programs on Windows
`productUrlHelpLink` | `` | string | Application help or support URL that will be shown in Add/Remove Programs on Windows

Project Properties - Windows Registry
property | default value | allowed values | description
`installationScope` | `auto` | auto, user, allusers | Whether or not to install Start Menu and Desktop links for All Users or for the current user. If set to auto, it will be installed for All Users if the current user is an administrator or for the current user otherwise.
`startMenuGroupName` | `${product_fullname}` | string | Group Name that will appear in the Start Menu Programs folder. If empty, the folder will not be created.
`windowsSoftwareRegistryPrefix` | `${project.vendor}\${product_fullname}` | string | Key under HKEY_LOCAL_MACHINE\Software in which application values will be stored

Project Properties - Windows Resources
property | default value | allowed values | description
`windowsResourceProductName` | `${product_fullname}` | string | Product Name for resources embedded in Windows executable
`windowsResourceProductVersion` | `${product_version}` | string | Product Version for resources embedded in Windows executable
`windowsResourceOriginalFilename` | `setup.exe` | string | Original Filename for resources embedded in Windows executable
`windowsResourceFileDescription` | `` | string | File Description for resources embedded in Windows executable
`windowsResourceFileVersion` | `1.0.0.0` | string | File version for resources embedded in Windows executable
`windowsResourceCompanyName` | `${project.vendor}` | string | Company Name for resources embedded in Windows executable
`windowsResourceInternalName` | `` | string | Internal Name for resources embedded in Windows executable
`windowsResourceLegalCopyright` | `Copyright ${project.vendor}` | string | Legal Copyright for resources embedded in Windows executable
`windowsResourceComments` | `` | string | Comments for resources embedded in Windows executable
`windowsResourceLegalTrademarks` | `` | string | Legal Trademarks for resources embedded in Windows executable

Project Properties - Windows Signing
property | default value | allowed values | description
`windowsSigningTimestampServer` | `` | string | Server used to timstamp Windows signatures
`windowsSigningPkcs12File` | `` | string | PKCS#12 File used to look for the signing keys on Windows
`windowsSigningPkcs12Password` | `` | string | Password used for unlocking the Windows PKCS#12 File

Project Lists
list name | description | allowed childs
`functionDefinitionList` | Define extra actions | `<actionDefinition>`
`componentList` | Depending on the complexity of your software, you may need to split your installation files into several components. The ability to enable and disable components allows your installer to provide as many setup combinations as you need. | `<component>`, `<componentGroup>`, `<include>`
`preBuildActionList` | Actions executed before generating the installer file | `<action>`
`postBuildActionList` | Actions executed after the installer has been built | `<action>`
`preInitializationActionList` | Actions executed directly after loading the project information | `<action>`
`initializationActionList` | Actions executed when the installer has started | `<action>`
`preInstallationActionList` | Actions executed before the first page of the installer is displayed | `<action>`
`readyToInstallActionList` | Actions executed right before the file copying step starts | `<action>`
`postInstallationActionList` | Actions executed after the installation process has taken place, but before the uninstaller is created and the final page is displayed | `<action>`
`postUninstallerCreationActionList` | Actions executed after the uninstaller has been created and before the installation complete page is displayed. | `<action>`
`preUninstallationActionList` | Actions executed before the uninstallation process takes place | `<action>`
`postUninstallationActionList` | Actions executed after the uninstallation process has finished | `<action>`
`customLanguageFileList` | Language files for customizing the installer translation | `<language>`
`finalPageActionList` | Actions executed after the installation has completed and the final page has been displayed | `<action>`
`installationAbortedActionList` | Actions executed if the installation is aborted | `<action>`
`licenseFileList` | License files to be accepted by the user during the installation | `<licenseFile>`
`parameterList` | Pages that are displayed to the user through the GUI and text interfaces | `<parameter>`
`platformOptionsList` | Platform-specific project options | `<platformOptions>`
`preShowHelpActionList` | Actions executed before help text for the installer is displayed. Useful to customize the text for specific operating environments. | `<action>`
`readmeFileList` | Text files to be displayed after the installation | `<readmeFile>`
`slideShowImageList` | Images to be displayed during the installation | `<slideShowImage>`

## 5. Appendix E: Component and Folder Properties and Lists

Component Properties
property | default value | allowed values | description
`name` | `newcomponent` | string | Name of the Component. This property does not allow variables.
`description` | `New Component` | string | Description of the Component
`canBeEdited` | `1` | 0, 1 | Whether or not the component can be edited in the component selection page. This property does not allow variables.
`detailedDescription` | `` | text | A detailed description of the component
`downloadable` | `0` | 0, 1 | Whether component should be downloadable. This property does not allow variables.
`requiredSize` | `0` | string | Required disk space in the target system. If 0, then it will automatically be calculated based on the size of the packed files
`selected` | `1` | 0, 1 | Whether or not the component is selected. This property does not allow variables.
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`show` | `1` | 0, 1 | Whether or not the component is visible in the component selection page. This property does not allow variables.
`url` | `` | string | URL to specific component, overrides project’s component URL

Component Lists
list name | description | allowed childs
`componentSelectionValidationActionList` | Actions executed after the component page, to check that the selected components are a valid combination | `<action>`
`customLanguageFileList` | Language files for customizing the installer translation | `<language>`
`desktopShortcutList` | Shortcuts to be placed in the Desktop | `<shortcut>`, `<applicationShortcut>`, `<linkShortcut>`, `<fileShortcut>`
`folderList` | Destination folders for the installer files | `<folder>`
`initializationActionList` | Actions executed when the installer has started | `<action>`
`installationAbortedActionList` | Actions executed if the installation is aborted | `<action>`
`onDownloadErrorActionList` | Actions executed if a component could not be downloaded and user chose to ignore its installation | `<action>`
`parameterList` | Pages that are displayed to the user through the GUI and text interfaces | `<parameter>`
`platformOptionsList` | Platform-specific project options | `<platformOptions>`
`postBuildActionList` | Actions executed after the installer has been built | `<action>`
`postInstallationActionList` | Actions executed after the installation process has taken place, but before the uninstaller is created and the final page is displayed | `<action>`
`postUninstallationActionList` | Actions executed after the uninstallation process has finished | `<action>`
`postUninstallerCreationActionList` | Actions executed after the uninstaller has been created and before the installation complete page is displayed. | `<action>`
`preBuildActionList` | Actions executed before generating the installer file | `<action>`
`preInitializationActionList` | Actions executed directly after loading the project information | `<action>`
`preInstallationActionList` | Actions executed before the first page of the installer is displayed | `<action>`
`preUninstallationActionList` | Actions executed before the uninstallation process takes place | `<action>`
`quickLaunchShortcutList` | Shortcuts to be placed in the Windows Quick Launch toolbar | `<quickLaunchLinkShortcut>`, `<quickLaunchFileShortcut>`, `<quickLaunchShortcut>`
`readyToInstallActionList` | Actions executed right before the file copying step starts | `<action>`
`shouldPackRuleList` | Conditions that are evaluated at build time to decide if the component will be packed. | `<rule>`
`startMenuShortcutList` | Link to applications, documents or URL for the Windows Start menu | `<startMenuLinkShortcut>`, `<startMenuFileShortcut>`, `<startMenuShortcut>`, `<startMenuFolder>`

Folder Properties
property | default value | allowed values | description
`description` | `New Folder` | string | Folder description
`destination` | `${installdir}/newfolder` | string | Path of new folder
`name` | `newfolder` | string | Folder name. This property does not allow variables.
`platforms` | `all` | all, linux, linux-x64, linux-ia64, windows, osx, solaris-sparc, solaris-intel, linux-ppc, linux-s390, linux-s390x, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, openbsd3, hpux, aix, irix-n32 | Platforms in which this folder will be installed
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic

Folder Lists
list name | description | allowed childs
`actionList` | List of actions | `<action>`
`distributionFileList` | Files to Install | `<distributionFile>`, `<distributionDirectory>`
`ruleList` | Conditions that are evaluated and depending on the result, the action is executed, the page associated with the parameter shown or the folder installed | `<rule>`
`shortcutList` | Shortcuts for applications, documents or URLs for Windows | `<shortcut>`
`shouldPackRuleList` | Conditions that are evaluated at build time to decide if the component will be packed. | `<rule>`

Distribution File
property | default value | allowed values | description
`allowWildcards` | `0` | 0, 1 | Whether or not to use wildcards
`excludeFiles` | `` | string | Patterns to exclude files
`filterEvaluationLogic` | `and` | and, or | Filter evaluation logic
`includeFiles` | `*` | string | Patterns to include files
`origin` | `` | string | File to pack

Distribution Directory
property | default value | allowed values | description
`allowWildcards` | `0` | 0, 1 | Whether or not to use wildcards
`excludeFiles` | `` | string | Patterns to exclude files
`filterEvaluationLogic` | `and` | and, or | Filter evaluation logic
`includeFiles` | `*` | string | Patterns to include files
`origin` | `` | string | Directory to pack

File Filter
property | default value | allowed values | description
`logic` | `matches` | matches, does_not_match | Whether or not the pattern must match to pass the filter.
`pattern` | `` | string | Pattern to match against the path of the file
`patternType` | `glob` | glob, regexp | Whether to use glob or regular expressions matching

## 6. Appendix F: Shortcuts

Shortcut
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`exec` | `` | string | Program to execute, including command line arguments
`icon` | `` | string | GIF or PNG Image to use for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`path` | `` | string | Working directory for the program being executed
`platforms` | `all` | all, linux, linux-x64, linux-ia64, windows, osx, solaris-sparc, solaris-intel, linux-ppc, linux-s390, linux-s390x, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, openbsd3, hpux, aix, irix-n32 | Platforms in which the shortcut will be created
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsExec` | `` | string | Program to execute
`windowsExecArgs` | `` | string | Command line arguments for Program to Execute
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file
`windowsPath` | `` | string | Working directory for the program being executed

Quick Launch URL
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`url` | `` | string | URL
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

Quick Launch File Shortcut
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`filePath` | `` | string | Path to file
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

Quick Launch Application
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsExec` | `` | string | Program to execute
`windowsExecArgs` | `` | string | Command line arguments for Program to Execute
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file
`windowsPath` | `` | string | Working directory for the program being executed

Start Menu URL
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`url` | `` | string | URL
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

Start Menu File Shortcut
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`filePath` | `` | string | Path to file
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

Start Menu Application
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsExec` | `` | string | Program to execute
`windowsExecArgs` | `` | string | Command line arguments for Program to Execute
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file
`windowsPath` | `` | string | Working directory for the program being executed

Start Menu Folder
property | default value | allowed values | description
`name` | `Some Name` | string | Folder Name
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic

Link
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`icon` | `` | string | GIF or PNG Image to use for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`platforms` | `all` | all, linux, linux-x64, linux-ia64, windows, osx, solaris-sparc, solaris-intel, linux-ppc, linux-s390, linux-s390x, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, openbsd3, hpux, aix, irix-n32 | Platforms in which the shortcut will be created
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`url` | `` | string | URL
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

File Shortcut
property | default value | allowed values | description
`comment` | `Text that will appear on Tooltip` | string | Tooltip text for the shortcut
`filePath` | `` | string | Path to file
`icon` | `` | string | GIF or PNG Image to use for the shortcut
`name` | `Shortcut text` | string | Shortcut text
`noPinToStart` | `1` | 0, 1 | Prevent pinning start screen or show as newly installed on Windows 7 and Windows 8
`platforms` | `all` | all, linux, linux-x64, linux-ia64, windows, osx, solaris-sparc, solaris-intel, linux-ppc, linux-s390, linux-s390x, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, openbsd3, hpux, aix, irix-n32 | Platforms in which the shortcut will be created
`ruleEvaluationLogic` | `and` | string | Rule evaluation logic, by default, rules are evaluated with and logic
`runAsAdmin` | `0` | 0, 1 | Run program as administrator
`runInTerminal` | `0` | 0, 1 | Whether or not to run the program inside a terminal (Unix only)
`shouldPackRuleEvaluationLogic` | `and` | and, or | Packing rules evaluation logic
`windowsIcon` | `` | string | File containing .ico image
`windowsIconIndex` | `0` | string | Index for the icon within the icon file

## 7. Appendix G: Other Child Elements

<actionDefinition>
Allow defining a new InstallBuilder action based on a number of existing actions
property | default value | allowed values | description
`abortOnError` | `1` | 0, 1 | Whether or not to set the new action to abort on error by default
`name` | `` | string | Name of the new action
`showMessageOnError` | `1` | 0, 1 | Whether or not to set the new action to show an error message when an error occurs.
`actionList` | `` | `<action>` | List of actions for the custom action
`parameterList` | `` | `<parameter>` | List of parameters for the custom action

<javaLauncher>
Creates a Java Launcher
property | default value | allowed values | description
`allowCommandLineArguments` | `1` | 0, 1 | Whether to pass arguments that launcher is given through command line.
`arguments` | `` | string | Arguments to pass to application
`binaryName` | `` | string | Name of the launcher executable
`classpath` | `` | string | Classpath to provide to JVM, separated by semi colons
`jarFile` | `` | string | JAR archive to use; overrides <classpath> and <mainClass>
`mainClass` | `` | string | Class to run
`osxApplicationBundleIcon` | `` | string | ICNS file to include in the Application Bundle
`osxApplicationBundleIdentifier` | `com.bitrock.javalauncher` | string | Identifier used to uniquely identify this autoupdate package
`preferredJavaBinary` | `` | string | Path to preferred JRE; if Java runtime is found there, it will be used
`requestedExecutionLevel` | `asInvoker` | requireAdministrator, asInvoker, highestAvailable | UAC execution level of the application on Windows
`runInBackground` | `1` | 0, 1 | Whether to run this application in the background and exit launcher immediately
`runInConsole` | `1` | 0, 1 | Whether to run this application as console application in Windows.
`selectionOrder` | `first` | first, oldest, newest | Order of the Java versions detected
`usePropertiesFile` | `0` | 0, 1 | Whether to read properties file (named same as binary with .properties or launcher.properties on Mac OS X) to allow overriding certain parameters
`vmParameters` | `` | string | Additional parameters to pass to JVM
`windowsExecutableIcon` | `` | string | ICO file with a specific format to set the icon for the autoupdate executable file on Windows systems. The icon file can contain up to three different icons that must match one of the following formats: 16x16 pixels and 256 colors, 32x32 pixels and 256 colors, 48x48 pixels and 256 colors.
`windowsResourceComments` | `` | string | Comments for resources embedded in Windows executable
`windowsResourceCompanyName` | `` | string | Company Name for resources embedded in Windows executable
`windowsResourceFileDescription` | `` | string | File Description for resources embedded in Windows executable
`windowsResourceFileVersion` | `` | string | File version for resources embedded in Windows executable
`windowsResourceInternalName` | `` | string | Internal Name for resources embedded in Windows executable
`windowsResourceLegalCopyright` | `` | string | Legal Copyright for resources embedded in Windows executable
`windowsResourceLegalTrademarks` | `` | string | Legal Trademarks for resources embedded in Windows executable
`windowsResourceOriginalFilename` | `` | string | Original Filename for resources embedded in Windows executable
`windowsResourceProductName` | `` | string | Product Name for resources embedded in Windows executable
`windowsResourceProductVersion` | `` | string | Product Version for resources embedded in Windows executable
`workingDirectory` | `` | string | Working directory to go to before launching
`validVersionList` | `` | `<validVersion>` | List of supported Java versions

<command>
Defines a command executed when an action is invoked on the file
property | default value | allowed values | description
`makeDefault` | `` | string | Enable this verb as the primary / default action.
`runProgram` | `` | string | Program that will be executed when the action is invoked.
`runProgramArguments` | `` | string | Program Arguments.
`verb` | `` | string | Action that can be invoked on the file.

<validVersion>
Java VM versions to allow
property | default value | allowed values | description
`bitness` | `` | 32, 64, | Whether only 32 or 64 bit version can be used
`maxVersion` | `` | string | Max. Java version to allow
`minVersion` | `` | string | Min. Java version to allow
`requireJDK` | `0` | 0, 1 | Whether the Java version is a JDK
`vendor` | `` | sun, ibm, openjdk, kaffe, | Java VM vendor to allow

<validDotNetVersion>
.NET Framework versions to allow
property | default value | allowed values | description
`frameworkType` | `any` | any, client, full | .NET Framework type; currently only valid for .NET FRamework version 4.0
`maxVersion` | `` | string | Max. .NET Framework version to allow
`minVersion` | `` | string | Min. .NET Framework version to allow

<queryParameter>
property | default value | allowed values | description
`name` | `` | string | Query string variable name.
`value` | `` | string | Query string value.

<httpHeader>
property | default value | allowed values | description
`name` | `` | string | Name of the header
`value` | `` | string | Value of the header

<substitution>
Replace the specified pattern with a value
property | default value | allowed values | description
`pattern` | `` | string | Pattern or expression that will be replaced.
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic, by default rules are evaluated with and logic
`value` | `` | string | Value to replace the pattern with.
`ruleList` | `` | `<rule>` | Contains a set of rules or conditions

<option>
property | default value | allowed values | description
`description` | `` | string |
`image` | `` | string | Image that will be shown.
`text` | `` | string |
`value` | `` | string | This property does not allow variables.

<licenseFile>
property | default value | allowed values | description
`code` | `en` | sq, ar, es_AR, az, eu, pt_BR, en_GB, bg, fr_CA, ca, hr, cs, da, nl, en, et, fi, fr, de, el, he, hu, id, it, ja, kk, ko, lv, lt, es_MX, no, fa, pl, pt, ro, ru, sr, zh_CN, sk, sl, es, sv, th, zh_TW, tr, tk, va, vi, cy | Language identifier code, i.e. "en" (for english)
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | Text file encoding, i.e. "utf-8"
`file` | `` | string | Path that points to a license text file.
`htmlFile` | `` | string | Path that points to a license HTML file (just allowed in qt mode)
`resolveUCN` | `0` | 0, 1 | Whether to resolve or not UCN escaped characters

<include>
property | default value | allowed values | description
`file` | `` | string | Component file

<platformOptions>
property | default value | allowed values | description
`platform` | `` | linux, linux-x64, linux-ia64, windows, osx, solaris-sparc, solaris-intel, linux-ppc, linux-s390, linux-s390x, freebsd, freebsd4, freebsd6, freebsd6-x64, freebsd7, freebsd7-x64, openbsd3, hpux, aix, irix-n32, rpm, deb |

<language>
property | default value | allowed values | description
`code` | `en` | sq, ar, es_AR, az, eu, pt_BR, en_GB, bg, fr_CA, ca, hr, cs, da, nl, en, et, fi, fr, de, el, he, hu, id, it, ja, kk, ko, lv, lt, es_MX, no, fa, pl, pt, ro, ru, sr, zh_CN, sk, sl, es, sv, th, zh_TW, tr, tk, va, vi, cy | Language identifier code, i.e. "en" (for english)
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | Text file encoding, i.e. "utf-8"
`file` | `` | string |
`resolveUCN` | `0` | 0, 1 | Whether to resolve or not UCN escaped characters

<readmeFile>
property | default value | allowed values | description
`code` | `en` | sq, ar, es_AR, az, eu, pt_BR, en_GB, bg, fr_CA, ca, hr, cs, da, nl, en, et, fi, fr, de, el, he, hu, id, it, ja, kk, ko, lv, lt, es_MX, no, fa, pl, pt, ro, ru, sr, zh_CN, sk, sl, es, sv, th, zh_TW, tr, tk, va, vi, cy | Language identifier code, i.e. "en" (for english)
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode | Text file encoding, i.e. "utf-8"
`file` | `` | string | Path that points to a readme text file.
`resolveUCN` | `0` | 0, 1 | Whether to resolve or not UCN escaped characters

<slideShowImage>
property | default value | allowed values | description
`path` | `` | string | 500x222 GIF or PNG logo image to be displayed during installation
`ruleEvaluationLogic` | `and` | and, or | Rule evaluation logic
`ruleList` | `` | `<rule>` | Contains a set of rules or conditions

## 8. Appendix H: AutoUpdate

Auto Update Project Properties - Main
property | default value | allowed values | description
`fullName` | `` | string | The full product name, as it will be displayed in the autoupdater
`shortName` | `` | string | The short version of product name. It can only contain alphanumeric characters. This property does not allow variables.
`version` | `` | string | Product version number.
`vendor` | `Name of your company` | string | Vendor name

Auto Update Project Properties - Images
property | default value | allowed values | description
`logoImage` | `` | string | 48x48 GIF or PNG logo image that will be placed at the top right corner of the autoupdate wizard. If no image is specified, the default image will be used
`leftImage` | `` | string | 163x314 GIF or PNG image that will be placed at the left side of the autoupdate wizard in the Welcome and Update Finished pages. If no image is specified, the default image will be used
`splashImage` | `` | string | The GIF or PNG image that will appear when launching the autoupdate wizard.
`wmImage` | `` | string | 48x48 GIF or PNG logo image that will be shown in the window manager task bar on Unix systems. If no image is specified, the default logo image will be used
`osxApplicationBundleIcon` | `` | string | ICNS file to include in the AutoUpdate Application Bundle
`enableRetinaDisplayImages` | `0` | 0, 1 | Enable Retina Display Images
`windowsExecutableIcon` | `` | string | ICO file with an specific format to set the icon for the autoupdate executable file on Windows systems.

Auto Update Project Properties - Installation
property | default value | allowed values | description
`requireInstallationByRootUser` | `0` | 0, 1 | Whether or not running the autoupdater will require super user privileges (root on Linux, Administrator user on Windows and OS X). This setting will prevent the autoupdate from running if the user is not root or Administrator on all operating systems except for OS X. In OS X, the regular authentication dialog window will be shown, asking the user for the administrator password so the autoupdate wizard can be run with root privileges
`requestedExecutionLevel` | `requireAdministrator` | requireAdministrator, asInvoker, highestAvailable | UAC execution level of the AutoUpdate on Windows
`rebootRequired` | `0` | 0, 1 | Determines whether or not to ask the user to reboot after the AutoUpdate process is completed (Windows-specific option).
`singleInstanceCheck` | `0` | 0, 1 | Check that only one autoupdater instance is running
`removeLogFile` | `0` | 0, 1 | This project property controls automatic deletion of the generated log file after installation. It is set to 0 by default. If set to 1, the installer will remove the log file
`removeUninstallationLogFile` | `0` | 0, 1 | This project property controls automatic deletion of the generated log file after uninstallation. It is set to 0 by default. If set to 1, the installer will remove the uninstallation log file
`osxPlatforms` | `osx-intel` | string | Space separated list of platforms that will be supported when generating OSX bundles. Can be osx-intel, osx-ppc and osx-10.2
`createOsxBundleZip` | `0` | 0, 1 | Create a zip archive from OS X bundle to ease shipping of OS X bundles
`osxApplicationBundleIdentifier` | `com.bitrock.autoupdate` | string | Identifier used to uniquely identify this autoupdate package

Auto Update Project Properties - Windows Resources
property | default value | allowed values | description
`windowsResourceProductName` | `${product_fullname}` | string | Product Name for resources embedded in Windows executable
`windowsResourceProductVersion` | `${product_version}` | string | Product Version for resources embedded in Windows executable
`windowsResourceOriginalFilename` | `setup.exe` | string | Original Filename for resources embedded in Windows executable
`windowsResourceFileDescription` | `` | string | File Description for resources embedded in Windows executable
`windowsResourceFileVersion` | `1.0.0.0` | string | File version for resources embedded in Windows executable
`windowsResourceCompanyName` | `${project.vendor}` | string | Company Name for resources embedded in Windows executable
`windowsResourceInternalName` | `` | string | Internal Name for resources embedded in Windows executable
`windowsResourceLegalCopyright` | `Copyright ${project.vendor}` | string | Legal Copyright for resources embedded in Windows executable
`windowsResourceComments` | `` | string | Comments for resources embedded in Windows executable
`windowsResourceLegalTrademarks` | `` | string | Legal Trademarks for resources embedded in Windows executable

Auto Update Project Properties - Splash Screen
property | default value | allowed values | description
`disableSplashScreen` | `0` | 0, 1 | Disable the initial splash screen.
`splashScreenDelay` | `0` | positive integer or zero | Extra display time of the splash screen in milliseconds

Auto Update Project Properties - Look and Feel
property | default value | allowed values | description
`overrideGtkButtonText` | `0` | 0, 1 | Translate buttons to the selected language instead of using system-built values for Unix GTK mode
`width` | `500` | positive integer or zero | Autoupdate wizard window width
`height` | `350` | positive integer or zero | Autoupdate wizard window height

Auto Update Lists
list name | description | allowed childs
`postUpdateDownloadActionList` | Actions executed after downloading the update installer. | `<action>`