# prb internal-control command reference

Manage internal controls. This page documents **10 commands** under `prb internal-control`.

Flags and examples below come from the command definitions. A **Required** flag is explicitly marked required by Cobra; an unmarked flag can still be needed by runtime validation or a non-interactive workflow. Empty strings and empty lists are registered defaults, not sample values.

Every command also inherits the [global flags](/docs/developers/cli/commands#global-flags). Run `prb <command> --help` to check your installed version. Replace placeholder IDs and names in source examples before running them. Return to the [complete CLI command reference](/docs/developers/cli/commands) to browse another command.

## Commands

| Command                                                                                     | Description                                       | Usage                                        | Source                                                                                                                                         |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| [`prb internal-control`](#prb-internal-control)                                             | Manage internal controls.                         | `prb internal-control <command>`             | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/internal_control.go#L38)                            |
| [`prb internal-control create`](#prb-internal-control-create)                               | Create an internal control.                       | `prb internal-control create`                | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/create/create.go#L85)                               |
| [`prb internal-control delete`](#prb-internal-control-delete)                               | Delete an internal control.                       | `prb internal-control delete <id>`           | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/delete/delete.go#L43)                               |
| [`prb internal-control link-third-party`](#prb-internal-control-link-third-party)           | Link a third party to an internal control.        | `prb internal-control link-third-party`      | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/link-third-party/link_third_party.go#L50)           |
| [`prb internal-control link-treatment-plan`](#prb-internal-control-link-treatment-plan)     | Link a treatment plan to an internal control.     | `prb internal-control link-treatment-plan`   | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/link-treatment-plan/link_treatment_plan.go#L50)     |
| [`prb internal-control list`](#prb-internal-control-list)                                   | List internal controls in an organization.        | `prb internal-control list`                  | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/list/list.go#L81)                                   |
| [`prb internal-control unlink-third-party`](#prb-internal-control-unlink-third-party)       | Unlink a third party from an internal control.    | `prb internal-control unlink-third-party`    | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/unlink-third-party/unlink_third_party.go#L46)       |
| [`prb internal-control unlink-treatment-plan`](#prb-internal-control-unlink-treatment-plan) | Unlink a treatment plan from an internal control. | `prb internal-control unlink-treatment-plan` | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/unlink-treatment-plan/unlink_treatment_plan.go#L46) |
| [`prb internal-control update`](#prb-internal-control-update)                               | Update an internal control.                       | `prb internal-control update <id>`           | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/update/update.go#L78)                               |
| [`prb internal-control view`](#prb-internal-control-view)                                   | View an internal control.                         | `prb internal-control view <id>`             | [View implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/view/view.go#L98)                                   |

## prb internal-control

Manage internal controls.

### Usage

```text
prb internal-control <command>
```

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/internal_control.go#L38).

## prb internal-control create

Create an internal control.

### Usage

```text
prb internal-control create
```

### Flags

| Flag                      | Type   | Default | Required | Description                                                            |
| ------------------------- | ------ | ------- | -------- | ---------------------------------------------------------------------- |
| `--category`              | string | `""`    | —        | Internal control category (required)                                   |
| `--code`                  | string | `""`    | —        | Stable reference, for example IC-ACCESS-01                             |
| `--control-type`          | string | `""`    | —        | Control type: PREVENTIVE, DETECTIVE, CORRECTIVE                        |
| `--description`           | string | `""`    | —        | Internal control description                                           |
| `--evidence-cadence`      | string | `""`    | —        | How often evidence is collected, as an ISO-8601 duration such as P1M   |
| `--implementation-status` | string | `""`    | —        | Status: NOT_IMPLEMENTED, IN_PROGRESS, IMPLEMENTED, OPERATING           |
| `--name`                  | string | `""`    | —        | Internal control name (required)                                       |
| `--nature`                | string | `""`    | —        | Nature: MANUAL                                                         |
| `--operating-event`       | string | `""`    | —        | Event that runs the control, for example when someone leaves           |
| `--operating-frequency`   | string | `""`    | —        | ISO-8601 duration for PERIODIC mode, for example P3M                   |
| `--operating-mode`        | string | `""`    | —        | Operating mode: CONTINUOUS, EVENT, or PERIODIC. Empty clears it        |
| `--org`                   | string | `""`    | —        | Organization ID                                                        |
| `--owner-id`              | string | `""`    | —        | Owner profile ID                                                       |
| `--reviewer-id`           | string | `""`    | —        | Reviewer profile ID                                                    |
| `--testing-cadence`       | string | `""`    | —        | How often effectiveness is tested, as an ISO-8601 duration such as P3M |

### Examples

```bash
# Create an internal control interactively
prb internal-control create

# Create an internal control non-interactively
prb internal-control create --name "Enable encryption at rest" --category "Security"
```

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/create/create.go#L85).

## prb internal-control delete

Delete an internal control.

### Usage

```text
prb internal-control delete <id>
```

Requires 1 positional argument.

### Flags

| Flag          | Type    | Default | Required | Description              |
| ------------- | ------- | ------- | -------- | ------------------------ |
| `--yes`, `-y` | boolean | `false` | —        | Skip confirmation prompt |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/delete/delete.go#L43).

## prb internal-control link-third-party

Link a third party to an internal control.

### Usage

```text
prb internal-control link-third-party
```

### Flags

| Flag                    | Type   | Default | Required | Description                    |
| ----------------------- | ------ | ------- | -------- | ------------------------------ |
| `--internal-control-id` | string | `""`    | Required | Internal control ID (required) |
| `--third-party-id`      | string | `""`    | Required | Third party ID (required)      |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/link-third-party/link_third_party.go#L50).

## prb internal-control link-treatment-plan

Link a treatment plan to an internal control.

### Usage

```text
prb internal-control link-treatment-plan
```

### Flags

| Flag                    | Type   | Default | Required | Description                    |
| ----------------------- | ------ | ------- | -------- | ------------------------------ |
| `--internal-control-id` | string | `""`    | Required | Internal control ID (required) |
| `--treatment-plan-id`   | string | `""`    | Required | Treatment plan ID (required)   |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/link-treatment-plan/link_treatment_plan.go#L50).

## prb internal-control list

List internal controls in an organization.

### Usage

```text
prb internal-control list
```

Accepts no positional arguments.

### Flags

| Flag                      | Type         | Default  | Required | Description                                          |
| ------------------------- | ------------ | -------- | -------- | ---------------------------------------------------- |
| `--after`                 | string       | `""`     | —        | Cursor from the previous page (the Next cursor line) |
| `--filter`, `-q`          | string       | `""`     | —        | Filter internal controls by name or code             |
| `--implementation-status` | string array | `[]`     | —        | Filter by implementation status (repeatable)         |
| `--json`                  | boolean      | `false`  | —        | Output JSON (same as --output json)                  |
| `--limit`, `-L`           | integer      | `30`     | —        | Maximum number of internal controls to list          |
| `--needs-attention`       | boolean      | `false`  | —        | Only controls that are not implemented or overdue    |
| `--order-by`              | string       | `""`     | —        | Order by field (CREATED_AT, NAME, NEXT_DUE)          |
| `--order-direction`       | string       | `"DESC"` | —        | Sort direction (ASC, DESC)                           |
| `--org`                   | string       | `""`     | —        | Organization ID                                      |
| `--output`, `-o`          | string       | `""`     | —        | Output format: json, table (default)                 |
| `--owner`                 | string       | `""`     | —        | Filter by owner profile ID                           |

### Examples

```bash
# List internal controls in the default organization
prb internal-control list

# Filter internal controls by name
prb internal-control list --filter "encryption"

# List internal controls sorted by name
prb internal-control ls --order-by NAME --output json

# List controls that need attention, owned by one profile
prb internal-control list --needs-attention --owner <profile-id>
```

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/list/list.go#L81).

## prb internal-control unlink-third-party

Unlink a third party from an internal control.

### Usage

```text
prb internal-control unlink-third-party
```

### Flags

| Flag                    | Type   | Default | Required | Description                    |
| ----------------------- | ------ | ------- | -------- | ------------------------------ |
| `--internal-control-id` | string | `""`    | Required | Internal control ID (required) |
| `--third-party-id`      | string | `""`    | Required | Third party ID (required)      |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/unlink-third-party/unlink_third_party.go#L46).

## prb internal-control unlink-treatment-plan

Unlink a treatment plan from an internal control.

### Usage

```text
prb internal-control unlink-treatment-plan
```

### Flags

| Flag                    | Type   | Default | Required | Description                    |
| ----------------------- | ------ | ------- | -------- | ------------------------------ |
| `--internal-control-id` | string | `""`    | Required | Internal control ID (required) |
| `--treatment-plan-id`   | string | `""`    | Required | Treatment plan ID (required)   |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/unlink-treatment-plan/unlink_treatment_plan.go#L46).

## prb internal-control update

Update an internal control.

### Usage

```text
prb internal-control update <id>
```

Requires 1 positional argument.

### Flags

| Flag                      | Type   | Default | Required | Description                                                                   |
| ------------------------- | ------ | ------- | -------- | ----------------------------------------------------------------------------- |
| `--category`              | string | `""`    | —        | Internal control category                                                     |
| `--code`                  | string | `""`    | —        | Stable reference, for example IC-ACCESS-01                                    |
| `--control-type`          | string | `""`    | —        | Control type: PREVENTIVE, DETECTIVE, CORRECTIVE                               |
| `--description`           | string | `""`    | —        | Internal control description                                                  |
| `--evidence-cadence`      | string | `""`    | —        | How often evidence is collected, as an ISO-8601 duration such as P1M          |
| `--implementation-status` | string | `""`    | —        | Status: NOT_IMPLEMENTED, IN_PROGRESS, IMPLEMENTED, OPERATING                  |
| `--name`                  | string | `""`    | —        | Internal control name                                                         |
| `--nature`                | string | `""`    | —        | Nature: MANUAL                                                                |
| `--operating-event`       | string | `""`    | —        | Event that runs the control, for example when someone leaves                  |
| `--operating-frequency`   | string | `""`    | —        | ISO-8601 duration for PERIODIC mode, for example P3M                          |
| `--operating-mode`        | string | `""`    | —        | Operating mode: CONTINUOUS, EVENT, or PERIODIC. Empty clears it               |
| `--owner-id`              | string | `""`    | —        | Owner profile ID                                                              |
| `--reviewer-id`           | string | `""`    | —        | Reviewer profile ID                                                           |
| `--state`                 | string | `""`    | —        | Internal control state: NOT_STARTED, IN_PROGRESS, NOT_APPLICABLE, IMPLEMENTED |
| `--testing-cadence`       | string | `""`    | —        | How often effectiveness is tested, as an ISO-8601 duration such as P3M        |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/update/update.go#L78).

## prb internal-control view

View an internal control.

### Usage

```text
prb internal-control view <id>
```

Requires 1 positional argument.

### Flags

| Flag             | Type    | Default | Required | Description                          |
| ---------------- | ------- | ------- | -------- | ------------------------------------ |
| `--json`         | boolean | `false` | —        | Output JSON (same as --output json)  |
| `--output`, `-o` | string  | `""`    | —        | Output format: json, table (default) |

[View command implementation](https://github.com/getprobo/probo/blob/main/pkg/cmd/internal-control/view/view.go#L98).
