# Guardrails

> SDK methods for the Guardrails module, accessed via `soat.guardrails`. See the [Guardrails module docs](/docs/modules/guardrails) for permissions and data model, and each method's REST page for the full request/response schema.

# Guardrails

SDK methods for the Guardrails module, accessed via `soat.guardrails`. See the [Guardrails module docs](/docs/modules/guardrails) for permissions and data model, and each method's REST page for the full request/response schema.

### `soat.guardrails.createGuardrail()`

Create a guardrail

- Method: `POST`
- Path: `/api/v1/guardrails`

```ts
await soat.guardrails.createGuardrail({
  body: { name, document, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/create-guardrail)

### `soat.guardrails.listGuardrails()`

List guardrails

- Method: `GET`
- Path: `/api/v1/guardrails`

```ts
await soat.guardrails.listGuardrails({
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/list-guardrails)

### `soat.guardrails.getGuardrail()`

Get a guardrail

- Method: `GET`
- Path: `/api/v1/guardrails/{guardrail_id}`

```ts
await soat.guardrails.getGuardrail({
  path: { guardrail_id },
});
```

→ [Request & response schema](/docs/api/guardrails/get-guardrail)

### `soat.guardrails.updateGuardrail()`

Update a guardrail

- Method: `PATCH`
- Path: `/api/v1/guardrails/{guardrail_id}`

```ts
await soat.guardrails.updateGuardrail({
  path: { guardrail_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/update-guardrail)

### `soat.guardrails.deleteGuardrail()`

Delete a guardrail

- Method: `DELETE`
- Path: `/api/v1/guardrails/{guardrail_id}`

```ts
await soat.guardrails.deleteGuardrail({
  path: { guardrail_id },
});
```

→ [Request & response schema](/docs/api/guardrails/delete-guardrail)

### `soat.guardrails.listGuardrailVersions()`

List a guardrail's config versions

- Method: `GET`
- Path: `/api/v1/guardrails/{guardrail_id}/versions`

```ts
await soat.guardrails.listGuardrailVersions({
  path: { guardrail_id },
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/list-guardrail-versions)

### `soat.guardrails.getGuardrailVersion()`

Fetch an archived guardrail version

- Method: `GET`
- Path: `/api/v1/guardrails/{guardrail_id}/versions/{version}`

```ts
await soat.guardrails.getGuardrailVersion({
  path: { guardrail_id, version },
});
```

→ [Request & response schema](/docs/api/guardrails/get-guardrail-version)

### `soat.guardrails.restoreGuardrailVersion()`

Restore an archived guardrail config

- Method: `POST`
- Path: `/api/v1/guardrails/{guardrail_id}/versions/{version}/restore`

```ts
await soat.guardrails.restoreGuardrailVersion({
  path: { guardrail_id, version },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/restore-guardrail-version)

### `soat.guardrails.evaluateGuardrail()`

Dry-run evaluate a guardrail

- Method: `POST`
- Path: `/api/v1/guardrails/{guardrail_id}/evaluate`

```ts
await soat.guardrails.evaluateGuardrail({
  path: { guardrail_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/guardrails/evaluate-guardrail)
