Logs de auditoria da guilda
Uma entrada de log de auditoria registra uma alteração feita em uma guilda e a conta que a fez. Apenas Listar logs de auditoria da guilda e sua contraparte na API de Admin os leem.
Motivo de auditoria
Seção intitulada “Motivo de auditoria”Uma rota marcada com Motivo de auditoria aceita o cabeçalho de requisição X-Audit-Log-Reason, listado junto com os outros cabeçalhos de requisição padrão. O Decoding Chat lê o valor literalmente e nunca o decodifica de porcentagem (percent-decode), portanto, um chamador que codifica o motivo com porcentagem o armazena e o lê de volta na forma codificada.
O Decoding Chat apara (trims) o valor. Um valor que está em branco antes de ser aparado, vazio após isso, ou maior que 512 caracteres após isso, não conta como nenhum motivo. Nenhum desses valores falha a requisição, então um motivo que ultrapassa o limite é descartado e a operação ainda é bem-sucedida.
As rotas de canal e de mensagem que gravam entradas registram o cabeçalho também: Modificar canal, Deletar ou sair do canal, Definir substituição de permissão do canal, Deletar substituição de permissão do canal, Deletar mensagem, Deletar mensagens em massa, Fixar mensagem, e Desafixar mensagem.
Duas operações usam um motivo do corpo da requisição quando o cabeçalho não fornece nenhum:
- Criar ou substituir banimento da guilda usa o
reasondo corpo. - Modificar membro da guilda usa o
timeout_reasonaparado quando o corpo também temcommunication_disabled_until.
O Decoding Chat também nunca decodifica de porcentagem um motivo de corpo. A operação grava o motivo aceito em sua entrada, o retorna como o campo reason da entrada e o envia no Dispatch de Criação de Entrada no Log de Auditoria da Guilda.
O Decoding Chat resolve o motivo novamente quando lê uma entrada. Uma entrada MEMBER_BAN_ADD com um motivo armazenado em branco retorna o reason do banimento de sua lista de alterações, e uma entrada MEMBER_UPDATE com um motivo armazenado em branco retorna o motivo de tempo limite (timeout) armazenado com ele, quando houver. O resultado é aparado, e um resultado em branco é omitido.
Objeto de resposta de log de auditoria da guilda
Seção intitulada “Objeto de resposta de log de auditoria da guilda”Uma página do histórico de auditoria junto com as contas e webhooks que ele referencia. Apenas audit_log_entries é paginado.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| audit_log_entries1 | array[objeto de entrada de log de auditoria da guilda] | A página de entradas que esta requisição retornou |
| users2 | array[objeto de usuário parcial] | As contas que as entradas retornadas nomeiam |
| webhooks3 | array[objeto de webhook de log de auditoria] | Os webhooks que uma ação de webhook retornada tem como alvo |
1 A ordenação da página é definida pelos parâmetros de consulta da requisição que a produziu
2 Desduplicado pelo ID de usuário, e um valor referenciado que não é um snowflake não nomeia nenhuma conta
3 Um objeto para cada webhook distinto que uma ação de webhook retornada tem como alvo e que ainda existe, de modo que um webhook deletado não é resolvido em nenhum objeto
users tem o ator de cada entrada retornada e cada conta que a entrada referencia:
target_idde cada ação de MEMBER_KICK a MEMBER_DISCONNECT, e de BOT_ADDtarget_idde uma ação de substituição de canal cujooptions.typeé1- o
new_valueda alteraçãoowner_idde GUILD_UPDATE - o
old_valueda alteraçãomoderator_idde MEMBER_BAN_REMOVE options.inviter_idde INVITE_DELETE- o
old_valueda alteraçãocreator_idde WEBHOOK_DELETE, EMOJI_DELETE e STICKER_DELETE
Uma conta que não pode mais ser resolvida ainda é retornada, como a representação de conta deletada com o nome de usuário DeletedUser, o discriminador 0000, o nome global Deleted User, um avatar nulo, uma cor de avatar nula e flags de 0.
Objeto de entrada de log de auditoria da guilda
Seção intitulada “Objeto de entrada de log de auditoria da guilda”Uma alteração registrada na guilda. Uma entrada é imutável uma vez gravada, exceto para uma execução de entradas de exclusão de mensagens, que Listar logs de auditoria da guilda pode substituir por uma única entrada consolidada.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| id | snowflake | O ID da entrada, cujo timestamp em snowflake é a hora em que foi gravada |
| action_type | integer | Valor de ação de auditoria que identifica a operação registrada |
| user_id1 | snowflake | O ID do usuário que realizou a ação |
| target_id2 | ?string | O ID da entidade afetada |
| reason?3 | string | O motivo de auditoria registrado com a operação |
| options?4 | objeto de opções de log de auditoria | Os campos de contexto que esta ação de auditoria registra |
| changes?5 | array[objeto de alteração de log de auditoria] | Os campos que a mutação alterou |
1 Toda entrada tem o ID do usuário atuante, e uma entrada produzida por consolidação tem o ator da execução consolidada
2 Uma string de snowflake decimal para cada ação exceto INVITE_CREATE e INVITE_DELETE, onde é o código de convite, e nulo para MESSAGE_BULK_DELETE
3 O campo é omitido quando nenhum motivo não em branco é resolvido conforme descrito em motivo de auditoria, de modo que uma entrada gravada por consolidação nunca tem um
4 O campo é omitido quando a ação não registrou nenhuma chave de opção que este registro publica
5 O campo é omitido quando a ação não registra alteração de campo, portanto nunca é retornado como um array vazio
Exemplo
Seção intitulada “Exemplo”{ "id": "1501314428688998184", "action_type": 24, "user_id": "1489002177550843905", "target_id": "1489002177550843906", "reason": "O apelido violou as regras", "changes": [{"key": "nick", "old_value": "spam bot", "new_value": null}]}Ações de auditoria
Seção intitulada “Ações de auditoria”A coluna Valor é o action_type numérico, que também é o valor que o filtro de consulta action_type aceita. Cada descrição nomeia o que target_id identifica e quais opções de log de auditoria a ação registra. As opções de substituição são id, type, channel_id e role_name10. As opções de convite são max_age, max_uses, temporary, channel_id7 e inviter_id7.
| Valor | Nome | Descrição |
|---|---|---|
| 1 | GUILD_UPDATE1 | As configurações ou propriedade da guilda foram alteradas. target_id é a guilda, e a ação não registra opções |
| 10 | CHANNEL_CREATE | Um canal da guilda foi criado. target_id é o canal, e a ação registra type |
| 11 | CHANNEL_UPDATE | Um canal da guilda foi alterado. target_id é o canal, e a ação registra type |
| 12 | CHANNEL_DELETE | Um canal da guilda foi deletado. target_id é o canal, e a ação registra type |
| 13 | CHANNEL_OVERWRITE_CREATE | Uma substituição de permissão de canal foi criada. target_id é o cargo ou membro, e a ação registra as opções de substituição |
| 14 | CHANNEL_OVERWRITE_UPDATE | Uma substituição de permissão de canal foi alterada. target_id é o cargo ou membro, e a ação registra as opções de substituição |
| 15 | CHANNEL_OVERWRITE_DELETE | Uma substituição de permissão de canal foi deletada. target_id é o cargo ou membro, e a ação registra as opções de substituição |
| 20 | MEMBER_KICK2 | Um membro foi removido por um moderador. target_id é o usuário, e a ação não registra opções |
| 21 | MEMBER_PRUNE3 | Membros inativos foram podados. target_id é nada, e a ação não registra opções |
| 22 | MEMBER_BAN_ADD | Um banimento da guilda foi criado ou substituído. target_id é o usuário, e a ação registra delete_message_seconds4 |
| 23 | MEMBER_BAN_REMOVE | Um banimento da guilda foi removido. target_id é o usuário, e a ação não registra opções |
| 24 | MEMBER_UPDATE | O estado de um membro da guilda foi alterado. target_id é o usuário, e a ação não registra opções |
| 25 | MEMBER_ROLE_UPDATE | Um cargo foi adicionado ou removido de um membro. target_id é o usuário, e a ação registra role_name5 |
| 26 | MEMBER_MOVE6 | A sessão de voz de um membro foi movida para outro canal. target_id é o usuário, e a ação registra channel_id e count |
| 27 | MEMBER_DISCONNECT6 | A sessão de voz de um membro foi desconectada. target_id é o usuário, e a ação registra channel_id e count |
| 28 | BOT_ADD | Um bot foi adicionado à guilda. target_id é o usuário, e a ação registra temporary |
| 30 | ROLE_CREATE | Um cargo foi criado. target_id é o cargo, e a ação não registra opções |
| 31 | ROLE_UPDATE | Um cargo foi alterado. target_id é o cargo, e a ação registra role_name |
| 32 | ROLE_DELETE | Um cargo foi deletado. target_id é o cargo, e a ação não registra opções |
| 40 | INVITE_CREATE | Um convite foi criado. target_id é o código de convite, e a ação registra as opções de convite |
| 41 | INVITE_UPDATE8 | Um convite foi alterado. target_id é o código de convite, e a ação não registra opções |
| 42 | INVITE_DELETE | Um convite foi deletado. target_id é o código de convite, e a ação registra as opções de convite |
| 50 | WEBHOOK_CREATE | Um webhook foi criado. target_id é o webhook, e a ação registra channel_id7 |
| 51 | WEBHOOK_UPDATE | Um webhook foi alterado. target_id é o webhook, e a ação registra channel_id7 |
| 52 | WEBHOOK_DELETE | Um webhook foi deletado. target_id é o webhook, e a ação registra channel_id7 |
| 60 | EMOJI_CREATE | Um emoji foi criado. target_id é o emoji, e a ação não registra opções |
| 61 | EMOJI_UPDATE | Um emoji foi alterado. target_id é o emoji, e a ação não registra opções |
| 62 | EMOJI_DELETE | Um emoji foi deletado. target_id é o emoji, e a ação não registra opções |
| 72 | MESSAGE_DELETE | Uma única mensagem foi deletada. target_id é a mensagem, e a ação registra channel_id |
| 73 | MESSAGE_BULK_DELETE9 | Várias mensagens foram deletadas em uma operação. target_id é nada, e a ação registra channel_id e count |
| 74 | MESSAGE_PIN | Uma mensagem foi fixada. target_id é a mensagem, e a ação registra channel_id e message_id |
| 75 | MESSAGE_UNPIN | Uma mensagem foi desafixada. target_id é a mensagem, e a ação registra channel_id e message_id |
| 90 | STICKER_CREATE | Uma figurinha (sticker) foi criada. target_id é a figurinha, e a ação não registra opções |
| 91 | STICKER_UPDATE | Uma figurinha foi alterada. target_id é a figurinha, e a ação não registra opções |
| 92 | STICKER_DELETE | Uma figurinha foi deletada. target_id é a figurinha, e a ação não registra opções |
1 Registrado por Modificar guilda, por Modificar URL de convite personalizado da guilda, e por Transferir propriedade da guilda, e target_id é a guilda em cada caso
2 Uma entrada de expulsão é sempre registrada sem lista de alterações, de forma que o estado de associação removido não é publicado através da entrada
3 O valor é definido pelo contrato de rede (wire contract) e é aceito pelo filtro action_type, e nenhuma operação de guilda atual o registra
4 A opção é registrada quando a janela resolvida de exclusão de mensagem do banimento é positiva. Uma entrada de banimento mais antiga pode ter a opção obsoleta delete_member_days
5 Registrado quando o cargo existe no momento da gravação. O ID do cargo é a diferença entre os valores da alteração roles nos campos de alteração de membro da guilda
6 count é sempre 1, e channel_id é o canal de destino para um movimento e o canal desocupado para uma desconexão. Um movimento para o canal que a sessão já ocupa não registra nenhuma entrada
7 A opção é registrada apenas quando a entidade registrada tem aquele valor, de modo que um convite sem canal ou sem quem o convidou não registra nenhum dos dois, e um webhook sem canal não registra nenhuma opção
8 O filtro aceita este valor, e nenhuma operação de guilda atual registra esta ação
9 Uma entrada de exclusão em massa é registrada ou por uma operação de exclusão em massa de mensagens ou pela consolidação descrita em Listar logs de auditoria da guilda
10 Registrado para uma substituição cujo alvo é um cargo diferente de @everyone, quando esse cargo existe no momento da gravação
Objeto de opções de log de auditoria
Seção intitulada “Objeto de opções de log de auditoria”Cada campo está presente apenas para as ações listadas contra ele no registro de ações de auditoria. Apenas as chaves neste registro são publicadas, e a resposta omite options inteiramente quando uma entrada não registrou nenhuma delas.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| channel_id | string | O ID decimal do canal ao qual a ação se refere |
| count1 | number | O número de entidades afetadas pela ação |
| delete_member_days2 | string | Os dias inteiros de mensagens do membro banido que o banimento deletou |
| delete_message_seconds3 | number | Os segundos de mensagens do membro banido que o banimento deletou |
| id | string | O ID decimal do cargo ou membro ao qual a substituição se aplica |
| integration_type4 | number | O tipo de integração que a entrada nomeia |
| message_id | string | O ID decimal da mensagem única à qual a ação se refere |
| members_removed4 | number | O número de associações que a ação removeu |
| role_name5 | string | O nome do cargo ao qual a ação se refere, como estava quando a entrada foi gravada |
| type6 | number | O tipo de canal, ou o tipo de substituição de permissão |
| inviter_id | string | O ID decimal do usuário que criou o convite |
| max_age | number | O tempo de vida do convite configurado em segundos |
| max_uses | number | A contagem máxima de uso configurada |
| temporary | boolean | Se a entidade registrada é temporária |
| uses4 | number | A contagem de uso do convite registrada com a ação |
1 O valor é o comprimento da execução consolidada para MESSAGE_BULK_DELETE e é sempre 1 para as ações de voz
2 Obsoleto, e presente apenas em uma entrada de banimento registrada antes de delete_message_seconds. Seu valor é o campo de corpo legado delete_message_days de Criar ou substituir banimento de guilda, portanto um banimento que enviou apenas delete_message_seconds tem "0"
3 Presente quando a janela de exclusão resolvida de Criar ou substituir banimento de guilda é positiva, seja qual for o campo de corpo que a definiu
4 O campo é definido pelo contrato de rede (wire contract) e nenhuma operação de guilda atual o registra
5 Registrado por MEMBER_ROLE_UPDATE, ROLE_UPDATE, e uma ação de substituição cujo alvo é um cargo diferente de @everyone
6 O valor é um tipo de canal para as ações de canal e um tipo de substituição de permissão para as ações de substituição
Objeto de alteração de log de auditoria
Seção intitulada “Objeto de alteração de log de auditoria”Um campo que uma mutação alterou, com o valor em cada lado da alteração.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| key1 | string | O nome do campo que mudou, retirado dos campos de alteração da entidade que a ação tem como alvo |
| old_value?2 | valor de alteração do log de auditoria | O valor que o campo mantinha antes da mutação |
| new_value?2 | valor de alteração do log de auditoria | O valor que o campo mantém após a mutação |
1 Uma alteração cuja chave é ip nunca é publicada por meio deste recurso, e changes é omitido inteiramente quando não resta nenhuma outra alteração
2 Uma criação tem apenas new_value, uma exclusão tem apenas old_value, e uma modificação tem ambos, portanto um objeto de alteração sempre tem pelo menos um dos dois
Um valor de alteração é uma string, um número JSON, um booleano, null, um array de strings, um array de números, ou um objeto com os arrays de string added e removed. O último formato vem apenas da chave permissions_diff de uma modificação de cargo.
Campos de alteração
Seção intitulada “Campos de alteração”Cada tabela abaixo nomeia os campos que uma ação daquela família pode registrar.
Campos de alteração de guilda
Seção intitulada “Campos de alteração de guilda”Registrado por GUILD_UPDATE.
| Campo | Tipo | Descrição |
|---|---|---|
| guild_id1 | string | O ID decimal da própria guilda |
| name | string | O nome que foi dado à guilda por esta alteração (1-100 caracteres) |
| owner_id | string | O ID decimal do proprietário da guilda |
| vanity_url_code | ?string | O código de convite personalizado configurado, ou nulo quando a guilda não tem nenhum |
| icon_hash | ?string | O hash do ícone da guilda, ou nulo quando a guilda não tem ícone |
| banner_hash | ?string | O hash do banner da guilda, ou nulo quando a guilda não tem banner |
| banner_width | ?number | A largura do banner da guilda em pixels, ou nulo quando a guilda não tem banner |
| banner_height | ?number | A altura do banner da guilda em pixels, ou nulo quando a guilda não tem banner |
| splash_hash | ?string | O hash do splash da guilda, ou nulo quando a guilda não tem splash |
| splash_width | ?number | A largura do splash da guilda em pixels, ou nulo quando a guilda não tem splash |
| splash_height | ?number | A altura do splash da guilda em pixels, ou nulo quando a guilda não tem splash |
| splash_card_alignment | number | O alinhamento do cartão splash registrado com a alteração |
| embed_splash_hash | ?string | O hash do splash embutido (embed splash) da guilda, ou nulo quando a guilda não tem splash embutido |
| embed_splash_width | ?number | A largura do splash embutido da guilda em pixels, ou nulo quando a guilda não tem splash embutido |
| embed_splash_height | ?number | A altura do splash embutido da guilda em pixels, ou nulo quando a guilda não tem splash embutido |
| features2 | array[string] | Os recursos da guilda mantidos neste lado da alteração, em ordem ascendente |
| verification_level | number | O nível de verificação registrado com a alteração |
| mfa_level | number | O nível de MFA registrado com a alteração |
| nsfw_level | number | O nível NSFW registrado com a alteração |
| nsfw | boolean | Se a guilda está marcada como restrita por idade |
| content_warning_level | number | O nível de aviso de conteúdo da guilda registrado com a alteração |
| content_warning_text | ?string | O texto de aviso de conteúdo configurado, ou nulo quando a guilda não define nenhum |
| explicit_content_filter | number | O nível de filtro de conteúdo explícito da guilda registrado com a alteração |
| default_message_notifications | number | O nível padrão de notificações de mensagem registrado com a alteração |
| system_channel_id | ?string | O ID decimal do canal de sistema configurado, ou nulo quando a guilda não define nenhum |
| system_channel_flags | number | A máscara de sinalizadores de canal de sistema registrada com a alteração |
| rules_channel_id3 | ?string | O ID decimal do canal de regras configurado, ou nulo quando a guilda não define nenhum |
| afk_channel_id | ?string | O ID decimal do canal de voz AFK configurado, ou nulo quando a guilda não define nenhum |
| afk_timeout | number | O tempo limite de AFK em segundos |
| disabled_operations3 | number | A máscara de operações de guilda desabilitadas registrada com a alteração |
| member_count3 | number | A contagem de membros registrada com a mutação |
| message_history_cutoff | ?ISO8601 timestamp | O limite histórico de mensagens configurado, ou nulo quando a guilda não define nenhum |
1 O campo mantém o mesmo valor em ambos os lados de cada ação de guilda, então ele nunca produz um objeto de alteração
2 Um objeto de alteração aparece apenas quando um recurso foi adicionado ou removido
3 Nenhuma operação de guilda atual registra o campo
Modificar guilda registra cada campo nesta tabela exceto guild_id, owner_id, vanity_url_code, rules_channel_id, disabled_operations e member_count. Transferir propriedade da guilda registra apenas owner_id, e Modificar URL de convite personalizado da guilda registra apenas vanity_url_code.
Campos de alteração de canal
Seção intitulada “Campos de alteração de canal”Registrado por CHANNEL_CREATE, CHANNEL_UPDATE, e CHANNEL_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| channel_id | string | O ID decimal do próprio canal |
| type | number | O tipo de canal registrado com a alteração |
| name | ?string | O nome que o canal recebeu por esta alteração |
| topic | ?string | O tópico que o canal recebeu por esta alteração, ou nulo quando não tiver nenhum |
| url1 | ?string | O URL de destino do canal, ou nulo quando não tiver nenhum |
| parent_id | ?string | O ID decimal da categoria pai, ou nulo quando o canal estiver no nível superior |
| position | number | A posição do canal entre seus irmãos |
| nsfw | ?boolean | Se o canal está marcado como restrito por idade, ou nulo quando não tiver sobreposição (override) |
| content_warning_level | number | O nível de aviso de conteúdo registrado com a alteração |
| content_warning_text | ?string | O texto de aviso de conteúdo configurado, ou nulo quando o canal não define nenhum |
| rate_limit_per_user | number | O intervalo do modo lento em segundos |
| user_limit | ?number | O limite de ocupação de voz configurado |
| voice_connection_limit | ?number | O limite configurado de conexões de voz por usuário |
| bitrate | ?number | A taxa de bits (bitrate) de voz em bits por segundo |
| rtc_region | ?string | A região de voz fixada, ou nulo quando o canal é roteado automaticamente |
| permission_overwrite_count2 | number | O número de substituições de permissão que o canal possui |
1 Registrado apenas para um tipo de canal GUILD_LINK
2 Nenhuma operação de canal atual registra o campo. Uma mutação individual de substituição registra sua própria entrada de substituição de permissão
Alterar permission_overwrites através de Modificar canal registra entradas de substituição e não adiciona nenhuma alteração à entrada CHANNEL_UPDATE.
Campos de alteração de substituição de permissão
Seção intitulada “Campos de alteração de substituição de permissão”Registrado pelas ações de substituição de canal. Todo valor nesta família é uma string.
| Campo | Tipo | Descrição |
|---|---|---|
| id | string | O ID decimal do cargo ou membro ao qual a substituição se aplica |
| type | string | O tipo de substituição de permissão decimal |
| allow | string | A máscara decimal de permissões que a substituição concede |
| deny | string | A máscara decimal de permissões que a substituição nega |
Campos de alteração de membro da guilda
Seção intitulada “Campos de alteração de membro da guilda”Registrado por MEMBER_UPDATE e MEMBER_ROLE_UPDATE.
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | string | O ID decimal do próprio membro |
| nick | ?string | O apelido que o membro mantém nesta guilda, ou nulo quando nenhum estiver definido |
| roles | array[string] | Os IDs dos cargos atribuídos como strings decimais, em ordem de string ascendente |
| avatar_hash | ?string | O hash do avatar da guilda, ou nulo quando o membro não tiver um avatar da guilda |
| banner_hash | ?string | O hash do banner da guilda, ou nulo quando o membro não tiver um banner da guilda |
| bio | ?string | A biografia do perfil da guilda, ou nulo quando nenhuma estiver definida |
| pronouns | ?string | Os pronomes do perfil da guilda, ou nulo quando nenhum estiver definido |
| accent_color | ?number | A cor de destaque (accent) do perfil da guilda, ou nulo quando nenhuma estiver definida |
| deaf | boolean | Se um moderador ensurdeceu o membro |
| mute | boolean | Se um moderador silenciou o membro |
| communication_disabled_until | ?ISO8601 timestamp | O horário em que a restrição de comunicação expira, ou nulo quando o membro não estiver restrito |
| temporary | boolean | Se a associação é temporária |
Campos de alteração de movimento de voz
Seção intitulada “Campos de alteração de movimento de voz”Registrado por MEMBER_MOVE e MEMBER_DISCONNECT.
| Campo | Tipo | Descrição |
|---|---|---|
| channel_id1 | string | O ID decimal do canal de voz que a sessão ocupou |
1 Um movimento registra o canal anterior como old_value e o destino como new_value, enquanto uma desconexão registra apenas old_value
Campos de alteração de banimento de guilda
Seção intitulada “Campos de alteração de banimento de guilda”Registrado por MEMBER_BAN_ADD e MEMBER_BAN_REMOVE.
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | string | O ID decimal do usuário banido |
| moderator_id | string | O ID decimal do usuário que emitiu o banimento |
| banned_at | ISO8601 timestamp | O momento em que o ban foi emitido |
| expires_at | ?ISO8601 timestamp | A expiração de um banimento temporário, ou nulo para um banimento permanente |
| reason1 | ?string | O motivo armazenado do banimento |
1 O reason do corpo quando a requisição enviou um, e o valor X-Audit-Log-Reason em caso contrário. O reason da entrada é o cabeçalho quando um foi enviado, portanto os dois diferem quando uma requisição envia ambos com valores diferentes
Campos de alteração de cargo da guilda
Seção intitulada “Campos de alteração de cargo da guilda”Registrado por ROLE_CREATE, ROLE_UPDATE, e ROLE_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| role_id | string | O ID decimal do próprio cargo |
| name | string | O nome que o cargo recebeu por esta alteração (1-100 caracteres) |
| permissions | string | A máscara decimal de permissão que o cargo concede |
| position | number | A posição do cargo na hierarquia da guilda |
| hoist_position | ?number | A posição separada de destaque (hoist), ou nulo quando o cargo não tiver uma |
| color | number | A cor registrada para o cargo |
| icon_hash | ?string | O hash do ícone do cargo, ou nulo quando o cargo não tiver ícone |
| unicode_emoji | ?string | O emoji Unicode do cargo, ou nulo quando o cargo não tiver nenhum |
| hoist | boolean | Se o cargo é exibido separadamente |
| mentionable | boolean | Se o cargo pode ser mencionado |
| permissions_diff1 | object | Os nomes de permissão que esta alteração adicionou e removeu |
1 Registrado apenas por Modificar cargo de guilda, e apenas quando a máscara foi alterada. O valor é um objeto com os arrays de string added e removed de nomes de permissão
permissions_diff chega como new_value sem old_value, e a mesma lista de alterações ainda possui a alteração permissions.
Modificar posições de cargo da guilda registra uma entrada ROLE_UPDATE para cada cargo que se moveu, apenas com a alteração position. O Decoding Chat ordena os cargos além de @everyone por position descendente, depois por ID ascendente, antes e depois da escrita. O maior conjunto de cargos que mantêm sua ordem relativa conta como não movido, e onde vários conjuntos se qualificam, o conjunto cujos cargos aparecem primeiro na nova ordem é usado. Uma requisição que apenas renumera posições não registra nenhuma entrada.
Modificar posições de destaque de cargo e Redefinir posições de destaque de cargo aplicam a mesma regra à ordem da lista de membros, apenas com a alteração hoist_position em cada entrada. Essa ordem são os cargos destacados (hoisted) diferentes de @everyone, por hoist_position descendente com position sendo usada quando um cargo não tem posição de destaque, depois por ID ascendente. Um cargo que não está destacado tem uma entrada sempre que sua hoist_position mudou.
Campos de alteração de convite
Seção intitulada “Campos de alteração de convite”Registrado por INVITE_CREATE e INVITE_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| code | string | O código que identifica o convite |
| channel_id | ?string | O ID decimal do canal para o qual o convite aponta |
| guild_id | ?string | O ID decimal da guilda à qual o convite pertence |
| inviter_id | ?string | O ID decimal do usuário que criou o convite |
| uses | number | A contagem de uso registrada com a alteração |
| max_uses | number | A contagem máxima de uso configurada |
| max_age | number | O tempo de vida do convite configurado em segundos |
| temporary | boolean | Se aceitar o convite concede uma associação temporária |
| created_at | ISO8601 timestamp | O momento em que o convite foi criado |
Campos de alteração de webhook
Seção intitulada “Campos de alteração de webhook”Registrado por WEBHOOK_CREATE, WEBHOOK_UPDATE, e WEBHOOK_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| id | string | O ID decimal do próprio webhook |
| guild_id | ?string | O ID decimal da guilda à qual o webhook pertence |
| channel_id | ?string | O ID decimal do canal para o qual o webhook posta |
| name | string | O nome sob o qual o webhook posta (1-80 caracteres) |
| creator_id | ?string | O ID decimal do usuário que criou o webhook |
| avatar_hash | ?string | O hash do avatar do webhook, ou nulo quando nenhum avatar for definido |
| type1 | number | O tipo de webhook que a alteração registrou |
1 O valor é 1 para um webhook de entrada e 2 para um webhook de seguidor de canal
Campos de alteração de emoji
Seção intitulada “Campos de alteração de emoji”Registrado por EMOJI_CREATE, EMOJI_UPDATE, e EMOJI_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| emoji_id | string | O ID decimal do próprio emoji |
| name | string | O nome que o emoji recebeu por esta alteração (2-32 caracteres) |
| animated | boolean | Se o emoji é animado |
| creator_id | string | O ID decimal do usuário que criou o emoji |
Campos de alteração de figurinha (sticker)
Seção intitulada “Campos de alteração de figurinha (sticker)”Registrado por STICKER_CREATE, STICKER_UPDATE, e STICKER_DELETE.
| Campo | Tipo | Descrição |
|---|---|---|
| sticker_id | string | O ID decimal da própria figurinha |
| name | string | O nome que a figurinha recebeu por esta alteração (2-30 caracteres) |
| description | ?string | A descrição da figurinha, ou nulo quando não tiver nenhuma |
| animated | boolean | Se a figurinha é animada |
| creator_id | string | O ID decimal do usuário que criou a figurinha |
Objeto de webhook de log de auditoria
Seção intitulada “Objeto de webhook de log de auditoria”Um objeto de webhook reduzido. Ele omite o token de execução, ID da aplicação, e o usuário criador, e nomeia o hash do avatar avatar_hash onde o objeto completo o nomeia avatar.
Estrutura
Seção intitulada “Estrutura”| Campo | Tipo | Descrição |
|---|---|---|
| id | snowflake | O ID do webhook |
| type1 | integer | O tipo de webhook que este registro descreve |
| guild_id | ?snowflake | O ID da guilda contendo o webhook |
| channel_id | ?snowflake | O ID do canal para o qual o webhook envia mensagens |
| name | string | O nome sob o qual o webhook posta |
| avatar_hash | ?string | O hash de avatar do webhook, ou nulo quando nenhum avatar estiver configurado |
1 O valor é 1 para um webhook de entrada e 2 para um webhook de seguidor de canal
Listar logs de auditoria da guilda
Seção intitulada “Listar logs de auditoria da guilda”GET/v1/guilds/{guild_id}/audit-logsRetorna uma página do histórico de auditoria da guilda como um objeto de resposta de log de auditoria da guilda. Requer VIEW_AUDIT_LOG na guilda alvo, e nenhuma elevação MFA se aplica.
Um ID de guilda que não nomeia nenhuma guilda retorna 404 UNKNOWN_GUILD. Um não-membro de uma guilda existente retorna 403 MISSING_PERMISSIONS, então a existência da guilda é visível para qualquer chamador autenticado.
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”| Campo | Tipo | Descrição |
|---|---|---|
| guild_id | snowflake | O ID da guilda cujo log de auditoria é lido |
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Campo | Tipo | Descrição |
|---|---|---|
| limit?1 | integer | O número máximo de entradas a retornar (0-100, padrão 50) |
| before?2 | snowflake | O cursor selecionando entradas mais antigas que este ID de entrada de auditoria |
| after?2 | snowflake | O cursor selecionando entradas mais novas que este ID de entrada de auditoria |
| user_id?3 | snowflake | O ID do usuário atuante pelo qual a página é filtrada |
| action_type?3 | integer | O valor de ação de auditoria pelo qual a página é filtrada |
1 Um valor negativo e um valor acima de 100 são ambos rejeitados, e o valor aceito 0 é processado como 1
2 Os cursores são mutuamente exclusivos, e fornecer ambos retorna 400 INVALID_FORM_BODY com CANNOT_SPECIFY_BOTH_BEFORE_AND_AFTER contra before
3 Fornecer qualquer um dos filtros desabilita a consolidação de exclusão de mensagens para a requisição, de forma que uma página filtrada por ator ou ação retorna as entradas não consolidadas
A leitura é ordenada do mais novo para o mais antigo por ID de entrada. before seleciona entradas abaixo do cursor e after seleciona entradas acima dele, ambos lidos na mesma ordem decrescente. Uma página after portanto começa com a entrada mais nova acima do cursor.
Entradas consolidadas possuem novos IDs mas retêm a posição da execução que substituem. Ordene a página por ID se um array estritamente decrescente for necessário.
Uma entrada de atualização armazenada que falha a regra de não-alteração é pulada e não conta em direção a limit. Uma página possui menos entradas que limit apenas quando a guilda não tem mais entradas correspondentes naquela direção.
Resposta
Seção intitulada “Resposta”| Status | Corpo | Condição |
|---|---|---|
| 200 | objeto de resposta de log de auditoria da guilda | A página foi retornada |
| 400 | resposta de erro | Ambos os cursores foram fornecidos, ou um valor de filtro é inválido |
| 4031 | resposta de erro | A guilda está indisponível, ou VIEW_AUDIT_LOG está ausente |
| 404 | resposta de erro | A guilda não existe e a requisição retorna UNKNOWN_GUILD |
1 O código de erro é MISSING_ACCESS para uma guilda com UNAVAILABLE_FOR_EVERYONE, ou UNAVAILABLE_FOR_EVERYONE_BUT_STAFF sem a flag de equipe da instância, e MISSING_PERMISSIONS de outra forma
Efeitos colaterais
Seção intitulada “Efeitos colaterais”Uma entrada consolidada possui um novo ID, options.count igual ao número de entradas substituídas e nenhum motivo. Ela emite Guild Audit Log Entry Create para sessões de guilda que possuem VIEW_AUDIT_LOG.
Limite de taxa
Seção intitulada “Limite de taxa”20 requisições por 10 segundos para cada usuário autenticado e ID de guilda, no bucket guild:audit_logs::guild_id.

