---
title: "Application"
description: "Application Data Store manages configuration, user registration, settings, email services, and more. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/reference/types/application"
---

# <a id="top"></a>Application

A Data Store

1.  [Platform](/documentation/gitana/4.0/reference/types/platform.md)
2.  [Application](/documentation/gitana/4.0/reference/types/application.md)

##### Table of Contents

- [Overview](#top "Overview")
- [Parent](#parent "Parent")
- [Objects](#objects "Objects")
- [Properties](#properties "Properties")
- [Methods](#methods "Methods")
- [Schema](#schema "Schema")

An Application is a Data Store where you can store configuration related to your mobile, touch or web application.

An Application Data Store provides services and objects that you may choose to use to provide functionality and manage state for your application. This includes:

- User Registration
- Sign Up, Confirmation Emails
- Email Services
- Settings and Configuration storage
- Page Layout and Module assignment

> **Note:** Drop in one of our language drivers to accelerate your development.  
> Here are links to some of our popular [Cookbooks](/documentation/gitana/4.0/developers/cookbooks/overview.md) to help you get started!
> 
> - [C#](/documentation/gitana/4.0/developers/cookbooks/csharp.md)
> - [Go](/documentation/gitana/4.0/developers/cookbooks/go.md)
> - [Java](/documentation/gitana/4.0/developers/cookbooks/java.md)
> - [JavaScript](/documentation/gitana/4.0/developers/cookbooks/javascript2.md)
> - [PHP](/documentation/gitana/4.0/developers/cookbooks/php.md)
> - [Python](/documentation/gitana/4.0/developers/cookbooks/python.md)
> - [Ruby](/documentation/gitana/4.0/developers/cookbooks/ruby.md)

## <a id="parent"></a>Parent

This Application is contained within a [Platform](/documentation/gitana/4.0/reference/types/platform.md).

## <a id="objects"></a>Objects

This Application contains the following objects:

- [Registration](/documentation/gitana/4.0/reference/types/registration.md)
- [Email Provider](/documentation/gitana/4.0/reference/types/emailProvider.md)
- [Email](/documentation/gitana/4.0/reference/types/email.md)
- [Settings](/documentation/gitana/4.0/reference/types/settings.md)
- [Deployed Application](/documentation/gitana/4.0/reference/types/deployedApplication.md)

## <a id="properties"></a>Properties

The following properties are available:

| Property | Type | Default | Read-Only | Description |
| --- | --- | --- | --- | --- |
| \_doc | string |  | No | The primary ID |
| \_system | object |  | No | Metadata maintained by the system |
| applicationType | string |  | No | The type of application |
| binaryStorageProviderType | string |  | No | The type identifier for the binary storage provider that backs this data store |
| datastoreId | string |  | Yes | The ID of the data store |
| datastoreTypeId | string |  | Yes | The data store type identifier |
| deployments | object |  | No |  |
| description | string |  | No | A description of the data store |
| enableAuthorities | boolean | true | No | Whether to check access control rights for principals against this data store |
| key | string |  | No | Unique key that serves as an identifier for this application |
| locked | boolean |  | Yes | Whether the data store is presently locked. If the data store is locked, then write operations against it will block. |
| lockedBy | string |  | No | The principal that holds the lock (if the data store is locked) |
| maxsize | number |  | No | The maximum allowed allocation size (on disk) of the data store in bytes. If this size of the data store exceeds this value, write operations will fail. A value of -1 indicates that there is no upper limit. |
| objectcount | number |  | No | The number of objects stored within the data store. This includes system-maintained objects. This value is updated periodically and may not be precise at the moment it is read. |
| public | object |  | No |  |
| size | number |  | Yes | The last-recorded allocation size (on disk) of the data store in bytes. This value is updated periodically and may not be precise at the moment it is read. |
| source | object |  | No |  |
| statisticsDate | object |  | No | Records the time when statistics were last run against the data store. Statistics are run periodically to calculate the data store size and object allocations. |
| statisticsDirty | boolean |  | Yes | Whether writes have occurred against this data store since the last time statistics were run. This signals to the system that statistics need to be collected at the next available opportunity. |
| title | string |  | No | The title of the data store |
| trustedHost | string |  | No | The host for a trusted application |
| trustedScope | string |  | No | The scope identifier for a trusted application |

## <a id="methods"></a>Methods

The following methods are available:

- [Add Team Member](#post-applications-applicationid-teams-teamkey-members-add "Add Team Member")
- [Check Membership](#post-applications-applicationid-teams-teamkey-members-check "Check Membership")
- [Check Permission](#post-applications-applicationid-permissions-permissionid-check "Check Permission")
- [Check Single Authority](#post-applications-applicationid-authorities-authorityid-check "Check Single Authority")
- [Check multiple Authorities](#post-applications-authorities-check "Check multiple Authorities")
- [Check multiple Permissions](#post-applications-permissions-check "Check multiple Permissions")
- [Create Application](#post-applications "Create Application")
- [Create Role](#post-applications-applicationid-roles "Create Role")
- [Create a Team](#post-applications-applicationid-teams "Create a Team")
- [Delete Application](#delete-applications-applicationid "Delete Application")
- [Delete Application](#post-applications-applicationid-delete "Delete Application")
- [Delete Role](#post-applications-applicationid-roles-rolekeyorid-delete "Delete Role")
- [Delete Role](#delete-applications-applicationid-roles-rolekeyorid "Delete Role")
- [Deletes a Team](#delete-applications-applicationid-teams-teamkey "Deletes a Team")
- [Deploy Application](#post-applications-applicationid-deploy-deploymentkey "Deploy Application")
- [Export Application](#post-applications-applicationid-export "Export Application")
- [Gather Statistics](#post-applications-applicationid-stats "Gather Statistics")
- [Get Team](#get-applications-applicationid-teams-teamkey "Get Team")
- [Grant Authority](#post-applications-applicationid-authorities-authorityid-grant "Grant Authority")
- [Grant Authority to Team](#post-applications-applicationid-teams-teamkey-authorities-authorityid-grant "Grant Authority to Team")
- [Import Application](#post-applications-applicationid-import "Import Application")
- [List Applicationtypes](#get-applicationtypes "List Applicationtypes")
- [List Roles](#get-applications-applicationid-roles "List Roles")
- [List Team Authorities](#get-applications-applicationid-teams-teamkey-authorities "List Team Authorities")
- [List Teams](#get-applications-applicationid-teams "List Teams")
- [Lists Application](#get-applications "Lists Application")
- [Lists Team Members](#get-applications-applicationid-teams-teamkey-members "Lists Team Members")
- [Lock Application](#post-applications-applicationid-lock "Lock Application")
- [Queries for Application](#post-applications-query "Queries for Application")
- [Read ACL](#get-applications-applicationid-acl-list "Read ACL")
- [Read ACL for Principal](#get-applications-applicationid-acl "Read ACL for Principal")
- [Read API Keys](#get-applications-applicationid-apikeys "Read API Keys")
- [Read Application](#get-applications-applicationid "Read Application")
- [Read Authorities Report](#post-applications-applicationid-authorities "Read Authorities Report")
- [Read Deployed Application](#get-applications-applicationid-deployed-deploymentkey "Read Deployed Application")
- [Read Deployment API Keys](#get-applications-applicationid-deployments-deploymentkey-apikeys "Read Deployment API Keys")
- [Read Deployment Info](#get-applications-applicationid-deployed-deploymentkey-info "Read Deployment Info")
- [Read Role](#get-applications-applicationid-roles-rolekeyorid "Read Role")
- [Redeploy Application](#post-applications-applicationid-redeploy-deploymentkey "Redeploy Application")
- [Refresh API Keys](#post-applications-applicationid-deployments-deploymentkey-refreshkeys "Refresh API Keys")
- [Remove Team Member](#post-applications-applicationid-teams-teamkey-members-remove "Remove Team Member")
- [Revoke Authority](#post-applications-applicationid-authorities-authorityid-revoke "Revoke Authority")
- [Revoke Authority from Team](#post-applications-applicationid-teams-teamkey-authorities-authorityid-revoke "Revoke Authority from Team")
- [Undeploy Application](#post-applications-applicationid-undeploy-deploymentkey "Undeploy Application")
- [Unlock Application](#post-applications-applicationid-unlock "Unlock Application")
- [Update Application](#put-applications-applicationid "Update Application")
- [Update Application](#post-applications-applicationid-update "Update Application")
- [Update Role](#put-applications-applicationid-roles-rolekeyorid "Update Role")
- [Update Role](#post-applications-applicationid-roles-rolekeyorid-update "Update Role")
- [Update a Team](#put-applications-applicationid-teams-teamkey "Update a Team")

### <a id="post-applications-applicationid-teams-teamkey-members-add"></a>Add Team Member

Adds a principal to a team for an application

POST /applications/{applicationId}/teams/{teamKey}/members/add

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-teams-teamkey-members-check"></a>Check Membership

Checks whether a principal belongs to a team for an application

POST /applications/{applicationId}/teams/{teamKey}/members/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-permissions-permissionid-check"></a>Check Permission

Checks whether an actor has a permission over an application

POST /applications/{applicationId}/permissions/{permissionId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| permissionId | true | string | The ID of the permission |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Check",
  "extends": "status",
  "properties": {
    "check": {
      "type": "boolean"
    },
    "ok": null
  }
}
```

### <a id="post-applications-applicationid-authorities-authorityid-check"></a>Check Single Authority

Checks whether a single authority is granted against the specified application for the given user

POST /applications/{applicationId}/authorities/{authorityId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Check",
  "extends": "status",
  "properties": {
    "check": {
      "type": "boolean"
    },
    "ok": null
  }
}
```

### <a id="post-applications-authorities-check"></a>Check multiple Authorities

Checks whether one or more authorities against the specified application are granted for a given set of users

POST /applications/authorities/check

#### Parameters

This function has no parameters.

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Authorities Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "authorityId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications-permissions-check"></a>Check multiple Permissions

Checks whether multiple actors have permissions over an application

POST /applications/permissions/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| HTTP Payload | true | string | HTTP Payload |

#### Response

```json
{
  "type": "object",
  "description": "List of results for Principals that were Checked",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "permissionId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications"></a>Create Application

Creates a new Application

POST /applications

#### Parameters

This function has no parameters.

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-roles"></a>Create Role

Creates a role for an application

POST /applications/{applicationId}/roles

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| HTTP Payload | true | string | HTTP Payload |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-teams"></a>Create a Team

Creates a team for an application

POST /applications/{applicationId}/teams

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| key | false | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Team",
  "properties": {
    "teamableObjectTypeId": {
      "type": "string",
      "readonly": true
    },
    "teamableObjectId": {
      "type": "string",
      "readonly": true
    },
    "key": {
      "type": "string"
    },
    "groupId": {
      "type": "string"
    },
    "groupDomainId": {
      "type": "string"
    },
    "roleKeys": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="delete-applications-applicationid"></a>Delete Application

Deletes an existing Application

DELETE /applications/{applicationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-delete"></a>Delete Application

Deletes an existing Application

POST /applications/{applicationId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-roles-rolekeyorid-delete"></a>Delete Role

Deletes a role for an application

POST /applications/{applicationId}/roles/{roleKeyOrId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| roleKeyOrId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-applications-applicationid-roles-rolekeyorid"></a>Delete Role

Deletes a role for an application

DELETE /applications/{applicationId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| roleKeyOrId | true | string |  |
| HTTP Payload | true | string | HTTP Payload |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-applications-applicationid-teams-teamkey"></a>Deletes a Team

Deletes a team for an application

DELETE /applications/{applicationId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-deploy-deploymentkey"></a>Deploy Application

Deploys an application

POST /applications/{applicationId}/deploy/{deploymentKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Deployed Application",
  "properties": {
    "applicationId": {
      "type": "string"
    },
    "deploymentKey": {
      "type": "string"
    },
    "deploymentWebhost": {
      "type": "string"
    },
    "host": {
      "type": "string"
    },
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-applications-applicationid-export"></a>Export Application

Starts an export job for this resource

POST /applications/{applicationId}/export

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Export Configuration",
  "properties": {
    "startDate": {
      "type": "object",
      "description": "Only include objects whose modification date is after this time (epoch millis). This is used for partial or rolling exports."
    },
    "endDate": {
      "type": "object",
      "description": "Only include objects whose modification date is before this time (epoch millis). This is used for partial or rolling exports."
    },
    "startChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or beyond the specified changeset."
    },
    "endChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or before the specified changeset."
    },
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during export."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during export."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during export."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during export."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during export."
    },
    "artifactDependencies": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "artifactIncludes": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "forceIncludes": {
      "type": "boolean"
    }
  }
}
```

### <a id="post-applications-applicationid-stats"></a>Gather Statistics

Gathers statistics for an application

POST /applications/{applicationId}/stats

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="get-applications-applicationid-teams-teamkey"></a>Get Team

Reads a team for this application

GET /applications/{applicationId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Team",
  "properties": {
    "teamableObjectTypeId": {
      "type": "string",
      "readonly": true
    },
    "teamableObjectId": {
      "type": "string",
      "readonly": true
    },
    "key": {
      "type": "string"
    },
    "groupId": {
      "type": "string"
    },
    "groupDomainId": {
      "type": "string"
    },
    "roleKeys": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-applications-applicationid-authorities-authorityid-grant"></a>Grant Authority

Grants an authority against the specified application to a given user

POST /applications/{applicationId}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-teams-teamkey-authorities-authorityid-grant"></a>Grant Authority to Team

Grants an authority to a team for an application

POST /applications/{applicationId}/teams/{teamKey}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| authorityId | true | string | The ID or authority key for the authority |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-import"></a>Import Application

Starts an import job for this resource

POST /applications/{applicationId}/import

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Import Configuration",
  "properties": {
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during import."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during import."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during import."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during import."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during import."
    },
    "strategy": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": "CLONE",
      "description": "Either CLONE or COPY_EVERYTHING. Use CLONE to keep the same IDs on import. Use COPY_EVERYTHING to generate all new IDs for all entries on every import."
    },
    "substitutions": {
      "type": "string"
    }
  }
}
```

### <a id="get-applicationtypes"></a>List Applicationtypes

GET /applicationtypes

#### Parameters

This function has no parameters.

### <a id="get-applications-applicationid-roles"></a>List Roles

Lists the roles for an application

GET /applications/{applicationId}/roles

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| inherited | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-teams-teamkey-authorities"></a>List Team Authorities

Lists the authorities that an team is granted

GET /applications/{applicationId}/teams/{teamKey}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |

#### Response

```json
{
  "$ref": "#/components/schemas/authoritieslist"
}
```

### <a id="get-applications-applicationid-teams"></a>List Teams

Lists all of the teams for an application

GET /applications/{applicationId}/teams

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_team"
      }
    }
  }
}
```

### <a id="get-applications"></a>Lists Application

Retrieves a list of Application instances

GET /applications

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_application"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-teams-teamkey-members"></a>Lists Team Members

Lists the members of a team for this application

GET /applications/{applicationId}/teams/{teamKey}/members

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_domainprincipal"
      }
    }
  }
}
```

### <a id="post-applications-applicationid-lock"></a>Lock Application

Locks an application

POST /applications/{applicationId}/lock

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-query"></a>Queries for Application

Queries for instances of type Application

POST /applications/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_application"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-acl-list"></a>Read ACL

Read the Access Control List for the specified application

GET /applications/{applicationId}/acl/list

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of ACL entries",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_doc": {
            "type": "string",
            "title": "Principal ID"
          },
          "name": {
            "type": "string",
            "title": "Principal Name"
          },
          "type": {
            "type": "string",
            "title": "Principal Type"
          },
          "domainId": {
            "type": "string"
          },
          "domainQualifiedId": {
            "type": "string"
          },
          "domainQualifiedName": {
            "type": "string"
          },
          "principalId": {
            "type": "string",
            "title": "Principal ID"
          },
          "userEmail": {
            "type": "string"
          },
          "userFirstName": {
            "type": "string"
          },
          "userLastName": {
            "type": "string"
          },
          "authorities": {
            "type": "array",
            "title": "Authorities",
            "items": {
              "type": "string",
              "title": "Authority Key"
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-acl"></a>Read ACL for Principal

Read the Access Control List for the specified application and the given principal

GET /applications/{applicationId}/acl

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of Authority Keys",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Authority Key"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-apikeys"></a>Read API Keys

Retrieves the API Keys information for an application deployment

GET /applications/{applicationId}/apikeys

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

### <a id="get-applications-applicationid"></a>Read Application

Reads an instance of a Application

GET /applications/{applicationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Application",
  "extends": "datastore",
  "container": "platform",
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique key that serves as an identifier for this application"
    },
    "applicationType": {
      "type": "string",
      "enum": [
        "web",
        "trusted"
      ],
      "description": "The type of application"
    },
    "trustedScope": {
      "type": "string",
      "enum": [
        "webdav",
        "ftp",
        "cmis"
      ],
      "description": "The scope identifier for a trusted application"
    },
    "trustedHost": {
      "type": "string",
      "description": "The host for a trusted application"
    },
    "deployments": {
      "type": "object",
      "properties": {
        "webhost": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "clientId": {
          "type": "string"
        },
        "authGrantId": {
          "type": "string"
        },
        "baseURL": {
          "type": "string"
        }
      }
    },
    "source": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        },
        "public": {
          "type": "boolean"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "public": {
      "type": "object",
      "properties": {
        "runAsPrincipalId": {
          "type": "string"
        },
        "emailProviderId": {
          "type": "string"
        },
        "userDomainId": {
          "type": "string"
        },
        "tenantRegistrarId": {
          "type": "string"
        }
      }
    },
    "title": null,
    "description": null,
    "datastoreId": null,
    "datastoreTypeId": null,
    "enableAuthorities": null,
    "size": null,
    "maxsize": null,
    "objectcount": null,
    "locked": null,
    "lockedBy": null,
    "statisticsDate": null,
    "statisticsDirty": null,
    "binaryStorageProviderType": null,
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-applications-applicationid-authorities"></a>Read Authorities Report

Read the Authorities Report for the specified application

POST /applications/{applicationId}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Authority Report",
  "properties": {
    "principalId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "object",
          "properties": {
            "role-key": {
              "type": "string"
            },
            "principal": {
              "type": "string"
            },
            "permissioned": {
              "type": "string"
            },
            "inheritsFrom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "principal": {
                  "type": "string"
                },
                "permissioned": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-deployed-deploymentkey"></a>Read Deployed Application

Looks up a deployed application

GET /applications/{applicationId}/deployed/{deploymentKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Deployed Application",
  "properties": {
    "applicationId": {
      "type": "string"
    },
    "deploymentKey": {
      "type": "string"
    },
    "deploymentWebhost": {
      "type": "string"
    },
    "host": {
      "type": "string"
    },
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="get-applications-applicationid-deployments-deploymentkey-apikeys"></a>Read Deployment API Keys

Retrieves the API Keys information for all deployments of an application

GET /applications/{applicationId}/deployments/{deploymentKey}/apikeys

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

### <a id="get-applications-applicationid-deployed-deploymentkey-info"></a>Read Deployment Info

Retrieved deployment info for a deployed application

GET /applications/{applicationId}/deployed/{deploymentKey}/info

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Remote deployment info",
  "properties": {}
}
```

### <a id="get-applications-applicationid-roles-rolekeyorid"></a>Read Role

Reads a role for an application

GET /applications/{applicationId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| roleKeyOrId | true | string |  |
| inherited | false | string |  |

#### Response

```json
{
  "$ref": "#/components/schemas/"
}
```

### <a id="post-applications-applicationid-redeploy-deploymentkey"></a>Redeploy Application

Redeploys a deployed application

POST /applications/{applicationId}/redeploy/{deploymentKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation (with ID)",
  "extends": "status",
  "properties": {
    "_doc": {
      "type": "string"
    },
    "ok": null
  }
}
```

### <a id="post-applications-applicationid-deployments-deploymentkey-refreshkeys"></a>Refresh API Keys

Refreshes API keys for a deployment

POST /applications/{applicationId}/deployments/{deploymentKey}/refreshkeys

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-teams-teamkey-members-remove"></a>Remove Team Member

Removes a principal from a team for an application

POST /applications/{applicationId}/teams/{teamKey}/members/remove

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-authorities-authorityid-revoke"></a>Revoke Authority

Revokes an authority against the specified application from a given user

POST /applications/{applicationId}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-teams-teamkey-authorities-authorityid-revoke"></a>Revoke Authority from Team

Grants an authority from a team for an application

POST /applications/{applicationId}/teams/{teamKey}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |
| authorityId | true | string | The ID or authority key for the authority |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-undeploy-deploymentkey"></a>Undeploy Application

Undeploys a deployed application

POST /applications/{applicationId}/undeploy/{deploymentKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| deploymentKey | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation (with ID)",
  "extends": "status",
  "properties": {
    "_doc": {
      "type": "string"
    },
    "ok": null
  }
}
```

### <a id="post-applications-applicationid-unlock"></a>Unlock Application

Unlocks an application

POST /applications/{applicationId}/unlock

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-applications-applicationid"></a>Update Application

Updates an existing Application

PUT /applications/{applicationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-update"></a>Update Application

Updates an existing Application

POST /applications/{applicationId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-applications-applicationid-roles-rolekeyorid"></a>Update Role

Updates a role for an application

PUT /applications/{applicationId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| roleKeyOrId | true | string |  |
| HTTP Payload | true | string | HTTP Payload |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-roles-rolekeyorid-update"></a>Update Role

Updates a role for an application

POST /applications/{applicationId}/roles/{roleKeyOrId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| roleKeyOrId | true | string |  |
| HTTP Payload | true | string | HTTP Payload |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-applications-applicationid-teams-teamkey"></a>Update a Team

Updates a team for an application

PUT /applications/{applicationId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| teamKey | true | string | The key identifier for the team |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Team",
  "properties": {
    "teamableObjectTypeId": {
      "type": "string",
      "readonly": true
    },
    "teamableObjectId": {
      "type": "string",
      "readonly": true
    },
    "key": {
      "type": "string"
    },
    "groupId": {
      "type": "string"
    },
    "groupDomainId": {
      "type": "string"
    },
    "roleKeys": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "_doc": null,
    "_system": null
  }
}
```

## <a id="schema"></a>Schema

```json

{
  "type": "object",
  "description": "Application",
  "extends": "datastore",
  "container": "platform",
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique key that serves as an identifier for this application"
    },
    "applicationType": {
      "type": "string",
      "enum": [
        "web",
        "trusted"
      ],
      "description": "The type of application"
    },
    "trustedScope": {
      "type": "string",
      "enum": [
        "webdav",
        "ftp",
        "cmis"
      ],
      "description": "The scope identifier for a trusted application"
    },
    "trustedHost": {
      "type": "string",
      "description": "The host for a trusted application"
    },
    "deployments": {
      "type": "object",
      "properties": {
        "webhost": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "clientId": {
          "type": "string"
        },
        "authGrantId": {
          "type": "string"
        },
        "baseURL": {
          "type": "string"
        }
      }
    },
    "source": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        },
        "public": {
          "type": "boolean"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "public": {
      "type": "object",
      "properties": {
        "runAsPrincipalId": {
          "type": "string"
        },
        "emailProviderId": {
          "type": "string"
        },
        "userDomainId": {
          "type": "string"
        },
        "tenantRegistrarId": {
          "type": "string"
        }
      }
    },
    "title": null,
    "description": null,
    "datastoreId": null,
    "datastoreTypeId": null,
    "enableAuthorities": null,
    "size": null,
    "maxsize": null,
    "objectcount": null,
    "locked": null,
    "lockedBy": null,
    "statisticsDate": null,
    "statisticsDirty": null,
    "binaryStorageProviderType": null,
    "_doc": null,
    "_system": null
  },
  "id": "application"
}
```
