Orca
A bot framework that is easy to reason about, easy to debug, and easy to use.
audit_log.h
Go to the documentation of this file.
1 /* This file is generated from specs/discord/audit_log.json, Please don't edit it. */
18  /* specs/discord/audit_log.json:12:18
19  '{"name":"webhooks", "type": { "base":"struct discord_webhook", "dec":"ntl" } }' */
20  struct discord_webhook **webhooks;
21 
22  /* specs/discord/audit_log.json:13:18
23  '{"name":"users", "type": { "base":"struct discord_user", "dec":"ntl"}}' */
24  struct discord_user **users;
25 
26  /* specs/discord/audit_log.json:14:18
27  '{"name":"audit_log_entries", "type": { "base":"struct discord_audit_log_entry", "dec":"ntl"}}' */
28  struct discord_audit_log_entry **audit_log_entries;
29 
30  /* specs/discord/audit_log.json:15:18
31  '{"name":"integrations", "type": { "base":"struct discord_guild_integration", "dec":"ntl"}}' */
32  struct discord_guild_integration **integrations;
33 
34  // The following is metadata used to
35  // 1. control which field should be extracted/injected
36  // 2. record which field is presented(defined) in JSON
37  // 3. record which field is null in JSON
39  struct {
40  bool enable_arg_switches;
41  bool enable_record_defined;
42  bool enable_record_null;
43  void *arg_switches[4];
44  void *record_defined[4];
45  void *record_null[4];
46  } __M; // metadata
48 };
49 extern void discord_audit_log_cleanup_v(void *p);
50 extern void discord_audit_log_cleanup(struct discord_audit_log *p);
51 extern void discord_audit_log_init_v(void *p);
52 extern void discord_audit_log_init(struct discord_audit_log *p);
53 extern struct discord_audit_log * discord_audit_log_alloc();
54 extern void discord_audit_log_free_v(void *p);
55 extern void discord_audit_log_free(struct discord_audit_log *p);
56 extern void discord_audit_log_from_json_v(char *json, size_t len, void *p);
57 extern void discord_audit_log_from_json(char *json, size_t len, struct discord_audit_log *p);
58 extern size_t discord_audit_log_to_json_v(char *json, size_t len, void *p);
59 extern size_t discord_audit_log_to_json(char *json, size_t len, struct discord_audit_log *p);
60 extern size_t discord_audit_log_to_query_v(char *json, size_t len, void *p);
61 extern size_t discord_audit_log_to_query(char *json, size_t len, struct discord_audit_log *p);
62 extern void discord_audit_log_list_free_v(void **p);
63 extern void discord_audit_log_list_free(struct discord_audit_log **p);
64 extern void discord_audit_log_list_from_json_v(char *str, size_t len, void *p);
65 extern void discord_audit_log_list_from_json(char *str, size_t len, struct discord_audit_log ***p);
66 extern size_t discord_audit_log_list_to_json_v(char *str, size_t len, void *p);
67 extern size_t discord_audit_log_list_to_json(char *str, size_t len, struct discord_audit_log **p);
68 
69 
70 enum discord_audit_log_events {
71  DISCORD_AUDIT_LOG_GUILD_UPDATE = 1,
72  DISCORD_AUDIT_LOG_CHANNEL_CREATE = 10,
73  DISCORD_AUDIT_LOG_CHANNEL_UPDATE = 11,
74  DISCORD_AUDIT_LOG_CHANNEL_DELETE = 12,
75  DISCORD_AUDIT_LOG_CHANNEL_OVERWRITE_CREATE = 13,
76  DISCORD_AUDIT_LOG_CHANNEL_OVERWRITE_UPDATE = 14,
77  DISCORD_AUDIT_LOG_CHANNEL_OVERWRITE_DELETE = 15,
78  DISCORD_AUDIT_LOG_MEMBER_KICK = 20,
79  DISCORD_AUDIT_LOG_MEMBER_PRUNE = 21,
80  DISCORD_AUDIT_LOG_MEMBER_BAN_ADD = 22,
81  DISCORD_AUDIT_LOG_MEMBER_BAN_REMOVE = 23,
82  DISCORD_AUDIT_LOG_MEMBER_UPDATE = 24,
83  DISCORD_AUDIT_LOG_MEMBER_ROLE_UPDATE = 25,
84  DISCORD_AUDIT_LOG_MEMBER_MOVE = 26,
85  DISCORD_AUDIT_LOG_MEMBER_DISCONNECT = 27,
86  DISCORD_AUDIT_LOG_BOT_ADD = 28,
87  DISCORD_AUDIT_LOG_ROLE_CREATE = 30,
88  DISCORD_AUDIT_LOG_ROLE_UPDATE = 31,
89  DISCORD_AUDIT_LOG_ROLE_DELETE = 32,
90  DISCORD_AUDIT_LOG_INVITE_CREATE = 40,
91  DISCORD_AUDIT_LOG_INVITE_DELETE = 42,
92  DISCORD_AUDIT_LOG_WEBHOOK_CREATE = 50,
93  DISCORD_AUDIT_LOG_WEBHOOK_UPDATE = 51,
94  DISCORD_AUDIT_LOG_WEBHOOK_DELETE = 52,
95  DISCORD_AUDIT_LOG_EMOJI_CREATE = 60,
96  DISCORD_AUDIT_LOG_EMOJI_UPDATE = 61,
97  DISCORD_AUDIT_LOG_EMOJI_DELETE = 62,
98  DISCORD_AUDIT_LOG_MESSAGE_DELETE = 72,
99  DISCORD_AUDIT_LOG_MESSAGE_BULK_DELETE = 73,
100  DISCORD_AUDIT_LOG_MESSAGE_PIN = 74,
101  DISCORD_AUDIT_LOG_MESSAGE_UNPIN = 75,
102  DISCORD_AUDIT_LOG_INTEGRATION_CREATE = 80,
103  DISCORD_AUDIT_LOG_INTEGRATION_UPDATE = 81,
104  DISCORD_AUDIT_LOG_INTEGRATION_DELETE = 82,
105 };
106 extern char* discord_audit_log_events_to_string(enum discord_audit_log_events);
107 extern enum discord_audit_log_events discord_audit_log_events_from_string(char*);
108 extern bool discord_audit_log_events_has(enum discord_audit_log_events, char*);
109 
117  /* specs/discord/audit_log.json:68:18
118  '{"name":"target_id", "type": {"base":"char", "dec":"*"}}' */
119  char *target_id;
120 
121  /* specs/discord/audit_log.json:69:18
122  '{"name":"changes", "type": {"base":"struct discord_audit_log_change", "dec":"ntl"}}' */
123  struct discord_audit_log_change **changes;
124 
125  /* specs/discord/audit_log.json:70:18
126  '{"name":"user_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
127  u64_snowflake_t user_id;
128 
129  /* specs/discord/audit_log.json:71:18
130  '{"name":"id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
131  u64_snowflake_t id;
132 
133  /* specs/discord/audit_log.json:72:18
134  '{"name":"action_type", "type": {"base":"int", "c_base":"enum discord_audit_log_events"}}' */
135  int action_type;
136 
137  /* specs/discord/audit_log.json:73:18
138  '{"name":"options", "type": {"base":"struct discord_audit_log_entry_optional_info", "dec":"ntl"}}' */
139  struct discord_audit_log_entry_optional_info **options;
140 
141  /* specs/discord/audit_log.json:74:18
142  '{"name":"reason", "type": {"base":"char", "dec":"[MAX_REASON_LEN]"}}' */
143  char reason[MAX_REASON_LEN];
144 
145  // The following is metadata used to
146  // 1. control which field should be extracted/injected
147  // 2. record which field is presented(defined) in JSON
148  // 3. record which field is null in JSON
150  struct {
151  bool enable_arg_switches;
152  bool enable_record_defined;
153  bool enable_record_null;
154  void *arg_switches[7];
155  void *record_defined[7];
156  void *record_null[7];
157  } __M; // metadata
159 };
160 extern void discord_audit_log_entry_cleanup_v(void *p);
161 extern void discord_audit_log_entry_cleanup(struct discord_audit_log_entry *p);
162 extern void discord_audit_log_entry_init_v(void *p);
163 extern void discord_audit_log_entry_init(struct discord_audit_log_entry *p);
164 extern struct discord_audit_log_entry * discord_audit_log_entry_alloc();
165 extern void discord_audit_log_entry_free_v(void *p);
166 extern void discord_audit_log_entry_free(struct discord_audit_log_entry *p);
167 extern void discord_audit_log_entry_from_json_v(char *json, size_t len, void *p);
168 extern void discord_audit_log_entry_from_json(char *json, size_t len, struct discord_audit_log_entry *p);
169 extern size_t discord_audit_log_entry_to_json_v(char *json, size_t len, void *p);
170 extern size_t discord_audit_log_entry_to_json(char *json, size_t len, struct discord_audit_log_entry *p);
171 extern size_t discord_audit_log_entry_to_query_v(char *json, size_t len, void *p);
172 extern size_t discord_audit_log_entry_to_query(char *json, size_t len, struct discord_audit_log_entry *p);
173 extern void discord_audit_log_entry_list_free_v(void **p);
174 extern void discord_audit_log_entry_list_free(struct discord_audit_log_entry **p);
175 extern void discord_audit_log_entry_list_from_json_v(char *str, size_t len, void *p);
176 extern void discord_audit_log_entry_list_from_json(char *str, size_t len, struct discord_audit_log_entry ***p);
177 extern size_t discord_audit_log_entry_list_to_json_v(char *str, size_t len, void *p);
178 extern size_t discord_audit_log_entry_list_to_json(char *str, size_t len, struct discord_audit_log_entry **p);
179 
187  /* specs/discord/audit_log.json:84:20
188  '{ "name": "delete_member_days", "type":{ "base":"char", "dec":"*"}, "comment":"@todo find fixed size limit"}' */
189  char *delete_member_days; // @todo find fixed size limit
190 
191  /* specs/discord/audit_log.json:85:20
192  '{ "name": "members_removed", "type":{ "base":"char", "dec":"*"}, "comment":"@todo find fixed size limit"}' */
193  char *members_removed; // @todo find fixed size limit
194 
195  /* specs/discord/audit_log.json:86:20
196  '{ "name": "channel_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" } }' */
197  u64_snowflake_t channel_id;
198 
199  /* specs/discord/audit_log.json:87:20
200  '{ "name": "message_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" } }' */
201  u64_snowflake_t message_id;
202 
203  /* specs/discord/audit_log.json:88:20
204  '{ "name": "count", "type":{ "base":"char", "dec":"*" }, "comment":"@todo find fixed size limit"}' */
205  char *count; // @todo find fixed size limit
206 
207  /* specs/discord/audit_log.json:89:20
208  '{ "name": "id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
209  u64_snowflake_t id;
210 
211  /* specs/discord/audit_log.json:90:20
212  '{ "name": "type", "type":{ "base":"char", "dec":"*" }, "comment":"@todo find fixed size limit"}' */
213  char *type; // @todo find fixed size limit
214 
215  /* specs/discord/audit_log.json:91:20
216  '{ "name": "role", "type":{ "base":"char", "dec":"*" }, "comment":"@todo find fixed size limit"}' */
217  char *role; // @todo find fixed size limit
218 
219  // The following is metadata used to
220  // 1. control which field should be extracted/injected
221  // 2. record which field is presented(defined) in JSON
222  // 3. record which field is null in JSON
224  struct {
225  bool enable_arg_switches;
226  bool enable_record_defined;
227  bool enable_record_null;
228  void *arg_switches[8];
229  void *record_defined[8];
230  void *record_null[8];
231  } __M; // metadata
233 };
234 extern void discord_audit_log_entry_optional_info_cleanup_v(void *p);
235 extern void discord_audit_log_entry_optional_info_cleanup(struct discord_audit_log_entry_optional_info *p);
236 extern void discord_audit_log_entry_optional_info_init_v(void *p);
237 extern void discord_audit_log_entry_optional_info_init(struct discord_audit_log_entry_optional_info *p);
238 extern struct discord_audit_log_entry_optional_info * discord_audit_log_entry_optional_info_alloc();
239 extern void discord_audit_log_entry_optional_info_free_v(void *p);
240 extern void discord_audit_log_entry_optional_info_free(struct discord_audit_log_entry_optional_info *p);
241 extern void discord_audit_log_entry_optional_info_from_json_v(char *json, size_t len, void *p);
242 extern void discord_audit_log_entry_optional_info_from_json(char *json, size_t len, struct discord_audit_log_entry_optional_info *p);
243 extern size_t discord_audit_log_entry_optional_info_to_json_v(char *json, size_t len, void *p);
244 extern size_t discord_audit_log_entry_optional_info_to_json(char *json, size_t len, struct discord_audit_log_entry_optional_info *p);
245 extern size_t discord_audit_log_entry_optional_info_to_query_v(char *json, size_t len, void *p);
246 extern size_t discord_audit_log_entry_optional_info_to_query(char *json, size_t len, struct discord_audit_log_entry_optional_info *p);
247 extern void discord_audit_log_entry_optional_info_list_free_v(void **p);
248 extern void discord_audit_log_entry_optional_info_list_free(struct discord_audit_log_entry_optional_info **p);
249 extern void discord_audit_log_entry_optional_info_list_from_json_v(char *str, size_t len, void *p);
250 extern void discord_audit_log_entry_optional_info_list_from_json(char *str, size_t len, struct discord_audit_log_entry_optional_info ***p);
251 extern size_t discord_audit_log_entry_optional_info_list_to_json_v(char *str, size_t len, void *p);
252 extern size_t discord_audit_log_entry_optional_info_list_to_json(char *str, size_t len, struct discord_audit_log_entry_optional_info **p);
253 
261  /* specs/discord/audit_log.json:101:18
262  '{"name":"new_value", "type": {"base":"char", "dec":"*"}}' */
263  char *new_value;
264 
265  /* specs/discord/audit_log.json:102:18
266  '{"name":"old_value", "type": {"base":"char", "dec":"*"}}' */
267  char *old_value;
268 
269  /* specs/discord/audit_log.json:103:18
270  '{"name":"key", "type":{"base":"char", "dec":"[64]"}}' */
271  char key[64];
272 
273  // The following is metadata used to
274  // 1. control which field should be extracted/injected
275  // 2. record which field is presented(defined) in JSON
276  // 3. record which field is null in JSON
278  struct {
279  bool enable_arg_switches;
280  bool enable_record_defined;
281  bool enable_record_null;
282  void *arg_switches[3];
283  void *record_defined[3];
284  void *record_null[3];
285  } __M; // metadata
287 };
288 extern void discord_audit_log_change_cleanup_v(void *p);
289 extern void discord_audit_log_change_cleanup(struct discord_audit_log_change *p);
290 extern void discord_audit_log_change_init_v(void *p);
291 extern void discord_audit_log_change_init(struct discord_audit_log_change *p);
292 extern struct discord_audit_log_change * discord_audit_log_change_alloc();
293 extern void discord_audit_log_change_free_v(void *p);
294 extern void discord_audit_log_change_free(struct discord_audit_log_change *p);
295 extern void discord_audit_log_change_from_json_v(char *json, size_t len, void *p);
296 extern void discord_audit_log_change_from_json(char *json, size_t len, struct discord_audit_log_change *p);
297 extern size_t discord_audit_log_change_to_json_v(char *json, size_t len, void *p);
298 extern size_t discord_audit_log_change_to_json(char *json, size_t len, struct discord_audit_log_change *p);
299 extern size_t discord_audit_log_change_to_query_v(char *json, size_t len, void *p);
300 extern size_t discord_audit_log_change_to_query(char *json, size_t len, struct discord_audit_log_change *p);
301 extern void discord_audit_log_change_list_free_v(void **p);
302 extern void discord_audit_log_change_list_free(struct discord_audit_log_change **p);
303 extern void discord_audit_log_change_list_from_json_v(char *str, size_t len, void *p);
304 extern void discord_audit_log_change_list_from_json(char *str, size_t len, struct discord_audit_log_change ***p);
305 extern size_t discord_audit_log_change_list_to_json_v(char *str, size_t len, void *p);
306 extern size_t discord_audit_log_change_list_to_json(char *str, size_t len, struct discord_audit_log_change **p);
307 
315  /* specs/discord/audit_log.json:113:18
316  '{"name":"name", "type": {"base":"char", "dec":"[MAX_NAME_LEN]"}}' */
317  char name[MAX_NAME_LEN];
318 
319  /* specs/discord/audit_log.json:114:18
320  '{"name":"description", "type": {"base":"char", "dec":"[MAX_DESCRIPTION_LEN]"}}' */
321  char description[MAX_DESCRIPTION_LEN];
322 
323  /* specs/discord/audit_log.json:115:18
324  '{"name":"icon_hash", "type": {"base":"char", "dec":"[MAX_SHA256_LEN]"},
325  "comment":"icon changed" }' */
326  char icon_hash[MAX_SHA256_LEN]; // icon changed
327 
328  /* specs/discord/audit_log.json:117:18
329  '{"name":"splash_hash", "type": {"base":"char", "dec":"[MAX_SHA256_LEN]"},
330  "comment":"invite splash page artwork changed"}' */
331  char splash_hash[MAX_SHA256_LEN]; // invite splash page artwork changed
332 
333  /* specs/discord/audit_log.json:119:18
334  '{"name":"discovery_splash_hash", "type": {"base":"char", "dec":"[MAX_SHA256_LEN]"}}' */
335  char discovery_splash_hash[MAX_SHA256_LEN];
336 
337  /* specs/discord/audit_log.json:120:18
338  '{"name":"banner_hash", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
339  u64_snowflake_t banner_hash;
340 
341  /* specs/discord/audit_log.json:121:18
342  '{"name":"owner_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
343  u64_snowflake_t owner_id;
344 
345  /* specs/discord/audit_log.json:122:18
346  '{"name":"region", "type": {"base":"char", "dec":"[MAX_REGION_LEN]"}}' */
347  char region[MAX_REGION_LEN];
348 
349  /* specs/discord/audit_log.json:123:18
350  '{"name":"preferred_locale", "type": {"base":"char", "dec":"[MAX_LOCALE_LEN]"}}' */
351  char preferred_locale[MAX_LOCALE_LEN];
352 
353  /* specs/discord/audit_log.json:124:18
354  '{"name":"afk_channel_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
355  u64_snowflake_t afk_channel_id;
356 
357  /* specs/discord/audit_log.json:125:18
358  '{"name":"afk_timeout", "type": {"base":"int"}}' */
359  int afk_timeout;
360 
361  /* specs/discord/audit_log.json:126:18
362  '{"name":"rules_channel_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
363  u64_snowflake_t rules_channel_id;
364 
365  /* specs/discord/audit_log.json:127:18
366  '{"name":"public_updates_channel_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
367  u64_snowflake_t public_updates_channel_id;
368 
369  /* specs/discord/audit_log.json:128:18
370  '{"name":"mfa_level", "type": {"base":"int"}}' */
371  int mfa_level;
372 
373  /* specs/discord/audit_log.json:129:18
374  '{"name":"verification_level", "type": {"base":"int"}}' */
375  int verification_level;
376 
377  /* specs/discord/audit_log.json:130:18
378  '{"name":"explicit_content_filter", "type": {"base":"int"}}' */
379  int explicit_content_filter;
380 
381  /* specs/discord/audit_log.json:131:18
382  '{"name":"default_message_notifications", "type": {"base":"int"}}' */
383  int default_message_notifications;
384 
385  /* specs/discord/audit_log.json:132:18
386  '{"name":"vanity_url", "type": {"base":"char", "dec":"*"}}' */
387  char *vanity_url;
388 
389  /* specs/discord/audit_log.json:133:18
390  '{"name":"add", "json_key":"$add", "type": {"base":"char", "dec":"*"},
391  "todo":true }' */
393 
394  /* specs/discord/audit_log.json:135:18
395  '{"name":"remove", "json_key":"$remove", "type": {"base":"char", "dec":"*"},
396  "todo":true }' */
398 
399  /* specs/discord/audit_log.json:137:18
400  '{"name":"prune_delete_days", "type": {"base":"int"}}' */
402 
403  /* specs/discord/audit_log.json:138:18
404  '{"name":"widget_enabled", "type": {"base":"bool"}}' */
405  bool widget_enabled;
406 
407  /* specs/discord/audit_log.json:139:18
408  '{"name":"widget_channel_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
409  u64_snowflake_t widget_channel_id;
410 
411  /* specs/discord/audit_log.json:140:18
412  '{"name":"system_channel_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
413  u64_snowflake_t system_channel_id;
414 
415  /* specs/discord/audit_log.json:141:18
416  '{"name":"position", "type": {"base":"int"}}' */
417  int position;
418 
419  /* specs/discord/audit_log.json:142:18
420  '{"name":"topic", "type": {"base":"char", "dec":"*"}}' */
421  char *topic;
422 
423  /* specs/discord/audit_log.json:143:18
424  '{"name":"bitrate", "type": {"base":"int"}}' */
425  int bitrate;
426 
427  /* specs/discord/audit_log.json:144:18
428  '{"name":"permission_overwrites", "type": {"base":"char", "dec":"*"},
429  "todo":true }' */
431 
432  /* specs/discord/audit_log.json:146:18
433  '{"name":"nsfw", "type": {"base":"bool"}}' */
434  bool nsfw;
435 
436  /* specs/discord/audit_log.json:147:18
437  '{"name":"application_id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
438  u64_snowflake_t application_id;
439 
440  /* specs/discord/audit_log.json:148:18
441  '{"name":"rate_limit_per_user", "type": {"base":"int"}}' */
442  int rate_limit_per_user;
443 
444  /* specs/discord/audit_log.json:149:18
445  '{"name":"permissions", "type": {"base":"char", "dec":"*"}}' */
446  char *permissions;
447 
448  /* specs/discord/audit_log.json:150:18
449  '{"name":"color", "type": {"base":"int"}}' */
450  int color;
451 
452  /* specs/discord/audit_log.json:151:18
453  '{"name":"hoist", "type": {"base":"bool"}}' */
454  bool hoist;
455 
456  /* specs/discord/audit_log.json:152:18
457  '{"name":"mentionable", "type": {"base":"bool"}}' */
458  bool mentionable;
459 
460  /* specs/discord/audit_log.json:153:18
461  '{"name":"allow", "type": {"base":"char", "dec":"*"}}' */
462  char *allow;
463 
464  /* specs/discord/audit_log.json:154:18
465  '{"name":"deny", "type": {"base":"char", "dec":"*"}}' */
466  char *deny;
467 
468  /* specs/discord/audit_log.json:155:18
469  '{"name":"code", "type": {"base":"char", "dec":"*"}}' */
470  char *code;
471 
472  /* specs/discord/audit_log.json:156:18
473  '{"name":"channel_id", "type": {"base":"char", "dec":"*"}}' */
474  char *channel_id;
475 
476  /* specs/discord/audit_log.json:157:18
477  '{"name":"inviter_id", "type": {"base":"char", "dec":"*"}}' */
478  char *inviter_id;
479 
480  /* specs/discord/audit_log.json:158:18
481  '{"name":"max_uses", "type": {"base":"char", "dec":"*"}}' */
482  char *max_uses;
483 
484  /* specs/discord/audit_log.json:159:18
485  '{"name":"uses", "type": {"base":"char", "dec":"*"}}' */
486  char *uses;
487 
488  /* specs/discord/audit_log.json:160:18
489  '{"name":"max_age", "type": {"base":"char", "dec":"*"}}' */
490  char *max_age;
491 
492  /* specs/discord/audit_log.json:161:18
493  '{"name":"temporary", "type": {"base":"char", "dec":"*"}}' */
494  char *temporary;
495 
496  /* specs/discord/audit_log.json:162:18
497  '{"name":"deaf", "type": {"base":"char", "dec":"*"}}' */
498  char *deaf;
499 
500  /* specs/discord/audit_log.json:163:18
501  '{"name":"mute", "type": {"base":"char", "dec":"*"}}' */
502  char *mute;
503 
504  /* specs/discord/audit_log.json:164:18
505  '{"name":"nick", "type": {"base":"char", "dec":"*"}}' */
506  char *nick;
507 
508  /* specs/discord/audit_log.json:165:18
509  '{"name":"avatar_hash", "type": {"base":"char", "dec":"*"}}' */
510  char *avatar_hash;
511 
512  /* specs/discord/audit_log.json:166:18
513  '{"name":"id", "type": {"base":"char", "dec":"*", "converter":"snowflake"}}' */
514  u64_snowflake_t id;
515 
516  /* specs/discord/audit_log.json:167:18
517  '{"name":"type", "type": {"base":"char", "dec":"*"},
518  "todo":true, "comment":"integer or string"}' */
520 
521  /* specs/discord/audit_log.json:169:18
522  '{"name":"enable_emotions", "type": {"base":"bool"}}' */
524 
525  /* specs/discord/audit_log.json:170:18
526  '{"name":"expire_behavior", "type": {"base":"int"}}' */
527  int expire_behavior;
528 
529  /* specs/discord/audit_log.json:171:18
530  '{"name":"expire_grace_period", "type": {"base":"int"}}' */
531  int expire_grace_period;
532 
533  /* specs/discord/audit_log.json:172:18
534  '{"name":"user_limit", "type": {"base":"int" }}' */
535  int user_limit;
536 
537  // The following is metadata used to
538  // 1. control which field should be extracted/injected
539  // 2. record which field is presented(defined) in JSON
540  // 3. record which field is null in JSON
542  struct {
543  bool enable_arg_switches;
544  bool enable_record_defined;
545  bool enable_record_null;
546  void *arg_switches[54];
547  void *record_defined[54];
548  void *record_null[54];
549  } __M; // metadata
551 };
552 extern void discord_audit_log_change_key_cleanup_v(void *p);
553 extern void discord_audit_log_change_key_cleanup(struct discord_audit_log_change_key *p);
554 extern void discord_audit_log_change_key_init_v(void *p);
555 extern void discord_audit_log_change_key_init(struct discord_audit_log_change_key *p);
556 extern struct discord_audit_log_change_key * discord_audit_log_change_key_alloc();
557 extern void discord_audit_log_change_key_free_v(void *p);
558 extern void discord_audit_log_change_key_free(struct discord_audit_log_change_key *p);
559 extern void discord_audit_log_change_key_from_json_v(char *json, size_t len, void *p);
560 extern void discord_audit_log_change_key_from_json(char *json, size_t len, struct discord_audit_log_change_key *p);
561 extern size_t discord_audit_log_change_key_to_json_v(char *json, size_t len, void *p);
562 extern size_t discord_audit_log_change_key_to_json(char *json, size_t len, struct discord_audit_log_change_key *p);
563 extern size_t discord_audit_log_change_key_to_query_v(char *json, size_t len, void *p);
564 extern size_t discord_audit_log_change_key_to_query(char *json, size_t len, struct discord_audit_log_change_key *p);
565 extern void discord_audit_log_change_key_list_free_v(void **p);
566 extern void discord_audit_log_change_key_list_free(struct discord_audit_log_change_key **p);
567 extern void discord_audit_log_change_key_list_from_json_v(char *str, size_t len, void *p);
568 extern void discord_audit_log_change_key_list_from_json(char *str, size_t len, struct discord_audit_log_change_key ***p);
569 extern size_t discord_audit_log_change_key_list_to_json_v(char *str, size_t len, void *p);
570 extern size_t discord_audit_log_change_key_list_to_json(char *str, size_t len, struct discord_audit_log_change_key **p);
discord_audit_log_change_key::enable_emotions
bool enable_emotions
<
Definition: audit_log.h:523
discord_audit_log_change
Audit Log Change Structure.
Definition: audit_log.h:260
discord_audit_log_change_key
Audit Log Change Key.
Definition: audit_log.h:314
discord_audit_log_entry_optional_info
Optional Audit Entry Info Structure.
Definition: audit_log.h:186
discord_audit_log
Audit Log Structure.
Definition: audit_log.h:17
discord_guild_integration
Integration Structure.
Definition: guild.h:593
u64_snowflake_t
uint64_t u64_snowflake_t
snowflake datatype
Definition: discord.h:32
discord_audit_log_change_key::nsfw
bool nsfw
<
Definition: audit_log.h:434
discord_audit_log_entry
Audit Log Entry Structure.
Definition: audit_log.h:116
discord_user
User Structure.
Definition: user.h:45
discord_webhook
Webhook Structure.
Definition: webhook.h:17
discord_audit_log_change_key::prune_delete_days
int prune_delete_days
<
Definition: audit_log.h:401