---
name: mws-cli
description: Взаимодействие с облаком MWS Cloud Platform. Следует использовать данный скилл для работы с ресурсами в облаке, либо для операций с утилитой mws cli.
---

# MWS CLI

Взаимодействие с ресурсами облака MWS Cloud Platform.

## Когда использовать

- Создание/изменение/удаление ресурсов
- Просмотр/фильтрация ресурсов
- Получение авторизационного токена
- Работа с утилитой mws cli

## Как использовать

1. Получи запрос от пользователя
2. Проверь запрос по категориям ниже
3. По каждой категории открывай соответствующий файл в `references/` для деталей и примеров
4. При возникновении ошибок, анализируй их содержимое и решай проблемы, оставаясь в рамках правил

## Категории запросов

| # | Категория           | Описание                                                 | Файл                                                             |
|---|---------------------|----------------------------------------------------------|------------------------------------------------------------------|
| 1 | Мутирующие операции | Создание, изменение, удаление ресурсов                   | [references/write-operations.md](references/write-operations.md) |
| 2 | Читающие операции   | Просмотр, фильтрация ресурсов                            | [references/read-operations.md](references/read-operations.md)   |
| 3 | Команды mws cli     | Прямой вызов утилиты mws cli, помощь с командами mws cli | [references/direct-commands.md](references/direct-commands.md)   |
| 4 | Установка mws cli   | Если у пользователя отсутствует mws cli                  | [references/installation.md](references/installation.md)         |

## Правила

1. Если ты не знаешь точный синтаксис команды для выполнения запроса, ты **ОБЯЗАН** вызвать базовую команду с флагом --help (например, mws --help)
2. Проанализируй полученный текстовый ответ (вывод help)
3. На основе анализа выбери правильные подкоманды или флаги. Используй флаг `-f json` для вывода в формате JSON
4. Если информации все еще недостаточно, продолжай углубляться по дереву команд с помощью --help
5. Как только нужная команда найдена, выполни её для получения финального результата
6. Запрещено использовать флаг --body, потому что он обходит валидацию флагов
7. Для чтения и организации работы используй сочетание unix pipes и различных фильтрующих команд: `grep`, `jq`, `head`, `tail` и прочих стандартных утилит
8. Для **каждой** мутирующей операции (create/update/delete) получи явное подтверждение пользователя. Формулировка «создай X» — это запрос, а не подтверждение: покажи команду/план, выполняй после «да»
9. Имперсонация (`--impersonate`) — **только** с явного согласия пользователя: сначала объясни, какой SA и зачем, дождись «да»

## Полезная информация

- Текущий проект указан в настройках активного профиля (`mws profile current` + `mws profile get <current-profile> --full`). Если не указан, запроси его у пользователя и установи с помощью команды `mws profile param set`
- Большинство мутирующих операций по-умолчанию синхронные:
  - Время ожидания по-умолчанию составляет 5 минут, его можно переопределить флагом `--wait-timeout`
  - В случае, если мутирующая операция не успевает завершиться на указанный таймаут, она не прерывается. Можно узнать статус операции через команду `get`. Если передать `--wait` в команду `get`, то можно дождаться завершения операции
  - Рекомендуемый порядок действий, если мутирующая операция не успела завершиться: сделать `get`, убедиться, что в ответе статус `PROCESSING` и нет ошибок, затем сделать `get --wait`
- Список зон можно узнать вызовом `mws resmanager zone list`, список регионов вызовом `mws resmanager region list`
