Saltar para a documentação
API

Atualizar uma função

Todos os campos são opcionais, e `permissions` substitui a lista inteira.

PATCHapi.openemail.uk/roles/{id}

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
curl -X PATCH "$OE/roles/role_2b81de079c1f0a4b7e05d386" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"] }'
Resposta
{  "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.