featurebase-node 0.14.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/client.d.mts +12 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +12 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +21 -1
  7. package/client.js.map +1 -1
  8. package/client.mjs +21 -1
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/audit-logs.d.mts +233 -0
  12. package/resources/audit-logs.d.mts.map +1 -0
  13. package/resources/audit-logs.d.ts +233 -0
  14. package/resources/audit-logs.d.ts.map +1 -0
  15. package/resources/audit-logs.js +122 -0
  16. package/resources/audit-logs.js.map +1 -0
  17. package/resources/audit-logs.mjs +118 -0
  18. package/resources/audit-logs.mjs.map +1 -0
  19. package/resources/index.d.mts +2 -0
  20. package/resources/index.d.mts.map +1 -1
  21. package/resources/index.d.ts +2 -0
  22. package/resources/index.d.ts.map +1 -1
  23. package/resources/index.js +5 -1
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs +2 -0
  26. package/resources/index.mjs.map +1 -1
  27. package/resources/organization/admins.d.mts +10 -0
  28. package/resources/organization/admins.d.mts.map +1 -1
  29. package/resources/organization/admins.d.ts +10 -0
  30. package/resources/organization/admins.d.ts.map +1 -1
  31. package/resources/organization/admins.js +2 -0
  32. package/resources/organization/admins.js.map +1 -1
  33. package/resources/organization/admins.mjs +2 -0
  34. package/resources/organization/admins.mjs.map +1 -1
  35. package/resources/reports.d.mts +641 -0
  36. package/resources/reports.d.mts.map +1 -0
  37. package/resources/reports.d.ts +641 -0
  38. package/resources/reports.d.ts.map +1 -0
  39. package/resources/reports.js +238 -0
  40. package/resources/reports.js.map +1 -0
  41. package/resources/reports.mjs +234 -0
  42. package/resources/reports.mjs.map +1 -0
  43. package/resources/webhooks.d.mts +5 -3
  44. package/resources/webhooks.d.mts.map +1 -1
  45. package/resources/webhooks.d.ts +5 -3
  46. package/resources/webhooks.d.ts.map +1 -1
  47. package/resources/webhooks.js +2 -0
  48. package/resources/webhooks.js.map +1 -1
  49. package/resources/webhooks.mjs +2 -0
  50. package/resources/webhooks.mjs.map +1 -1
  51. package/src/client.ts +73 -1
  52. package/src/resources/audit-logs.ts +607 -0
  53. package/src/resources/index.ts +26 -0
  54. package/src/resources/organization/admins.ts +12 -0
  55. package/src/resources/reports.ts +908 -0
  56. package/src/resources/webhooks.ts +5 -0
  57. package/src/version.ts +1 -1
  58. package/version.d.mts +1 -1
  59. package/version.d.ts +1 -1
  60. package/version.js +1 -1
  61. package/version.mjs +1 -1
@@ -0,0 +1,607 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { CursorPage, type CursorPageParams, PagePromise } from '../core/pagination';
5
+ import { buildHeaders } from '../internal/headers';
6
+ import { RequestOptions } from '../internal/request-options';
7
+
8
+ /**
9
+ * Audit logs provide a chronological record of significant admin actions in your organization. Use them for security auditing, compliance reporting, and tracking workspace changes.
10
+ */
11
+ export class AuditLogs extends APIResource {
12
+ /**
13
+ * Returns a list of audit log events in your organization using cursor-based
14
+ * pagination (newest first).
15
+ *
16
+ * ### Query Parameters
17
+ *
18
+ * - `limit` - Number of events to return (1-100, default 10)
19
+ * - `cursor` - Cursor from a previous response for pagination
20
+ * - `action` - Filter by action type (e.g. `webhook.deleted`,
21
+ * `security.sso_enabled`)
22
+ * - `domain` - Filter by domain/category (e.g. `security`, `messenger`)
23
+ * - `startDate` - Filter events created on or after this ISO 8601 datetime
24
+ * - `endDate` - Filter events created on or before this ISO 8601 datetime
25
+ *
26
+ * ### Filtering by Action
27
+ *
28
+ * The `action` parameter filters by event type. Each action follows the
29
+ * `{domain}.{verb}` convention. See the `action` enum in this schema for the full
30
+ * list of supported values.
31
+ *
32
+ * **Examples:**
33
+ *
34
+ * - `?action=security.sso_enabled` — only SSO enablement events
35
+ * - `?action=webhook.deleted` — only webhook deletion events
36
+ *
37
+ * ### Filtering by Domain
38
+ *
39
+ * Use the `domain` parameter to narrow results to one category of audit event.
40
+ *
41
+ * **Examples:**
42
+ *
43
+ * - `?domain=security` — only security-related audit events
44
+ * - `?domain=messenger` — only messenger-related audit events
45
+ *
46
+ * ### Filtering by Date Range
47
+ *
48
+ * Use `startDate` and `endDate` together or individually to narrow results to a
49
+ * time window.
50
+ *
51
+ * **Examples:**
52
+ *
53
+ * - `?startDate=2025-01-01T00:00:00Z&endDate=2025-01-31T23:59:59Z` — January 2025
54
+ * only
55
+ * - `?startDate=2025-06-01T00:00:00Z` — from June 1st onward
56
+ *
57
+ * ### Pagination
58
+ *
59
+ * Results are ordered by `createdAt` descending (newest first). Use the
60
+ * `nextCursor` value from each response as the `cursor` parameter in the next
61
+ * request to paginate forward.
62
+ *
63
+ * ```
64
+ * GET /v2/audit-logs?limit=20
65
+ * → { "nextCursor": "eyJ..." }
66
+ *
67
+ * GET /v2/audit-logs?limit=20&cursor=eyJ...
68
+ * → { "nextCursor": null } ← no more results
69
+ * ```
70
+ *
71
+ * ### Metadata
72
+ *
73
+ * The `metadata` field contains event-specific details (e.g. before/after state
74
+ * for updates). Its shape depends on the `action` type and is not strictly modeled
75
+ * in the schema — treat it as a free-form object.
76
+ *
77
+ * ### Response Format
78
+ *
79
+ * Returns a list object with:
80
+ *
81
+ * - `object` - Always `"list"`
82
+ * - `data` - Array of audit log objects
83
+ * - `nextCursor` - Cursor for the next page, or `null` if no more results
84
+ *
85
+ * ### Audit Log Object
86
+ *
87
+ * Each audit log includes:
88
+ *
89
+ * - `id` - Unique event identifier (UUID)
90
+ * - `correlationId` - Groups related events from a single operation (e.g. bulk
91
+ * import)
92
+ * - `action` - What happened (e.g. `webhook.deleted`)
93
+ * - `domain` - Category the action belongs to (e.g. `integrations`)
94
+ * - `description` - Human-readable description
95
+ * - `actor` - Who performed the action (id, type, email, name, apiKey)
96
+ * - `resource` - What was affected (type, id, name)
97
+ * - `request` - Request context (ipAddress, userAgent)
98
+ * - `metadata` - Event-specific payload
99
+ * - `createdAt` - When the event occurred
100
+ *
101
+ * ### Version Availability
102
+ *
103
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
104
+ */
105
+ list(
106
+ params: AuditLogListParams | null | undefined = {},
107
+ options?: RequestOptions,
108
+ ): PagePromise<AuditLogListResponsesCursorPage, AuditLogListResponse> {
109
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
110
+ return this._client.getAPIList('/v2/audit-logs', CursorPage<AuditLogListResponse>, {
111
+ query,
112
+ ...options,
113
+ headers: buildHeaders([
114
+ {
115
+ ...(featurebaseVersion?.toString() != null ?
116
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
117
+ : undefined),
118
+ },
119
+ options?.headers,
120
+ ]),
121
+ });
122
+ }
123
+ }
124
+
125
+ export type AuditLogListResponsesCursorPage = CursorPage<AuditLogListResponse>;
126
+
127
+ export interface AuditLogListResponse {
128
+ /**
129
+ * Unique event identifier
130
+ */
131
+ id: string;
132
+
133
+ /**
134
+ * The type of action that was performed
135
+ */
136
+ action:
137
+ | 'auth.login'
138
+ | 'auth.logout'
139
+ | 'auth.login_failed'
140
+ | 'auth.password_reset_requested'
141
+ | 'auth.password_changed'
142
+ | 'auth.mfa_enabled'
143
+ | 'auth.mfa_disabled'
144
+ | 'auth.sso_login'
145
+ | 'auth.password_reset_completed'
146
+ | 'auth.unauthorized_method'
147
+ | 'auth.recovery_code_regenerated'
148
+ | 'auth.sso_enforcement_blocked'
149
+ | 'auth.sso_enforcement_session_invalidated'
150
+ | 'auth.managed_account_link_blocked'
151
+ | 'auth.cross_org_invite_accepted'
152
+ | 'auth.sso_enforcement_shadow'
153
+ | 'teammate.invited'
154
+ | 'teammate.joined'
155
+ | 'teammate.removed'
156
+ | 'teammate.email_changed'
157
+ | 'teammate.name_changed'
158
+ | 'teammate.seat_changed'
159
+ | 'teammate.deactivated'
160
+ | 'teammate.invite_changed'
161
+ | 'teammate.invite_deleted'
162
+ | 'teammate.scim_provisioned'
163
+ | 'teammate.scim_deprovisioned'
164
+ | 'teammate.scim_unlinked'
165
+ | 'teammate.scim_relinked'
166
+ | 'teammate.scim_operation_blocked'
167
+ | 'teammate.scim_seat_capacity_blocked'
168
+ | 'teammate.scim_email_updated'
169
+ | 'teammate.scim_exclusion_list_updated'
170
+ | 'teammate.restored'
171
+ | 'teammate.scim_restored'
172
+ | 'teammate.scim_auto_claimed'
173
+ | 'teammate.scim_claim_role_preserved'
174
+ | 'teammate.permanently_removed'
175
+ | 'member.role_changed'
176
+ | 'organization.owner_transferred'
177
+ | 'article.created'
178
+ | 'article.updated'
179
+ | 'article.published'
180
+ | 'article.unpublished'
181
+ | 'article.deleted'
182
+ | 'changelog.created'
183
+ | 'changelog.published'
184
+ | 'changelog.deleted'
185
+ | 'changelog.unpublished'
186
+ | 'settings.name_changed'
187
+ | 'settings.branding_updated'
188
+ | 'settings.custom_domain_changed'
189
+ | 'settings.language_changed'
190
+ | 'settings.timezone_changed'
191
+ | 'settings.email_settings_changed'
192
+ | 'settings.help_center_updated'
193
+ | 'settings.moderation_changed'
194
+ | 'settings.voting_changed'
195
+ | 'settings.statuses_updated'
196
+ | 'settings.boards_updated'
197
+ | 'settings.privacy_changed'
198
+ | 'settings.subdomain_changed'
199
+ | 'settings.subdomain_change_requested'
200
+ | 'settings.grace_period_changed'
201
+ | 'security.scim_override_blocked'
202
+ | 'security.sso_enabled'
203
+ | 'security.sso_disabled'
204
+ | 'security.sso_configured'
205
+ | 'security.sso_jit_provisioning_blocked'
206
+ | 'security.directory_sync_enabled'
207
+ | 'security.directory_sync_disabled'
208
+ | 'security.directory_sync_reconciled'
209
+ | 'security.two_factor_enforced'
210
+ | 'security.auth_method_changed'
211
+ | 'security.ip_allowlist_changed'
212
+ | 'security.ip_allowlist_blocked'
213
+ | 'security.identity_verification_changed'
214
+ | 'security.sso_url_changed'
215
+ | 'security.sso_jit_provisioning_changed'
216
+ | 'security.sso_enforcement_enabled'
217
+ | 'security.sso_enforcement_disabled'
218
+ | 'security.dsync_group_mappings_changed'
219
+ | 'security.dsync_mapping_priority_changed'
220
+ | 'security.user_banned'
221
+ | 'security.user_unbanned'
222
+ | 'integration.installed'
223
+ | 'integration.uninstalled'
224
+ | 'integration.configured'
225
+ | 'webhook.created'
226
+ | 'webhook.updated'
227
+ | 'webhook.deleted'
228
+ | 'webhook.secret_rotated'
229
+ | 'api_key.created'
230
+ | 'api_key.regenerated'
231
+ | 'api_key.deleted'
232
+ | 'organization.deletion_scheduled'
233
+ | 'organization.deletion_cancelled'
234
+ | 'data.export_initiated'
235
+ | 'data.import_initiated'
236
+ | 'data.bulk_delete'
237
+ | 'data.user_data_deleted'
238
+ | 'data.csv_exported'
239
+ | 'billing.plan_changed'
240
+ | 'billing.plan_cancelled'
241
+ | 'billing.seat_limit_changed'
242
+ | 'billing.seat_activated'
243
+ | 'workflow.created'
244
+ | 'workflow.activated'
245
+ | 'workflow.deactivated'
246
+ | 'workflow.deleted'
247
+ | 'workflow.updated'
248
+ | 'messenger.look_and_feel_changed'
249
+ | 'messenger.spaces_changed'
250
+ | 'messenger.language_changed'
251
+ | 'messenger.platform_availability_changed'
252
+ | 'messenger.search_browse_changed'
253
+ | 'messenger.email_collection_changed'
254
+ | 'messenger.welcome_message_changed'
255
+ | 'messenger.launcher_changed'
256
+ | 'messenger.inbound_conversations_changed'
257
+ | 'messenger.office_hours_changed'
258
+ | 'messenger.identity_verification_changed'
259
+ | 'messenger.privacy_policy_changed'
260
+ | 'brand.created'
261
+ | 'brand.updated'
262
+ | 'brand.deleted'
263
+ | 'brand.messenger_look_and_feel_changed'
264
+ | 'brand.messenger_launcher_changed'
265
+ | 'brand.messenger_welcome_message_changed'
266
+ | 'brand.messenger_privacy_policy_changed'
267
+ | 'brand.default_changed'
268
+ | 'ai_agent.enabled'
269
+ | 'ai_agent.disabled'
270
+ | 'ai_agent.identity_changed'
271
+ | 'ai_agent.customization_changed'
272
+ | 'ai_agent.guidance_changed'
273
+ | 'ai_agent.multilingual_changed'
274
+ | 'ai_agent.data_context_changed'
275
+ | 'email.sending_address_created'
276
+ | 'email.sending_address_updated'
277
+ | 'email.sending_address_deleted'
278
+ | 'email.domain_registered'
279
+ | 'email.domain_deleted'
280
+ | 'email.reply_to_changed'
281
+ | 'email.ignored_address_added'
282
+ | 'email.ignored_address_removed';
283
+
284
+ actor: AuditLogListResponse.Actor;
285
+
286
+ /**
287
+ * Groups related events from a single operation (e.g. bulk import)
288
+ */
289
+ correlationId: string | null;
290
+
291
+ /**
292
+ * ISO 8601 timestamp of when the event occurred
293
+ */
294
+ createdAt: string;
295
+
296
+ /**
297
+ * Pre-rendered human-readable description of the event
298
+ */
299
+ description: string;
300
+
301
+ /**
302
+ * The domain/category the action belongs to
303
+ */
304
+ domain:
305
+ | 'authentication'
306
+ | 'team_management'
307
+ | 'permissions'
308
+ | 'articles'
309
+ | 'changelog'
310
+ | 'workspace_settings'
311
+ | 'security'
312
+ | 'integrations'
313
+ | 'data_management'
314
+ | 'billing'
315
+ | 'workflows'
316
+ | 'messenger'
317
+ | 'brands'
318
+ | 'ai_agent'
319
+ | 'email_config';
320
+
321
+ /**
322
+ * Event-specific payload with before/after state when applicable. The shape of
323
+ * this object depends on the action type.
324
+ */
325
+ metadata: { [key: string]: unknown };
326
+
327
+ /**
328
+ * Object type identifier
329
+ */
330
+ object: 'audit_log';
331
+
332
+ request: AuditLogListResponse.Request;
333
+
334
+ resource: AuditLogListResponse.Resource;
335
+ }
336
+
337
+ export namespace AuditLogListResponse {
338
+ export interface Actor {
339
+ /**
340
+ * Featurebase user ID of the actor, or null for system actors
341
+ */
342
+ id: string | null;
343
+
344
+ /**
345
+ * API key that authenticated the request, or null for dashboard sessions
346
+ */
347
+ apiKey: Actor.APIKey | null;
348
+
349
+ /**
350
+ * Email address of the actor
351
+ */
352
+ email: string;
353
+
354
+ /**
355
+ * Display name of the actor
356
+ */
357
+ name: string | null;
358
+
359
+ /**
360
+ * The type of actor that performed the action
361
+ */
362
+ type: 'admin' | 'system' | 'api_key' | 'integration';
363
+ }
364
+
365
+ export namespace Actor {
366
+ /**
367
+ * API key that authenticated the request, or null for dashboard sessions
368
+ */
369
+ export interface APIKey {
370
+ /**
371
+ * API key ID
372
+ */
373
+ id: string;
374
+
375
+ /**
376
+ * API key name
377
+ */
378
+ name: string;
379
+ }
380
+ }
381
+
382
+ export interface Request {
383
+ /**
384
+ * IP address the request originated from
385
+ */
386
+ ipAddress: string | null;
387
+
388
+ /**
389
+ * User-Agent header from the request
390
+ */
391
+ userAgent: string | null;
392
+ }
393
+
394
+ export interface Resource {
395
+ /**
396
+ * ID of the affected resource, or null for organization-level events
397
+ */
398
+ id: string | null;
399
+
400
+ /**
401
+ * Display name of the affected resource
402
+ */
403
+ name: string | null;
404
+
405
+ /**
406
+ * Type of the affected resource
407
+ */
408
+ type: string;
409
+ }
410
+ }
411
+
412
+ export interface AuditLogListParams extends CursorPageParams {
413
+ /**
414
+ * Query param: Filter audit logs by action type
415
+ */
416
+ action?:
417
+ | 'auth.login'
418
+ | 'auth.logout'
419
+ | 'auth.login_failed'
420
+ | 'auth.password_reset_requested'
421
+ | 'auth.password_changed'
422
+ | 'auth.mfa_enabled'
423
+ | 'auth.mfa_disabled'
424
+ | 'auth.sso_login'
425
+ | 'auth.password_reset_completed'
426
+ | 'auth.unauthorized_method'
427
+ | 'auth.recovery_code_regenerated'
428
+ | 'auth.sso_enforcement_blocked'
429
+ | 'auth.sso_enforcement_session_invalidated'
430
+ | 'auth.managed_account_link_blocked'
431
+ | 'auth.cross_org_invite_accepted'
432
+ | 'auth.sso_enforcement_shadow'
433
+ | 'teammate.invited'
434
+ | 'teammate.joined'
435
+ | 'teammate.removed'
436
+ | 'teammate.email_changed'
437
+ | 'teammate.name_changed'
438
+ | 'teammate.seat_changed'
439
+ | 'teammate.deactivated'
440
+ | 'teammate.invite_changed'
441
+ | 'teammate.invite_deleted'
442
+ | 'teammate.scim_provisioned'
443
+ | 'teammate.scim_deprovisioned'
444
+ | 'teammate.scim_unlinked'
445
+ | 'teammate.scim_relinked'
446
+ | 'teammate.scim_operation_blocked'
447
+ | 'teammate.scim_seat_capacity_blocked'
448
+ | 'teammate.scim_email_updated'
449
+ | 'teammate.scim_exclusion_list_updated'
450
+ | 'teammate.restored'
451
+ | 'teammate.scim_restored'
452
+ | 'teammate.scim_auto_claimed'
453
+ | 'teammate.scim_claim_role_preserved'
454
+ | 'teammate.permanently_removed'
455
+ | 'member.role_changed'
456
+ | 'organization.owner_transferred'
457
+ | 'article.created'
458
+ | 'article.updated'
459
+ | 'article.published'
460
+ | 'article.unpublished'
461
+ | 'article.deleted'
462
+ | 'changelog.created'
463
+ | 'changelog.published'
464
+ | 'changelog.deleted'
465
+ | 'changelog.unpublished'
466
+ | 'settings.name_changed'
467
+ | 'settings.branding_updated'
468
+ | 'settings.custom_domain_changed'
469
+ | 'settings.language_changed'
470
+ | 'settings.timezone_changed'
471
+ | 'settings.email_settings_changed'
472
+ | 'settings.help_center_updated'
473
+ | 'settings.moderation_changed'
474
+ | 'settings.voting_changed'
475
+ | 'settings.statuses_updated'
476
+ | 'settings.boards_updated'
477
+ | 'settings.privacy_changed'
478
+ | 'settings.subdomain_changed'
479
+ | 'settings.subdomain_change_requested'
480
+ | 'settings.grace_period_changed'
481
+ | 'security.scim_override_blocked'
482
+ | 'security.sso_enabled'
483
+ | 'security.sso_disabled'
484
+ | 'security.sso_configured'
485
+ | 'security.sso_jit_provisioning_blocked'
486
+ | 'security.directory_sync_enabled'
487
+ | 'security.directory_sync_disabled'
488
+ | 'security.directory_sync_reconciled'
489
+ | 'security.two_factor_enforced'
490
+ | 'security.auth_method_changed'
491
+ | 'security.ip_allowlist_changed'
492
+ | 'security.ip_allowlist_blocked'
493
+ | 'security.identity_verification_changed'
494
+ | 'security.sso_url_changed'
495
+ | 'security.sso_jit_provisioning_changed'
496
+ | 'security.sso_enforcement_enabled'
497
+ | 'security.sso_enforcement_disabled'
498
+ | 'security.dsync_group_mappings_changed'
499
+ | 'security.dsync_mapping_priority_changed'
500
+ | 'security.user_banned'
501
+ | 'security.user_unbanned'
502
+ | 'integration.installed'
503
+ | 'integration.uninstalled'
504
+ | 'integration.configured'
505
+ | 'webhook.created'
506
+ | 'webhook.updated'
507
+ | 'webhook.deleted'
508
+ | 'webhook.secret_rotated'
509
+ | 'api_key.created'
510
+ | 'api_key.regenerated'
511
+ | 'api_key.deleted'
512
+ | 'organization.deletion_scheduled'
513
+ | 'organization.deletion_cancelled'
514
+ | 'data.export_initiated'
515
+ | 'data.import_initiated'
516
+ | 'data.bulk_delete'
517
+ | 'data.user_data_deleted'
518
+ | 'data.csv_exported'
519
+ | 'billing.plan_changed'
520
+ | 'billing.plan_cancelled'
521
+ | 'billing.seat_limit_changed'
522
+ | 'billing.seat_activated'
523
+ | 'workflow.created'
524
+ | 'workflow.activated'
525
+ | 'workflow.deactivated'
526
+ | 'workflow.deleted'
527
+ | 'workflow.updated'
528
+ | 'messenger.look_and_feel_changed'
529
+ | 'messenger.spaces_changed'
530
+ | 'messenger.language_changed'
531
+ | 'messenger.platform_availability_changed'
532
+ | 'messenger.search_browse_changed'
533
+ | 'messenger.email_collection_changed'
534
+ | 'messenger.welcome_message_changed'
535
+ | 'messenger.launcher_changed'
536
+ | 'messenger.inbound_conversations_changed'
537
+ | 'messenger.office_hours_changed'
538
+ | 'messenger.identity_verification_changed'
539
+ | 'messenger.privacy_policy_changed'
540
+ | 'brand.created'
541
+ | 'brand.updated'
542
+ | 'brand.deleted'
543
+ | 'brand.messenger_look_and_feel_changed'
544
+ | 'brand.messenger_launcher_changed'
545
+ | 'brand.messenger_welcome_message_changed'
546
+ | 'brand.messenger_privacy_policy_changed'
547
+ | 'brand.default_changed'
548
+ | 'ai_agent.enabled'
549
+ | 'ai_agent.disabled'
550
+ | 'ai_agent.identity_changed'
551
+ | 'ai_agent.customization_changed'
552
+ | 'ai_agent.guidance_changed'
553
+ | 'ai_agent.multilingual_changed'
554
+ | 'ai_agent.data_context_changed'
555
+ | 'email.sending_address_created'
556
+ | 'email.sending_address_updated'
557
+ | 'email.sending_address_deleted'
558
+ | 'email.domain_registered'
559
+ | 'email.domain_deleted'
560
+ | 'email.reply_to_changed'
561
+ | 'email.ignored_address_added'
562
+ | 'email.ignored_address_removed';
563
+
564
+ /**
565
+ * Query param: Filter audit logs by domain/category
566
+ */
567
+ domain?:
568
+ | 'authentication'
569
+ | 'team_management'
570
+ | 'permissions'
571
+ | 'articles'
572
+ | 'changelog'
573
+ | 'workspace_settings'
574
+ | 'security'
575
+ | 'integrations'
576
+ | 'data_management'
577
+ | 'billing'
578
+ | 'workflows'
579
+ | 'messenger'
580
+ | 'brands'
581
+ | 'ai_agent'
582
+ | 'email_config';
583
+
584
+ /**
585
+ * Query param: Filter events created on or before this ISO 8601 datetime
586
+ */
587
+ endDate?: string | null;
588
+
589
+ /**
590
+ * Query param: Filter events created on or after this ISO 8601 datetime
591
+ */
592
+ startDate?: string | null;
593
+
594
+ /**
595
+ * Header param: API version for this request. Defaults to your organization's
596
+ * configured API version if not specified.
597
+ */
598
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
599
+ }
600
+
601
+ export declare namespace AuditLogs {
602
+ export {
603
+ type AuditLogListResponse as AuditLogListResponse,
604
+ type AuditLogListResponsesCursorPage as AuditLogListResponsesCursorPage,
605
+ type AuditLogListParams as AuditLogListParams,
606
+ };
607
+ }
@@ -1,5 +1,11 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ export {
4
+ AuditLogs,
5
+ type AuditLogListResponse,
6
+ type AuditLogListParams,
7
+ type AuditLogListResponsesCursorPage,
8
+ } from './audit-logs';
3
9
  export {
4
10
  Changelogs,
5
11
  type Changelog,
@@ -25,6 +31,26 @@ export {
25
31
  export { Feedback } from './feedback/feedback';
26
32
  export { HelpCenter } from './help-center/help-center';
27
33
  export { Organization } from './organization/organization';
34
+ export {
35
+ Reports,
36
+ type ReportAttribute,
37
+ type ReportAttributeOption,
38
+ type ReportDataset,
39
+ type ReportFilterExpression,
40
+ type ReportFilterRule,
41
+ type ReportGroupedDatum,
42
+ type ReportMetric,
43
+ type ReportSegmentDatum,
44
+ type ReportTimeSeriesDatum,
45
+ type ReportDrillInResponse,
46
+ type ReportListDatasetsResponse,
47
+ type ReportLookupFilterValuesResponse,
48
+ type ReportQueryResponse,
49
+ type ReportListDatasetsParams,
50
+ type ReportQueryParams,
51
+ type ReportLookupFilterValuesParams,
52
+ type ReportDrillInParams,
53
+ } from './reports';
28
54
  export { Support } from './support/support';
29
55
  export {
30
56
  Surveys,
@@ -158,6 +158,8 @@ export class Admins extends APIResource {
158
158
  * - `manage_integrations` - Can manage integrations
159
159
  * - `use_integrations` - Can use integrations
160
160
  * - `manage_help_center` - Can manage help center
161
+ * - `manage_outbound` - Can manage outbound messages
162
+ * - `manage_outbound_state` - Can manage outbound message state
161
163
  * - `auto_approve_posts` - Posts auto-approved
162
164
  */
163
165
  listRoles(
@@ -380,6 +382,16 @@ export namespace AdminListRolesResponse {
380
382
  */
381
383
  manage_notifications?: boolean;
382
384
 
385
+ /**
386
+ * Manage outbound messages
387
+ */
388
+ manage_outbound?: boolean;
389
+
390
+ /**
391
+ * Manage outbound message state
392
+ */
393
+ manage_outbound_state?: boolean;
394
+
383
395
  /**
384
396
  * Manage post tags
385
397
  */