<html>
<head>
    <title>Usergrid API Reference</title>
    
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    
    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">

    <link rel="stylesheet" href="api-docs.css">
    
    <style type="text/css">
        .panel-default > .panel-heading.GET{
            background-color: rgba(54, 180, 255, 0.42);
            background-image: none;
        }
        .panel-default > .panel-heading.POST {
            background-color: rgba(0, 128, 0, 0.38);
            background-image: none;
        }
        .panel-default > .panel-heading.PUT{
            background-color: rgba(255, 165, 0, 0.41);
            background-image: none;
        }
        .panel-default > .panel-heading.DELETE {
            background-color: rgba(255, 0, 0, 0.29);
            background-image: none;
        }

        .panel-heading a.collapse-button:after {
            font-family:'Glyphicons Halflings';
            content:"\e114";
            float: right;
            color: grey;
        }
        .panel-heading a.collapse-button.collapsed:after {
            content:"\e080";
        }

        table td {
            font-size: small;
        }
    </style>
    
</head>
<body>

<div class="row">
    <div class="col-md-1"></div>
    <div class="col-md-10">
    
    <h1>Usergrid API Reference</h1>
    <p>Generated from Swagger.</p>
<h2>Methods</h2><p>API methods are organized by the tags.</p>
<p>Following the methods is a listing of all <a href='#models'>Default Entity Models.</p>
<a name='Access-Tokens-method'></a>
<h2>Access-Tokens</h2>

<a name="op-jltfzperrd"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/token 
            <a data-toggle="collapse" data-target="#op-jltfzperrd"
                href="#op-jltfzperrd" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-jltfzperrd" class="panel-body collapse">

        <p>Login with Admin-User or Organization credentials.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>login-credentials</b> (<a href="#logincredentials">LoginCredentials</a>)<br>
                    Login credentials either username/password or id/secret. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: Object containing access_token.</li>
                        <li>Schema: [<a href="#accesstokenresponse">AccessTokenResponse</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-pf4k08eh6b"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/token 
            <a data-toggle="collapse" data-target="#op-pf4k08eh6b"
                href="#op-pf4k08eh6b" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pf4k08eh6b" class="panel-body collapse">

        <p>Login with App-User or Application credentials.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>login-credentials</b> (<a href="#logincredentials">LoginCredentials</a>)<br>
                    Login credentials either username/password or id/secret. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: Object containing access_token.</li>
                        <li>Schema: [<a href="#accesstokenresponse">AccessTokenResponse</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Activities-method'></a>
<h2>Activities</h2>

<a name="op-oelvmrj75o"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/groups/{groupId}/feed 
            <a data-toggle="collapse" data-target="#op-oelvmrj75o"
                href="#op-oelvmrj75o" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-oelvmrj75o" class="panel-body collapse">

        <p>Get a group&#39;s feed through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of group&#39;s activity.</li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-qijgihm8op"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/users/{userId}/activities 
            <a data-toggle="collapse" data-target="#op-qijgihm8op"
                href="#op-qijgihm8op" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qijgihm8op" class="panel-body collapse">

        <p>Create an activity in the activities collection.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
                <li>
                    <b>CreateActivity</b> (<a href="#createactivity">CreateActivity</a>)<br>
                    One or more sets of activity properties. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of user&#39;s activity.</li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-abeniyh5dn"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/users/{userId}/feed 
            <a data-toggle="collapse" data-target="#op-abeniyh5dn"
                href="#op-abeniyh5dn" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-abeniyh5dn" class="panel-body collapse">

        <p>Retrieve a user&#39;s feed through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of user&#39;s activity feed.</li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Admin-Users-method'></a>
<h2>Admin-Users</h2>

<a name="op-0k8ni3xj3d"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/users 
            <a data-toggle="collapse" data-target="#op-0k8ni3xj3d"
                href="#op-0k8ni3xj3d" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-0k8ni3xj3d" class="panel-body collapse">

        <p>Retrieve details about the admin users in an organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved Admin user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-vh9ngi9fmx"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /management/orgs/{orgId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-vh9ngi9fmx"
                href="#op-vh9ngi9fmx" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-vh9ngi9fmx" class="panel-body collapse">

        <p>Remove an admin user from an organization through providing both Id of application and organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-2</b> (string)<br>
                    One of the user&#39;s identification which includes username, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted Admin user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-u0gzbrduqw"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/users 
            <a data-toggle="collapse" data-target="#op-u0gzbrduqw"
                href="#op-u0gzbrduqw" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-u0gzbrduqw" class="panel-body collapse">

        <p>Create a whole new admin user.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>CreateAdminUser</b> (<a href="#createadminuser">CreateAdminUser</a>)<br>
                    User entity with fields required for User creation. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An API Response with a entities array containing the newly created Admin User.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-uqzrvknezr"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/users/resetpw 
            <a data-toggle="collapse" data-target="#op-uqzrvknezr"
                href="#op-uqzrvknezr" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uqzrvknezr" class="panel-body collapse">

        <p>Initiate the reset of an admin user&#39;s password.</p>

        <h3>Parameters</h3>

        <ul>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-hdejths3zf"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/users/resetpw 
            <a data-toggle="collapse" data-target="#op-hdejths3zf"
                href="#op-hdejths3zf" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-hdejths3zf" class="panel-body collapse">

        <p>Complete the password reset through getting the newpassword and the old one for identification.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>ResetPWMsg</b> (<a href="#resetpwmsg">ResetPWMsg</a>)<br>
                    Parameters and value for the Captcha challenge, the admin user&#39;s response to the Captcha challenge, and the admin user&#39;s email address. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#"></a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: </li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-lbof08ngzj"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/users/{userId} 
            <a data-toggle="collapse" data-target="#op-lbof08ngzj"
                href="#op-lbof08ngzj" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-lbof08ngzj" class="panel-body collapse">

        <p>Retrieve details about an admin user.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An API Response with a entities array containing the Admin User.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-e0xzsb83mx"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /management/users/{userId} 
            <a data-toggle="collapse" data-target="#op-e0xzsb83mx"
                href="#op-e0xzsb83mx" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-e0xzsb83mx" class="panel-body collapse">

        <p>Update the info of an admin user.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An API Response with a entities array containing the updated Admin User</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-tomptkkm0s"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/users/{userId}/activate 
            <a data-toggle="collapse" data-target="#op-tomptkkm0s"
                href="#op-tomptkkm0s" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-tomptkkm0s" class="panel-body collapse">

        <p>Activate an admin user from a link provIded in an email notification.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
                <li>
                    <b>token</b> (string)<br>
                    Activation token&#39;s query statement. (Specified in query).
                </li>
                <li>
                    <b>confirm_email</b> (boolean)<br>
                    Query statement of whether send confimation email or not. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-nghoyv2wcb"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /management/users/{userId}/password 
            <a data-toggle="collapse" data-target="#op-nghoyv2wcb"
                href="#op-nghoyv2wcb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-nghoyv2wcb" class="panel-body collapse">

        <p>Update an admin user&#39;s password through getting the newpassword and the old one for identification.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
                <li>
                    <b>ResetPW</b> (<a href="#resetpw">ResetPW</a>)<br>
                    The user&#39;s old and new password. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-z6wihrgdkd"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/users/{userId}/reactivate 
            <a data-toggle="collapse" data-target="#op-z6wihrgdkd"
                href="#op-z6wihrgdkd" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-z6wihrgdkd" class="panel-body collapse">

        <p>Reactivate an expired admin user.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='App-Users-method'></a>
<h2>App-Users</h2>

<a name="op-rjc6xigqey"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/users 
            <a data-toggle="collapse" data-target="#op-rjc6xigqey"
                href="#op-rjc6xigqey" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-rjc6xigqey" class="panel-body collapse">

        <p>Retrieve users though query statement.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>queryStatement</b> (string)<br>
                    The query statement of the User. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-auocxo8sbd"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/users 
            <a data-toggle="collapse" data-target="#op-auocxo8sbd"
                href="#op-auocxo8sbd" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-auocxo8sbd" class="panel-body collapse">

        <p>Create a user in the users collection through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>CreateUser</b> (<a href="#createuser">CreateUser</a>)<br>
                    The properties of the user. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-fed3e3rttw"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-fed3e3rttw"
                href="#op-fed3e3rttw" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-fed3e3rttw" class="panel-body collapse">

        <p>Retrieve a user through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-2</b> (string)<br>
                    One of the user&#39;s identification which includes username, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ubyjuplh34"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /{orgId}/{appId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-ubyjuplh34"
                href="#op-ubyjuplh34" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ubyjuplh34" class="panel-body collapse">

        <p>Update a user through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of updated user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-xo78yrnje9"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-xo78yrnje9"
                href="#op-xo78yrnje9" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-xo78yrnje9" class="panel-body collapse">

        <p>Remove a user through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-atwo87tjks"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/users/{user}/password 
            <a data-toggle="collapse" data-target="#op-atwo87tjks"
                href="#op-atwo87tjks" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-atwo87tjks" class="panel-body collapse">

        <p>Set a user&#39;s password or reset the user&#39;s existing password.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>username</b> (string)<br>
                    The username of the user. (Specified in path).
                </li>
                <li>
                    <b>ResetPW</b> (<a href="#resetpw">ResetPW</a>)<br>
                    The user&#39;s old and new password. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Entities-Collections-method'></a>
<h2>Entities-Collections</h2>

<a name="op-qfvlknxj23"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/users/{userId}/{relation} 
            <a data-toggle="collapse" data-target="#op-qfvlknxj23"
                href="#op-qfvlknxj23" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qfvlknxj23" class="panel-body collapse">

        <p>Retrieve a user&#39;s collections or connections through query statement.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
                <li>
                    <b>relation</b> (string)<br>
                    The relation between user and collections. (Specified in path).
                </li>
                <li>
                    <b>queryStatement</b> (string)<br>
                    The query statement of the user. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of user&#39;s collections info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-iryk6kw39t"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/{collectionId} 
            <a data-toggle="collapse" data-target="#op-iryk6kw39t"
                href="#op-iryk6kw39t" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-iryk6kw39t" class="panel-body collapse">

        <p>Retrieve collection through query statement.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>queryStatement</b> (string)<br>
                    Any values specified in the query statement should be enclosed in single-quotes. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved collection&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-7928vzxtic"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /{orgId}/{appId}/{collectionId} 
            <a data-toggle="collapse" data-target="#op-7928vzxtic"
                href="#op-7928vzxtic" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-7928vzxtic" class="panel-body collapse">

        <p>Update collection through query statement.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>queryStatement</b> (string)<br>
                    Any values specified in the query statement should be enclosed in single-quotes. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of updated collection&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-gzjjo0gt4n"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2} 
            <a data-toggle="collapse" data-target="#op-gzjjo0gt4n"
                href="#op-gzjjo0gt4n" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-gzjjo0gt4n" class="panel-body collapse">

        <p>Add an entity to a collection through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityId1</b> (string)<br>
                    The Id of the 1st entity. (Specified in path).
                </li>
                <li>
                    <b>relation</b> (string)<br>
                    The relation between 1st entity and 2nd entity. (Specified in path).
                </li>
                <li>
                    <b>entityId2</b> (string)<br>
                    The Id of the 2nd entity. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of added entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ubvz0iw6sr"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2} 
            <a data-toggle="collapse" data-target="#op-ubvz0iw6sr"
                href="#op-ubvz0iw6sr" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ubvz0iw6sr" class="panel-body collapse">

        <p>Remove an entity from a collection through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityId1</b> (string)<br>
                    The Id of the 1st entity. (Specified in path).
                </li>
                <li>
                    <b>relation</b> (string)<br>
                    The relation between 1st entity and 2nd entity. (Specified in path).
                </li>
                <li>
                    <b>entityId2</b> (string)<br>
                    The Id of the 2nd entity. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ncyiutohja"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/{collectionId}/{entityId} 
            <a data-toggle="collapse" data-target="#op-ncyiutohja"
                href="#op-ncyiutohja" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ncyiutohja" class="panel-body collapse">

        <p>Retrieve an entity through providing Id of application, organization, collection and entity.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityId</b> (string)<br>
                    One of the entity&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-zcq75rqupy"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /{orgId}/{appId}/{collectionId}/{entityId} 
            <a data-toggle="collapse" data-target="#op-zcq75rqupy"
                href="#op-zcq75rqupy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-zcq75rqupy" class="panel-body collapse">

        <p>One or more properties can be updated with a single request.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityId</b> (string)<br>
                    One of the entity&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityproperty</b> (<a href="#createentities">CreateEntities</a>)<br>
                    The properties of the entity. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of updated entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-cxha8mfn5b"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/{collectionId}/{entityId} 
            <a data-toggle="collapse" data-target="#op-cxha8mfn5b"
                href="#op-cxha8mfn5b" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cxha8mfn5b" class="panel-body collapse">

        <p>Delete an entity from the collection.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>collectionId</b> (string)<br>
                    One of the collection&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entityId</b> (string)<br>
                    One of the entity&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ghkfksvzjn"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/{entitytype} 
            <a data-toggle="collapse" data-target="#op-ghkfksvzjn"
                href="#op-ghkfksvzjn" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ghkfksvzjn" class="panel-body collapse">

        <p>When a new entity is created, Usergrid will automatically create a corresponding collection if one does not already exist. The collection will automatically be named with the plural form of the entity type.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>entitytype</b> (string)<br>
                    The entity type to create. (Specified in path).
                </li>
                <li>
                    <b>entityproperty</b> (<a href="#createentities">CreateEntities</a>)<br>
                    The properties of the entity. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created custom entity&#39;s info.</li>
                        <li>Schema: [<a href="#entity">Entity</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Events-method'></a>
<h2>Events</h2>

<a name="op-wnqxopkwwz"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/events 
            <a data-toggle="collapse" data-target="#op-wnqxopkwwz"
                href="#op-wnqxopkwwz" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-wnqxopkwwz" class="panel-body collapse">

        <p>Create an event through providing both Id of organization and application.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>CreateEvent</b> (<a href="#createevent">CreateEvent</a>)<br>
                    The required property of the event. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created event&#39;s info.</li>
                        <li>Schema: [<a href="#event">Event</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Groups-method'></a>
<h2>Groups</h2>

<a name="op-ahwwobry7b"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/groups 
            <a data-toggle="collapse" data-target="#op-ahwwobry7b"
                href="#op-ahwwobry7b" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ahwwobry7b" class="panel-body collapse">

        <p>Create a new group through providing both Id of organization and application.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupproperty</b> (<a href="#creategroup">CreateGroup</a>)<br>
                    The property of the created group. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created group&#39;s info.</li>
                        <li>Schema: [<a href="#group">Group</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-9agwcnszo1"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/groups/{groupId}/activities 
            <a data-toggle="collapse" data-target="#op-9agwcnszo1"
                href="#op-9agwcnszo1" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-9agwcnszo1" class="panel-body collapse">

        <p>Create an activity to a specific group. In this case the activity is created in the activities collection and is accessible at the /activities endpoint to users who have the permission to read that endpoint. In addition, a relationship is established between the activity and the group, and because of that, the activity will appear in the group’s feed. The group &#39;owns&#39; the activity. Also, the activity will be published in the feed of all users that are members of the group.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>CreateActivity</b> (<a href="#createactivity">CreateActivity</a>)<br>
                    One or more sets of activity properties. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: </li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ndfc9lpvfb"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/groups/{groupId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-ndfc9lpvfb"
                href="#op-ndfc9lpvfb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ndfc9lpvfb" class="panel-body collapse">

        <p>Add a user to a group through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of added user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-d0g0l32tf1"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/groups/{groupId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-d0g0l32tf1"
                href="#op-d0g0l32tf1" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-d0g0l32tf1" class="panel-body collapse">

        <p>Delete user from a group through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-1yb8oe6y0s"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{org_Id}/{app_Id}/groups/{groupId} 
            <a data-toggle="collapse" data-target="#op-1yb8oe6y0s"
                href="#op-1yb8oe6y0s" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-1yb8oe6y0s" class="panel-body collapse">

        <p>Get a group through through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved group&#39;s info.</li>
                        <li>Schema: [<a href="#group">Group</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-theoah23fu"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /{org_Id}/{app_Id}/groups/{groupId} 
            <a data-toggle="collapse" data-target="#op-theoah23fu"
                href="#op-theoah23fu" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-theoah23fu" class="panel-body collapse">

        <p>Update a group through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>groupId</b> (string)<br>
                    One of the group&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of updated group&#39;s info.</li>
                        <li>Schema: [<a href="#group">Group</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Notifications-method'></a>
<h2>Notifications</h2>

<a name="op-icufrwozlt"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/devices 
            <a data-toggle="collapse" data-target="#op-icufrwozlt"
                href="#op-icufrwozlt" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-icufrwozlt" class="panel-body collapse">

        <p>Create notifications for user through targeting by location and providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notification</b> (<a href="#createnotifications">CreateNotifications</a>)<br>
                    These parameters are used when forming the notification portion of the request. (Specified in body).
                </li>
                <li>
                    <b>queryStatement</b> (string)<br>
                    The query statement of the location of the user. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-eaayzms3bs"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/devices/*/notifications 
            <a data-toggle="collapse" data-target="#op-eaayzms3bs"
                href="#op-eaayzms3bs" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-eaayzms3bs" class="panel-body collapse">

        <p>Create notifications for all devices. This request will target all device entities.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notification</b> (<a href="#createnotifications">CreateNotifications</a>)<br>
                    These parameters are used when forming the notification portion of the request. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-kd9yvryvuo"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/devices/{deviceId}/notifications 
            <a data-toggle="collapse" data-target="#op-kd9yvryvuo"
                href="#op-kd9yvryvuo" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-kd9yvryvuo" class="panel-body collapse">

        <p>Create notifications for a single device. This request will target a specific device entity.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>deviceId</b> (string)<br>
                    One of the device&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>notification</b> (<a href="#createnotifications">CreateNotifications</a>)<br>
                    These parameters are used when forming the notification portion of the request. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-agrod0oatq"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/groups/{path}/notifications 
            <a data-toggle="collapse" data-target="#op-agrod0oatq"
                href="#op-agrod0oatq" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-agrod0oatq" class="panel-body collapse">

        <p>Create notifications for a group. This request will target all users associated with a specific group entity.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>path</b> (string)<br>
                    The path of the group. (Specified in path).
                </li>
                <li>
                    <b>notification</b> (<a href="#createnotifications">CreateNotifications</a>)<br>
                    These parameters are used when forming the notification portion of the request. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-uiar9izp1w"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/notifications 
            <a data-toggle="collapse" data-target="#op-uiar9izp1w"
                href="#op-uiar9izp1w" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uiar9izp1w" class="panel-body collapse">

        <p>Retrieve one or more notifications through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-olgda8yl8e"/>

<div class="panel panel-default">
    
    <div class="panel-heading PUT">
        <h2 class="panel-title PUT-heading">PUT /{orgId}/{applicationId}/notifications/{notificationId} 
            <a data-toggle="collapse" data-target="#op-olgda8yl8e"
                href="#op-olgda8yl8e" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-olgda8yl8e" class="panel-body collapse">

        <p>Update a Notification in order to cancel the notifcation or set a new expiration time.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notificationId</b> (string)<br>
                    One of the notification&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>notificationUpdate</b> (<a href="#notificationupdate">NotificationUpdate</a>)<br>
                    Object with Notification fields to be updated. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An API Response object containing an entity of type Notification.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-kvvxeyt4ac"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{applicationId}/notifications/{notificationId} 
            <a data-toggle="collapse" data-target="#op-kvvxeyt4ac"
                href="#op-kvvxeyt4ac" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-kvvxeyt4ac" class="panel-body collapse">

        <p>Delete an unsent Notification from the system.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notificationId</b> (string)<br>
                    One of the notification&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: API Response containing Notification entity that was deleted.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-5gnb0cdb4l"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/receipts 
            <a data-toggle="collapse" data-target="#op-5gnb0cdb4l"
                href="#op-5gnb0cdb4l" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-5gnb0cdb4l" class="panel-body collapse">

        <p>Retrieve one or more receipts through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved receipt&#39;s info.</li>
                        <li>Schema: [<a href="#receipt">Receipt</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-aw0uwxfth7"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/users/{userId}/notifications 
            <a data-toggle="collapse" data-target="#op-aw0uwxfth7"
                href="#op-aw0uwxfth7" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-aw0uwxfth7" class="panel-body collapse">

        <p>Create notifications for a user. This request will target a specific user entity.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
                <li>
                    <b>notification</b> (<a href="#createnotifications">CreateNotifications</a>)<br>
                    These parameters are used when forming the notification portion of the request. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-keyhzudnpa"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/{deviceId}/*/receipts 
            <a data-toggle="collapse" data-target="#op-keyhzudnpa"
                href="#op-keyhzudnpa" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-keyhzudnpa" class="panel-body collapse">

        <p>Retrieve receipts associated with one or more devices through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>deviceId</b> (string)<br>
                    One of the device&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved receipt&#39;s info.</li>
                        <li>Schema: [<a href="#receipt">Receipt</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-uvv9djxk0b"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/{notificationId}/*/queue 
            <a data-toggle="collapse" data-target="#op-uvv9djxk0b"
                href="#op-uvv9djxk0b" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uvv9djxk0b" class="panel-body collapse">

        <p>Retrieve the list of devices associated with one or more notifications before the notifications are sent through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notificationId</b> (string)<br>
                    One of the notification&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved device&#39;s info.</li>
                        <li>Schema: [<a href="#device">Device</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ncdxrkaoo0"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/{notificationId}/*/receipts 
            <a data-toggle="collapse" data-target="#op-ncdxrkaoo0"
                href="#op-ncdxrkaoo0" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ncdxrkaoo0" class="panel-body collapse">

        <p>Retrieve receipts for one or more notifications through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>notificationId</b> (string)<br>
                    One of the notification&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved receipt&#39;s info.</li>
                        <li>Schema: [<a href="#receipt">Receipt</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-pirmrjnltl"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/{receiptId}/*/notifications 
            <a data-toggle="collapse" data-target="#op-pirmrjnltl"
                href="#op-pirmrjnltl" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pirmrjnltl" class="panel-body collapse">

        <p>Retrieve notifications associated with one or more receipts through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>applicationId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid (same as appId). (Specified in path).
                </li>
                <li>
                    <b>receiptId</b> (string)<br>
                    One of the receipt&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved notification&#39;s info.</li>
                        <li>Schema: [<a href="#notification">Notification</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Organizations-Applications-method'></a>
<h2>Organizations-Applications</h2>

<a name="op-qtkpsiex1b"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/orgs 
            <a data-toggle="collapse" data-target="#op-qtkpsiex1b"
                href="#op-qtkpsiex1b" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qtkpsiex1b" class="panel-body collapse">

        <p>Create an organization through a form post.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>CreateOrg</b> (<a href="#createorg">CreateOrg</a>)<br>
                    A set of organization properties supplied through a form. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created Organization.</li>
                        <li>Schema: [<a href="#organization">Organization</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-0xiial2hla"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId} 
            <a data-toggle="collapse" data-target="#op-0xiial2hla"
                href="#op-0xiial2hla" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-0xiial2hla" class="panel-body collapse">

        <p>Retrieve an organization given a specified UUID or username.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created Organization.</li>
                        <li>Schema: [<a href="#organization">Organization</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-x83q8zzdhu"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/activate 
            <a data-toggle="collapse" data-target="#op-x83q8zzdhu"
                href="#op-x83q8zzdhu" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-x83q8zzdhu" class="panel-body collapse">

        <p>Activate an organization from a link provIded in an email notification.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>token</b> (string)<br>
                    Activation token. (Specified in query).
                </li>
                <li>
                    <b>confirm_email</b> (boolean)<br>
                    Send confirmation email or not. (Specified in query).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-vum0sq8sx7"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/apps 
            <a data-toggle="collapse" data-target="#op-vum0sq8sx7"
                href="#op-vum0sq8sx7" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-vum0sq8sx7" class="panel-body collapse">

        <p>Retrieve the applications in an organization through providing both Id of application and organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved application data.</li>
                        <li>Schema: [<a href="#appdata">AppData</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ggjkvsmyl6"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /management/orgs/{orgId}/apps/{appId} 
            <a data-toggle="collapse" data-target="#op-ggjkvsmyl6"
                href="#op-ggjkvsmyl6" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ggjkvsmyl6" class="panel-body collapse">

        <p>Remove an application from an organization through providing both Id of application and organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted application info.</li>
                        <li>Schema: [<a href="#appdata">AppData</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-cp7szqktjh"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/apps/{appId}/credentials 
            <a data-toggle="collapse" data-target="#op-cp7szqktjh"
                href="#op-cp7szqktjh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cp7szqktjh" class="panel-body collapse">

        <p>Retrieve the client Id and client secret credentials for an application in an organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved credentials info.</li>
                        <li>Schema: [<a href="#credential">Credential</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-mh1t539dpp"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/orgs/{orgId}/apps/{appId}/credentials 
            <a data-toggle="collapse" data-target="#op-mh1t539dpp"
                href="#op-mh1t539dpp" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-mh1t539dpp" class="panel-body collapse">

        <p>Generate the client Id and client secret credentials for an application in an organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of generated credentials info.</li>
                        <li>Schema: [<a href="#credential">Credential</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-vvfbqt4q43"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/credentials 
            <a data-toggle="collapse" data-target="#op-vvfbqt4q43"
                href="#op-vvfbqt4q43" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-vvfbqt4q43" class="panel-body collapse">

        <p>Retrieve the credentials for an organization client.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of Credential</li>
                        <li>Schema: [<a href="#credential">Credential</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-qna988qstn"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /management/orgs/{orgId}/credentials 
            <a data-toggle="collapse" data-target="#op-qna988qstn"
                href="#op-qna988qstn" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qna988qstn" class="panel-body collapse">

        <p>Generate whole new credentials for an organization client.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of Credential</li>
                        <li>Schema: [<a href="#credential">Credential</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-pvfbhnu3ho"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/feed 
            <a data-toggle="collapse" data-target="#op-pvfbhnu3ho"
                href="#op-pvfbhnu3ho" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pvfbhnu3ho" class="panel-body collapse">

        <p>Retrieve an organization&#39;s activity feed.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of the organization&#39;s ActivityFeed.</li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-mkzqld3gfb"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/orgs/{orgId}/reactivate 
            <a data-toggle="collapse" data-target="#op-mkzqld3gfb"
                href="#op-mkzqld3gfb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-mkzqld3gfb" class="panel-body collapse">

        <p>Reactivate an expired organization.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of complete messages.</li>
                        <li>Schema: [<a href="#action">Action</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-wuaofythtb"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /management/users/{userId}/feed 
            <a data-toggle="collapse" data-target="#op-wuaofythtb"
                href="#op-wuaofythtb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-wuaofythtb" class="panel-body collapse">

        <p>Retrieve an admin user&#39;s activity feed.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>userId</b> (string)<br>
                    One of the user&#39;s identification which includes username, real name, email address or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of user&#39;s activity</li>
                        <li>Schema: [<a href="#activityfeed">ActivityFeed</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='Permissions-Roles-method'></a>
<h2>Permissions-Roles</h2>

<a name="op-gxzpvnjad6"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/roles 
            <a data-toggle="collapse" data-target="#op-gxzpvnjad6"
                href="#op-gxzpvnjad6" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-gxzpvnjad6" class="panel-body collapse">

        <p>Retrieve the roles in an application through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of retrieved role&#39;s info.</li>
                        <li>Schema: [<a href="#role">Role</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-uu16219kmh"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/roles 
            <a data-toggle="collapse" data-target="#op-uu16219kmh"
                href="#op-uu16219kmh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uu16219kmh" class="panel-body collapse">

        <p>Create a new role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleproperty</b> (<a href="#addrole">AddRole</a>)<br>
                    The required properties of the role. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of created role&#39;s info.</li>
                        <li>Schema: [<a href="#role">Role</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-orp159cy9o"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/roles/{roleId}/permissions 
            <a data-toggle="collapse" data-target="#op-orp159cy9o"
                href="#op-orp159cy9o" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-orp159cy9o" class="panel-body collapse">

        <p>Remove permissions from a role.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>Permissions</b> (<a href="#permissions">Permissions</a>)<br>
                    The query statement of the url pattern. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: Permissions object with array of the deleated Usergrid Permission strings.</li>
                        <li>Schema: [<a href="#permissions">Permissions</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-x0xfc8kayh"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{appId}/roles/{roleId}/users 
            <a data-toggle="collapse" data-target="#op-x0xfc8kayh"
                href="#op-x0xfc8kayh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-x0xfc8kayh" class="panel-body collapse">

        <p>Retrieve the users in a role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An API Response with a entities array of Users.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-fy18bp8rme"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{appId}/roles/{roleId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-fy18bp8rme"
                href="#op-fy18bp8rme" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-fy18bp8rme" class="panel-body collapse">

        <p>Add a user to a role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of added user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-eelfcc5vrd"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/roles/{roleId}/users/{userId} 
            <a data-toggle="collapse" data-target="#op-eelfcc5vrd"
                href="#op-eelfcc5vrd" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-eelfcc5vrd" class="panel-body collapse">

        <p>Remove a user from a role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>userId-3</b> (string)<br>
                    One of the user&#39;s identification which includes username or UUID. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted user&#39;s info.</li>
                        <li>Schema: [<a href="#user">User</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-drrh5vkpo3"/>

<div class="panel panel-default">
    
    <div class="panel-heading DELETE">
        <h2 class="panel-title DELETE-heading">DELETE /{orgId}/{appId}/roles/{rolename} 
            <a data-toggle="collapse" data-target="#op-drrh5vkpo3"
                href="#op-drrh5vkpo3" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-drrh5vkpo3" class="panel-body collapse">

        <p>Remove a role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>rolename</b> (string)<br>
                    The name of the role. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: An array of deleted role&#39;s info.</li>
                        <li>Schema: [<a href="#role">Role</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-uabhhajjkc"/>

<div class="panel panel-default">
    
    <div class="panel-heading GET">
        <h2 class="panel-title GET-heading">GET /{orgId}/{applicationId}/roles/{roleId}/permissions 
            <a data-toggle="collapse" data-target="#op-uabhhajjkc"
                href="#op-uabhhajjkc" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uabhhajjkc" class="panel-body collapse">

        <p>Retrieve permissions for a Role.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: Permissions object with array of Usergrid Permission strings.</li>
                        <li>Schema: [<a href="#permissions">Permissions</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>

<a name="op-ltsfjpk6ah"/>

<div class="panel panel-default">
    
    <div class="panel-heading POST">
        <h2 class="panel-title POST-heading">POST /{orgId}/{applicationId}/roles/{roleId}/permissions 
            <a data-toggle="collapse" data-target="#op-ltsfjpk6ah"
                href="#op-ltsfjpk6ah" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ltsfjpk6ah" class="panel-body collapse">

        <p>Add permissions to a role through providing all the identifications.</p>

        <h3>Parameters</h3>

        <ul>
                <li>
                    <b>orgId</b> (string)<br>
                    One of the organization&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>appId</b> (string)<br>
                    One of the application&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>roleId</b> (string)<br>
                    One of the role&#39;s identification which includes name or uuid. (Specified in path).
                </li>
                <li>
                    <b>Permissions</b> (<a href="#permissions">Permissions</a>)<br>
                    Permissions object with array of Usergrid Permission strings to be added. (Specified in body).
                </li>
        </ul>

        <h3>Responses</h3>

        <ul>
                <li>
                    <b>200</b>
                    <ul>
                        <li>Description: Permissions object with array of Usergrid Permission strings.</li>
                        <li>Schema: [<a href="#permission">Permission</a>]</li>
                    </ul>
                </li>
                <li>
                    <b>default</b>
                    <ul>
                        <li>Description: Unexpected error.</li>
                        <li>Schema: [<a href="#error">Error</a>]</li>
                    </ul>
                </li>
        </ul>     
        
    </div>
    <!--<div class="panel-footer"></div>-->
</div>
<a name='models'></a>
<br><h1>Default Entity Models</h1><p>This section lists the properties for the following Usergrid Default Entities.</p>


<div>
    <a name="accesstokenresponse"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">AccessTokenResponse
            <a data-toggle="collapse" data-target="#collapse-AccessTokenResponse"
               href="#collapse-AccessTokenResponse" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-AccessTokenResponse" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>access_token</td>
                    <td>
                        
                        string
                    </td>
                    <td>Access-token that may be used on subsequent requests.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>expires_in</td>
                    <td>
                        
                        number
                    </td>
                    <td>Time (in milliseconds) until access-token expires.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>user</td>
                    <td>
                        <a href="#user">User</a>
                        
                    </td>
                    <td>User object if login was done as a user.</td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-jltfzperrd">/management/token</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pf4k08eh6b">/{orgId}/{appId}/token</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="action"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Action
            <a data-toggle="collapse" data-target="#collapse-Action"
               href="#collapse-Action" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Action" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>action</td>
                    <td>
                        
                        string
                    </td>
                    <td>The requested action.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>status</td>
                    <td>
                        
                        string
                    </td>
                    <td>The status of the requested action.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>timestamp</td>
                    <td>
                        
                        number
                    </td>
                    <td>The timestamp of the requested action.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>duration</td>
                    <td>
                        
                        number
                    </td>
                    <td>The duration of the requested action.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>token</td>
                    <td>
                        
                        string
                    </td>
                    <td>The token required for getting an AdminUser.</td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-tomptkkm0s">/management/users/{userId}/activate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-z6wihrgdkd">/management/users/{userId}/reactivate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-atwo87tjks">/{orgId}/{appId}/users/{user}/password</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-nghoyv2wcb">/management/users/{userId}/password</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-mkzqld3gfb">/management/orgs/{orgId}/reactivate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-x83q8zzdhu">/management/orgs/{orgId}/activate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-uqzrvknezr">/management/users/resetpw</a></p></td>
            </tr>
        </table>

            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#receipt">Receipt</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#device">Device</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#notification">Notification</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#role">Role</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#event">Event</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#group">Group</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#credential">Credential</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#organization">Organization</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#appdata">AppData</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#user">User</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#activityfeed">ActivityFeed</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="activityfeed"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">ActivityFeed
            <a data-toggle="collapse" data-target="#collapse-ActivityFeed"
               href="#collapse-ActivityFeed" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-ActivityFeed" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>entityproperty</td>
                    <td>
                        <a href="#entity">Entity</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>category</td>
                    <td>
                        
                        string
                    </td>
                    <td>The category of the activity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadataproperty</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>objectproperty</td>
                    <td>
                        <a href="#object">Object</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>title</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the activity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>verb</td>
                    <td>
                        
                        string
                    </td>
                    <td>The verb of the activity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>published</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp of the feed publish time.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-abeniyh5dn">/{orgId}/{appId}/users/{userId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-oelvmrj75o">/{orgId}/{appId}/groups/{groupId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-9agwcnszo1">/{orgId}/{appId}/groups/{groupId}/activities</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pvfbhnu3ho">/management/orgs/{orgId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-wuaofythtb">/management/users/{userId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-qijgihm8op">/{orgId}/{appId}/users/{userId}/activities</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="addrole"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">AddRole
            <a data-toggle="collapse" data-target="#collapse-AddRole"
               href="#collapse-AddRole" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-AddRole" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>title</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the role.</td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>role name</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the role.</td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-uu16219kmh">/{orgId}/{appId}/roles</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="appdata"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">AppData
            <a data-toggle="collapse" data-target="#collapse-AppData"
               href="#collapse-AppData" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-AppData" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>tester/sandbox</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of tester/sandbox.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>tester/app1</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of tester/app1.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>tester/app2</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of tester/app2.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-vum0sq8sx7">/management/orgs/{orgId}/apps</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ggjkvsmyl6">/management/orgs/{orgId}/apps/{appId}</a></p></td>
            </tr>
        </table>

            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#organization">Organization</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="createactivity"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateActivity
            <a data-toggle="collapse" data-target="#collapse-CreateActivity"
               href="#collapse-CreateActivity" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateActivity" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>displayName</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>image</td>
                    <td>
                        <a href="#imagemodel">ImageModel</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>verb</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>content</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-9agwcnszo1">/{orgId}/{appId}/groups/{groupId}/activities</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-qijgihm8op">/{orgId}/{appId}/users/{userId}/activities</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createadminuser"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateAdminUser
            <a data-toggle="collapse" data-target="#collapse-CreateAdminUser"
               href="#collapse-CreateAdminUser" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateAdminUser" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>password</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-u0gzbrduqw">/management/users</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createentities"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateEntities
            <a data-toggle="collapse" data-target="#collapse-CreateEntities"
               href="#collapse-CreateEntities" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateEntities" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-zcq75rqupy">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ghkfksvzjn">/{orgId}/{appId}/{entitytype}</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createevent"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateEvent
            <a data-toggle="collapse" data-target="#collapse-CreateEvent"
               href="#collapse-CreateEvent" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateEvent" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>timestamp</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-wnqxopkwwz">/{orgId}/{appId}/events</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="creategroup"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateGroup
            <a data-toggle="collapse" data-target="#collapse-CreateGroup"
               href="#collapse-CreateGroup" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateGroup" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>title</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the group.</td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>path</td>
                    <td>
                        
                        string
                    </td>
                    <td>The path of the group.</td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-ahwwobry7b">/{orgId}/{appId}/groups</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createnotifications"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateNotifications
            <a data-toggle="collapse" data-target="#collapse-CreateNotifications"
               href="#collapse-CreateNotifications" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateNotifications" class="panel-body collapse">
        
        <p>An array of Notifications to be created.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-icufrwozlt">/{orgId}/{applicationId}/devices</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-kd9yvryvuo">/{orgId}/{applicationId}/devices/{deviceId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-eaayzms3bs">/{orgId}/{applicationId}/devices/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-agrod0oatq">/{orgId}/{applicationId}/groups/{path}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-aw0uwxfth7">/{orgId}/{applicationId}/users/{userId}/notifications</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createorg"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateOrg
            <a data-toggle="collapse" data-target="#collapse-CreateOrg"
               href="#collapse-CreateOrg" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateOrg" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>organization</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>password</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-qtkpsiex1b">/management/orgs</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="createuser"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">CreateUser
            <a data-toggle="collapse" data-target="#collapse-CreateUser"
               href="#collapse-CreateUser" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-CreateUser" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-auocxo8sbd">/{orgId}/{appId}/users</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="credential"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Credential
            <a data-toggle="collapse" data-target="#collapse-Credential"
               href="#collapse-Credential" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Credential" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>client_Id</td>
                    <td>
                        
                        string
                    </td>
                    <td>The Id of the client.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>client_secret</td>
                    <td>
                        
                        string
                    </td>
                    <td>The secret of the client.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-cp7szqktjh">/management/orgs/{orgId}/apps/{appId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-mh1t539dpp">/management/orgs/{orgId}/apps/{appId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-qna988qstn">/management/orgs/{orgId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-vvfbqt4q43">/management/orgs/{orgId}/credentials</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="device"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Device
            <a data-toggle="collapse" data-target="#collapse-Device"
               href="#collapse-Device" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Device" class="panel-body collapse">
        
        <p>Represents a single Device that is registered for recieving of Push Notifications.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>Unique entity Id.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>
                        
                        string
                    </td>
                    <td>Type of entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td>Notifier display name.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>created</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was created.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>modified</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was last modified.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadata</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-uvv9djxk0b">/{orgId}/{applicationId}/{notificationId}/*/queue</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="entity"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Entity
            <a data-toggle="collapse" data-target="#collapse-Entity"
               href="#collapse-Entity" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Entity" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>
                        
                        string
                    </td>
                    <td>The type of the entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>created</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp of entity creation time.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>modified</td>
                    <td>
                        <a href="#actor">Actor</a>
                        
                    </td>
                    <td>UTC timestamp of entity modified time.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadata</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>message</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-zcq75rqupy">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-7928vzxtic">/{orgId}/{appId}/{collectionId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-cxha8mfn5b">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-iryk6kw39t">/{orgId}/{appId}/{collectionId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ubvz0iw6sr">/{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-qfvlknxj23">/{orgId}/{appId}/users/{userId}/{relation}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ghkfksvzjn">/{orgId}/{appId}/{entitytype}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-gzjjo0gt4n">/{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ncyiutohja">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
        </table>

            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#role">Role</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#event">Event</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#activityfeed">ActivityFeed</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="error"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Error
            <a data-toggle="collapse" data-target="#collapse-Error"
               href="#collapse-Error" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Error" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>code</td>
                    <td>
                        
                        integer
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>message</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>fields</td>
                    <td>
                        
                        object
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>



    </div>
    
</div>



<div>
    <a name="event"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Event
            <a data-toggle="collapse" data-target="#collapse-Event"
               href="#collapse-Event" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Event" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>applicationName</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application name of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>entity</td>
                    <td>
                        <a href="#entity">Entity</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>url</td>
                    <td>
                        
                        string
                    </td>
                    <td>The url of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>applicationId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application UUID of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>parameters</td>
                    <td>
                        
                        string
                    </td>
                    <td>The parameters of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>organization</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the organization.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-wnqxopkwwz">/{orgId}/{appId}/events</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="group"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Group
            <a data-toggle="collapse" data-target="#collapse-Group"
               href="#collapse-Group" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Group" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>
                        
                        string
                    </td>
                    <td>The type of the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>created</td>
                    <td>
                        
                        string
                    </td>
                    <td>The created Id for the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>modified</td>
                    <td>
                        
                        string
                    </td>
                    <td>The modified Id for the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>path</td>
                    <td>
                        
                        string
                    </td>
                    <td>The path of the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadata</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>title</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the group.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-1yb8oe6y0s">/{org_Id}/{app_Id}/groups/{groupId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-theoah23fu">/{org_Id}/{app_Id}/groups/{groupId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ahwwobry7b">/{orgId}/{appId}/groups</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="logincredentials"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">LoginCredentials
            <a data-toggle="collapse" data-target="#collapse-LoginCredentials"
               href="#collapse-LoginCredentials" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-LoginCredentials" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>grant_type</td>
                    <td>
                        
                        string
                    </td>
                    <td>Grant-type must be &#39;password&#39; or &#39;client_credentials&#39;.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td>Username of user attempting login, required only if grant_type is &#39;password&#39;.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>password</td>
                    <td>
                        
                        string
                    </td>
                    <td>Password of user attempting login, required only if grant_type is &#39;password&#39;.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>client_id</td>
                    <td>
                        
                        string
                    </td>
                    <td>Client-ID portion of credentials, required only if grant_type is &#39;client_credentials&#39;.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>client_secret</td>
                    <td>
                        
                        string
                    </td>
                    <td>Client-Secret portion of credentials, required only if grant_type is &#39;client_credentials&#39;.</td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-jltfzperrd">/management/token</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pf4k08eh6b">/{orgId}/{appId}/token</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="notification"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Notification
            <a data-toggle="collapse" data-target="#collapse-Notification"
               href="#collapse-Notification" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Notification" class="panel-body collapse">
        
        <p>Represents a Push Notification that is either scheduled, finished or cancelled.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>Unique entity Id.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>
                        
                        string
                    </td>
                    <td>Type of entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>created</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was created.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>modified</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was last modified.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>payloads</td>
                    <td>
                        
                        string
                    </td>
                    <td>The push notifications to be delivered.</td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>errorMessage</td>
                    <td>
                        
                        string
                    </td>
                    <td>Error message returned by the notification service (APNs or GCM) if the notification fails entirely.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>scheduled</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Whether the notification is currently scheduled for delivery.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>state</td>
                    <td>
                        
                        string
                    </td>
                    <td>The current delivery status of the notification &#39;FINISHED&#39;, &#39;SCHEDULED&#39; or &#39;CANCELED&#39;.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadata</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-icufrwozlt">/{orgId}/{applicationId}/devices</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-kd9yvryvuo">/{orgId}/{applicationId}/devices/{deviceId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-eaayzms3bs">/{orgId}/{applicationId}/devices/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-agrod0oatq">/{orgId}/{applicationId}/groups/{path}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pirmrjnltl">/{orgId}/{applicationId}/{receiptId}/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-kvvxeyt4ac">/{orgId}/{applicationId}/notifications/{notificationId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-uiar9izp1w">/{orgId}/{applicationId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-olgda8yl8e">/{orgId}/{applicationId}/notifications/{notificationId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-aw0uwxfth7">/{orgId}/{applicationId}/users/{userId}/notifications</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="notificationupdate"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">NotificationUpdate
            <a data-toggle="collapse" data-target="#collapse-NotificationUpdate"
               href="#collapse-NotificationUpdate" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-NotificationUpdate" class="panel-body collapse">
        
        <p>Represents fields that may be updated on a Notification to cause changes in Push Notification processing.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>canceled</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Setting this field to true will cancel a Notification, if it has not yet been sent.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>deliver</td>
                    <td>
                        
                        number
                    </td>
                    <td>Specifies the UNIX timestamp time at which the Notification should be sent.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>expired</td>
                    <td>
                        
                        number
                    </td>
                    <td>Specifies the UNIX timestamp time at which this Notification has expired.</td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-olgda8yl8e">/{orgId}/{applicationId}/notifications/{notificationId}</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="organization"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Organization
            <a data-toggle="collapse" data-target="#collapse-Organization"
               href="#collapse-Organization" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Organization" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>applicationId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application Id of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td>The username of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td>The email of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>activated</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the account is activated or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>disabled</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the account is disabled or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>adminUser</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the use is a adminUser or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>displayEmail</td>
                    <td>
                        
                        string
                    </td>
                    <td>The display of the email of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>htmldisplayEmail</td>
                    <td>
                        
                        string
                    </td>
                    <td>The HTML display of the email of the owner.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>orgname</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the organization.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>orguuId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the organization.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>applicationdata</td>
                    <td>
                        <a href="#appdata">AppData</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-qtkpsiex1b">/management/orgs</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-0xiial2hla">/management/orgs/{orgId}</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="permissions"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Permissions
            <a data-toggle="collapse" data-target="#collapse-Permissions"
               href="#collapse-Permissions" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Permissions" class="panel-body collapse">
        
        <p>Represents a set of Permissions associated with a User or a Role, each being a Usergrid Permission String.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>application</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the associated application.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>applicationName</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the associated application.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>organization</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of the associated organization.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>data</td>
                    <td>
                        
                        array
                    </td>
                    <td>Array of strings each being a Usergrid Permission String.</td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-ltsfjpk6ah">/{orgId}/{applicationId}/roles/{roleId}/permissions</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-orp159cy9o">/{orgId}/{appId}/roles/{roleId}/permissions</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-uabhhajjkc">/{orgId}/{applicationId}/roles/{roleId}/permissions</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="receipt"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Receipt
            <a data-toggle="collapse" data-target="#collapse-Receipt"
               href="#collapse-Receipt" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Receipt" class="panel-body collapse">
        
        <p>Represents response received from Notification service indicating success or failure.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>Unique entity Id.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>
                        
                        string
                    </td>
                    <td>Type of entity.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>created</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was created.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>modified</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds of when the entity was last modified.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>payloads</td>
                    <td>
                        
                        string
                    </td>
                    <td>The push notifications to be delivered.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>errorMessage</td>
                    <td>
                        
                        string
                    </td>
                    <td>Error message returned by the notification service (APNs or GCM) if the notification fails entirely.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>errorCode</td>
                    <td>
                        
                        string
                    </td>
                    <td>Error code returned by the notification service.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>sent</td>
                    <td>
                        
                        number
                    </td>
                    <td>UTC timestamp in milliseconds for when the notification was sent.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>metadata</td>
                    <td>
                        <a href="#metadata">Metadata</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-ncdxrkaoo0">/{orgId}/{applicationId}/{notificationId}/*/receipts</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-5gnb0cdb4l">/{orgId}/{applicationId}/receipts</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-keyhzudnpa">/{orgId}/{applicationId}/{deviceId}/*/receipts</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="resetpw"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">ResetPW
            <a data-toggle="collapse" data-target="#collapse-ResetPW"
               href="#collapse-ResetPW" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-ResetPW" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>password</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>newpassword</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-atwo87tjks">/{orgId}/{appId}/users/{user}/password</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-nghoyv2wcb">/management/users/{userId}/password</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="resetpwmsg"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">ResetPWMsg
            <a data-toggle="collapse" data-target="#collapse-ResetPWMsg"
               href="#collapse-ResetPWMsg" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-ResetPWMsg" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>recaptcha_response</td>
                    <td>
                        
                        string
                    </td>
                    <td>Parameters and value for the Captcha challenge.</td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>recaptcha_challenge</td>
                    <td>
                        
                        string
                    </td>
                    <td>The admin user&#39;s response to the Captcha challenge.</td>
                    <td>true</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>true</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-hdejths3zf">/management/users/resetpw</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="role"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Role
            <a data-toggle="collapse" data-target="#collapse-Role"
               href="#collapse-Role" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Role" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>applicationName</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application name of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>count</td>
                    <td>
                        
                        number
                    </td>
                    <td>The numebr of the roles.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>entity</td>
                    <td>
                        <a href="#entity">Entity</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>url</td>
                    <td>
                        
                        string
                    </td>
                    <td>The url of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>applicationId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application UUID of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>parameters</td>
                    <td>
                        
                        string
                    </td>
                    <td>The parameters of the event.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>organization</td>
                    <td>
                        
                        string
                    </td>
                    <td>The title of the organization.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>path</td>
                    <td>
                        
                        string
                    </td>
                    <td>The path of the role.</td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-uu16219kmh">/{orgId}/{appId}/roles</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-drrh5vkpo3">/{orgId}/{appId}/roles/{rolename}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-gxzpvnjad6">/{orgId}/{appId}/roles</a></p></td>
            </tr>
        </table>


    </div>
    
</div>



<div>
    <a name="user"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">User
            <a data-toggle="collapse" data-target="#collapse-User"
               href="#collapse-User" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-User" class="panel-body collapse">
        
        <p>Represents a User account which may be a user within an Application&#39;s User collection, or may be an Admin User.</p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>applicationId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The application Id of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>username</td>
                    <td>
                        
                        string
                    </td>
                    <td>The username of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>
                        
                        string
                    </td>
                    <td>The name of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td>The email of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>activated</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the account is activated or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>disabled</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the account is disabled or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>uuid</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>adminUser</td>
                    <td>
                        
                        boolean
                    </td>
                    <td>Indicate whether the use is a adminUser or not.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>displayEmail</td>
                    <td>
                        
                        string
                    </td>
                    <td>The display of the email of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>htmldisplayEmail</td>
                    <td>
                        
                        string
                    </td>
                    <td>The HTML display of the email of a user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>organization</td>
                    <td>
                        
                        string
                    </td>
                    <td>The organization of the user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>picture</td>
                    <td>
                        
                        string
                    </td>
                    <td>The uri of the user&#39;s picture.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>uri</td>
                    <td>
                        
                        string
                    </td>
                    <td>The uri of the user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>path</td>
                    <td>
                        
                        string
                    </td>
                    <td>The path of the user.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>completeMsg</td>
                    <td>
                        <a href="#action">Action</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>

        <p><b>Referring API Paths</b></p>
        <table width="80%" class="table table-striped">
            <tr>
                <td><p><a href="#op-xo78yrnje9">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-lbof08ngzj">/management/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-x0xfc8kayh">/{orgId}/{appId}/roles/{roleId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-fed3e3rttw">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-0k8ni3xj3d">/management/orgs/{orgId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-u0gzbrduqw">/management/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-vh9ngi9fmx">/management/orgs/{orgId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ndfc9lpvfb">/{orgId}/{appId}/groups/{groupId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-d0g0l32tf1">/{orgId}/{appId}/groups/{groupId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-rjc6xigqey">/{orgId}/{appId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-fy18bp8rme">/{orgId}/{appId}/roles/{roleId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ubyjuplh34">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-e0xzsb83mx">/management/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-auocxo8sbd">/{orgId}/{appId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-eelfcc5vrd">/{orgId}/{appId}/roles/{roleId}/users/{userId}</a></p></td>
            </tr>
        </table>

            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#accesstokenresponse">AccessTokenResponse</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>

<a name='subtypes'></a>
<br><h1>Sub-types Referenced By Models</h1><p>This section lists the properties for sub-types used in Usergrid Default Entities.</p>


<div>
    <a name="collections"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Collections
            <a data-toggle="collapse" data-target="#collapse-Collections"
               href="#collapse-Collections" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Collections" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>activities</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>feed</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>roles</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>users</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>


            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#metadata">Metadata</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="imagemodel"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">ImageModel
            <a data-toggle="collapse" data-target="#collapse-ImageModel"
               href="#collapse-ImageModel" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-ImageModel" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>duration</td>
                    <td>
                        
                        number
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>height</td>
                    <td>
                        
                        number
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>url</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>wIdth</td>
                    <td>
                        
                        integer
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>email</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>


            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#createactivity">CreateActivity</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="metadata"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Metadata
            <a data-toggle="collapse" data-target="#collapse-Metadata"
               href="#collapse-Metadata" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Metadata" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>cursor</td>
                    <td>
                        
                        string
                    </td>
                    <td>The cursor of the metadata.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>path</td>
                    <td>
                        
                        string
                    </td>
                    <td>The path of the metadata.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>sets</td>
                    <td>
                        <a href="#sets">Sets</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>collections</td>
                    <td>
                        <a href="#collections">Collections</a>
                        
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>


            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#receipt">Receipt</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#device">Device</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#notification">Notification</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#notifier">Notifier</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#group">Group</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#entity">Entity</a></p></td>
                    </tr>
                    <tr>
                        <td><p><a href="#activityfeed">ActivityFeed</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="object"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Object
            <a data-toggle="collapse" data-target="#collapse-Object"
               href="#collapse-Object" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Object" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>displayname</td>
                    <td>
                        
                        string
                    </td>
                    <td>The display of the name of the object.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>objecttype</td>
                    <td>
                        
                        string
                    </td>
                    <td>The type of the object.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>objectuuId</td>
                    <td>
                        
                        string
                    </td>
                    <td>The UUID of the object.</td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>entitytype</td>
                    <td>
                        
                        string
                    </td>
                    <td>The entitytype of the object.</td>
                    <td>false</td>
                </tr>
        </table>


            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#activityfeed">ActivityFeed</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>



<div>
    <a name="sets"/>
</div>

<div class="panel panel-default">
    
    <div class="panel-heading">
        <h2 class="panel-title model-heading">Sets
            <a data-toggle="collapse" data-target="#collapse-Sets"
               href="#collapse-Sets" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="collapse-Sets" class="panel-body collapse">
        
        <p></p>
        
        <p><b>Properties</b></p>

        <table width="80%" class="table table-striped">
            <tr>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                <th>Required</th>
            </tr>
                <tr>
                    <td>rolenames</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
                <tr>
                    <td>permissions</td>
                    <td>
                        
                        string
                    </td>
                    <td></td>
                    <td>false</td>
                </tr>
        </table>


            <p><b>Referring Definitions</b></p>
            <table width="80%" class="table table-striped">
                    <tr>
                        <td><p><a href="#metadata">Metadata</a></p></td>
                    </tr>
            </table>

    </div>
    
</div>


    </div>
    <div class="col-md-1"></div>
</div>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    
<script>
if ("onhashchange" in window) {
    window.onhashchange = function () {
        var hash = window.location.hash;
        if ( hash.substring(0,1) != "/") {
            hash = hash.substring(1, hash.length);

            $("#collapse-" + hash).removeClass("collapse");
            $("a[href=#collapse-" + hash + "]").removeClass("collapsed");

            $("#" + hash).removeClass("collapse");
            $("a[href=#" + hash + "]").removeClass("collapsed");
        }
    }
}
</script>

</body>
</html>
