---
title: "Stack"
description: "Explore comprehensive documentation on Stack API, featuring methods for managing stacks, teams, and datastores. Accelerate development with language drivers. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/reference/types/stack"
---

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

An Object

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

##### Table of Contents

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

> **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 Stack is contained within a [Platform](/documentation/gitana/4.0/reference/types/platform.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 |
| key | string |  | No |  |

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

The following methods are available:

- [Add Team Member](#post-stacks-stackid-teams-teamkey-members-add "Add Team Member")
- [Assign Datastores](#post-stacks-stackid-datastores-assign "Assign Datastores")
- [Check Membership](#post-stacks-stackid-teams-teamkey-members-check "Check Membership")
- [Check Permission](#post-stacks-stackid-permissions-permissionid-check "Check Permission")
- [Check Single Authority](#post-stacks-stackid-authorities-authorityid-check "Check Single Authority")
- [Check multiple Authorities](#post-stacks-authorities-check "Check multiple Authorities")
- [Check multiple Permissions](#post-stacks-permissions-check "Check multiple Permissions")
- [Create Role](#post-stacks-stackid-roles "Create Role")
- [Create Stack](#post-stacks "Create Stack")
- [Create a Team](#post-stacks-stackid-teams "Create a Team")
- [Delete Attachment](#delete-stacks-stackid-attachments-attachmentid "Delete Attachment")
- [Delete Role](#post-stacks-stackid-roles-rolekeyorid-delete "Delete Role")
- [Delete Role](#delete-stacks-stackid-roles-rolekeyorid "Delete Role")
- [Delete Stack](#delete-stacks-stackid "Delete Stack")
- [Delete Stack](#post-stacks-stackid-delete "Delete Stack")
- [Deletes a Team](#delete-stacks-stackid-teams-teamkey "Deletes a Team")
- [Download Attachment](#get-stacks-stackid-attachments-attachmentid "Download Attachment")
- [Download Preview](#get-stacks-stackid-preview-name "Download Preview")
- [Exists Datastores](#post-stacks-stackid-datastores-exists "Exists Datastores")
- [Export Stack](#post-stacks-stackid-export "Export Stack")
- [Get Team](#get-stacks-stackid-teams-teamkey "Get Team")
- [Grant Authority](#post-stacks-stackid-authorities-authorityid-grant "Grant Authority")
- [Grant Authority to Team](#post-stacks-stackid-teams-teamkey-authorities-authorityid-grant "Grant Authority to Team")
- [Import Stack](#post-stacks-stackid-import "Import Stack")
- [List Attachments](#get-stacks-stackid-attachments "List Attachments")
- [List Datastores](#get-stacks-stackid-datastores "List Datastores")
- [List Logs](#get-stacks-stackid-logs "List Logs")
- [List Roles](#get-stacks-stackid-roles "List Roles")
- [List Team Authorities](#get-stacks-stackid-teams-teamkey-authorities "List Team Authorities")
- [List Teams](#get-stacks-stackid-teams "List Teams")
- [Lists Stack](#get-stacks "Lists Stack")
- [Lists Team Members](#get-stacks-stackid-teams-teamkey-members "Lists Team Members")
- [Logfile Logs](#get-stacks-stackid-logs-logfile "Logfile Logs")
- [Queries for Stack](#post-stacks-query "Queries for Stack")
- [Query](#post-stacks-stackid-datastores-query "Query")
- [Query](#post-stacks-stackid-logs-query "Query")
- [Read ACL](#get-stacks-stackid-acl-list "Read ACL")
- [Read ACL for Principal](#get-stacks-stackid-acl "Read ACL for Principal")
- [Read Authorities Report](#post-stacks-stackid-authorities "Read Authorities Report")
- [Read Datastore](#get-stacks-stackid-datastores-key "Read Datastore")
- [Read Datastore Type](#get-stacks-find-datastoretype-datastoreid "Read Datastore Type")
- [Read Log](#get-stacks-stackid-logs-logentryid "Read Log")
- [Read Role](#get-stacks-stackid-roles-rolekeyorid "Read Role")
- [Read Stack](#get-stacks-stackid "Read Stack")
- [Remove Team Member](#post-stacks-stackid-teams-teamkey-members-remove "Remove Team Member")
- [Revoke Authority](#post-stacks-stackid-authorities-authorityid-revoke "Revoke Authority")
- [Revoke Authority from Team](#post-stacks-stackid-teams-teamkey-authorities-authorityid-revoke "Revoke Authority from Team")
- [Summarize Access Policy](#get-stacks-stackid-teams-teamkey-access-policies-summary "Summarize Access Policy")
- [Unassign Datastores](#post-stacks-stackid-datastores-unassign "Unassign Datastores")
- [Update Role](#put-stacks-stackid-roles-rolekeyorid "Update Role")
- [Update Role](#post-stacks-stackid-roles-rolekeyorid-update "Update Role")
- [Update Stack](#put-stacks-stackid "Update Stack")
- [Update Stack](#post-stacks-stackid-update "Update Stack")
- [Update a Team](#put-stacks-stackid-teams-teamkey "Update a Team")
- [Upload Attachment](#post-stacks-stackid-attachments-attachmentid "Upload Attachment")
- [Upload Attachments](#post-stacks-stackid-attachments "Upload Attachments")

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

Adds a principal as a member of a Team against the given stack

POST /stacks/{stackId}/teams/{teamKey}/members/add

#### Parameters

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

#### Response

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

### <a id="post-stacks-stackid-datastores-assign"></a>Assign Datastores

POST /stacks/{stackId}/datastores/assign

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| type | true | string |  |
| id | true | string |  |
| key | false | string |  |

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

Checks whether a principal belongs to a Team for the given stack

POST /stacks/{stackId}/teams/{teamKey}/members/check

#### Parameters

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

#### Response

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

### <a id="post-stacks-stackid-permissions-permissionid-check"></a>Check Permission

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

POST /stacks/{stackId}/permissions/{permissionId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| permissionId | true | string | The ID of the permission |
| id | true | string |  |

#### Response

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

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

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

POST /stacks/{stackId}/authorities/{authorityId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-authorities-check"></a>Check multiple Authorities

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

POST /stacks/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-stacks-permissions-check"></a>Check multiple Permissions

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

POST /stacks/permissions/check

#### Parameters

This function has no parameters.

#### Response

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

### <a id="post-stacks-stackid-roles"></a>Create Role

Creates a role for a stack

POST /stacks/{stackId}/roles

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks"></a>Create Stack

Creates a new Stack

POST /stacks

#### 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-stacks-stackid-teams"></a>Create a Team

Creates a Team against the given stack

POST /stacks/{stackId}/teams

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### 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-stacks-stackid-attachments-attachmentid"></a>Delete Attachment

Deletes an attachment

DELETE /stacks/{stackId}/attachments/{attachmentId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| attachmentId | true | string |  |

### <a id="post-stacks-stackid-roles-rolekeyorid-delete"></a>Delete Role

Deletes a role for a stack

POST /stacks/{stackId}/roles/{roleKeyOrId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-roles-rolekeyorid"></a>Delete Role

Deletes a role for a stack

DELETE /stacks/{stackId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid"></a>Delete Stack

Deletes an existing Stack

DELETE /stacks/{stackId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

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

### <a id="post-stacks-stackid-delete"></a>Delete Stack

Deletes an existing Stack

POST /stacks/{stackId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

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

### <a id="delete-stacks-stackid-teams-teamkey"></a>Deletes a Team

Deletes a Team against the given stack

DELETE /stacks/{stackId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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="get-stacks-stackid-attachments-attachmentid"></a>Download Attachment

Downloads an attachment

GET /stacks/{stackId}/attachments/{attachmentId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| attachmentId | true | string |  |

### <a id="get-stacks-stackid-preview-name"></a>Download Preview

Downloads a preview stream of a stack attachment

GET /stacks/{stackId}/preview/{name}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| name | true | string |  |

### <a id="post-stacks-stackid-datastores-exists"></a>Exists Datastores

POST /stacks/{stackId}/datastores/exists

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| key | true | string |  |

### <a id="post-stacks-stackid-export"></a>Export Stack

Starts an export job for this resource

POST /stacks/{stackId}/export

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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="get-stacks-stackid-teams-teamkey"></a>Get Team

Retrieves a Team against the given stack

GET /stacks/{stackId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-authorities-authorityid-grant"></a>Grant Authority

Grants an authority against the specified stack to a given user

POST /stacks/{stackId}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-teams-teamkey-authorities-authorityid-grant"></a>Grant Authority to Team

Assigns an Authority to a Team for the given stack

POST /stacks/{stackId}/teams/{teamKey}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-import"></a>Import Stack

Starts an import job for this resource

POST /stacks/{stackId}/import

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-attachments"></a>List Attachments

Lists the attachments for a stack

GET /stacks/{stackId}/attachments

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

### <a id="get-stacks-stackid-datastores"></a>List Datastores

GET /stacks/{stackId}/datastores

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

### <a id="get-stacks-stackid-logs"></a>List Logs

GET /stacks/{stackId}/logs

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

### <a id="get-stacks-stackid-roles"></a>List Roles

Lists the roles for a stack

GET /stacks/{stackId}/roles

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-teams-teamkey-authorities"></a>List Team Authorities

Retrieves a list of the authorities defined to be granted by a Team

GET /stacks/{stackId}/teams/{teamKey}/authorities

#### Parameters

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

#### Response

```json
{
  "type": "object",
  "description": "List of Authorities",
  "properties": {
    "authorities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
```

### <a id="get-stacks-stackid-teams"></a>List Teams

Lists the Teams against the given stack

GET /stacks/{stackId}/teams

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

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

### <a id="get-stacks"></a>Lists Stack

Retrieves a list of Stack instances

GET /stacks

#### 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_stack"
      }
    }
  }
}
```

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

Lists the members of a Team against the given stack

GET /stacks/{stackId}/teams/{teamKey}/members

#### Parameters

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

#### Response

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

### <a id="get-stacks-stackid-logs-logfile"></a>Logfile Logs

GET /stacks/{stackId}/logs/logfile

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

### <a id="post-stacks-query"></a>Queries for Stack

Queries for instances of type Stack

POST /stacks/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_stack"
      }
    }
  }
}
```

### <a id="post-stacks-stackid-datastores-query"></a>Query

Queries for matches

POST /stacks/{stackId}/datastores/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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"
      }
    }
  }
}
```

### <a id="post-stacks-stackid-logs-query"></a>Query

Queries for matches

POST /stacks/{stackId}/logs/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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"
      }
    }
  }
}
```

### <a id="get-stacks-stackid-acl-list"></a>Read ACL

Read the Access Control List for the specified stack

GET /stacks/{stackId}/acl/list

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### 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-stacks-stackid-acl"></a>Read ACL for Principal

Reads the ACL for a stack and specific actor

GET /stacks/{stackId}/acl

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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="post-stacks-stackid-authorities"></a>Read Authorities Report

Read the Authorities Report for the specified stack

POST /stacks/{stackId}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### 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-stacks-stackid-datastores-key"></a>Read Datastore

GET /stacks/{stackId}/datastores/{key}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| key | true | string |  |

### <a id="get-stacks-find-datastoretype-datastoreid"></a>Read Datastore Type

GET /stacks/find/{datastoreType}/{datastoreId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| datastoreType | true | string |  |
| datastoreId | true | string |  |

### <a id="get-stacks-stackid-logs-logentryid"></a>Read Log

GET /stacks/{stackId}/logs/{logEntryId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| logEntryId | true | string | The ID of the log entry |

### <a id="get-stacks-stackid-roles-rolekeyorid"></a>Read Role

Reads a role for a stack

GET /stacks/{stackId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| roleKeyOrId | true | string |  |
| inherited | false | string |  |

#### Response

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

### <a id="get-stacks-stackid"></a>Read Stack

Reads an instance of a Stack

GET /stacks/{stackId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Stack",
  "container": "platform",
  "properties": {
    "key": {
      "type": "string"
    },
    "_doc": null,
    "_system": null
  }
}
```

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

Remove a principal from a team's membership list

POST /stacks/{stackId}/teams/{teamKey}/members/remove

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-authorities-authorityid-revoke"></a>Revoke Authority

Revokes an authority against the specified stack from a given user

POST /stacks/{stackId}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-teams-teamkey-authorities-authorityid-revoke"></a>Revoke Authority from Team

Revokes an Authority from a Team for the given stack

POST /stacks/{stackId}/teams/{teamKey}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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="get-stacks-stackid-teams-teamkey-access-policies-summary"></a>Summarize Access Policy

Retrieves an access policy summary for a Team on the given stack

GET /stacks/{stackId}/teams/{teamKey}/access/policies/summary

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| teamKey | true | string | The key identifier for the team |
| scope | false | string |  |
| info | false | string |  |
| order | false | string |  |

#### Response

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

### <a id="post-stacks-stackid-datastores-unassign"></a>Unassign Datastores

POST /stacks/{stackId}/datastores/unassign

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| key | true | string |  |

### <a id="put-stacks-stackid-roles-rolekeyorid"></a>Update Role

Updates a role for a stack

PUT /stacks/{stackId}/roles/{roleKeyOrId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-roles-rolekeyorid-update"></a>Update Role

Updates a role for a stack

POST /stacks/{stackId}/roles/{roleKeyOrId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid"></a>Update Stack

Updates an existing Stack

PUT /stacks/{stackId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

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

### <a id="post-stacks-stackid-update"></a>Update Stack

Updates an existing Stack

POST /stacks/{stackId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

#### Response

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

### <a id="put-stacks-stackid-teams-teamkey"></a>Update a Team

Updates a Team against the given stack

PUT /stacks/{stackId}/teams/{teamKey}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| 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-stacks-stackid-attachments-attachmentid"></a>Upload Attachment

Uploads an attachment

POST /stacks/{stackId}/attachments/{attachmentId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |
| attachmentId | true | string |  |

### <a id="post-stacks-stackid-attachments"></a>Upload Attachments

Uploads one or more attachments

POST /stacks/{stackId}/attachments

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| stackId | true | string | The ID of the stack |

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

```json

{
  "type": "object",
  "extends": "document",
  "description": "Stack",
  "container": "platform",
  "properties": {
    "key": {
      "type": "string"
    },
    "_doc": null,
    "_system": null
  },
  "id": "stack"
}
```
