Documentation (2024.2 Enterprise)

# Project Group

Project group is the link object between Projects and Groups. With them you define which groups belongs to what project, and what they can do in the project.

- Attributes
- Operations
  - `GET /projects/:project_id/project_groups`
  - `GET /projects/:project_id/project_groups/:group_id`
  - `POST /projects/:project_id/project_groups`
  - `PUT /projects/:project_id/project_groups/:group_id`
  - `DELETE /projects/:project_id/project_groups/:group_id`

## Attributes

### project

The id of the project the membership is for.

When requesting, can be expanded to the full project object by including the query parameter `expand=project`.

- Type: `string`
- Required: `true`

### group

The id of the group the membership is for.

When requesting, can be expanded to the full group object by including the query parameter `expand=group`.

- Type: `string`
- Required: `true`

### role

The role the group has in the project. Must be one of `admin`, `manager`, `master`, `developer`, or `guest`.

- Type: `string`
- Required: `true`

## Operations

### GET /projects/:project_id/project_groups

List all project groups for a project, with optional limit and offset parameters, as a metadata-results object.

### GET /projects/:project_id/project_groups/:group_id

Return a specific project group.

#### Example request

    curl -X GET \
      -H "Accept: application/vnd.hth.v1" \
      -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
      https://helixteamhub.cloud/api/projects/luotsi/project_groups/devs

#### Example response

    {
      "api_status": 200,
      "api_timestamp": "2013-11-28T09:38:42Z",
      "project": {
        "id": "luotsi"
      },
      "group": {
        "id": "devs"
      },
      "role": "developer"
    }

### POST /projects/:project_id/project_groups

Add a group to a project.

#### Example request

    curl -X POST \
      -H "Accept: application/vnd.hth.v1" \
      -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
      -H "Content-Type: application/json" \
      -d '{ "id": "devs", "role": "developer" }' \
      https://helixteamhub.cloud/api/projects/luotsi/project_groups

#### Example response

    {
      "api_status": 201,
      "api_timestamp": "2013-11-28T09:41:47Z",
      "project": {
        "id": "luotsi"
      },
      "group": {
        "id": "devs"
      },
      "role": "developer"
    }

### PUT /projects/:project_id/project_groups/:group_id

Update role for a project group. Returns the updated project group.

#### Example request

    curl -X PUT \
      -H "Accept: application/vnd.hth.v1" \
      -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
      -H "Content-Type: application/json" \
      -d '{ "role": "admin" }' \
      https://helixteamhub.cloud/api/projects/luotsi/project_groups/devs

#### Example response

    {
      "api_status": 200,
      "api_timestamp": "2013-11-28T09:44:26Z",
      "project": {
        "id": "luotsi"
      },
      "group": {
        "id": "devs"
      },
      "role": "admin"
    }

### DELETE /projects/:project_id/project_groups/:group_id

Remove a group from a project. Returns the removed project group.

#### Example request

    curl -X DELETE \
      -H "Accept: application/vnd.hth.v1" \
      -H "Authorization: hth.company_key='$COMPANY_KEY',account_key='$ACCOUNT_KEY'" \
      https://helixteamhub.cloud/api/projects/luotsi/project_groups/devs

#### Example response

    {
      "api_status": 200,
      "api_timestamp": "2013-11-28T09:45:50Z",
      "project": {
        "id": "luotsi"
      },
      "group": {
        "id": "devs"
      },
      "role": "admin"
    }

Your search for returned results

Your search for returned results