# Сценарии работы с ресурсами

Перед записью получите ID из списков. Задайте `ENV_ID`, `PHONE_ID`, `TEAM_APP_ID`, `GROUP_ID`, `FILE_ID` для нужных ресурсов разных типов. Примеры независимы, это не единый пакетный скрипт.

## Профили и ядра браузера

```bash
ml-cli env find --keyword Amazon
ml-cli --timeout 30 env open --keyword Amazon --exact
ml-cli --timeout 30 env start --env-id "$ENV_ID" --is-headless false --cdp-evasion true
ml-cli env core-download --core 1:124 --core 2:146
```

`find/open` ищет по имени, группе, метке и заметке; открывает только единственного кандидата. `env start` поддерживает `--encrypt-key` для шифрования. Ядра: `1` Chrome, `2` Firefox; 1–20 записей либо JSON `Cores`. Версии приведены для примера.

`env create-quick` поддерживает группу, прокси, учётные данные, регион и контроль IP. `fingerprint-refresh`: `--browser-type-id`, `--operator-system-id`, `--ua-version`, `--advanced-setting`; `resolution-list`: `--ua`. `set-group/set-remark`: `--env-ids` либо `--unique-ids`. `app-hide-accessibility --package-name` повторяется (псевдоним `--package-names`). См. [Команды](/ru/cli/commands).

## Облачные телефоны

```bash
ml-cli cloudphone find --keyword android-test
ml-cli --timeout 120 cloudphone open --keyword android-test --headless false
ml-cli --timeout 120 cloudphone power-on --id "$PHONE_ID" --headless true --disable-money-saving-mode false
ml-cli --timeout 30 cloudphone close --keyword android-test
```

`headless=false` показывает окно, `true` скрывает. Включение поддерживает `--disable-money-saving-mode`. Открытие по имени/ключу требует одного совпадения. Успешный запрос не подтверждает запуск или трансляцию.

## Приложения команды

`team-app-list` читает библиотеку команды, `app-list` — каталог. Используйте ID записи команды, не телефона/каталога. В списке `versionCode` — текст; `--version-code` и JSON `versionCode` требуют целого i64, не строки, дроби, имени или ID версии.

У `team-app-list` по умолчанию `pageNo=1`, `pageSize=10`; параметры должны помещаться в u32. Возьмите `PACKAGE_NAME` и целый `VERSION_CODE` из `app-list`. Обновление — только для приложений каталога, на другую доступную версию того же пакета; доступность проверяет сервер.

```bash
ml-cli cloudphone team-app-list --app-name Facebook --page-no 1 --page-size 10
ml-cli cloudphone app-list --app-name Facebook
ml-cli --fail-on-business-error cloudphone team-app-create --package-name "$PACKAGE_NAME" --version-code "$VERSION_CODE"
ml-cli --fail-on-business-error cloudphone team-app-update-group --id "$TEAM_APP_ID" --is-all false --group-ids "$GROUP_ID"
ml-cli --fail-on-business-error cloudphone team-app-enable --id "$TEAM_APP_ID" --enabled false
ml-cli --fail-on-business-error cloudphone team-app-update-install-setting --id "$TEAM_APP_ID" --install-setting 2
ml-cli --fail-on-business-error cloudphone team-app-update-enable-root --id "$TEAM_APP_ID" --enable-root false
ml-cli --fail-on-business-error cloudphone team-app-update-version --id "$TEAM_APP_ID" --package-name "$PACKAGE_NAME" --version-code "$VERSION_CODE"
ml-cli --fail-on-business-error cloudphone team-app-update-setting --id "$TEAM_APP_ID" --setting-type keep-alive --enabled false
ml-cli --fail-on-business-error cloudphone team-app-operate --id "$TEAM_APP_ID" --operation START --only-started-by-me true
ml-cli --fail-on-business-error cloudphone team-app-delete --id "$TEAM_APP_ID"
```

Создание — только из каталога, возвращает `data.id`, без загрузки APK. При `isAll=false` нужны группы; при `true` можно опустить/null. Политика `1` перезаписывает, `2` пропускает. Удаление записи сохраняет приложения и данные устройств.

Настройки: `permission/keep-alive/auto-start/hide` либо `PERMISSION/KEEP_ALIVE/AUTO_START/HIDE`. Операции: `start/stop/restart/uninstall` либо верхний регистр. Флаги и JSON принимают эти точные формы и отправляют верхний регистр. Другие значения отклоняются. Пропуск/null `onlyStartedByMe` — false; отсутствие/null `enabled` — ошибка.

```bash
ml-cli --fail-on-business-error cloudphone team-app-update-setting --json-data '{"id":"123456","settingType":"KEEP_ALIVE","enabled":true}' --enabled false
```

Версия/настройки возвращают `data=null`: сохранение, не выполнение на устройстве. Версия, разрешения и автозапуск применяются при старте; активность/скрытие могут отправляться асинхронно. Пакетное `data=true` не гарантирует успех каждого устройства. CLI не включает телефоны, не повторяет запись и не опрашивает автоматически. Удаление может стереть данные приложения, сохраняя предустановку. Проверьте `team-app-list` и устройства отдельно.

## Облачное хранилище

```bash
ml-cli cloud-storage info
ml-cli cloud-storage list --keyword video --page-no 1 --page-size 20
ml-cli cloud-storage presign --file-name video.mp4
```

Загрузка: presign, PUT файла на `presignedUrl`, затем `complete --id` с полученным ID. Передайте выданные заголовки. Complete — только после успешного PUT. При блокировке сети/песочницы получите доступ или попросите пользователя загрузить локально. Не публикуйте временные URL.

```bash
curl -f -L -X PUT --upload-file ./video.mp4 "$PRESIGNED_URL"
ml-cli cloud-storage complete --id "$UPLOAD_ID"
```

```powershell
curl.exe -f -L -X PUT --upload-file .\video.mp4 "$env:PRESIGNED_URL"
ml-cli cloud-storage complete --id "$env:UPLOAD_ID"
```

```bash
ml-cli cloud-storage labels
ml-cli cloud-storage label-create --label-name automation --color "#2F80ED"
ml-cli cloud-storage label-update --label-id "$LABEL_ID" --label-name automation-ready --color "#27AE60"
ml-cli cloud-storage file-labels --file-id "$FILE_ID"
ml-cli cloud-storage add-labels --file-id "$FILE_ID" --tag-id "$LABEL_ID"
ml-cli cloud-storage set-labels --file-id "$FILE_ID" --tag-id "$LABEL_ID"
ml-cli cloud-storage label-delete --label-id "$LABEL_ID"
ml-cli cloud-storage delete --file-id "$FILE_ID"
```

RPA использует `morelogin://cloudfile?ids=<fileId>`, несколько ID разделяются запятыми. Сохраняйте `__Extra__`. Планирование и запросы: `schedule template-market/template-personal/list/create-once-task/cancel/subtask-list/subtask-detail/subtask-cancel`.

## Облачные браузеры

```bash
ml-cli cloud-browser list --page-no 1 --page-size 10
ml-cli --timeout 30 cloud-browser start --env-id "$ENV_ID"
ml-cli cloud-browser connect --env-id "$ENV_ID"
ml-cli cloud-browser stop --env-id "$ENV_ID" --force false
```

Эти команды управляют удалёнными браузерами, а `env start/open` — локальными профилями. У start/stop/connect свои параметры и JSON; перед повторным использованием ID/порта изучите справку.

## Группы, метки, прокси и метаданные

```bash
ml-cli group list
ml-cli tag list
ml-cli proxy list
ml-cli env set-group --help
ml-cli env set-proxy --help
ml-cli env set-remark --help
```

Ответы могут содержать `groupName` (null без группы), `tagInfos` (пусто без меток), `envRemark`. ID меток — строки. Таблица выделяет эти поля; JSON сохраняет вложенность. Флаги создания, правки и удаления см. в [Командах](/ru/cli/commands).