<?xml version="1.0" encoding="UTF-8"?>
<command>
    <description>RouterOS API console.</description>
    <version>GIT: $Id$</version>
    <argument name="hostname">
        <description>Hostname of the RouterOS to connect to.</description>
    </argument>
    <argument name="username">
        <description>Username to log in with. If left empty, no login will be performed.</description>
        <optional>true</optional>
    </argument>
    <argument name="password">
        <description>Password to log in with.</description>
        <optional>true</optional>
    </argument>
    <option name="portNum">
        <short_name>-p</short_name>
        <long_name>--port</long_name>
        <description>Port to connect to. Default is either 8728 or 8729, depending on whether an encryption is specified.</description>
        <action>StoreInt</action>
    </option>
    <option name="conTime">
        <long_name>--cTimeout</long_name>
        <description>Time in seconds to wait for the connection to be established. If "--timeout" is specified, its value will be used when this option is not specified.
Defaults to PHP's default_socket_timeout ini option.</description>
        <action>StoreInt</action>
    </option>
    <option name="crypto">
        <long_name>--enc</long_name>
        <description>Encryption to use, if at all. Currently, RouterOS supports only "TLS".
(Default: "")</description>
        <action>StoreString</action>
    </option>
    <option name="caPath">
        <long_name>--ca</long_name>
        <description>Path to a file or folder to use for certification authority, when using encryption. Ignored when not using encryption. This option should not be set when not using a certificate. It can be set to an empty string to enable certificate checking with the default certification authority.</description>
        <action>StoreString</action>
    </option>
    <option name="ciphers">
        <long_name>--ciphers</long_name>
        <description>Cipher string to use when using encrypted connections. Ignored otherwise. If neither the "--ca" or "--fingerprint" option is specified, "ADH" is used.</description>
        <action>StoreString</action>
    </option>
    <option name="fingerprint">
        <long_name>--fingerprint</long_name>
        <description>SHA256 fingerprint of the "api-ssl" certificate (as shown in RouterOS). Connection will fail on mismatch, thus fully protecting you from impersonators that might otherwise use a recognized certification authority. If not specified, the given fingerprint will be displayed. This option requires the openssl_x509_fingerprint() function (available in the OpenSSL extension for PHP 5.6 and later), and will silently be ignored if that function is not available.</description>
        <action>StoreString</action>
    </option>
    <option name="time">
        <short_name>-t</short_name>
        <long_name>--timeout</long_name>
        <description>Time in seconds to wait when receiving. If this time passes without data awaiting, control is passed back for further input.
(Default: 3)</description>
        <action>StoreInt</action>
    </option>
    <option name="verbose">
        <short_name>-v</short_name>
        <long_name>--verbose</long_name>
        <description>Turn on verbose output.</description>
        <action>StoreTrue</action>
    </option>
    <option name="isColored">
        <long_name>--colors</long_name>
        <description>Choose whether to color output (requires PEAR2_Console_Color). Possible values:
"auto" - color is always enabled, except on Windows, where ANSICON must be installed (detected via the ANSICON_VER environment variable).
"yes"  - force colored output.
"no"   - force no coloring of output.
(Default: "auto")</description>
        <action>StoreString</action>
        <choices>
            <choice>auto</choice>
            <choice>yes</choice>
            <choice>no</choice>
        </choices>
        <default>auto</default>
    </option>
    <option name="size">
        <short_name>-w</short_name>
        <long_name>--width</long_name>
        <description>Width of console screen. Used in verbose mode to wrap output in this length.
(Default: 80)</description>
        <action>StoreInt</action>
        <default>80</default>
    </option>
    <option name="commandMode">
        <long_name>--command-mode</long_name>
        <description>Mode to send commands in. Can be one of:
"w" - send every word as soon as it is entered
"s" - wait for a sentence to be formed, and send all its words then
"e" - wait for an empty sentence, and send all previous sentences then. You can send an empty sentence by sending two consecutive empty words.
(Default: "s")</description>
        <action>StoreString</action>
        <choices>
            <choice>w</choice>
            <choice>s</choice>
            <choice>e</choice>
        </choices>
        <default>s</default>
    </option>
    <option name="replyMode">
        <long_name>--reply-mode</long_name>
        <description>Mode to get replies in. Can be one of:
"w" - after every send, try to get a word
"s" - after every send, try to get a sentence
"e" - after every send, try to get all sentences until a timeout.
(Default: "s")</description>
        <action>StoreString</action>
        <choices>
            <choice>w</choice>
            <choice>s</choice>
            <choice>e</choice>
        </choices>
        <default>s</default>
    </option>
    <option name="multiline">
        <short_name>-m</short_name>
        <long_name>--multiline</long_name>
        <description>Turn on multiline mode. Without this mode, every line of input is considered a word. With it, every line is a line within the word, and the end of the word is marked instead by an "end of text" character as the only character on a line. To write out such a character, you can use ALT+Numpad3. If you want to write this character as part of the word, you can write two such characters on a line.</description>
        <action>StoreTrue</action>
    </option>
</command>
