# Rename a virtual tag value

Source: https://docs.levelfour.ai/api-reference/tags/patch-tags-virtual-by-id-values-by-id


## PATCH /api/v1/tags/virtual/{key_id}/values/{value_id}

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `key_id` (path, string, required)
- `value_id` (path, string, required)

### Request body

Required. Content type `application/json`.

- `name` (string, required)
- `expected_version` (integer, required)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `key` (object, required)
    - `id` (string, required)
    - `name` (string, required)
    - `origin` (one of `virtual`, `provider`, required)
    - `description` (string, required)
    - `providers` (array of one of `aws`, `gcp`, `digitalocean`, required)
    - `status` (one of `active`, `reprocessing`, `error`, nullable)
    - `shares_provider_key` (boolean, default `false`)
    - `can_override` (boolean, default `false`)
    - `effective_from` (string, nullable)
    - `rules_version` (integer, default `0`)
    - `collapsed_keys` (array of object)
      - `source` (object, required)
      - `scope` (object, nullable)
      - `value_prefix` (string, default ``)
      - `position` (integer, required)
    - `configs` (array of object)
      - `filter` (object, required)
      - `time_frame` (object, nullable)
      - `assign` (object, required)
      - `id` (string, required)
      - `position` (integer, required)
    - `values` (array of object)
      - `id` (string, required)
      - `name` (string, required)
      - `spend` (number, required)
      - `resource_count` (integer, required)
    - `total_spend` (number, required)
    - `unallocated_spend` (number, required)
    - `resource_count` (integer, required)
    - `dependents` (array of object)
      - `id` (string, required)
      - `name` (string, required)
    - `job` (object, nullable)
      - `id` (string, required)
      - `status` (one of `queued`, `running`, `succeeded`, `failed`, `superseded`, required)
      - `from_period` (string, required)
      - `to_period` (string, required)
      - `periods_done` (integer, required)
      - `periods_total` (integer, required)
      - `error` (string, nullable)
      - `created_at` (date-time string, required)
      - `finished_at` (date-time string, nullable)
    - `window` (object, required)
      - `start` (date string, required)
      - `end` (date string, required)
  - `job` (object, nullable)
    - `id` (string, required)
    - `status` (one of `queued`, `running`, `succeeded`, `failed`, `superseded`, required)
    - `from_period` (string, required)
    - `to_period` (string, required)
    - `periods_done` (integer, required)
    - `periods_total` (integer, required)
    - `error` (string, nullable)
    - `created_at` (date-time string, required)
    - `finished_at` (date-time string, nullable)

#### Errors

- `400`: Bad Request
- `401`: Authentication Error
- `403`: Authorization Error
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

Body of `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`:

- `success` (`false`, required)
- `error` (object, required)
  - `code` (string, required)
  - `message` (string, required)
  - `details` (any)
- `timestamp` (date-time string, required)
