<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry>
  <refentryinfo>
    <date>2012-02-21</date>
  </refentryinfo>
  <refmeta>
    <refentrytitle>cmis-client</refentrytitle>
    <manvolnum>1</manvolnum>
    <refmiscinfo>cmis-client 0.2.0</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>
      <application>cmis-client</application>
    </refname>
    <refpurpose>
	command line CMIS client tool.
	</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <refsynopsisdivinfo>
      <date>2012-01-27</date>
    </refsynopsisdivinfo>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="plain">help</arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">list-repos</arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="plain">repo-infos</arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="plain">show-root</arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="plain">get-content <replaceable>id</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="plain">--input-file <replaceable>path/to/file</replaceable></arg>
      <arg choice="plain">--input-type <replaceable>mime/type</replaceable></arg>
      <arg choice="opt">--input-name <replaceable>name.ext</replaceable></arg>
      <arg choice="plain">set-content <replaceable>id</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="opt">--object-type <replaceable>some:cmistype</replaceable></arg>
      <arg choice="opt" rep="repeat">--object-property <replaceable>prop-id=prop-value</replaceable></arg>
      <arg choice="plain">create-folder <replaceable>parent-id name</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="plain">--input-file <replaceable>path/to/file</replaceable></arg>
      <arg choice="plain">--input-type <replaceable>mime/type</replaceable></arg>
      <arg choice="opt">--input-name <replaceable>name.ext</replaceable></arg>
      <arg choice="opt">--object-type <replaceable>some:cmistype</replaceable></arg>
      <arg choice="opt" rep="repeat">--object-property <replaceable>prop-id=prop-value</replaceable></arg>
      <arg choice="plain">create-document <replaceable>parent-id name</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="opt" rep="repeat">--object-property <replaceable>prop-id=prop-value</replaceable></arg>
      <arg choice="plain">update-object <replaceable>object-id</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <group choice="plain">
        <arg>type-by-id</arg>
        <arg>show-by-id</arg>
        <arg>show-by-path</arg>
        <arg>delete</arg>
      </group>
      <arg rep="repeat" choice="plain">
        <replaceable>arg</replaceable>
      </arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <group choice="plain">
        <arg>checkout</arg>
        <arg>cancel-checkout</arg>
        <arg>get-versions</arg>
      </group>
      <arg choice="plain">
        <replaceable>arg</replaceable>
      </arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>cmis-client</command>
      <arg choice="opt">-v</arg>
      <arg choice="opt">-u <replaceable>login</replaceable></arg>
      <arg choice="opt">-p <replaceable>secret</replaceable></arg>
      <arg choice="plain">--url <replaceable>url://to/binding</replaceable></arg>
      <arg choice="plain">-r <replaceable>repo-id</replaceable></arg>
      <arg choice="opt">--input-file <replaceable>path/to/file</replaceable></arg>
      <arg choice="opt">--input-type <replaceable>mime/type</replaceable></arg>
      <arg choice="opt">--input-name <replaceable>name.ext</replaceable></arg>
      <arg choice="opt" rep="repeat">--object-property <replaceable>prop-id=prop-value</replaceable></arg>
      <arg choice="opt">--major</arg>
      <arg choice="opt">--message</arg>
      <arg choice="plain">checkin <replaceable>pwc id</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
    <refsect1info>
      <date>2012-01-27</date>
    </refsect1info>
    <title>DESCRIPTION</title>
    <para>
			The <command>cmis-client</command> tool sends queries over the net to a CMIS-enabled server
			to access or modify its content. It is originally demonstrating what libcmis is capable of.
	</para>
  </refsect1>
  <refsect1>
    <title>OPTIONS</title>
    <refsect2>
      <title>GLOBAL OPTIONS</title>
      <variablelist>
        <varlistentry>
          <term>-v, --verbose</term>
          <listitem>
            <para>
							Shows a lot of information to monitor what is happening behind the scene.
							This helps a lot to debug libcmis.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--help</term>
          <listitem>
            <para>
							Show the help and exit. This is equivalent to use the help command.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--url <replaceable class="parameter">url://to/binding</replaceable></term>
          <listitem>
            <para><replaceable class="parameter">url://to/binding</replaceable> needs to point to the service document of
              either AtomPub or WebService binding.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>-r,--repository <replaceable class="parameter">repo-id</replaceable></term>
          <listitem>
            <para>
              Operate on the <replaceable class="parameter">repo-id</replaceable> CMIS repository.
              If there is only one repository on the server, this parameter is not needed and that
              repository will be automatically selected. Use this parameter if there are several
              repositories on the server.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>-u,--username <replaceable class="parameter">login</replaceable></term>
          <listitem>
            <para>
							Connect as <replaceable class="parameter">login</replaceable> to the CMIS server.
							If not provided connect anonymously.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>-p,--password <replaceable class="parameter">secret</replaceable></term>
          <listitem>
            <para>
							Use <replaceable class="parameter">secret</replaceable> to authenticate on the CMIS server.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--no-ssl-check</term>
          <listitem>
            <para>
                            Disables the SSL certificate verifications. Lowers the security, but may be handy
                            to work around bad certificates like expired or self-signed ones.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--proxy <replaceable class="parameter">url</replaceable></term>
          <listitem>
            <para>
                Use <replaceable class="parameter">url</replaceable> as the HTTP proxy.
                Setting this value will override the system proxy settings.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--proxy-username <replaceable class="parameter">login</replaceable></term>
          <listitem>
            <para>
							Use <replaceable class="parameter">login</replaceable> to authenticate on the HTTP proxy.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--proxy-password <replaceable class="parameter">secret</replaceable></term>
          <listitem>
            <para>
							Use <replaceable class="parameter">secret</replaceable> to authenticate on the HTTP proxy.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--noproxy <replaceable class="parameter">list</replaceable></term>
          <listitem>
            <para>
                Proxy settings won't apply to hostnames and domain names listed 
                in <replaceable class="parameter">list</replaceable>.
                This value is a coma separated list.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-client-id <replaceable class="parameter">client_id</replaceable></term>
          <listitem>
              <para>
                  Application client id to use in the OAuth2 authentication flow.
              </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-client-secret <replaceable class="parameter">client_secret</replaceable></term>
          <listitem>
              <para>
                  Application client secret to use in the OAuth2 authentication flow.
              </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-auth-url <replaceable class="parameter">url</replaceable></term>
          <listitem>
              <para>
                  URL to authenticate the user in the OAuth2 authentication flow.
              </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-token-url <replaceable class="parameter">url</replaceable></term>
          <listitem>
              <para>
                  URL to authenticate the application in the OAuth2 authentication flow.
                  The access and refresh tokens are provided by this URL.
              </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-redirect-uri <replaceable class="parameter">uri</replaceable></term>
          <listitem>
              <para>
                  URI where the OAuth2 authentication flow will redirect after a sucessful
                  authentication.
              </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--oauth2-scope <replaceable class="parameter">scope</replaceable></term>
          <listitem>
              <para>
                  Requested scope to access in the OAuth2 authentication flow.
              </para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>
    <refsect2>
      <title>MODIFICATION OPERATIONS OPTIONS</title>
      <variablelist>
        <varlistentry>
          <term>--input-file <replaceable class="parameter">path/to/file</replaceable></term>
          <listitem>
            <para>
              Upload <replaceable class="parameter">path/to/file</replaceable> as the new content stream
              of the object.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--input-type <replaceable class="parameter">mime/type</replaceable></term>
          <listitem>
            <para>
              Set the mime type of the new content stream of the object to <replaceable class="parameter">mime/type</replaceable>.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--input-name <replaceable class="parameter">name.ext</replaceable></term>
          <listitem>
            <para>
              Set the remote content stream filename of the new content stream of the object to <replaceable class="parameter">name.ext</replaceable>.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--object-type <replaceable class="parameter">some:cmistype</replaceable></term>
          <listitem>
            <para>
              Set the object type of the CMIS object to be created to <replaceable class="parameter">some:cmistype</replaceable>.
              This is the equivalent of --object-property cmis:objectTypeId=some:cmistype.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--object-property <replaceable class="parameter">prop-id=prop-value</replaceable></term>
          <listitem>
            <para>
              Set a property to be updated or added to the CMIS object. <replaceable class="parameter">prop-id</replaceable> is
              the property definition id and <replaceable class="parameter">prop-value</replaceable> is the value to set on it.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>--major</term>
          <listitem>
            <para>
              Create a major version when performing a checkin.
						</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>-m, --message <replaceable class="parameter">message</replaceable></term>
          <listitem>
            <para>
              Set the checking message.
						</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>
    <refsect2>
      <title>COMMANDS</title>
      <variablelist>
        <varlistentry>
            <term>help</term>
            <listitem>
            <para>
                                                    Show the help and exit.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>list-repos</term>
            <listitem>
            <para>
                                                    List the repositories available on the server.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>repo-infos</term>
            <listitem>
            <para>
                                                    Displays the informations and capabilities of the selected repository
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>show-root</term>
            <listitem>
            <para>
                                                    Displays the root node infos and children.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>get-content <replaceable class="parameter">id</replaceable></term>
            <listitem>
            <para>
                                                    Download the content of the CMIS object corresponding to 
                                                    <replaceable class="parameter">id</replaceable> in the current directory.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>set-content <replaceable class="parameter">id</replaceable></term>
            <listitem>
            <para>
                                                    Upload a file as the content stream of the CMIS object corresponding to 
                                                    <replaceable class="parameter">id</replaceable>.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>create-folder <replaceable class="parameter">parent-id name</replaceable></term>
            <listitem>
            <para>
                Create a sub folder in folder <replaceable class="parameter">parent-id</replaceable>
                named <replaceable class="parameter">name</replaceable>. The default type of the folder
                to create is cmis:folder, but this can be changed using --object-type option.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>create-document <replaceable class="parameter">parent-id name</replaceable></term>
            <listitem>
            <para>
                Create a document in folder <replaceable class="parameter">parent-id</replaceable>
                named <replaceable class="parameter">name</replaceable>. The default type of the document
                to create is cmis:document, but this can be changed using --object-type option.
            </para>
            <para>
                Note that the --input-file and --input-type may be mandatory, depending on the type of
                the document to create and its constraints.
            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>update-object <replaceable class="parameter">object-id</replaceable></term>
            <listitem>
            <para>
                Replace the writeable properties given with --object-property option on the object
                matching id <replaceable class="parameter">object-id</replaceable>.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>type-by-id <replaceable class="parameter">arg...</replaceable></term>
            <listitem>
            <para>
                                                    Displays the infos and children (if any) of all the CMIS types corresponding
                                                    to the listed ids.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>show-by-id <replaceable class="parameter">arg...</replaceable></term>
            <listitem>
            <para>
                                                    Displays the infos and children (if any) of all the CMIS objects corresponding
                                                    to the listed ids.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>show-by-path <replaceable class="parameter">arg...</replaceable></term>
            <listitem>
            <para>
                                                    Displays the infos and children (if any) of all the CMIS objects corresponding
                                                    to the listed paths.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>delete <replaceable class="parameter">arg...</replaceable></term>
            <listitem>
            <para>
                Deletes the CMIS objects corresponding to the listed ids. If the node
                is a folder, its content will be removed as well.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>checkout <replaceable class="parameter">arg</replaceable></term>
            <listitem>
            <para>
                Checkout the document corresponding to the provided id and display
                the infos of the created private working copy.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>cancel-checkout <replaceable class="parameter">arg</replaceable></term>
            <listitem>
            <para>
                Cancel the Private Working Copy corresponding to the node id.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>get-versions <replaceable class="parameter">arg</replaceable></term>
            <listitem>
            <para>
                                                    Display the versions (if any) of all the CMIS object corresponding
                                                    to the provided id.
                                            </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term>checkin <replaceable class="parameter">arg</replaceable></term>
            <listitem>
            <para>
                Check in the private working copy corresponding to the provided id and display
                the infos of the resulting document. Use the --major and --message options to
                define the version to create and the commit to associate to it.

                Note that repositories without the ability to update the private working copies
                will need the --input-file, --input-type and --object-property options.
                                            </para>
            </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>
  </refsect1>
  <refsect1>
    <title>USAGE</title>
    <para>Displays the root node of repository A1:</para>
    <para><command>cmis-client</command> -r A1 --url http://localhost/atom show-root</para>
    <para>Displays the nodes with id 133 and 116 of repository A1:</para>
    <para><command>cmis-client</command> -r A1 --url http://localhost/atom show-by id 133 116</para>
  </refsect1>
  <refsect1>
    <title>AUTHOR</title>
    <para>
      <author>
        <firstname>Cédric Bosdonnat</firstname>
        <surname>cbosdo</surname>
        <contrib>Original author</contrib>
      </author>
    </para>
  </refsect1>
</refentry>
