:::endpoint PUT /v1/admin/tickets/{ticket}/tags

The team's own labels on a ticket: what it is about, so it can be found and
counted later. Send the whole list the ticket should carry, an empty one to
take every tag off, so two people tagging at once cannot half undo each other.
Nothing else changes, and traders never see tags.

It is the one change an ended ticket still takes, so a ticket can be labelled
after it was resolved or closed.

The tags are the firm's [ticket tags](/docs/api/admin/ticket-tags). Answers with
the [ticket](/docs/api/admin/ticket), with its `tags` as they are now.

Needs a firm. Our own staff name one with the `Propper-Workspace` header.

## Request

| Field     | Description |
| --------- | ----------- |
| `tag_ids` | The ids of every tag the ticket should carry, up to 100. Required, and may be empty |

```bash
curl -X PUT "https://api.proppertrading.com/v1/admin/tickets/tkt_cbqjrnz84cq45ca7/tags" \
  -H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
  -H "Propper-Workspace: acme" \
  -H "Content-Type: application/json" \
  -d '{"tag_ids": ["ttag_kr5xp9kr8ykuz5mr", "ttag_bvumknnax5q6kbwd"]}'
```

## Response

The [ticket](/docs/api/admin/ticket), with its `tags` as they are now.

## Errors

| Status | Code                      | Meaning                                                                         |
| ------ | ------------------------- | ------------------------------------------------------------------------------- |
| 400    | `workspace_required`      | Asked by our own staff without naming a firm                                    |
| 401    | `invalid_token`           | Not a token, or the secret does not match                                       |
| 401    | `revoked_token`           | Signed out here or from another device                                          |
| 401    | `expired_token`           | Ninety days without use, or a set expiry passed                                 |
| 403    | `admin_access_required`   | This account no longer helps run the environment                                |
| 403    | `insufficient_scope`      | This device does not hold `admin:write`                                         |
| 403    | `workspace_not_permitted` | The `Propper-Workspace` header names an environment this account cannot act in |
| 403    | `forbidden`               | Without `view_tickets` and `manage_tickets`                                     |
| 404    | `resource_not_found`      | No ticket with that id in this firm                                             |
| 422    | `validation_failed`       | No `tag_ids`, more than 100, or an id that is not one of this firm's tags. Nothing changes |