# BuildRequest

A project's files, sent to be validated or deployed into a namespace. The SDKs and the `mt` CLI build this from a project folder for you.

**Kind:** an object, used in requests.

## Fields

| Field | Type | Required | Description |
|---|---|---|---|
| `isDeploy` | `boolean` | yes | True to deploy the definitions if the build succeeds; false only to validate them. Constraints: required (empty or whitespace-only strings are rejected). |
| `agents` | [`BuildRequestItem`](https://docs.maitento.com/reference/types/build-request-item.md)`[]` | yes | Agent files (`agents/`). Constraints: required (empty or whitespace-only strings are rejected). |
| `capsules` | [`BuildRequestItem`](https://docs.maitento.com/reference/types/build-request-item.md)`[]` | yes | Capsule files (`capsules/`). Constraints: required (empty or whitespace-only strings are rejected). |
| `connectors` | [`BuildOpenApiAndMcpRequest`](https://docs.maitento.com/reference/types/build-open-api-and-mcp-request.md) | yes | Connector files (`connectors/`). Constraints: required (empty or whitespace-only strings are rejected). |
| `externalOperations` | [`BuildOpenApiAndMcpRequest`](https://docs.maitento.com/reference/types/build-open-api-and-mcp-request.md) | yes | Tool files (`external-operations/`). Constraints: required (empty or whitespace-only strings are rejected). |
| `interactions` | [`BuildInteractionsRequest`](https://docs.maitento.com/reference/types/build-interactions-request.md) | yes | Interaction files (`interactions/`). Constraints: required (empty or whitespace-only strings are rejected). |
| `apps` | [`BuildRequestApp`](https://docs.maitento.com/reference/types/build-request-app.md)`[]` | yes | Apps (`apps/`), one entry per app folder. Constraints: required (empty or whitespace-only strings are rejected). |
| `codePipelines` | [`BuildRequestCodePipeline`](https://docs.maitento.com/reference/types/build-request-code-pipeline.md)`[]` | yes | Code pipeline definitions (`code-pipelines/`), sent as JSON. Constraints: required (empty or whitespace-only strings are rejected). |
| `codePipelineHooks` | `map<string,`[`BuildRequestApp`](https://docs.maitento.com/reference/types/build-request-app.md)`> \| null` |  | Optional Cogniscript hooks for code pipelines (`code-pipeline-hooks/`), keyed by the pipeline's name. |
| `looms` | [`BuildRequestItem`](https://docs.maitento.com/reference/types/build-request-item.md)`[] \| null` |  | Optional named looms (`looms/<name>.mtr`). |
| `resourceFiles` | [`ResourceFileReferences`](https://docs.maitento.com/reference/types/resource-file-references.md) | yes | The shared prompts and JSON files the other files read with `@prompt` and `@json`. Constraints: required (empty or whitespace-only strings are rejected). |

## Example

```json
{
  "isDeploy": false,
  "agents": [
    {
      "name": "...",
      "filename": "...",
      "lines": []
    }
  ],
  "capsules": [
    {
      "name": "...",
      "filename": "...",
      "lines": []
    }
  ],
  "connectors": {
    "openApi": [
      {}
    ],
    "modelContextProtocol": [
      {}
    ]
  },
  "externalOperations": {
    "openApi": [
      {}
    ],
    "modelContextProtocol": [
      {}
    ]
  },
  "interactions": {
    "oneShot": [
      {}
    ],
    "roundRobin": [
      {}
    ],
    "managed": [
      {}
    ]
  },
  "apps": [
    {
      "name": "...",
      "metadata": {},
      "code": []
    }
  ],
  "codePipelines": [
    {
      "name": "...",
      "filename": "...",
      "json": "..."
    }
  ],
  "codePipelineHooks": {
    "key": {
      "name": "...",
      "metadata": {},
      "code": []
    }
  },
  "looms": [
    {
      "name": "...",
      "filename": "...",
      "lines": []
    }
  ],
  "resourceFiles": {
    "prompts": [
      {}
    ],
    "json": [
      {}
    ]
  }
}
```

## Where it's used

- [`builds.deploy`](https://docs.maitento.com/reference/api/builds.md) (`PUT /namespaces/{namespaceName}/build`)
