# Flujos de recursos

Antes de escribir, obtiene IDs reales de las listas. Asigna `ENV_ID`, `PHONE_ID`, `TEAM_APP_ID`, `GROUP_ID` y `FILE_ID` a sus recursos; son tipos diferentes. Los ejemplos son recetas independientes.

## Perfiles y motores

```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` busca por nombre, grupo, etiqueta o comentario; solo abre con un candidato único. `env start` acepta `--encrypt-key` para perfiles cifrados. Núcleos: `1` Chrome, `2` Firefox; 1–20 entradas o JSON `Cores`. Las versiones son ejemplos.

`env create-quick` añade grupo, proxy, credenciales, ubicación y monitorización IP. `fingerprint-refresh` admite `--browser-type-id`, `--operator-system-id`, `--ua-version`, `--advanced-setting`; `resolution-list`, `--ua`. `set-group/set-remark` acepta `--env-ids` o `--unique-ids`. `app-hide-accessibility --package-name` es repetible (alias `--package-names`). Consulta [Comandos](/es/cli/commands).

## Teléfonos en la nube

```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` muestra la ventana; `true` la oculta. El encendido admite `--disable-money-saving-mode`. Abrir por nombre o palabra clave exige una coincidencia única. Éxito de la petición no confirma inicio ni streaming.

## Aplicaciones del equipo

`team-app-list` consulta la biblioteca del equipo; `app-list`, el catálogo. Usa el ID del registro del equipo, no del teléfono ni del catálogo. `versionCode` de lista es texto; `--version-code` y JSON `versionCode` exigen enteros i64, no cadenas, decimales, nombres o IDs de versión.

`team-app-list` usa `pageNo=1`, `pageSize=10` por defecto; la paginación debe caber en u32. Obtén `PACKAGE_NAME` y `VERSION_CODE` entero de `app-list`. Actualizar versión solo admite aplicaciones del catálogo y otra versión disponible del mismo paquete; el servidor valida la disponibilidad.

```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"
```

Crear solo admite aplicaciones del catálogo y devuelve `data.id`; no sube APK personalizados. `isAll=false` exige grupos no vacíos; con `true` se omiten o son null. Política `1` sobrescribe, `2` omite. Eliminar conserva aplicaciones y datos del dispositivo.

Configuración: `permission/keep-alive/auto-start/hide` o `PERMISSION/KEEP_ALIVE/AUTO_START/HIDE`. Operaciones: `start/stop/restart/uninstall` o mayúsculas. Flags y JSON aceptan esas grafías exactas y envían mayúsculas. Se rechazan otros valores. `onlyStartedByMe` omitido/null vale false; `enabled` ausente/null se rechaza.

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

Versión/configuración devuelve `data=null`: confirma guardado, no ejecución. Versión, permisos e inicio automático se aplican al arrancar; persistencia/ocultación también pueden enviarse de forma asíncrona. `data=true` por lotes no garantiza éxito individual. La CLI no arranca, reintenta ni sondea automáticamente. Desinstalar puede borrar datos del dispositivo y conserva la preinstalación. Verifica con `team-app-list` y por dispositivo.

## Almacenamiento en la nube

```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
```

Sube en tres pasos: presign, PUT binario a `presignedUrl`, luego `complete --id` con el ID recibido. Incluye los headers devueltos. Completa solo tras PUT exitoso. Si la red/sandbox bloquea PUT, solicita acceso o que el usuario lo ejecute localmente. No publiques URLs temporales.

```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 admite `morelogin://cloudfile?ids=<fileId>` y varios IDs separados por comas. Conserva `__Extra__` en los parámetros. Para planificación y consultas usa `schedule template-market/template-personal/list/create-once-task/cancel/subtask-list/subtask-detail/subtask-cancel`.

## Navegadores en la nube

```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
```

Estos comandos administran runtimes remotos; `env start/open` controla perfiles locales. Start/stop/connect tienen contratos propios; consulta ayuda antes de reutilizar IDs o puertos.

## Grupos, etiquetas, proxies y metadatos

```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
```

Las respuestas pueden incluir `groupName` (null sin grupo), `tagInfos` (vacío sin etiquetas) y `envRemark`. Los IDs de etiqueta son cadenas. Tabla prioriza esos campos; JSON conserva anidación. Los flags de creación, edición y borrado están en [Comandos](/es/cli/commands).