> ## Documentation Index
> Fetch the complete documentation index at: https://beebole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Subproject

> Beebole legacy API — Subproject operations.

## **Create a Subproject**

Request:

```json theme={null}
{
  "service": "subproject.create",
  "subproject": {
    "name": "Prototype",
    "project": {"id": 321}
  }
}
```

Response:

```json theme={null}
{
  "status": "ok",
  "id": 765
}
```

## **Get a Subproject**

Request:

```json theme={null}
{
  "service": "subproject.get",
  "id": 765
}
```

Response:

```json theme={null}
{
  "status" : "ok",
  "subproject" : {
    "id" : 765,
    "name" : "Prototype",
    "project" : {"id" : 765},
    "active" : true
  }
}
```

## **Update a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.update",
  "subproject" : {
    "id" : 765,
    "name" : "newName"
  }
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **List Subprojects**

Request:

```json theme={null}
{
  "service": "subproject.list",
  "project" : {"id" : 765}
}
```

Response:

```json theme={null}
{
  "status": "ok",
  "subprojects": [
    {
      "id" : 765,
      "name" : "Prototype",
      "project" : {"id" : 765},
      "active" : true
    }, ...
  ]
}
```

## **Activate a Subproject**

Request:

```json theme={null}
{
  "service": "subproject.activate",
  "id": 765
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **Deactivate a Subproject**

Request:

```json theme={null}
{
  "service": "subproject.deactivate",
  "id": 765
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **Assign a Specific Task to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.attach_specific_task",
  "id" : 86,
  "task" : {
    "id" : 43
  }
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **Unassign a Specific Task to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.detach_specific_task",
  "id" : 86,
  "task" : {
    "id" : 43
  }
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **List Specific Tasks Assigned to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.specific_tasks",
  "id" : 86
}
```

Response:

```json theme={null}
{
 "status" : "ok",
 "disabled" : false,  //default : false
 "specificTasks": [
   {
     "name" : "Administration",
     "id" : 345,
     "active":true
   }, ...
 ]
}
```

## **Enable Specific Tasks for a Subproject (enabled by default)**

Request:

```json theme={null}
{
  "service" : "subproject.enable_specific_tasks",
  "id" : 78
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **Disable Specific Tasks for a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.disable_specific_tasks",
  "id" : 78
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **Assign an Exclusive Member to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.attach_member",
  "id" : 765,
  "person" : {  // "person" or "group"
    "id" : 43
  }
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **Unassign an Exclusive Member to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.detach_member",
  "id" : 765,
  "person" : {  // "person" or "group"
    "id" : 43
  }
}
```

Response:

```json theme={null}
{"status" : "ok"}
```

## **List Exclusive Members Assigned to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.members",
  "id" : 765
}
```

Response:

```json theme={null}
{
 "status" : "ok",
 "members": [
   {
     "name" : "Peter Flemming",
     "id" : 350
   }, ...
 ],
 "groups": [
   {
     "name" : "US",
     "id" : 978
   }, ...
 ]
}
```

## **Assign a Group to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.add_group",
  "id" : 78,
  "group" : {
    "id" : 105
  }
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **Unassign a Group to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.remove_group",
  "id" : 78,
  "group" : {
    "id" : 105
  }
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **List Groups Assigned to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.groups",
  "id" : 78
}
```

Response:

```json theme={null}
{
  "status":"ok",
  "groups":[
    {
      "id":4787,
      "name":"US",
      "groups":{"count":4}
    }, ...
  ]
}
```

## **Set a Custom Field Value to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.set_custom_field_value",
  "id" : 78,
  "customField" : {
    "id" : 4879,
    "value" : "Salt Lake City, UT, USA"
  }
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **Clear a Subproject Custom Field Value**

Request:

```json theme={null}
{
  "service" : "subproject.clear_custom_field_value",
  "id" : 78,
  "customField" : {
    "id" : 4879
  }
}
```

Response:

```json theme={null}
{"status": "ok"}
```

## **List Custom Fields Assigned to a Subproject**

Request:

```json theme={null}
{
  "service" : "subproject.custom_fields",
  "id" : 78
}
```

Response:

```json theme={null}
{
  "status":"ok",
  "customFields":[
    {
      "id" : 4879,
      "name" : "location",
      "value" : "Salt Lake City, UT, USA"
    }, ...
  ]
}
```
