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

# Interface: TransportRequest

Defined in: [typescript/src/config/Transport.ts:20](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L20)

Transport request.

## Properties

### path

> `readonly` **path**: `string`

Defined in: [typescript/src/config/Transport.ts:27](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L27)

Relative API path.

Example:
/execute

***

### method

> `readonly` **method**: `"GET"` | `"POST"` | `"PUT"` | `"PATCH"` | `"DELETE"`

Defined in: [typescript/src/config/Transport.ts:32](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L32)

HTTP method.

***

### body?

> `readonly` `optional` **body?**: `unknown`

Defined in: [typescript/src/config/Transport.ts:37](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L37)

Optional request body.

***

### headers?

> `readonly` `optional` **headers?**: `Readonly`\<`Record`\<`string`, `string`>>

Defined in: [typescript/src/config/Transport.ts:42](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L42)

Optional request headers.

***

### nonThrowingStatuses?

> `readonly` `optional` **nonThrowingStatuses?**: readonly `number`\[]

Defined in: [typescript/src/config/Transport.ts:57](https://github.com/pavancharak/AgentLabsBuildathon/blob/main/typescript/src/config/Transport.ts#L57)

HTTP status codes that must be returned as an ordinary
TransportResponse instead of being mapped to a thrown ParmanaError
subclass, because this specific route's response body at that
specific status is not the shared `{error, code?}` envelope.

Default: none (every status >= 400 throws). Today exactly one route
needs this: POST /policies/validate returns `{valid, errors}` — not
`{error, code?}` — at 400 and 404 (but the shared envelope still
applies to 401, generated by caller-auth middleware before this
route's own handler ever runs). See PolicyApi.validate and
/api-reference/error-handling.
