> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear o actualizar archivo o carpeta de la aplicación

> Crea o actualiza un archivo o una carpeta de una aplicación a partir de su ID.

**id** `string` *required*

El ID de la aplicación en la que se creará o actualizará el archivo o la carpeta. Si la aplicación pertenece a un workspace, pasa su ID en el parámetro de query `workspace_id`.

**workspace\_id** `string`

Si la aplicación pertenece a un workspace, el ID de ese workspace. Los miembros con el rol Propietario, Administrador o Desarrollador pueden usar el gestor de archivos en una aplicación del workspace que no les pertenece; sin este parámetro, solo puede hacerlo el propietario de la aplicación.

**path** `string` *required*

La ruta donde se creará o actualizará el archivo o la carpeta. Termina con `/` para crear una carpeta.

**content** `string`

El contenido del archivo que se creará o actualizará. Es obligatorio para los archivos; no aplica a las carpetas.

**last\_modified** `string`

Fecha y hora ISO opcional de la última modificación conocida del archivo, tal como la devuelve [`GET /files/content`](https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/filemanager/content). Si se envía y no coincide con la fecha de modificación actual del archivo en disco, el guardado se rechaza con `FILE_MODIFIED` en lugar de sobrescribir en silencio una versión más reciente; úsalo para detectar conflictos de edición. Omítelo para guardar sin condiciones.

**confirm\_detach** `boolean`

Envía `true` para confirmar que el cambio desvincula una aplicación que viene de una plantilla abierta (deja de recibir versiones). Sin este parámetro, la petición no cambia nada y responde `409` `TEMPLATE_DETACH_CONFIRMATION_REQUIRED`. Se ignora en las demás aplicaciones. Consulta [Desvincular de una plantilla](https://docs.vertracloud.app/es-es/api-reference/endpoint/templates/detach.md).

### Respuesta

Si todo va bien, responde `200` con `{ "response": null }`.

```json Response theme={null}
{
  "response": null
}
```

### Respuestas de error

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `AUTH_TOKEN_MISSING`, `API_KEY_INVALID`, `SESSION_REVOKED`: Falta la cabecera `Authorization`, la clave de API no es válida o la sesión del panel fue revocada (`401`).
* `API_KEY_IP_DENIED`, `API_KEY_SCOPE_DENIED`: La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta (`403`).
* `ACCESS_DENIED`: El recurso pertenece a otra cuenta, o no tienes el permiso de workspace necesario para él (`403`).
* `FORBIDDEN`: El usuario no tiene permiso para acceder a la aplicación.
* `APP_NOT_FOUND`: La aplicación indicada no existe.
* `PLAN_RESTRICTED_FEATURE`: El plan del usuario no admite el acceso al gestor de archivos.
* `MISSING_PATH`: No se proporcionó el parámetro de query `path`.
* `MISSING_CONTENT`: El parámetro `content` del cuerpo es obligatorio para los archivos.
* `INVALID_PATH`: La ruta indicada no es válida.
* `TARGET_IS_DIRECTORY`: La ruta ya existe como carpeta y no se puede escribir en ella como archivo.
* `FILE_MODIFIED`: La fecha de modificación actual del archivo no coincide con el `last_modified` enviado: alguien lo cambió desde que se leyó por última vez. Vuelve a cargar el archivo antes de guardarlo de nuevo.
* `PUT_FILE_FAILED`: No se pudo crear o actualizar el archivo o la carpeta.
* `OWNER_APP_WITHOUT_LIMITS`: No se encontraron los límites del plan del propietario.
* `TEMPLATE_DETACH_CONFIRMATION_REQUIRED`: El cambio desvincularía la aplicación de su plantilla y no se envió `confirm_detach` (`409`). No se cambió nada.

**message** `string`

Una descripción detallada con información adicional sobre el error.

```json Error Response (403) theme={null}
{
  "code": "ACCESS_DENIED"
}
```

```json Error Response (404) theme={null}
{
  "code": "APP_NOT_FOUND"
}
```

```json Error Response (409) theme={null}
{
  "code": "FILE_MODIFIED",
  "message": "File was modified since it was last read"
}
```

```json Error Response (400) theme={null}
{
  "code": "TARGET_IS_DIRECTORY"
}
```

```json Error Response (400) theme={null}
{
  "code": "MISSING_PATH",
  "message": "Path query parameter is required"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.