Actualizar y borrar recursos
Requiere resources:write, que incluye resources:read, y Starter o Pro activo por REST. Consulta autenticación y errores.
| Método y ruta | Parámetros | Respuesta |
|---|---|---|
PATCH /api/v1/resources/:id |
ID positivo obligatorio; atributos JSON opcionales | 200 {"data": recurso} |
PUT /api/v1/resources/:id |
Igual que PATCH, conserva campos omitidos | 200 {"data": recurso} |
DELETE /api/v1/resources/:id |
ID positivo obligatorio; sin cuerpo | 200 {"data": recurso} eliminado, no 204 |
Atributos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name |
string no vacío | No | Nombre del recurso |
external_id |
string o null | No | Único por organización; null o cadena vacía lo retira |
tag_ids |
array de IDs positivos | No | Reemplaza etiquetas; deben pertenecer a la organización y admitir recursos |
resource_tag_ids |
array de IDs positivos | No | Alias REST; no usar junto con tag_ids |
Omitir etiquetas las conserva; [] las elimina. REST admite attrs como objeto alternativo a campos planos, sin duplicar campos. {} conserva los datos. contract solo se acepta al crear recurso; para cambiar jornada, fechas o coste utiliza contratos. No se aceptan organization_id ni assignments.
Ejemplos y respuesta
Incluye Bearer y Content-Type: application/json para JSON.
PATCH /api/v1/resources/7
Content-Type: application/json
{"name":"Ana García","external_id":"employee-456","tag_ids":[3]}
DELETE /api/v1/resources/7
data contiene id, external_id, name, tags, contracts, inserted_at, updated_at; no incluye assignments en estas mutaciones. Los contratos llevan fechas ISO, daily_hours, annual_convention_hours, cost_per_hour como decimal string y timestamps. El resultado de DELETE representa el recurso eliminado, no una consulta posterior. Borrar es destructivo, no un archivo reversible; revisa sus contratos y asignaciones antes de hacerlo.
Errores: 400 invalid_params para campos desconocidos/duplicados o etiquetas ajenas/incompatibles; 404 not_found para ID inexistente o de otra organización; 422 validation_error para nombre inválido o external_id duplicado; 409 conflict para otros rechazos. Formato: {"errors":{"code":"validation_error","detail":"Validation failed","name":["can't be blank"]}} (mensajes variables). También se aplican 401/403 comunes. Repetir DELETE tras el éxito devuelve 404.
MCP: kordia_manage_resource con action: "update" o "delete" e id; atributos planos y tag_ids. Requiere Pro activo.