<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-btsitegtrh"/>

<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-btsitegtrh"
                href="#op-btsitegtrh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-btsitegtrh" 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-t4ocjnsyz8"/>

<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-t4ocjnsyz8"
                href="#op-t4ocjnsyz8" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-t4ocjnsyz8" 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-dfve8kcg6g"/>

<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-dfve8kcg6g"
                href="#op-dfve8kcg6g" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-dfve8kcg6g" 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-k5ejbehtxs"/>

<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-k5ejbehtxs"
                href="#op-k5ejbehtxs" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-k5ejbehtxs" 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-icgog4nkau"/>

<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-icgog4nkau"
                href="#op-icgog4nkau" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-icgog4nkau" 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-vmhwjj44qe"/>

<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-vmhwjj44qe"
                href="#op-vmhwjj44qe" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-vmhwjj44qe" 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-spjyhghuw8"/>

<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-spjyhghuw8"
                href="#op-spjyhghuw8" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-spjyhghuw8" 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-dqil35d7ud"/>

<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-dqil35d7ud"
                href="#op-dqil35d7ud" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-dqil35d7ud" 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-e77g5zf6fy"/>

<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-e77g5zf6fy"
                href="#op-e77g5zf6fy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-e77g5zf6fy" 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-sr5fgjhkip"/>

<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-sr5fgjhkip"
                href="#op-sr5fgjhkip" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-sr5fgjhkip" 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-yctaj3leke"/>

<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-yctaj3leke"
                href="#op-yctaj3leke" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-yctaj3leke" 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-hut5cafexy"/>

<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-hut5cafexy"
                href="#op-hut5cafexy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-hut5cafexy" 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-cc4zc1bydb"/>

<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-cc4zc1bydb"
                href="#op-cc4zc1bydb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cc4zc1bydb" 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-admsyogfgf"/>

<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-admsyogfgf"
                href="#op-admsyogfgf" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-admsyogfgf" 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-nqcr07jl83"/>

<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-nqcr07jl83"
                href="#op-nqcr07jl83" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-nqcr07jl83" 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-noqqfqlfui"/>

<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-noqqfqlfui"
                href="#op-noqqfqlfui" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-noqqfqlfui" 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-r0q06ycij7"/>

<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-r0q06ycij7"
                href="#op-r0q06ycij7" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-r0q06ycij7" 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-5yjiiwb43n"/>

<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-5yjiiwb43n"
                href="#op-5yjiiwb43n" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-5yjiiwb43n" 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-zoqzep0sif"/>

<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-zoqzep0sif"
                href="#op-zoqzep0sif" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-zoqzep0sif" 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-ikjphytats"/>

<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-ikjphytats"
                href="#op-ikjphytats" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ikjphytats" 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-1ymevpopb8"/>

<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-1ymevpopb8"
                href="#op-1ymevpopb8" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-1ymevpopb8" 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-cdeyizymvp"/>

<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-cdeyizymvp"
                href="#op-cdeyizymvp" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cdeyizymvp" 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-usj9xglo7k"/>

<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-usj9xglo7k"
                href="#op-usj9xglo7k" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-usj9xglo7k" 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-8jtcgsqhjf"/>

<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-8jtcgsqhjf"
                href="#op-8jtcgsqhjf" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-8jtcgsqhjf" 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-d4nfckj3sk"/>

<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-d4nfckj3sk"
                href="#op-d4nfckj3sk" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-d4nfckj3sk" 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-cohn5ux09m"/>

<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-cohn5ux09m"
                href="#op-cohn5ux09m" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cohn5ux09m" 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-jbgkjjavya"/>

<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-jbgkjjavya"
                href="#op-jbgkjjavya" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-jbgkjjavya" 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-eewcg3ywpw"/>

<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-eewcg3ywpw"
                href="#op-eewcg3ywpw" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-eewcg3ywpw" 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-kqwjpxp8o6"/>

<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-kqwjpxp8o6"
                href="#op-kqwjpxp8o6" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-kqwjpxp8o6" 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-kwuf6oivbn"/>

<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-kwuf6oivbn"
                href="#op-kwuf6oivbn" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-kwuf6oivbn" 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-qq4um8g2os"/>

<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-qq4um8g2os"
                href="#op-qq4um8g2os" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qq4um8g2os" 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-2w2xhovuyw"/>

<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-2w2xhovuyw"
                href="#op-2w2xhovuyw" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-2w2xhovuyw" 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-pk6pbeh8nf"/>

<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-pk6pbeh8nf"
                href="#op-pk6pbeh8nf" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pk6pbeh8nf" 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-oc6rgbvyxm"/>

<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-oc6rgbvyxm"
                href="#op-oc6rgbvyxm" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-oc6rgbvyxm" 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-w2iqmuzet6"/>

<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-w2iqmuzet6"
                href="#op-w2iqmuzet6" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-w2iqmuzet6" 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-snjvibfbrr"/>

<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-snjvibfbrr"
                href="#op-snjvibfbrr" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-snjvibfbrr" 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-zjisbrcekv"/>

<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-zjisbrcekv"
                href="#op-zjisbrcekv" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-zjisbrcekv" 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-orjp8bferq"/>

<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-orjp8bferq"
                href="#op-orjp8bferq" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-orjp8bferq" 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-8o6txsth9q"/>

<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-8o6txsth9q"
                href="#op-8o6txsth9q" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-8o6txsth9q" 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-h1zfghf68a"/>

<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-h1zfghf68a"
                href="#op-h1zfghf68a" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-h1zfghf68a" 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-pwu4a4i8sq"/>

<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-pwu4a4i8sq"
                href="#op-pwu4a4i8sq" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pwu4a4i8sq" 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-wgwriuxc9p"/>

<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-wgwriuxc9p"
                href="#op-wgwriuxc9p" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-wgwriuxc9p" 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-avlj79sdd7"/>

<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-avlj79sdd7"
                href="#op-avlj79sdd7" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-avlj79sdd7" 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-cy2ouku17g"/>

<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-cy2ouku17g"
                href="#op-cy2ouku17g" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cy2ouku17g" 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-sylj0iwizh"/>

<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-sylj0iwizh"
                href="#op-sylj0iwizh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-sylj0iwizh" 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-uftlxo8yi9"/>

<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-uftlxo8yi9"
                href="#op-uftlxo8yi9" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-uftlxo8yi9" 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-yghye1vvxq"/>

<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-yghye1vvxq"
                href="#op-yghye1vvxq" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-yghye1vvxq" 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-kqo6ihd52l"/>

<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-kqo6ihd52l"
                href="#op-kqo6ihd52l" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-kqo6ihd52l" 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-vkdmtxhmdy"/>

<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-vkdmtxhmdy"
                href="#op-vkdmtxhmdy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-vkdmtxhmdy" 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-ejlvxzzomi"/>

<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-ejlvxzzomi"
                href="#op-ejlvxzzomi" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ejlvxzzomi" 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-21yof8dlkl"/>

<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-21yof8dlkl"
                href="#op-21yof8dlkl" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-21yof8dlkl" 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-pv3v9s7chb"/>

<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-pv3v9s7chb"
                href="#op-pv3v9s7chb" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pv3v9s7chb" 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-c1mjtugrcz"/>

<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-c1mjtugrcz"
                href="#op-c1mjtugrcz" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-c1mjtugrcz" 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-9ey5jqdgnn"/>

<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-9ey5jqdgnn"
                href="#op-9ey5jqdgnn" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-9ey5jqdgnn" 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-qjkjukmuvi"/>

<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-qjkjukmuvi"
                href="#op-qjkjukmuvi" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-qjkjukmuvi" 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-u1zsy86f2p"/>

<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-u1zsy86f2p"
                href="#op-u1zsy86f2p" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-u1zsy86f2p" 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-mge69wpnfs"/>

<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-mge69wpnfs"
                href="#op-mge69wpnfs" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-mge69wpnfs" 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-gxhyq1hnsh"/>

<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-gxhyq1hnsh"
                href="#op-gxhyq1hnsh" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-gxhyq1hnsh" 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-6d5kbhcvgf"/>

<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-6d5kbhcvgf"
                href="#op-6d5kbhcvgf" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-6d5kbhcvgf" 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-xcyrwdgzur"/>

<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-xcyrwdgzur"
                href="#op-xcyrwdgzur" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-xcyrwdgzur" 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-jtrjmnqlio"/>

<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-jtrjmnqlio"
                href="#op-jtrjmnqlio" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-jtrjmnqlio" 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-n5slxoljrq"/>

<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-n5slxoljrq"
                href="#op-n5slxoljrq" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-n5slxoljrq" 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-of9xdoaq3p"/>

<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-of9xdoaq3p"
                href="#op-of9xdoaq3p" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-of9xdoaq3p" 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-pf7tryjwth"/>

<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-pf7tryjwth"
                href="#op-pf7tryjwth" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-pf7tryjwth" 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-1yruqs6snp"/>

<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-1yruqs6snp"
                href="#op-1yruqs6snp" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-1yruqs6snp" 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-nt1km4q5wk"/>

<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-nt1km4q5wk"
                href="#op-nt1km4q5wk" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-nt1km4q5wk" 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-geeqs02fcy"/>

<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-geeqs02fcy"
                href="#op-geeqs02fcy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-geeqs02fcy" 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-cjjscvmrdy"/>

<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-cjjscvmrdy"
                href="#op-cjjscvmrdy" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-cjjscvmrdy" 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-ri5bwaihgc"/>

<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-ri5bwaihgc"
                href="#op-ri5bwaihgc" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-ri5bwaihgc" 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-xj4utfhdcj"/>

<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-xj4utfhdcj"
                href="#op-xj4utfhdcj" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-xj4utfhdcj" 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-tvxrhrob0o"/>

<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-tvxrhrob0o"
                href="#op-tvxrhrob0o" class="collapsed collapse-button"> </a>
        </h2>
    </div>
    
    <div id="op-tvxrhrob0o" 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-t4ocjnsyz8">/{orgId}/{appId}/token</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-btsitegtrh">/management/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-jtrjmnqlio">/management/orgs/{orgId}/reactivate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-cc4zc1bydb">/management/users/{userId}/activate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-nqcr07jl83">/management/users/{userId}/reactivate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-c1mjtugrcz">/management/orgs/{orgId}/activate</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-admsyogfgf">/management/users/{userId}/password</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-e77g5zf6fy">/management/users/resetpw</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-1ymevpopb8">/{orgId}/{appId}/users/{user}/password</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-icgog4nkau">/{orgId}/{appId}/users/{userId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-k5ejbehtxs">/{orgId}/{appId}/users/{userId}/activities</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-xcyrwdgzur">/management/orgs/{orgId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-n5slxoljrq">/management/users/{userId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-dfve8kcg6g">/{orgId}/{appId}/groups/{groupId}/feed</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pk6pbeh8nf">/{orgId}/{appId}/groups/{groupId}/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-pf7tryjwth">/{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-qjkjukmuvi">/management/orgs/{orgId}/apps/{appId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-9ey5jqdgnn">/management/orgs/{orgId}/apps</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-k5ejbehtxs">/{orgId}/{appId}/users/{userId}/activities</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pk6pbeh8nf">/{orgId}/{appId}/groups/{groupId}/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-dqil35d7ud">/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-kwuf6oivbn">/{orgId}/{appId}/{entitytype}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-eewcg3ywpw">/{orgId}/{appId}/{collectionId}/{entityId}</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-qq4um8g2os">/{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-2w2xhovuyw">/{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-pwu4a4i8sq">/{orgId}/{applicationId}/groups/{path}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-h1zfghf68a">/{orgId}/{applicationId}/devices/{deviceId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-8o6txsth9q">/{orgId}/{applicationId}/devices/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-uftlxo8yi9">/{orgId}/{applicationId}/users/{userId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-orjp8bferq">/{orgId}/{applicationId}/devices</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-21yof8dlkl">/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-r0q06ycij7">/{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-u1zsy86f2p">/management/orgs/{orgId}/apps/{appId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-6d5kbhcvgf">/management/orgs/{orgId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-gxhyq1hnsh">/management/orgs/{orgId}/credentials</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-mge69wpnfs">/management/orgs/{orgId}/apps/{appId}/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-kqo6ihd52l">/{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-cdeyizymvp">/{orgId}/{appId}/users/{userId}/{relation}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-8jtcgsqhjf">/{orgId}/{appId}/{collectionId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-jbgkjjavya">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-kwuf6oivbn">/{orgId}/{appId}/{entitytype}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-usj9xglo7k">/{orgId}/{appId}/{collectionId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-cohn5ux09m">/{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-eewcg3ywpw">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-kqwjpxp8o6">/{orgId}/{appId}/{collectionId}/{entityId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-d4nfckj3sk">/{orgId}/{appId}/{collectionId}/{entityId1}/{relation}/{entityId2}</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-qq4um8g2os">/{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-snjvibfbrr">/{org_Id}/{app_Id}/groups/{groupId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-2w2xhovuyw">/{orgId}/{appId}/groups</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-zjisbrcekv">/{org_Id}/{app_Id}/groups/{groupId}</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-t4ocjnsyz8">/{orgId}/{appId}/token</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-btsitegtrh">/management/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-wgwriuxc9p">/{orgId}/{applicationId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pwu4a4i8sq">/{orgId}/{applicationId}/groups/{path}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-cy2ouku17g">/{orgId}/{applicationId}/notifications/{notificationId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-h1zfghf68a">/{orgId}/{applicationId}/devices/{deviceId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-8o6txsth9q">/{orgId}/{applicationId}/devices/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-avlj79sdd7">/{orgId}/{applicationId}/notifications/{notificationId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ejlvxzzomi">/{orgId}/{applicationId}/{receiptId}/*/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-uftlxo8yi9">/{orgId}/{applicationId}/users/{userId}/notifications</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-orjp8bferq">/{orgId}/{applicationId}/devices</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-avlj79sdd7">/{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-21yof8dlkl">/management/orgs</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-pv3v9s7chb">/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-tvxrhrob0o">/{orgId}/{applicationId}/roles/{roleId}/permissions</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-1yruqs6snp">/{orgId}/{appId}/roles/{roleId}/permissions</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-xj4utfhdcj">/{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-vkdmtxhmdy">/{orgId}/{applicationId}/{notificationId}/*/receipts</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-sylj0iwizh">/{orgId}/{applicationId}/receipts</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-yghye1vvxq">/{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-admsyogfgf">/management/users/{userId}/password</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-1ymevpopb8">/{orgId}/{appId}/users/{user}/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-sr5fgjhkip">/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-pf7tryjwth">/{orgId}/{appId}/roles</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ri5bwaihgc">/{orgId}/{appId}/roles/{rolename}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-of9xdoaq3p">/{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-r0q06ycij7">/{orgId}/{appId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-spjyhghuw8">/management/orgs/{orgId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-zoqzep0sif">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-ikjphytats">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-dqil35d7ud">/management/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-vmhwjj44qe">/management/orgs/{orgId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-5yjiiwb43n">/{orgId}/{appId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-oc6rgbvyxm">/{orgId}/{appId}/groups/{groupId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-yctaj3leke">/management/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-w2iqmuzet6">/{orgId}/{appId}/groups/{groupId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-nt1km4q5wk">/{orgId}/{appId}/roles/{roleId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-hut5cafexy">/management/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-geeqs02fcy">/{orgId}/{appId}/roles/{roleId}/users/{userId}</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-noqqfqlfui">/{orgId}/{appId}/users</a></p></td>
            </tr>
            <tr>
                <td><p><a href="#op-cjjscvmrdy">/{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>
