You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by bu...@apache.org on 2011/03/10 00:29:52 UTC

svn commit: r786777 [3/5] - in /websites/staging/chemistry/trunk/content/python/docs: ./ _sources/ _static/

Added: websites/staging/chemistry/trunk/content/python/docs/code.html
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/code.html (added)
+++ websites/staging/chemistry/trunk/content/python/docs/code.html Wed Mar  9 23:29:51 2011
@@ -0,0 +1,3285 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Code &mdash; CMIS Library v0.4.1 documentation</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.4.1',
+        COLLAPSE_MODINDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="author" title="About these documents" href="about.html" />
+    <link rel="top" title="CMIS Library v0.4.1 documentation" href="index.html" />
+    <link rel="next" title="Developer Guide" href="devguide.html" />
+    <link rel="prev" title="Examples" href="examples.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="modindex.html" title="Global Module Index"
+             accesskey="M">modules</a> |</li>
+        <li class="right" >
+          <a href="devguide.html" title="Developer Guide"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="examples.html" title="Examples"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">CMIS Library v0.4.1 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="code">
+<h1>Code<a class="headerlink" href="#code" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="module-cmislib.model">
+<h2>The <tt class="xref docutils literal"><span class="pre">cmislib.model</span></tt> Module<a class="headerlink" href="#module-cmislib.model" title="Permalink to this headline">¶</a></h2>
+<p>The <tt class="xref docutils literal"><span class="pre">cmislib.model</span></tt> Module contains all the CMIS domain objects. The ones you will work with are listed as top level package elements. When working with the repository, the first thing you need to do is grab an instance of <tt class="xref docutils literal"><span class="pre">cmislib.CmisClient</span></tt>, passing it the repository endpoint URL, username, and password.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">cmisClient</span> <span class="o">=</span> <span class="n">cmislib</span><span class="o">.</span><span class="n">CmisClient</span><span class="p">(</span><span class="s">&#39;http://localhost:8080/alfresco/s/cmis&#39;</span><span class="p">,</span> <span class="s">&#39;admin&#39;</span><span class="p">,</span> <span class="s">&#39;admin&#39;</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>From there you can get the default repository...</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span> <span class="o">=</span> <span class="n">cmisClient</span><span class="o">.</span><span class="n">defaultRepository</span>
+</pre></div>
+</div>
+<p>or a specific repository if you know the repository ID.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span> <span class="o">=</span> <span class="n">cmisClient</span><span class="o">.</span><span class="n">getRepository</span><span class="p">(</span><span class="s">&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Once you have that, you&#8217;re off to the races. Use the <tt class="xref docutils literal"><span class="pre">cmislib.Repository</span></tt> class to create new <tt class="xref docutils literal"><span class="pre">cmislib.Folder</span></tt> and <tt class="xref docutils literal"><span class="pre">cmislib.Document</span></tt> objects, perform searches, etc.</p>
+<p>Module containing the domain objects used to work with a CMIS provider.</p>
+<dl class="class">
+<dt id="cmislib.model.ACE">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">ACE</tt><big>(</big><em>principalId=None</em>, <em>permissions=None</em>, <em>direct=None</em><big>)</big><a class="headerlink" href="#cmislib.model.ACE" title="Permalink to this definition">¶</a></dt>
+<dd><p>Represents an individual Access Control Entry.</p>
+<dl class="attribute">
+<dt id="cmislib.model.ACE.direct">
+<tt class="descname">direct</tt><a class="headerlink" href="#cmislib.model.ACE.direct" title="Permalink to this definition">¶</a></dt>
+<dd>Getter for direct</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ACE.permissions">
+<tt class="descname">permissions</tt><a class="headerlink" href="#cmislib.model.ACE.permissions" title="Permalink to this definition">¶</a></dt>
+<dd>Getter for permissions</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ACE.principalId">
+<tt class="descname">principalId</tt><a class="headerlink" href="#cmislib.model.ACE.principalId" title="Permalink to this definition">¶</a></dt>
+<dd>Getter for principalId</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.ACL">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">ACL</tt><big>(</big><em>aceList=None</em>, <em>xmlDoc=None</em><big>)</big><a class="headerlink" href="#cmislib.model.ACL" title="Permalink to this definition">¶</a></dt>
+<dd><p>Represents the Access Control List for an object.</p>
+<dl class="method">
+<dt id="cmislib.model.ACL.addEntry">
+<tt class="descname">addEntry</tt><big>(</big><em>ace</em><big>)</big><a class="headerlink" href="#cmislib.model.ACL.addEntry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds an <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> entry to the ACL.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">folder</span><span class="o">.</span><span class="n">getACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jpotts&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:read&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jsmith&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x100731410&gt;, u&#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x100731150&gt;, &#39;jpotts&#39;: &lt;cmislib.model.ACE object at 0x1005a22d0&gt;, &#39;jsmith&#39;: &lt;cmislib.model.ACE object at 0x1005a2210&gt;}</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ACL.clearEntries">
+<tt class="descname">clearEntries</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ACL.clearEntries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Clears all <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> entries from the ACL and removes the internal
+XML representation of the ACL.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">ACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jsmith&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jpotts&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">entries</span>
+<span class="go">{&#39;jpotts&#39;: &lt;cmislib.model.ACE object at 0x1012c7310&gt;, &#39;jsmith&#39;: &lt;cmislib.model.ACE object at 0x100528490&gt;}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getXmlDoc</span><span class="p">()</span>
+<span class="go">&lt;xml.dom.minidom.Document instance at 0x1012cbb90&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">clearEntries</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">entries</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getXmlDoc</span><span class="p">()</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ACL.entries">
+<tt class="descname">entries</tt><a class="headerlink" href="#cmislib.model.ACL.entries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dictionary of <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> objects for each Access Control
+Entry in the ACL. The key value is the ACE principalid.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">ACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jsmith&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jpotts&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">ace</span> <span class="ow">in</span> <span class="n">acl</span><span class="o">.</span><span class="n">entries</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&#39;principal:</span><span class="si">%s</span><span class="s"> has the following permissions...&#39;</span> <span class="o">%</span> <span class="n">ace</span><span class="o">.</span><span class="n">principalId</span>
+<span class="gp">... </span>    <span class="k">for</span> <span class="n">perm</span> <span class="ow">in</span> <span class="n">ace</span><span class="o">.</span><span class="n">permissions</span><span class="p">:</span>
+<span class="gp">... </span>            <span class="k">print</span> <span class="n">perm</span>
+<span class="gp">...</span>
+<span class="go">principal:jpotts has the following permissions...</span>
+<span class="go">cmis:write</span>
+<span class="go">principal:jsmith has the following permissions...</span>
+<span class="go">cmis:write</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ACL.getEntries">
+<tt class="descname">getEntries</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ACL.getEntries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dictionary of <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> objects for each Access Control
+Entry in the ACL. The key value is the ACE principalid.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">ACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jsmith&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jpotts&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">ace</span> <span class="ow">in</span> <span class="n">acl</span><span class="o">.</span><span class="n">entries</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&#39;principal:</span><span class="si">%s</span><span class="s"> has the following permissions...&#39;</span> <span class="o">%</span> <span class="n">ace</span><span class="o">.</span><span class="n">principalId</span>
+<span class="gp">... </span>    <span class="k">for</span> <span class="n">perm</span> <span class="ow">in</span> <span class="n">ace</span><span class="o">.</span><span class="n">permissions</span><span class="p">:</span>
+<span class="gp">... </span>            <span class="k">print</span> <span class="n">perm</span>
+<span class="gp">...</span>
+<span class="go">principal:jpotts has the following permissions...</span>
+<span class="go">cmis:write</span>
+<span class="go">principal:jsmith has the following permissions...</span>
+<span class="go">cmis:write</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ACL.getXmlDoc">
+<tt class="descname">getXmlDoc</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ACL.getXmlDoc" title="Permalink to this definition">¶</a></dt>
+<dd>This method rebuilds the local XML representation of the ACL based on
+the <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> objects in the entries list and returns the resulting
+XML Document.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ACL.removeEntry">
+<tt class="descname">removeEntry</tt><big>(</big><em>principalId</em><big>)</big><a class="headerlink" href="#cmislib.model.ACL.removeEntry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Removes the <a title="cmislib.model.ACE" class="reference internal" href="#cmislib.model.ACE"><tt class="xref docutils literal"><span class="pre">ACE</span></tt></a> entry given a specific principalId.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x100731410&gt;, u&#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x100731150&gt;, &#39;jpotts&#39;: &lt;cmislib.model.ACE object at 0x1005a22d0&gt;, &#39;jsmith&#39;: &lt;cmislib.model.ACE object at 0x1005a2210&gt;}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">removeEntry</span><span class="p">(</span><span class="s">&#39;jsmith&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x100731410&gt;, u&#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x100731150&gt;, &#39;jpotts&#39;: &lt;cmislib.model.ACE object at 0x1005a22d0&gt;}</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.ChangeEntry">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">ChangeEntry</tt><big>(</big><em>cmisClient</em>, <em>repository</em>, <em>xmlDoc</em><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Represents a change log entry. Retrieve a list of change entries via
+<a title="cmislib.model.Repository.getContentChanges" class="reference internal" href="#cmislib.model.Repository.getContentChanges"><tt class="xref docutils literal"><span class="pre">Repository.getContentChanges()</span></tt></a>.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">changeEntry</span> <span class="ow">in</span> <span class="n">rs</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="n">changeEntry</span><span class="o">.</span><span class="n">objectId</span>
+<span class="gp">... </span>    <span class="n">changeEntry</span><span class="o">.</span><span class="n">id</span>
+<span class="gp">... </span>    <span class="n">changeEntry</span><span class="o">.</span><span class="n">changeType</span>
+<span class="gp">... </span>    <span class="n">changeEntry</span><span class="o">.</span><span class="n">changeTime</span>
+<span class="gp">...</span>
+<span class="go">&#39;workspace://SpacesStore/0e2dc775-16b7-4634-9e54-2417a196829b&#39;</span>
+<span class="go">u&#39;urn:uuid:0e2dc775-16b7-4634-9e54-2417a196829b&#39;</span>
+<span class="go">u&#39;created&#39;</span>
+<span class="go">datetime.datetime(2010, 2, 11, 12, 55, 14)</span>
+<span class="go">&#39;workspace://SpacesStore/bd768f9f-99a7-4033-828d-5b13f96c6923&#39;</span>
+<span class="go">u&#39;urn:uuid:bd768f9f-99a7-4033-828d-5b13f96c6923&#39;</span>
+<span class="go">u&#39;updated&#39;</span>
+<span class="go">datetime.datetime(2010, 2, 11, 12, 55, 13)</span>
+<span class="go">&#39;workspace://SpacesStore/572c2cac-6b26-4cd8-91ad-b2931fe5b3fb&#39;</span>
+<span class="go">u&#39;urn:uuid:572c2cac-6b26-4cd8-91ad-b2931fe5b3fb&#39;</span>
+<span class="go">u&#39;updated&#39;</span>
+</pre></div>
+</div>
+<dl class="attribute">
+<dt id="cmislib.model.ChangeEntry.changeTime">
+<tt class="descname">changeTime</tt><a class="headerlink" href="#cmislib.model.ChangeEntry.changeTime" title="Permalink to this definition">¶</a></dt>
+<dd>Returns a datetime object representing the time the change occurred.</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ChangeEntry.changeType">
+<tt class="descname">changeType</tt><a class="headerlink" href="#cmislib.model.ChangeEntry.changeType" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the type of change that occurred. The resulting value must be
+one of:</p>
+<blockquote>
+<ul class="simple">
+<li>created</li>
+<li>updated</li>
+<li>deleted</li>
+<li>security</li>
+</ul>
+</blockquote>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getACL">
+<tt class="descname">getACL</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getACL" title="Permalink to this definition">¶</a></dt>
+<dd>Gets the <a title="cmislib.model.ACL" class="reference internal" href="#cmislib.model.ACL"><tt class="xref docutils literal"><span class="pre">ACL</span></tt></a> object that is included with this Change Entry.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getChangeTime">
+<tt class="descname">getChangeTime</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getChangeTime" title="Permalink to this definition">¶</a></dt>
+<dd>Returns a datetime object representing the time the change occurred.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getChangeType">
+<tt class="descname">getChangeType</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getChangeType" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the type of change that occurred. The resulting value must be
+one of:</p>
+<blockquote>
+<ul class="simple">
+<li>created</li>
+<li>updated</li>
+<li>deleted</li>
+<li>security</li>
+</ul>
+</blockquote>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getId">
+<tt class="descname">getId</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getId" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the unique ID of the change entry.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getObjectId">
+<tt class="descname">getObjectId</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getObjectId" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the object ID of the object that changed.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.ChangeEntry.getProperties">
+<tt class="descname">getProperties</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntry.getProperties" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the properties of the change entry. Note that depending on the
+capabilities of the repository (&#8220;capabilityChanges&#8221;) the list may not
+include the actual property values that changed.</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ChangeEntry.id">
+<tt class="descname">id</tt><a class="headerlink" href="#cmislib.model.ChangeEntry.id" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the unique ID of the change entry.</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ChangeEntry.objectId">
+<tt class="descname">objectId</tt><a class="headerlink" href="#cmislib.model.ChangeEntry.objectId" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the object ID of the object that changed.</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.ChangeEntry.properties">
+<tt class="descname">properties</tt><a class="headerlink" href="#cmislib.model.ChangeEntry.properties" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the properties of the change entry. Note that depending on the
+capabilities of the repository (&#8220;capabilityChanges&#8221;) the list may not
+include the actual property values that changed.</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.ChangeEntryResultSet">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">ChangeEntryResultSet</tt><big>(</big><em>cmisClient</em>, <em>repository</em>, <em>xmlDoc</em><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntryResultSet" title="Permalink to this definition">¶</a></dt>
+<dd><p>A specialized type of <a title="cmislib.model.ResultSet" class="reference internal" href="#cmislib.model.ResultSet"><tt class="xref docutils literal"><span class="pre">ResultSet</span></tt></a> that knows how to instantiate
+<a title="cmislib.model.ChangeEntry" class="reference internal" href="#cmislib.model.ChangeEntry"><tt class="xref docutils literal"><span class="pre">ChangeEntry</span></tt></a> objects. The parent class assumes children of
+<a title="cmislib.model.CmisObject" class="reference internal" href="#cmislib.model.CmisObject"><tt class="xref docutils literal"><span class="pre">CmisObject</span></tt></a> which doesn&#8217;t work for ChangeEntries.</p>
+<dl class="method">
+<dt id="cmislib.model.ChangeEntryResultSet.getResults">
+<tt class="descname">getResults</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.ChangeEntryResultSet.getResults" title="Permalink to this definition">¶</a></dt>
+<dd>Overriding to make it work with a list instead of a dict.</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.CmisClient">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">CmisClient</tt><big>(</big><em>repositoryUrl</em>, <em>username</em>, <em>password</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient" title="Permalink to this definition">¶</a></dt>
+<dd><p>Handles all communication with the CMIS provider.</p>
+<dl class="attribute">
+<dt id="cmislib.model.CmisClient.defaultRepository">
+<tt class="descname">defaultRepository</tt><a class="headerlink" href="#cmislib.model.CmisClient.defaultRepository" title="Permalink to this definition">¶</a></dt>
+<dd><p>There does not appear to be anything in the spec that identifies
+a repository as being the default, so we&#8217;ll define it to be the
+first one in the list.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">getDefaultRepository</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span><span class="o">.</span><span class="n">getRepositoryId</span><span class="p">()</span>
+<span class="go">u&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.delete">
+<tt class="descname">delete</tt><big>(</big><em>url</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.delete" title="Permalink to this definition">¶</a></dt>
+<dd><p>Does a delete against the CMIS service. More than likely, you will not
+need to call this method. Instead, let the other objects to it for you.</p>
+<p>For example, to delete a folder you&#8217;d call <tt class="xref docutils literal"><span class="pre">Folder.delete</span></tt> and
+to delete a document you&#8217;d call <tt class="xref docutils literal"><span class="pre">Document.delete</span></tt>.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.get">
+<tt class="descname">get</tt><big>(</big><em>url</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Does a get against the CMIS service. More than likely, you will not
+need to call this method. Instead, let the other objects to it for you.</p>
+<p>For example, if you need to get a specific object by object id, try
+<a title="cmislib.model.Repository.getObject" class="reference internal" href="#cmislib.model.Repository.getObject"><tt class="xref docutils literal"><span class="pre">Repository.getObject</span></tt></a>. If you have a path instead of an object
+id, use <a title="cmislib.model.Repository.getObjectByPath" class="reference internal" href="#cmislib.model.Repository.getObjectByPath"><tt class="xref docutils literal"><span class="pre">Repository.getObjectByPath</span></tt></a>. Or, you could start with
+the root folder (<a title="cmislib.model.Repository.getRootFolder" class="reference internal" href="#cmislib.model.Repository.getRootFolder"><tt class="xref docutils literal"><span class="pre">Repository.getRootFolder</span></tt></a>) and drill down from
+there.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.getDefaultRepository">
+<tt class="descname">getDefaultRepository</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.getDefaultRepository" title="Permalink to this definition">¶</a></dt>
+<dd><p>There does not appear to be anything in the spec that identifies
+a repository as being the default, so we&#8217;ll define it to be the
+first one in the list.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">getDefaultRepository</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span><span class="o">.</span><span class="n">getRepositoryId</span><span class="p">()</span>
+<span class="go">u&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.getRepositories">
+<tt class="descname">getRepositories</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.getRepositories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dict of high-level info about the repositories available at
+this service. The dict contains entries for &#8216;repositoryId&#8217; and
+&#8216;repositoryName&#8217;.</p>
+<p>See CMIS specification document 2.2.2.1 getRepositories</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">client</span><span class="o">.</span><span class="n">getRepositories</span><span class="p">()</span>
+<span class="go">[{&#39;repositoryName&#39;: u&#39;Main Repository&#39;, &#39;repositoryId&#39;: u&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;}]</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.getRepository">
+<tt class="descname">getRepository</tt><big>(</big><em>repositoryId</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.getRepository" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the repository identified by the specified repositoryId.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">getRepository</span><span class="p">(</span><span class="s">&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">repo</span><span class="o">.</span><span class="n">getRepositoryName</span><span class="p">()</span>
+<span class="go">u&#39;Main Repository&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.post">
+<tt class="descname">post</tt><big>(</big><em>url</em>, <em>payload</em>, <em>contentType</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.post" title="Permalink to this definition">¶</a></dt>
+<dd><p>Does a post against the CMIS service. More than likely, you will not
+need to call this method. Instead, let the other objects to it for you.</p>
+<p>For example, to update the properties on an object, you&#8217;d call
+<a title="cmislib.model.CmisObject.updateProperties" class="reference internal" href="#cmislib.model.CmisObject.updateProperties"><tt class="xref docutils literal"><span class="pre">CmisObject.updateProperties</span></tt></a>. Or, to check in a document that&#8217;s
+been checked out, you&#8217;d call <a title="cmislib.model.Document.checkin" class="reference internal" href="#cmislib.model.Document.checkin"><tt class="xref docutils literal"><span class="pre">Document.checkin</span></tt></a> on the PWC.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisClient.put">
+<tt class="descname">put</tt><big>(</big><em>url</em>, <em>payload</em>, <em>contentType</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisClient.put" title="Permalink to this definition">¶</a></dt>
+<dd><p>Does a put against the CMIS service. More than likely, you will not
+need to call this method. Instead, let the other objects to it for you.</p>
+<p>For example, to update the properties on an object, you&#8217;d call
+<a title="cmislib.model.CmisObject.updateProperties" class="reference internal" href="#cmislib.model.CmisObject.updateProperties"><tt class="xref docutils literal"><span class="pre">CmisObject.updateProperties</span></tt></a>. Or, to check in a document that&#8217;s
+been checked out, you&#8217;d call <a title="cmislib.model.Document.checkin" class="reference internal" href="#cmislib.model.Document.checkin"><tt class="xref docutils literal"><span class="pre">Document.checkin</span></tt></a> on the PWC.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisClient.repositories">
+<tt class="descname">repositories</tt><a class="headerlink" href="#cmislib.model.CmisClient.repositories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dict of high-level info about the repositories available at
+this service. The dict contains entries for &#8216;repositoryId&#8217; and
+&#8216;repositoryName&#8217;.</p>
+<p>See CMIS specification document 2.2.2.1 getRepositories</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">client</span><span class="o">.</span><span class="n">getRepositories</span><span class="p">()</span>
+<span class="go">[{&#39;repositoryName&#39;: u&#39;Main Repository&#39;, &#39;repositoryId&#39;: u&#39;83beb297-a6fa-4ac5-844b-98c871c0eea9&#39;}]</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.CmisId">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">CmisId</tt><a class="headerlink" href="#cmislib.model.CmisId" title="Permalink to this definition">¶</a></dt>
+<dd>This is a marker class to be used for Strings that are used as CMIS ID&#8217;s.
+Making the objects instances of this class makes it easier to create the
+Atom entry XML with the appropriate type, ie, cmis:propertyId, instead of
+cmis:propertyString.</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.CmisObject">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">CmisObject</tt><big>(</big><em>cmisClient</em>, <em>repository</em>, <em>objectId=None</em>, <em>xmlDoc=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject" title="Permalink to this definition">¶</a></dt>
+<dd><p>Common ancestor class for other CMIS domain objects such as
+<a title="cmislib.model.Document" class="reference internal" href="#cmislib.model.Document"><tt class="xref docutils literal"><span class="pre">Document</span></tt></a> and <a title="cmislib.model.Folder" class="reference internal" href="#cmislib.model.Folder"><tt class="xref docutils literal"><span class="pre">Folder</span></tt></a>.</p>
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.ACL">
+<tt class="descname">ACL</tt><a class="headerlink" href="#cmislib.model.CmisObject.ACL" title="Permalink to this definition">¶</a></dt>
+<dd><p>Repository.getCapabilities[&#8216;ACL&#8217;] must return manage or discover.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">folder</span><span class="o">.</span><span class="n">getACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x10071a8d0&gt;, &#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x10071a590&gt;}</span>
+</pre></div>
+</div>
+<p>See CMIS specification document 2.2.10.1 getACL</p>
+<p>The optional onlyBasicPermissions argument is currently not supported.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.allowableActions">
+<tt class="descname">allowableActions</tt><a class="headerlink" href="#cmislib.model.CmisObject.allowableActions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dictionary of allowable actions, keyed off of the action name.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">actions</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getAllowableActions</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">actions</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">:</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">actions</span><span class="p">[</span><span class="n">a</span><span class="p">])</span>
+<span class="gp">...</span>
+<span class="go">canDeleteContentStream:True</span>
+<span class="go">canSetContentStream:True</span>
+<span class="go">canCreateRelationship:True</span>
+<span class="go">canCheckIn:False</span>
+<span class="go">canApplyACL:False</span>
+<span class="go">canDeleteObject:True</span>
+<span class="go">canGetAllVersions:True</span>
+<span class="go">canGetObjectParents:True</span>
+<span class="go">canGetProperties:True</span>
+</pre></div>
+</div>
+<p>See CMIS specification document 2.2.4.6 getAllowableActions</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.applyACL">
+<tt class="descname">applyACL</tt><big>(</big><em>acl</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.applyACL" title="Permalink to this definition">¶</a></dt>
+<dd><p>Updates the object with the provided <a title="cmislib.model.ACL" class="reference internal" href="#cmislib.model.ACL"><tt class="xref docutils literal"><span class="pre">ACL</span></tt></a>.
+Repository.getCapabilities[&#8216;ACL&#8217;] must return manage to invoke this
+call.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">folder</span><span class="o">.</span><span class="n">getACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">addEntry</span><span class="p">(</span><span class="n">ACE</span><span class="p">(</span><span class="s">&#39;jdoe&#39;</span><span class="p">,</span> <span class="s">&#39;cmis:write&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x10071a8d0&gt;, &#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x10071a590&gt;}</span>
+</pre></div>
+</div>
+<p>See CMIS specification document 2.2.10.2 applyACL</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.applyPolicy">
+<tt class="descname">applyPolicy</tt><big>(</big><em>policyId</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.applyPolicy" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is not yet implemented.</p>
+<p>See CMIS specification document 2.2.9.1 applyPolicy</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.createRelationship">
+<tt class="descname">createRelationship</tt><big>(</big><em>targetObj</em>, <em>relTypeId</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.createRelationship" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a relationship between this object and a specified target
+object using the relationship type specified. Returns the new
+<a title="cmislib.model.Relationship" class="reference internal" href="#cmislib.model.Relationship"><tt class="xref docutils literal"><span class="pre">Relationship</span></tt></a> object.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">rel</span> <span class="o">=</span> <span class="n">tstDoc1</span><span class="o">.</span><span class="n">createRelationship</span><span class="p">(</span><span class="n">tstDoc2</span><span class="p">,</span> <span class="s">&#39;R:cmiscustom:assoc&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">rel</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()</span>
+<span class="go">{u&#39;cmis:objectId&#39;: u&#39;workspace://SpacesStore/271c48dd-6548-4771-a8f5-0de69b7cdc25&#39;, u&#39;cmis:creationDate&#39;: None, u&#39;cmis:objectTypeId&#39;: u&#39;R:cmiscustom:assoc&#39;, u&#39;cmis:lastModificationDate&#39;: None, u&#39;cmis:targetId&#39;: u&#39;workspace://SpacesStore/0ca1aa08-cb49-42e2-8881-53aa8496a1c1&#39;, u&#39;cmis:lastModifiedBy&#39;: None, u&#39;cmis:baseTypeId&#39;: u&#39;cmis:relationship&#39;, u&#39;cmis:sourceId&#39;: u&#39;workspace://SpacesStore/271c48dd-6548-4771-a8f5-0de69b7cdc25&#39;, u&#39;cmis:changeToken&#39;: None, u&#39;cmis:createdBy&#39;: None}</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.delete">
+<tt class="descname">delete</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.delete" title="Permalink to this definition">¶</a></dt>
+<dd><p>Deletes this <a title="cmislib.model.CmisObject" class="reference internal" href="#cmislib.model.CmisObject"><tt class="xref docutils literal"><span class="pre">CmisObject</span></tt></a> from the repository. Note that in the
+case of a <a title="cmislib.model.Folder" class="reference internal" href="#cmislib.model.Folder"><tt class="xref docutils literal"><span class="pre">Folder</span></tt></a> object, some repositories will refuse to
+delete it if it contains children and some will delete it without
+complaint. If what you really want to do is delete the folder and all
+of its descendants, use <a title="cmislib.model.Folder.deleteTree" class="reference internal" href="#cmislib.model.Folder.deleteTree"><tt class="xref docutils literal"><span class="pre">deleteTree()</span></tt></a> instead.</p>
+<p>See CMIS specification document 2.2.4.14 delete</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">folder</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>The optional allVersions argument is supported.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getACL">
+<tt class="descname">getACL</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getACL" title="Permalink to this definition">¶</a></dt>
+<dd><p>Repository.getCapabilities[&#8216;ACL&#8217;] must return manage or discover.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span> <span class="o">=</span> <span class="n">folder</span><span class="o">.</span><span class="n">getACL</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">acl</span><span class="o">.</span><span class="n">getEntries</span><span class="p">()</span>
+<span class="go">{u&#39;GROUP_EVERYONE&#39;: &lt;cmislib.model.ACE object at 0x10071a8d0&gt;, &#39;jdoe&#39;: &lt;cmislib.model.ACE object at 0x10071a590&gt;}</span>
+</pre></div>
+</div>
+<p>See CMIS specification document 2.2.10.1 getACL</p>
+<p>The optional onlyBasicPermissions argument is currently not supported.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getAllowableActions">
+<tt class="descname">getAllowableActions</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getAllowableActions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dictionary of allowable actions, keyed off of the action name.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">actions</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getAllowableActions</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">actions</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">:</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">actions</span><span class="p">[</span><span class="n">a</span><span class="p">])</span>
+<span class="gp">...</span>
+<span class="go">canDeleteContentStream:True</span>
+<span class="go">canSetContentStream:True</span>
+<span class="go">canCreateRelationship:True</span>
+<span class="go">canCheckIn:False</span>
+<span class="go">canApplyACL:False</span>
+<span class="go">canDeleteObject:True</span>
+<span class="go">canGetAllVersions:True</span>
+<span class="go">canGetObjectParents:True</span>
+<span class="go">canGetProperties:True</span>
+</pre></div>
+</div>
+<p>See CMIS specification document 2.2.4.6 getAllowableActions</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getAppliedPolicies">
+<tt class="descname">getAppliedPolicies</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getAppliedPolicies" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is not yet implemented.</p>
+<p>See CMIS specification document 2.2.9.3 getAppliedPolicies</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getName">
+<tt class="descname">getName</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getName" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the value of cmis:name from the getProperties() dictionary.
+We don&#8217;t need a getter for every standard CMIS property, but name
+is a pretty common one so it seems to make sense.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;system-overview.html&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getObjectId">
+<tt class="descname">getObjectId</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getObjectId" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the object ID for this object.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">resultSet</span><span class="o">.</span><span class="n">getResults</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getObjectId</span><span class="p">()</span>
+<span class="go">u&#39;workspace://SpacesStore/dc26102b-e312-471b-b2af-91bfb0225339&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getObjectParents">
+<tt class="descname">getObjectParents</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getObjectParents" title="Permalink to this definition">¶</a></dt>
+<dd><p>See CMIS specification document 2.2.3.5 getObjectParents</p>
+<dl class="docutils">
+<dt>The following optional arguments are not supported:</dt>
+<dd><ul class="first last simple">
+<li>filter</li>
+<li>includeRelationships</li>
+<li>renditionFilter</li>
+<li>includeAllowableActions</li>
+<li>includeRelativePathSegment</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getProperties">
+<tt class="descname">getProperties</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getProperties" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dict of the object&#8217;s properties. If CMIS returns an
+empty element for a property, the property will be in the
+dict with a value of None.</p>
+<p>See CMIS specification document 2.2.4.8 getProperties</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">props</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">props</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">props</span><span class="p">[</span><span class="n">p</span><span class="p">])</span>
+<span class="gp">...</span>
+<span class="go">cmis:contentStreamMimeType: text/html</span>
+<span class="go">cmis:creationDate: 2009-12-15T09:45:35.369-06:00</span>
+<span class="go">cmis:baseTypeId: cmis:document</span>
+<span class="go">cmis:isLatestMajorVersion: false</span>
+<span class="go">cmis:isImmutable: false</span>
+<span class="go">cmis:isMajorVersion: false</span>
+<span class="go">cmis:objectId: workspace://SpacesStore/dc26102b-e312-471b-b2af-91bfb0225339</span>
+</pre></div>
+</div>
+<p>The optional filter argument is not yet implemented.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getRelationships">
+<tt class="descname">getRelationships</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getRelationships" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a <a title="cmislib.model.ResultSet" class="reference internal" href="#cmislib.model.ResultSet"><tt class="xref docutils literal"><span class="pre">ResultSet</span></tt></a> of <a title="cmislib.model.Relationship" class="reference internal" href="#cmislib.model.Relationship"><tt class="xref docutils literal"><span class="pre">Relationship</span></tt></a> objects for each
+relationship where the source is this object.</p>
+<p>See CMIS specification document 2.2.8.1 getObjectRelationships</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">rels</span> <span class="o">=</span> <span class="n">tstDoc1</span><span class="o">.</span><span class="n">getRelationships</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">rels</span><span class="o">.</span><span class="n">getResults</span><span class="p">())</span>
+<span class="go">1</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">rel</span> <span class="o">=</span> <span class="n">rels</span><span class="o">.</span><span class="n">getResults</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">rel</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()</span>
+<span class="go">{u&#39;cmis:objectId&#39;: u&#39;workspace://SpacesStore/271c48dd-6548-4771-a8f5-0de69b7cdc25&#39;, u&#39;cmis:creationDate&#39;: None, u&#39;cmis:objectTypeId&#39;: u&#39;R:cmiscustom:assoc&#39;, u&#39;cmis:lastModificationDate&#39;: None, u&#39;cmis:targetId&#39;: u&#39;workspace://SpacesStore/0ca1aa08-cb49-42e2-8881-53aa8496a1c1&#39;, u&#39;cmis:lastModifiedBy&#39;: None, u&#39;cmis:baseTypeId&#39;: u&#39;cmis:relationship&#39;, u&#39;cmis:sourceId&#39;: u&#39;workspace://SpacesStore/271c48dd-6548-4771-a8f5-0de69b7cdc25&#39;, u&#39;cmis:changeToken&#39;: None, u&#39;cmis:createdBy&#39;: None}</span>
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The following optional arguments are supported:</dt>
+<dd><ul class="first last simple">
+<li>includeSubRelationshipTypes</li>
+<li>relationshipDirection</li>
+<li>typeId</li>
+<li>maxItems</li>
+<li>skipCount</li>
+<li>filter</li>
+<li>includeAllowableActions</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.getTitle">
+<tt class="descname">getTitle</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.getTitle" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the value of the object&#8217;s cmis:title property.</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.id">
+<tt class="descname">id</tt><a class="headerlink" href="#cmislib.model.CmisObject.id" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the object ID for this object.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">resultSet</span><span class="o">.</span><span class="n">getResults</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getObjectId</span><span class="p">()</span>
+<span class="go">u&#39;workspace://SpacesStore/dc26102b-e312-471b-b2af-91bfb0225339&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.move">
+<tt class="descname">move</tt><big>(</big><em>sourceFolder</em>, <em>targetFolder</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.move" title="Permalink to this definition">¶</a></dt>
+<dd><p>Moves an object from the source folder to the target folder.</p>
+<p>See CMIS specification document 2.2.4.13 move</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">sub1</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&#39;/cmislib/sub1&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sub2</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&#39;/cmislib/sub2&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&#39;/cmislib/sub1/testdoc1&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sub1</span><span class="p">,</span> <span class="n">sub2</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.name">
+<tt class="descname">name</tt><a class="headerlink" href="#cmislib.model.CmisObject.name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the value of cmis:name from the getProperties() dictionary.
+We don&#8217;t need a getter for every standard CMIS property, but name
+is a pretty common one so it seems to make sense.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;system-overview.html&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.properties">
+<tt class="descname">properties</tt><a class="headerlink" href="#cmislib.model.CmisObject.properties" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dict of the object&#8217;s properties. If CMIS returns an
+empty element for a property, the property will be in the
+dict with a value of None.</p>
+<p>See CMIS specification document 2.2.4.8 getProperties</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">props</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">props</span><span class="p">:</span>
+<span class="gp">... </span>    <span class="k">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">props</span><span class="p">[</span><span class="n">p</span><span class="p">])</span>
+<span class="gp">...</span>
+<span class="go">cmis:contentStreamMimeType: text/html</span>
+<span class="go">cmis:creationDate: 2009-12-15T09:45:35.369-06:00</span>
+<span class="go">cmis:baseTypeId: cmis:document</span>
+<span class="go">cmis:isLatestMajorVersion: false</span>
+<span class="go">cmis:isImmutable: false</span>
+<span class="go">cmis:isMajorVersion: false</span>
+<span class="go">cmis:objectId: workspace://SpacesStore/dc26102b-e312-471b-b2af-91bfb0225339</span>
+</pre></div>
+</div>
+<p>The optional filter argument is not yet implemented.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.reload">
+<tt class="descname">reload</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.reload" title="Permalink to this definition">¶</a></dt>
+<dd><p>Fetches the latest representation of this object from the CMIS service.
+Some methods, like <tt class="xref docutils literal"><span class="pre">^Document.checkout</span></tt> do this for you.</p>
+<p>If you call reload with a properties filter, the filter will be in
+effect on subsequent calls until the filter argument is changed. To
+reset to the full list of properties, call reload with filter set to
+&#8216;*&#8217;.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.removePolicy">
+<tt class="descname">removePolicy</tt><big>(</big><em>policyId</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.removePolicy" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is not yet implemented.</p>
+<p>See CMIS specification document 2.2.9.2 removePolicy</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.CmisObject.title">
+<tt class="descname">title</tt><a class="headerlink" href="#cmislib.model.CmisObject.title" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the value of the object&#8217;s cmis:title property.</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.CmisObject.updateProperties">
+<tt class="descname">updateProperties</tt><big>(</big><em>properties</em><big>)</big><a class="headerlink" href="#cmislib.model.CmisObject.updateProperties" title="Permalink to this definition">¶</a></dt>
+<dd><p>Updates the properties of an object with the properties provided.
+Only provide the set of properties that need to be updated.</p>
+<p>See CMIS specification document 2.2.4.12 updateProperties</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">folder</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&#39;/someFolder2&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">folder</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;someFolder2&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">props</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;cmis:name&#39;</span><span class="p">:</span> <span class="s">&#39;someFolderFoo&#39;</span><span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">folder</span><span class="o">.</span><span class="n">updateProperties</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
+<span class="go">&lt;cmislib.model.Folder object at 0x103ab1210&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">folder</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;someFolderFoo&#39;</span>
+</pre></div>
+</div>
+<p>The optional changeToken is not yet supported.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.Document">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">Document</tt><big>(</big><em>cmisClient</em>, <em>repository</em>, <em>objectId=None</em>, <em>xmlDoc=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Document" title="Permalink to this definition">¶</a></dt>
+<dd><p>An object typically associated with file content.</p>
+<dl class="method">
+<dt id="cmislib.model.Document.cancelCheckout">
+<tt class="descname">cancelCheckout</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.cancelCheckout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Cancels the checkout of this object by retrieving the Private Working
+Copy (PWC) and then deleting it. After the PWC is deleted, this object
+will be reloaded to update properties related to a checkout.</p>
+<p>See CMIS specification document 2.2.7.2 cancelCheckOut</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">True</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">cancelCheckout</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="cmislib.model.Document.checkedOut">
+<tt class="descname">checkedOut</tt><a class="headerlink" href="#cmislib.model.Document.checkedOut" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns true if the document is checked out.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">True</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">cancelCheckout</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.checkin">
+<tt class="descname">checkin</tt><big>(</big><em>checkinComment=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.checkin" title="Permalink to this definition">¶</a></dt>
+<dd><p>Checks in this <a title="cmislib.model.Document" class="reference internal" href="#cmislib.model.Document"><tt class="xref docutils literal"><span class="pre">Document</span></tt></a> which must be a private
+working copy (PWC).</p>
+<p>See CMIS specification document 2.2.7.3 checkIn</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pwc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">checkout</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">True</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pwc</span><span class="o">.</span><span class="n">checkin</span><span class="p">()</span>
+<span class="go">&lt;cmislib.model.Document object at 0x103a8ae90&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The following optional arguments are supported:</dt>
+<dd><ul class="first last simple">
+<li>major</li>
+<li>properties</li>
+<li>contentStream</li>
+<li>policies</li>
+<li>addACEs</li>
+<li>removeACEs</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.checkout">
+<tt class="descname">checkout</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.checkout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Performs a checkout on the <a title="cmislib.model.Document" class="reference internal" href="#cmislib.model.Document"><tt class="xref docutils literal"><span class="pre">Document</span></tt></a> and returns the
+Private Working Copy (PWC), which is also an instance of
+<a title="cmislib.model.Document" class="reference internal" href="#cmislib.model.Document"><tt class="xref docutils literal"><span class="pre">Document</span></tt></a></p>
+<p>See CMIS specification document 2.2.7.1 checkout</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getObjectId</span><span class="p">()</span>
+<span class="go">u&#39;workspace://SpacesStore/f0c8b90f-bec0-4405-8b9c-2ab570589808;1.0&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pwc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">checkout</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">True</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.deleteContentStream">
+<tt class="descname">deleteContentStream</tt><big>(</big><em>changeToken=None</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.deleteContentStream" title="Permalink to this definition">¶</a></dt>
+<dd>See CMIS specification document 2.2.4.17 deleteContentStream</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getAllVersions">
+<tt class="descname">getAllVersions</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.getAllVersions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a <a title="cmislib.model.ResultSet" class="reference internal" href="#cmislib.model.ResultSet"><tt class="xref docutils literal"><span class="pre">ResultSet</span></tt></a> of document objects for the entire
+version history of this object, including any PWC&#8217;s.</p>
+<p>See CMIS specification document 2.2.7.5 getAllVersions</p>
+<p>The optional filter and includeAllowableActions are
+supported.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getCheckedOutBy">
+<tt class="descname">getCheckedOutBy</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.getCheckedOutBy" title="Permalink to this definition">¶</a></dt>
+<dd>Returns the ID who currently has the document checked out.
+&gt;&gt;&gt; pwc = doc.checkout()
+&gt;&gt;&gt; pwc.getCheckedOutBy()
+u&#8217;admin&#8217;</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getContentStream">
+<tt class="descname">getContentStream</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.getContentStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the CMIS service response from invoking the &#8216;enclosure&#8217; link.</p>
+<p>See CMIS specification document 2.2.4.10 getContentStream</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;sample-b.pdf&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">o</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">&#39;tmp.pdf&#39;</span><span class="p">,</span> <span class="s">&#39;wb&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getContentStream</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">o</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">o</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">os.path</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">getsize</span><span class="p">(</span><span class="s">&#39;tmp.pdf&#39;</span><span class="p">)</span>
+<span class="go">117248</span>
+</pre></div>
+</div>
+<p>The optional streamId argument is not yet supported.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getLatestVersion">
+<tt class="descname">getLatestVersion</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.getLatestVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a <a title="cmislib.model.Document" class="reference internal" href="#cmislib.model.Document"><tt class="xref docutils literal"><span class="pre">Document</span></tt></a> object representing the latest version in
+the version series. This is retrieved by
+See CMIS specification document 2.2.7.4 getObjectOfLatestVersion</p>
+<dl class="docutils">
+<dt>The following optional arguments are supported:</dt>
+<dd><ul class="first last simple">
+<li>major</li>
+<li>filter</li>
+<li>includeRelationships</li>
+<li>includePolicyIds</li>
+<li>renditionFilter</li>
+<li>includeACL</li>
+<li>includeAllowableActions</li>
+</ul>
+</dd>
+</dl>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getLatestVersion</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()[</span><span class="s">&#39;cmis:versionLabel&#39;</span><span class="p">]</span>
+<span class="go">u&#39;2.1&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getLatestVersion</span><span class="p">(</span><span class="n">major</span><span class="o">=</span><span class="s">&#39;false&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()[</span><span class="s">&#39;cmis:versionLabel&#39;</span><span class="p">]</span>
+<span class="go">u&#39;2.1&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getLatestVersion</span><span class="p">(</span><span class="n">major</span><span class="o">=</span><span class="s">&#39;true&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">latestDoc</span><span class="o">.</span><span class="n">getProperties</span><span class="p">()[</span><span class="s">&#39;cmis:versionLabel&#39;</span><span class="p">]</span>
+<span class="go">u&#39;2.0&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getPrivateWorkingCopy">
+<tt class="descname">getPrivateWorkingCopy</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.getPrivateWorkingCopy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Retrieves the object using the object ID in the property:
+cmis:versionSeriesCheckedOutId then uses getObject to instantiate
+the object.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">checkout</span><span class="p">()</span>
+<span class="go">&lt;cmislib.model.Document object at 0x103a25ad0&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pwc</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getPrivateWorkingCopy</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pwc</span><span class="o">.</span><span class="n">getTitle</span><span class="p">()</span>
+<span class="go">u&#39;sample-b (Working Copy).pdf&#39;</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getPropertiesOfLatestVersion">
+<tt class="descname">getPropertiesOfLatestVersion</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.getPropertiesOfLatestVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Like <tt class="xref docutils literal"><span class="pre">^CmisObject.getProperties</span></tt>, returns a dict of properties
+from the latest version of this object in the version series.</p>
+<p>See CMIS specification document 2.2.7.4 getPropertiesOfLatestVersion</p>
+<p>The optional major and filter arguments are supported.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.getRenditions">
+<tt class="descname">getRenditions</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.getRenditions" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is not yet supported.</p>
+<p>See CMIS specification document 2.2.4.11 getRenditions</p>
+<dl class="docutils">
+<dt>The following optional arguments are not currently supported:</dt>
+<dd><ul class="first last simple">
+<li>renditionFilter</li>
+<li>maxItems</li>
+<li>skipCount</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.isCheckedOut">
+<tt class="descname">isCheckedOut</tt><big>(</big><big>)</big><a class="headerlink" href="#cmislib.model.Document.isCheckedOut" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns true if the document is checked out.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">True</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">cancelCheckout</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span><span class="o">.</span><span class="n">isCheckedOut</span><span class="p">()</span>
+<span class="go">False</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Document.setContentStream">
+<tt class="descname">setContentStream</tt><big>(</big><em>contentFile</em>, <em>contentType=None</em><big>)</big><a class="headerlink" href="#cmislib.model.Document.setContentStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>See CMIS specification document 2.2.4.16 setContentStream</p>
+<dl class="docutils">
+<dt>The following optional arguments are not yet supported:</dt>
+<dd><ul class="first last simple">
+<li>overwriteFlag=None,</li>
+<li>changeToken=None</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="cmislib.model.Folder">
+<em class="property">class </em><tt class="descclassname">cmislib.model.</tt><tt class="descname">Folder</tt><big>(</big><em>cmisClient</em>, <em>repository</em>, <em>objectId=None</em>, <em>xmlDoc=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Folder" title="Permalink to this definition">¶</a></dt>
+<dd><p>A container object that can hold other <a title="cmislib.model.CmisObject" class="reference internal" href="#cmislib.model.CmisObject"><tt class="xref docutils literal"><span class="pre">CmisObject</span></tt></a> objects</p>
+<dl class="method">
+<dt id="cmislib.model.Folder.addObject">
+<tt class="descname">addObject</tt><big>(</big><em>cmisObject</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Folder.addObject" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds the specified object as a child of this object. No new object is
+created. The repository must support multifiling for this to work.</p>
+<p>See CMIS specification document 2.2.5.1 addObjectToFolder</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">sub1</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&quot;/cmislib/sub1&quot;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sub2</span> <span class="o">=</span> <span class="n">repo</span><span class="o">.</span><span class="n">getObjectByPath</span><span class="p">(</span><span class="s">&quot;/cmislib/sub2&quot;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">doc</span> <span class="o">=</span> <span class="n">sub1</span><span class="o">.</span><span class="n">createDocument</span><span class="p">(</span><span class="s">&quot;testdoc1&quot;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">sub1</span><span class="o">.</span><span class="n">getChildren</span><span class="p">())</span>
+<span class="go">1</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">sub2</span><span class="o">.</span><span class="n">getChildren</span><span class="p">())</span>
+<span class="go">0</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sub2</span><span class="o">.</span><span class="n">addObject</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">sub2</span><span class="o">.</span><span class="n">getChildren</span><span class="p">())</span>
+<span class="go">1</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">sub2</span><span class="o">.</span><span class="n">getChildren</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
+<span class="go">u&#39;testdoc1&#39;</span>
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The following optional arguments are supported:</dt>
+<dd><ul class="first last simple">
+<li>allVersions</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Folder.createDocument">
+<tt class="descname">createDocument</tt><big>(</big><em>name</em>, <em>properties={}</em>, <em>contentFile=None</em>, <em>contentType=None</em>, <em>contentEncoding=None</em><big>)</big><a class="headerlink" href="#cmislib.model.Folder.createDocument" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a new Document object in the repository using
+the properties provided.</p>
+<p>Right now this is basically the same as createFolder,
+but this deals with contentStreams. The common logic should
+probably be moved to CmisObject.createObject.</p>
+<p>The method will attempt to guess the appropriate content
+type and encoding based on the file. To specify it yourself, pass them
+in via the contentType and contentEncoding arguments.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">&#39;250px-Cmis_logo.png&#39;</span><span class="p">,</span> <span class="s">&#39;rb&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subFolder</span><span class="o">.</span><span class="n">createDocument</span><span class="p">(</span><span class="s">&#39;logo.png&#39;</span><span class="p">,</span> <span class="n">contentFile</span><span class="o">=</span><span class="n">f</span><span class="p">)</span>
+<span class="go">&lt;cmislib.model.Document object at 0x10410fa10&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>If you wanted to set one or more properties when creating the doc, pass
+in a dict, like this:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">props</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;cmis:someProp&#39;</span><span class="p">:</span><span class="s">&#39;someVal&#39;</span><span class="p">}</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">&#39;250px-Cmis_logo.png&#39;</span><span class="p">,</span> <span class="s">&#39;rb&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subFolder</span><span class="o">.</span><span class="n">createDocument</span><span class="p">(</span><span class="s">&#39;logo.png&#39;</span><span class="p">,</span> <span class="n">props</span><span class="p">,</span> <span class="n">contentFile</span><span class="o">=</span><span class="n">f</span><span class="p">)</span>
+<span class="go">&lt;cmislib.model.Document object at 0x10410fa10&gt;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>To specify a custom object type, pass in a property called
+cmis:objectTypeId set to the <a title="cmislib.model.CmisId" class="reference internal" href="#cmislib.model.CmisId"><tt class="xref docutils literal"><span class="pre">CmisId</span></tt></a> representing the type ID
+of the instance you want to create. If you do not pass in an object
+type ID, an instance of &#8216;cmis:document&#8217; will be created.</p>
+<dl class="docutils">
+<dt>The following optional arguments are not yet supported:</dt>
+<dd><ul class="first last simple">
+<li>versioningState</li>
+<li>policies</li>
+<li>addACEs</li>
+<li>removeACEs</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Folder.createFolder">
+<tt class="descname">createFolder</tt><big>(</big><em>name</em>, <em>properties={}</em><big>)</big><a class="headerlink" href="#cmislib.model.Folder.createFolder" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a new <a title="cmislib.model.Folder" class="reference internal" href="#cmislib.model.Folder"><tt class="xref docutils literal"><span class="pre">Folder</span></tt></a> using the properties provided.
+Right now I expect a property called &#8216;cmis:name&#8217; but I don&#8217;t
+complain if it isn&#8217;t there (although the CMIS provider will). If a
+cmis:name property isn&#8217;t provided, the value passed in to the name
+argument will be used.</p>
+<p>To specify a custom folder type, pass in a property called
+cmis:objectTypeId set to the <a title="cmislib.model.CmisId" class="reference internal" href="#cmislib.model.CmisId"><tt class="xref docutils literal"><span class="pre">CmisId</span></tt></a> representing the type ID
+of the instance you want to create. If you do not pass in an object
+type ID, an instance of &#8216;cmis:folder&#8217; will be created.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">subFolder</span> <span class="o">=</span> <span class="n">folder</span><span class="o">.</span><span class="n">createFolder</span><span class="p">(</span><span class="s">&#39;someSubfolder&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subFolder</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span>
+<span class="go">u&#39;someSubfolder&#39;</span>
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The following optional arguments are not supported:</dt>
+<dd><ul class="first last simple">
+<li>policies</li>
+<li>addACEs</li>
+<li>removeACEs</li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="method">
+<dt id="cmislib.model.Folder.deleteTree">
+<tt class="descname">deleteTree</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#cmislib.model.Folder.deleteTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>Deletes the folder and all of its descendant objects.</p>
+<p>See CMIS specification document 2.2.4.15 deleteTree</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">resultSet</span> <span class="o">=</span> <span class="n">subFolder</span><span class="o">.</span><span class="n">getDescendants</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">resultSet</span><span class="o">.</span><span class="n">getResults</span><span class="p">())</span>
+<span class="go">2</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">subFolder</span><span class="o">.</span><span class="n">deleteTree</span><span class="p">()</span>
+</pre></div>
+</div>

[... 2187 lines stripped ...]