Atualizar uma função
Todos os campos são opcionais, e `permissions` substitui a lista inteira.
Executa a chamada real contra o seu espaço de trabalho, com a sua própria chave.
PATCH /roles/{id}
Todos os campos são opcionais, e permissions substitui a lista inteira.
Exemplo
Requer roles:write. Omitir um campo deixa-o como está, que é o que PATCH significa.
curl -X PATCH "$OE/roles/role_2b81de079c1f0a4b7e05d386" -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{ "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"] }'{ "object": "role", "id": "role_2b81de079c1f0a4b7e05d386", "name": "Support", "description": "Answers the shared inboxes and nothing else.", "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"], "builtin": null, "editable": true, "deletable": true, "members": 3, "apiKeys": 1, "createdAt": "2026-08-30T10:41:02.000Z", "updatedAt": "2026-08-30T13:02:19.000Z"}permissions SUBSTITUI a lista inteira. Não há chamada para conceder uma só e não vai haver: uma lista é o que se audita, e um patch endereçado por índice é uma atualização perdida assim que houver dois separadores abertos. Leia a função, altere a entrada que queria, e devolva-as todas. Enviar uma permissão não acrescenta uma permissão. Deixa a função exatamente com essa, mais o que ela implicar.
description é anulável além de opcional, e a diferença é todo o sentido de um patch: omiti-lo mantém a frase guardada, enviar null limpa-a. Sem a anulabilidade não haveria forma de remover uma descrição a não ser substituí-la por um espaço.
O proprietário é a única função que um PATCH recusa, e recusa-lhe todos os campos: role_immutable, um 409 com param: "roleId". Tudo o resto aceita um nome novo tão prontamente como uma nova lista de permissões, incluindo as funções pré-criadas. builtin regista de onde veio uma função, não o que lhe pode ser feito. Um nome que outra função já tem é role_name_taken, um 409 com param: "name".
A edição entra em vigor no PRÓXIMO pedido feito por quem tiver a função, chaves de API incluídas, porque o tecto é resolvido por pedido em vez de ficar em cache. Estreitar uma função é, portanto, uma revogação imediata que tem efeito sem que as chaves sob ela sejam rodadas. Alargar uma é igualmente imediato, que é a metade que vale a pena recordar.