**Language / Язык:** [English](../../domains/tagging.md) | [Русский](tagging.md)

# Tagging

Сервис CIS tagging (categories, tags, object associations):
[`app/vsphere/rest/tagging_rest.py`](../../../app/vsphere/rest/tagging_rest.py),
[`app/vsphere/domain/tagging.py`](../../../app/vsphere/domain/tagging.py).

## Эндпоинты

| Метод | Путь | Заметки |
|---|---|---|
| GET/POST | `/api/cis/tagging/category` | Список / create (`cardinality`, `associable_types`) |
| GET/DELETE | `/api/cis/tagging/category/{category_id}` | |
| GET/POST | `/api/cis/tagging/tag` | Список / create под category |
| GET/DELETE | `/api/cis/tagging/tag/{tag_id}` | |
| POST | `/api/cis/tagging/tag-association` | Attach/detach тега к/от объекта |

## Основные моменты

- Id category и tag следуют реальной форме
  `urn:vmomi:InventoryServiceCategory:…` /
  `urn:vmomi:InventoryServiceTag:…:GLOBAL`.
- Строки живут в `vsphere_tag_categories`, `vsphere_tags`,
  `vsphere_tag_associations` — устойчивы между перезапусками, заменяются
  при reseed.
- Seed создаёт две categories (`Environment`, `Owner`) с тегами `prod`/
  `staging`/`platform` и прикрепляет `prod` к двум seeded VM
  (`seed_platform_extras` в
  [`app/vsphere/domain/content.py`](../../../app/vsphere/domain/content.py)).
- Attach/create тега требует привилегии
  `InventoryService.Tagging.CreateCategory` / `.CreateTag` / `.AttachTag` —
  см. [Авторизация](authz.md).
