# uip tm customfield

> Syntax and options for `uip tm customfield`, which manages custom field definitions, display labels, and allowed values on a Test Manager tenant.

`uip tm customfield` manages custom field definitions on a Test Manager tenant. Custom fields extend test case and requirement entities with project-specific metadata. This command group has three sub-groups:

- `customfield` — manage the field definition itself (list, get, create, update, delete)
- `customfield label` — manage the display labels for a field
- `customfield value` — manage the allowed values for a field (for list-type fields)

## Synopsis

```
uip tm customfield list [--project-key <key>]
uip tm customfield get --customfield-id <uuid>
uip tm customfield create --name <name> --type <type> [options…]
uip tm customfield update --customfield-id <uuid> [options…]
uip tm customfield delete --customfield-id <uuid>

uip tm customfield label get --customfield-id <uuid>
uip tm customfield label list --customfield-id <uuid>
uip tm customfield label create --customfield-id <uuid> --label <text>
uip tm customfield label add --customfield-id <uuid> --label <text>
uip tm customfield label remove --customfield-id <uuid> --label <text>

uip tm customfield value list --customfield-id <uuid>
uip tm customfield value get --customfield-id <uuid> --value-id <uuid>
uip tm customfield value create --customfield-id <uuid> --value <text>
uip tm customfield value update --customfield-id <uuid> --value-id <uuid> --value <text>
uip tm customfield value delete --customfield-id <uuid> --value-id <uuid>
```

All verbs honor the [global options](./global-options.md) and the standard [exit codes](./exit-codes.md). Every verb accepts `-t, --tenant <name>` and `--log-level <level>` (default `Information`).

## uip tm customfield list

List all custom field definitions. Optionally scoped to a project.

### Arguments

None.

### Options

- `--project-key <key>` — scope the list to a specific project (optional).

### Example

```bash
uip tm customfield list --project-key DEMO
```

### Data shape

```json
{
  "Code": "CustomFieldList",
  "Data": [
    {
      "Id": "c1b2c3d4-0000-0000-0000-000000000001",
      "Name": "Priority",
      "Type": "List"
    }
  ]
}
```

## uip tm customfield get

Get a single custom field definition by its UUID.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID. Obtain from `customfield list`.

### Example

```bash
uip tm customfield get --customfield-id c1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldGet",
  "Data": {
    "Id": "c1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Priority",
    "Type": "List"
  }
}
```

## uip tm customfield create

Create a new custom field.

### Arguments

None.

### Options

- `--name <name>` *(required)* — field name.
- `--type <type>` *(required)* — field type. Accepted values are tool-version-dependent; run `uip tm customfield create --help` to see the current enum.
- `--project-key <key>` — scope the field to a specific project.

### Example

```bash
uip tm customfield create \
  --name "Priority" \
  --type List \
  --project-key DEMO
```

### Data shape

```json
{
  "Code": "CustomFieldCreate",
  "Data": {
    "Id": "c1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Priority"
  }
}
```

## uip tm customfield update

Update a custom field's name or other properties.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field to update.
- `--name <name>` — new name.

### Example

```bash
uip tm customfield update \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --name "Severity"
```

### Data shape

```json
{
  "Code": "CustomFieldUpdate",
  "Data": {
    "Id": "c1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Severity",
    "Result": "Updated"
  }
}
```

## uip tm customfield delete

Delete a custom field definition.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field to delete.

### Example

```bash
uip tm customfield delete --customfield-id c1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldDelete",
  "Data": {
    "Id": "c1b2c3d4-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
```

## uip tm customfield label get

Get the display label for a custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.

### Example

```bash
uip tm customfield label get --customfield-id c1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldLabelGet",
  "Data": {
    "Label": "Priority"
  }
}
```

## uip tm customfield label list

List all display labels for a custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.

### Example

```bash
uip tm customfield label list --customfield-id c1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldLabelList",
  "Data": [
    "Priority",
    "Severity"
  ]
}
```

## uip tm customfield label create

Set the display label for a custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--label <text>` *(required)* — label text.

### Example

```bash
uip tm customfield label create \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --label "Priority"
```

### Data shape

```json
{
  "Code": "CustomFieldLabelCreate",
  "Data": {
    "Label": "Priority",
    "Result": "Created"
  }
}
```

## uip tm customfield label add

Add a label to a custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--label <text>` *(required)* — label text to add.

### Example

```bash
uip tm customfield label add \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --label "Severity"
```

### Data shape

```json
{
  "Code": "CustomFieldLabelAdd",
  "Data": {
    "Label": "Severity",
    "Result": "Added"
  }
}
```

## uip tm customfield label remove

Remove a label from a custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--label <text>` *(required)* — label text to remove.

### Example

```bash
uip tm customfield label remove \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --label "Severity"
```

### Data shape

```json
{
  "Code": "CustomFieldLabelRemove",
  "Data": {
    "Label": "Severity",
    "Result": "Removed"
  }
}
```

## uip tm customfield value list

List the allowed values for a list-type custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.

### Example

```bash
uip tm customfield value list --customfield-id c1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldValueList",
  "Data": [
    {
      "Id": "v1b2c3d4-0000-0000-0000-000000000001",
      "Value": "High"
    },
    {
      "Id": "v1b2c3d4-0000-0000-0000-000000000002",
      "Value": "Medium"
    }
  ]
}
```

## uip tm customfield value get

Get a single allowed value by its UUID.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--value-id <uuid>` *(required)* — value UUID. Obtain from `customfield value list`.

### Example

```bash
uip tm customfield value get \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --value-id v1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldValueGet",
  "Data": {
    "Id": "v1b2c3d4-0000-0000-0000-000000000001",
    "Value": "High"
  }
}
```

## uip tm customfield value create

Add an allowed value to a list-type custom field.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--value <text>` *(required)* — value text to add.

### Example

```bash
uip tm customfield value create \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --value "High"
```

### Data shape

```json
{
  "Code": "CustomFieldValueCreate",
  "Data": {
    "Id": "v1b2c3d4-0000-0000-0000-000000000001",
    "Value": "High"
  }
}
```

## uip tm customfield value update

Update an existing allowed value.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--value-id <uuid>` *(required)* — value UUID to update.
- `--value <text>` *(required)* — new value text.

### Example

```bash
uip tm customfield value update \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --value-id v1b2c3d4-0000-0000-0000-000000000001 \
  --value "Critical"
```

### Data shape

```json
{
  "Code": "CustomFieldValueUpdate",
  "Data": {
    "Id": "v1b2c3d4-0000-0000-0000-000000000001",
    "Value": "Critical",
    "Result": "Updated"
  }
}
```

## uip tm customfield value delete

Delete an allowed value.

### Arguments

None.

### Options

- `--customfield-id <uuid>` *(required)* — custom field UUID.
- `--value-id <uuid>` *(required)* — value UUID to delete.

### Example

```bash
uip tm customfield value delete \
  --customfield-id c1b2c3d4-0000-0000-0000-000000000001 \
  --value-id v1b2c3d4-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "CustomFieldValueDelete",
  "Data": {
    "Id": "v1b2c3d4-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
```

## Related

- [requirement](./uip-test-manager-requirement.md) — requirements can carry custom field values.
- [testcases](./uip-test-manager-testcases.md) — test cases can carry custom field values.

## See also

- [Test Manager overview](./uip-test-manager.md)
