@sentdm/sentdm 0.7.2 → 0.15.0

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 (161) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +71 -34
  3. package/client.d.mts +49 -21
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +49 -21
  6. package/client.d.ts.map +1 -1
  7. package/client.js +52 -38
  8. package/client.js.map +1 -1
  9. package/client.mjs +52 -38
  10. package/client.mjs.map +1 -1
  11. package/internal/tslib.js +17 -17
  12. package/internal/utils/log.d.mts.map +1 -1
  13. package/internal/utils/log.d.ts.map +1 -1
  14. package/internal/utils/log.js +0 -1
  15. package/internal/utils/log.js.map +1 -1
  16. package/internal/utils/log.mjs +0 -1
  17. package/internal/utils/log.mjs.map +1 -1
  18. package/internal/utils/query.d.mts +5 -0
  19. package/internal/utils/query.d.mts.map +1 -0
  20. package/internal/utils/query.d.ts +5 -0
  21. package/internal/utils/query.d.ts.map +1 -0
  22. package/internal/utils/query.js +23 -0
  23. package/internal/utils/query.js.map +1 -0
  24. package/internal/utils/query.mjs +20 -0
  25. package/internal/utils/query.mjs.map +1 -0
  26. package/internal/utils.d.mts +1 -0
  27. package/internal/utils.d.ts +1 -0
  28. package/internal/utils.js +1 -0
  29. package/internal/utils.js.map +1 -1
  30. package/internal/utils.mjs +1 -0
  31. package/package.json +7 -1
  32. package/resources/contacts.d.mts +243 -49
  33. package/resources/contacts.d.mts.map +1 -1
  34. package/resources/contacts.d.ts +243 -49
  35. package/resources/contacts.d.ts.map +1 -1
  36. package/resources/contacts.js +112 -15
  37. package/resources/contacts.js.map +1 -1
  38. package/resources/contacts.mjs +112 -15
  39. package/resources/contacts.mjs.map +1 -1
  40. package/resources/index.d.mts +8 -4
  41. package/resources/index.d.mts.map +1 -1
  42. package/resources/index.d.ts +8 -4
  43. package/resources/index.d.ts.map +1 -1
  44. package/resources/index.js +11 -3
  45. package/resources/index.js.map +1 -1
  46. package/resources/index.mjs +5 -1
  47. package/resources/index.mjs.map +1 -1
  48. package/resources/me.d.mts +269 -0
  49. package/resources/me.d.mts.map +1 -0
  50. package/resources/me.d.ts +269 -0
  51. package/resources/me.d.ts.map +1 -0
  52. package/resources/me.js +40 -0
  53. package/resources/me.js.map +1 -0
  54. package/resources/me.mjs +36 -0
  55. package/resources/me.mjs.map +1 -0
  56. package/resources/messages.d.mts +239 -133
  57. package/resources/messages.d.mts.map +1 -1
  58. package/resources/messages.d.ts +239 -133
  59. package/resources/messages.d.ts.map +1 -1
  60. package/resources/messages.js +42 -50
  61. package/resources/messages.js.map +1 -1
  62. package/resources/messages.mjs +42 -50
  63. package/resources/messages.mjs.map +1 -1
  64. package/resources/numbers.d.mts +70 -0
  65. package/resources/numbers.d.mts.map +1 -0
  66. package/resources/numbers.d.ts +70 -0
  67. package/resources/numbers.d.ts.map +1 -0
  68. package/resources/numbers.js +36 -0
  69. package/resources/numbers.js.map +1 -0
  70. package/resources/numbers.mjs +32 -0
  71. package/resources/numbers.mjs.map +1 -0
  72. package/resources/profiles/campaigns.d.mts +339 -0
  73. package/resources/profiles/campaigns.d.mts.map +1 -0
  74. package/resources/profiles/campaigns.d.ts +339 -0
  75. package/resources/profiles/campaigns.d.ts.map +1 -0
  76. package/resources/profiles/campaigns.js +148 -0
  77. package/resources/profiles/campaigns.js.map +1 -0
  78. package/resources/profiles/campaigns.mjs +144 -0
  79. package/resources/profiles/campaigns.mjs.map +1 -0
  80. package/resources/profiles/index.d.mts +3 -0
  81. package/resources/profiles/index.d.mts.map +1 -0
  82. package/resources/profiles/index.d.ts +3 -0
  83. package/resources/profiles/index.d.ts.map +1 -0
  84. package/resources/profiles/index.js +9 -0
  85. package/resources/profiles/index.js.map +1 -0
  86. package/resources/profiles/index.mjs +4 -0
  87. package/resources/profiles/index.mjs.map +1 -0
  88. package/resources/profiles/profiles.d.mts +967 -0
  89. package/resources/profiles/profiles.d.mts.map +1 -0
  90. package/resources/profiles/profiles.d.ts +967 -0
  91. package/resources/profiles/profiles.d.ts.map +1 -0
  92. package/resources/profiles/profiles.js +227 -0
  93. package/resources/profiles/profiles.js.map +1 -0
  94. package/resources/profiles/profiles.mjs +222 -0
  95. package/resources/profiles/profiles.mjs.map +1 -0
  96. package/resources/profiles.d.mts +2 -0
  97. package/resources/profiles.d.mts.map +1 -0
  98. package/resources/profiles.d.ts +2 -0
  99. package/resources/profiles.d.ts.map +1 -0
  100. package/resources/profiles.js +6 -0
  101. package/resources/profiles.js.map +1 -0
  102. package/resources/profiles.mjs +3 -0
  103. package/resources/profiles.mjs.map +1 -0
  104. package/resources/templates.d.mts +327 -191
  105. package/resources/templates.d.mts.map +1 -1
  106. package/resources/templates.d.ts +327 -191
  107. package/resources/templates.d.ts.map +1 -1
  108. package/resources/templates.js +80 -35
  109. package/resources/templates.js.map +1 -1
  110. package/resources/templates.mjs +80 -35
  111. package/resources/templates.mjs.map +1 -1
  112. package/resources/users.d.mts +251 -0
  113. package/resources/users.d.mts.map +1 -0
  114. package/resources/users.d.ts +251 -0
  115. package/resources/users.d.ts.map +1 -0
  116. package/resources/users.js +124 -0
  117. package/resources/users.js.map +1 -0
  118. package/resources/users.mjs +120 -0
  119. package/resources/users.mjs.map +1 -0
  120. package/resources/webhooks.d.mts +639 -0
  121. package/resources/webhooks.d.mts.map +1 -0
  122. package/resources/webhooks.d.ts +639 -0
  123. package/resources/webhooks.d.ts.map +1 -0
  124. package/resources/webhooks.js +237 -0
  125. package/resources/webhooks.js.map +1 -0
  126. package/resources/webhooks.mjs +233 -0
  127. package/resources/webhooks.mjs.map +1 -0
  128. package/src/client.ts +228 -80
  129. package/src/internal/utils/log.ts +0 -1
  130. package/src/internal/utils/query.ts +23 -0
  131. package/src/internal/utils.ts +1 -0
  132. package/src/resources/contacts.ts +335 -57
  133. package/src/resources/index.ts +81 -12
  134. package/src/resources/me.ts +333 -0
  135. package/src/resources/messages.ts +306 -147
  136. package/src/resources/numbers.ts +102 -0
  137. package/src/resources/profiles/campaigns.ts +501 -0
  138. package/src/resources/profiles/index.ts +38 -0
  139. package/src/resources/profiles/profiles.ts +1302 -0
  140. package/src/resources/profiles.ts +3 -0
  141. package/src/resources/templates.ts +424 -202
  142. package/src/resources/users.ts +366 -0
  143. package/src/resources/webhooks.ts +923 -0
  144. package/src/version.ts +1 -1
  145. package/version.d.mts +1 -1
  146. package/version.d.mts.map +1 -1
  147. package/version.d.ts +1 -1
  148. package/version.d.ts.map +1 -1
  149. package/version.js +1 -1
  150. package/version.js.map +1 -1
  151. package/version.mjs +1 -1
  152. package/version.mjs.map +1 -1
  153. package/resources/number-lookup.d.mts +0 -59
  154. package/resources/number-lookup.d.mts.map +0 -1
  155. package/resources/number-lookup.d.ts +0 -59
  156. package/resources/number-lookup.d.ts.map +0 -1
  157. package/resources/number-lookup.js +0 -17
  158. package/resources/number-lookup.js.map +0 -1
  159. package/resources/number-lookup.mjs +0 -13
  160. package/resources/number-lookup.mjs.map +0 -1
  161. package/src/resources/number-lookup.ts +0 -80
@@ -0,0 +1,923 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import * as WebhooksAPI from './webhooks';
5
+ import { APIPromise } from '../core/api-promise';
6
+ import { buildHeaders } from '../internal/headers';
7
+ import { RequestOptions } from '../internal/request-options';
8
+ import { path } from '../internal/utils/path';
9
+
10
+ /**
11
+ * Configure webhook endpoints for real-time event delivery
12
+ */
13
+ export class Webhooks extends APIResource {
14
+ /**
15
+ * Creates a new webhook endpoint for the authenticated customer.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const apiResponseWebhook = await client.webhooks.create();
20
+ * ```
21
+ */
22
+ create(params: WebhookCreateParams, options?: RequestOptions): APIPromise<APIResponseWebhook> {
23
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
24
+ return this._client.post('/v3/webhooks', {
25
+ body,
26
+ ...options,
27
+ headers: buildHeaders([
28
+ {
29
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
30
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
31
+ },
32
+ options?.headers,
33
+ ]),
34
+ });
35
+ }
36
+
37
+ /**
38
+ * Retrieves a single webhook by ID for the authenticated customer.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const apiResponseWebhook = await client.webhooks.retrieve(
43
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
44
+ * );
45
+ * ```
46
+ */
47
+ retrieve(
48
+ id: string,
49
+ params: WebhookRetrieveParams | null | undefined = {},
50
+ options?: RequestOptions,
51
+ ): APIPromise<APIResponseWebhook> {
52
+ const { 'x-profile-id': xProfileID } = params ?? {};
53
+ return this._client.get(path`/v3/webhooks/${id}`, {
54
+ ...options,
55
+ headers: buildHeaders([
56
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
57
+ options?.headers,
58
+ ]),
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Updates an existing webhook for the authenticated customer.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const apiResponseWebhook = await client.webhooks.update(
68
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
69
+ * );
70
+ * ```
71
+ */
72
+ update(id: string, params: WebhookUpdateParams, options?: RequestOptions): APIPromise<APIResponseWebhook> {
73
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
74
+ return this._client.put(path`/v3/webhooks/${id}`, {
75
+ body,
76
+ ...options,
77
+ headers: buildHeaders([
78
+ {
79
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
80
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
81
+ },
82
+ options?.headers,
83
+ ]),
84
+ });
85
+ }
86
+
87
+ /**
88
+ * Retrieves a paginated list of webhooks for the authenticated customer.
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const webhooks = await client.webhooks.list({
93
+ * page: 0,
94
+ * page_size: 0,
95
+ * });
96
+ * ```
97
+ */
98
+ list(params: WebhookListParams, options?: RequestOptions): APIPromise<WebhookListResponse> {
99
+ const { 'x-profile-id': xProfileID, ...query } = params;
100
+ return this._client.get('/v3/webhooks', {
101
+ query,
102
+ ...options,
103
+ headers: buildHeaders([
104
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
105
+ options?.headers,
106
+ ]),
107
+ });
108
+ }
109
+
110
+ /**
111
+ * Deletes a webhook for the authenticated customer.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * await client.webhooks.delete(
116
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
117
+ * );
118
+ * ```
119
+ */
120
+ delete(
121
+ id: string,
122
+ params: WebhookDeleteParams | null | undefined = {},
123
+ options?: RequestOptions,
124
+ ): APIPromise<void> {
125
+ const { 'x-profile-id': xProfileID } = params ?? {};
126
+ return this._client.delete(path`/v3/webhooks/${id}`, {
127
+ ...options,
128
+ headers: buildHeaders([
129
+ { Accept: '*/*', ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
130
+ options?.headers,
131
+ ]),
132
+ });
133
+ }
134
+
135
+ /**
136
+ * Retrieves all available webhook event types that can be subscribed to.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const response = await client.webhooks.listEventTypes();
141
+ * ```
142
+ */
143
+ listEventTypes(
144
+ params: WebhookListEventTypesParams | null | undefined = {},
145
+ options?: RequestOptions,
146
+ ): APIPromise<WebhookListEventTypesResponse> {
147
+ const { 'x-profile-id': xProfileID } = params ?? {};
148
+ return this._client.get('/v3/webhooks/event-types', {
149
+ ...options,
150
+ headers: buildHeaders([
151
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
152
+ options?.headers,
153
+ ]),
154
+ });
155
+ }
156
+
157
+ /**
158
+ * Retrieves a paginated list of delivery events for the specified webhook.
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * const response = await client.webhooks.listEvents(
163
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
164
+ * { page: 0, page_size: 0 },
165
+ * );
166
+ * ```
167
+ */
168
+ listEvents(
169
+ id: string,
170
+ params: WebhookListEventsParams,
171
+ options?: RequestOptions,
172
+ ): APIPromise<WebhookListEventsResponse> {
173
+ const { 'x-profile-id': xProfileID, ...query } = params;
174
+ return this._client.get(path`/v3/webhooks/${id}/events`, {
175
+ query,
176
+ ...options,
177
+ headers: buildHeaders([
178
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
179
+ options?.headers,
180
+ ]),
181
+ });
182
+ }
183
+
184
+ /**
185
+ * Generates a new signing secret for the specified webhook. The old secret is
186
+ * immediately invalidated.
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * const response = await client.webhooks.rotateSecret(
191
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
192
+ * { body: {} },
193
+ * );
194
+ * ```
195
+ */
196
+ rotateSecret(
197
+ id: string,
198
+ params: WebhookRotateSecretParams,
199
+ options?: RequestOptions,
200
+ ): APIPromise<WebhookRotateSecretResponse> {
201
+ const { body, 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID } = params;
202
+ return this._client.post(path`/v3/webhooks/${id}/rotate-secret`, {
203
+ body: body,
204
+ ...options,
205
+ headers: buildHeaders([
206
+ {
207
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
208
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
209
+ },
210
+ options?.headers,
211
+ ]),
212
+ });
213
+ }
214
+
215
+ /**
216
+ * Sends a test event to the specified webhook endpoint to verify connectivity.
217
+ *
218
+ * @example
219
+ * ```ts
220
+ * const response = await client.webhooks.test(
221
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
222
+ * );
223
+ * ```
224
+ */
225
+ test(id: string, params: WebhookTestParams, options?: RequestOptions): APIPromise<WebhookTestResponse> {
226
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
227
+ return this._client.post(path`/v3/webhooks/${id}/test`, {
228
+ body,
229
+ ...options,
230
+ headers: buildHeaders([
231
+ {
232
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
233
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
234
+ },
235
+ options?.headers,
236
+ ]),
237
+ });
238
+ }
239
+
240
+ /**
241
+ * Activates or deactivates a webhook for the authenticated customer.
242
+ *
243
+ * @example
244
+ * ```ts
245
+ * const apiResponseWebhook =
246
+ * await client.webhooks.toggleStatus(
247
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
248
+ * );
249
+ * ```
250
+ */
251
+ toggleStatus(
252
+ id: string,
253
+ params: WebhookToggleStatusParams,
254
+ options?: RequestOptions,
255
+ ): APIPromise<APIResponseWebhook> {
256
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
257
+ return this._client.patch(path`/v3/webhooks/${id}/toggle-status`, {
258
+ body,
259
+ ...options,
260
+ headers: buildHeaders([
261
+ {
262
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
263
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
264
+ },
265
+ options?.headers,
266
+ ]),
267
+ });
268
+ }
269
+ }
270
+
271
+ /**
272
+ * Request and response metadata
273
+ */
274
+ export interface APIMeta {
275
+ /**
276
+ * Unique identifier for this request (for tracing and support)
277
+ */
278
+ request_id?: string;
279
+
280
+ /**
281
+ * Server timestamp when the response was generated
282
+ */
283
+ timestamp?: string;
284
+
285
+ /**
286
+ * API version used for this request
287
+ */
288
+ version?: string;
289
+ }
290
+
291
+ /**
292
+ * Standard API response envelope for all v3 endpoints
293
+ */
294
+ export interface APIResponseWebhook {
295
+ /**
296
+ * The response data (null if error)
297
+ */
298
+ data?: WebhookResponse | null;
299
+
300
+ /**
301
+ * Error information
302
+ */
303
+ error?: ErrorDetail | null;
304
+
305
+ /**
306
+ * Request and response metadata
307
+ */
308
+ meta?: APIMeta;
309
+
310
+ /**
311
+ * Indicates whether the request was successful
312
+ */
313
+ success?: boolean;
314
+ }
315
+
316
+ /**
317
+ * Error information
318
+ */
319
+ export interface ErrorDetail {
320
+ /**
321
+ * Machine-readable error code (e.g., "RESOURCE_001")
322
+ */
323
+ code?: string;
324
+
325
+ /**
326
+ * Additional validation error details (field-level errors)
327
+ */
328
+ details?: { [key: string]: Array<string> } | null;
329
+
330
+ /**
331
+ * URL to documentation about this error
332
+ */
333
+ doc_url?: string | null;
334
+
335
+ /**
336
+ * Human-readable error message
337
+ */
338
+ message?: string;
339
+ }
340
+
341
+ export interface MutationRequest {
342
+ /**
343
+ * Sandbox flag - when true, the operation is simulated without side effects Useful
344
+ * for testing integrations without actual execution
345
+ */
346
+ sandbox?: boolean;
347
+ }
348
+
349
+ /**
350
+ * Pagination metadata for list responses
351
+ */
352
+ export interface PaginationMeta {
353
+ /**
354
+ * Cursor-based pagination pointers
355
+ */
356
+ cursors?: PaginationMeta.Cursors | null;
357
+
358
+ /**
359
+ * Whether there are more pages after this one
360
+ */
361
+ has_more?: boolean;
362
+
363
+ /**
364
+ * Current page number (1-indexed)
365
+ */
366
+ page?: number;
367
+
368
+ /**
369
+ * Number of items per page
370
+ */
371
+ page_size?: number;
372
+
373
+ /**
374
+ * Total number of items across all pages
375
+ */
376
+ total_count?: number;
377
+
378
+ /**
379
+ * Total number of pages
380
+ */
381
+ total_pages?: number;
382
+ }
383
+
384
+ export namespace PaginationMeta {
385
+ /**
386
+ * Cursor-based pagination pointers
387
+ */
388
+ export interface Cursors {
389
+ /**
390
+ * Cursor to fetch the next page
391
+ */
392
+ after?: string | null;
393
+
394
+ /**
395
+ * Cursor to fetch the previous page
396
+ */
397
+ before?: string | null;
398
+ }
399
+ }
400
+
401
+ export interface WebhookResponse {
402
+ id?: string;
403
+
404
+ consecutive_failures?: number;
405
+
406
+ created_at?: string;
407
+
408
+ display_name?: string;
409
+
410
+ endpoint_url?: string;
411
+
412
+ event_types?: Array<string>;
413
+
414
+ is_active?: boolean;
415
+
416
+ last_delivery_attempt_at?: string | null;
417
+
418
+ last_successful_delivery_at?: string | null;
419
+
420
+ retry_count?: number;
421
+
422
+ signing_secret?: string | null;
423
+
424
+ timeout_seconds?: number;
425
+
426
+ updated_at?: string | null;
427
+ }
428
+
429
+ /**
430
+ * Standard API response envelope for all v3 endpoints
431
+ */
432
+ export interface WebhookListResponse {
433
+ /**
434
+ * The response data (null if error)
435
+ */
436
+ data?: WebhookListResponse.Data | null;
437
+
438
+ /**
439
+ * Error information
440
+ */
441
+ error?: ErrorDetail | null;
442
+
443
+ /**
444
+ * Request and response metadata
445
+ */
446
+ meta?: APIMeta;
447
+
448
+ /**
449
+ * Indicates whether the request was successful
450
+ */
451
+ success?: boolean;
452
+ }
453
+
454
+ export namespace WebhookListResponse {
455
+ /**
456
+ * The response data (null if error)
457
+ */
458
+ export interface Data {
459
+ /**
460
+ * Pagination metadata for list responses
461
+ */
462
+ pagination?: WebhooksAPI.PaginationMeta;
463
+
464
+ webhooks?: Array<WebhooksAPI.WebhookResponse>;
465
+ }
466
+ }
467
+
468
+ /**
469
+ * Standard API response envelope for all v3 endpoints
470
+ */
471
+ export interface WebhookListEventTypesResponse {
472
+ /**
473
+ * The response data (null if error)
474
+ */
475
+ data?: WebhookListEventTypesResponse.Data | null;
476
+
477
+ /**
478
+ * Error information
479
+ */
480
+ error?: ErrorDetail | null;
481
+
482
+ /**
483
+ * Request and response metadata
484
+ */
485
+ meta?: APIMeta;
486
+
487
+ /**
488
+ * Indicates whether the request was successful
489
+ */
490
+ success?: boolean;
491
+ }
492
+
493
+ export namespace WebhookListEventTypesResponse {
494
+ /**
495
+ * The response data (null if error)
496
+ */
497
+ export interface Data {
498
+ event_types?: Array<Data.EventType>;
499
+ }
500
+
501
+ export namespace Data {
502
+ export interface EventType {
503
+ description?: string | null;
504
+
505
+ display_name?: string;
506
+
507
+ is_active?: boolean;
508
+
509
+ name?: string;
510
+ }
511
+ }
512
+ }
513
+
514
+ /**
515
+ * Standard API response envelope for all v3 endpoints
516
+ */
517
+ export interface WebhookListEventsResponse {
518
+ /**
519
+ * The response data (null if error)
520
+ */
521
+ data?: WebhookListEventsResponse.Data | null;
522
+
523
+ /**
524
+ * Error information
525
+ */
526
+ error?: ErrorDetail | null;
527
+
528
+ /**
529
+ * Request and response metadata
530
+ */
531
+ meta?: APIMeta;
532
+
533
+ /**
534
+ * Indicates whether the request was successful
535
+ */
536
+ success?: boolean;
537
+ }
538
+
539
+ export namespace WebhookListEventsResponse {
540
+ /**
541
+ * The response data (null if error)
542
+ */
543
+ export interface Data {
544
+ events?: Array<Data.Event>;
545
+
546
+ /**
547
+ * Pagination metadata for list responses
548
+ */
549
+ pagination?: WebhooksAPI.PaginationMeta;
550
+ }
551
+
552
+ export namespace Data {
553
+ export interface Event {
554
+ id?: string;
555
+
556
+ created_at?: string;
557
+
558
+ delivery_attempts?: number;
559
+
560
+ delivery_status?: string;
561
+
562
+ error_message?: string | null;
563
+
564
+ event_data?: unknown;
565
+
566
+ event_type?: string;
567
+
568
+ http_status_code?: number | null;
569
+
570
+ processing_completed_at?: string | null;
571
+
572
+ processing_started_at?: string | null;
573
+
574
+ response_body?: string | null;
575
+ }
576
+ }
577
+ }
578
+
579
+ /**
580
+ * Standard API response envelope for all v3 endpoints
581
+ */
582
+ export interface WebhookRotateSecretResponse {
583
+ /**
584
+ * The response data (null if error)
585
+ */
586
+ data?: WebhookRotateSecretResponse.Data | null;
587
+
588
+ /**
589
+ * Error information
590
+ */
591
+ error?: ErrorDetail | null;
592
+
593
+ /**
594
+ * Request and response metadata
595
+ */
596
+ meta?: APIMeta;
597
+
598
+ /**
599
+ * Indicates whether the request was successful
600
+ */
601
+ success?: boolean;
602
+ }
603
+
604
+ export namespace WebhookRotateSecretResponse {
605
+ /**
606
+ * The response data (null if error)
607
+ */
608
+ export interface Data {
609
+ signing_secret?: string;
610
+ }
611
+ }
612
+
613
+ /**
614
+ * Standard API response envelope for all v3 endpoints
615
+ */
616
+ export interface WebhookTestResponse {
617
+ /**
618
+ * The response data (null if error)
619
+ */
620
+ data?: WebhookTestResponse.Data | null;
621
+
622
+ /**
623
+ * Error information
624
+ */
625
+ error?: ErrorDetail | null;
626
+
627
+ /**
628
+ * Request and response metadata
629
+ */
630
+ meta?: APIMeta;
631
+
632
+ /**
633
+ * Indicates whether the request was successful
634
+ */
635
+ success?: boolean;
636
+ }
637
+
638
+ export namespace WebhookTestResponse {
639
+ /**
640
+ * The response data (null if error)
641
+ */
642
+ export interface Data {
643
+ message?: string;
644
+
645
+ success?: boolean;
646
+ }
647
+ }
648
+
649
+ export interface WebhookCreateParams {
650
+ /**
651
+ * Body param
652
+ */
653
+ display_name?: string;
654
+
655
+ /**
656
+ * Body param
657
+ */
658
+ endpoint_url?: string;
659
+
660
+ /**
661
+ * Body param
662
+ */
663
+ event_types?: Array<string>;
664
+
665
+ /**
666
+ * Body param
667
+ */
668
+ retry_count?: number;
669
+
670
+ /**
671
+ * Body param: Sandbox flag - when true, the operation is simulated without side
672
+ * effects Useful for testing integrations without actual execution
673
+ */
674
+ sandbox?: boolean;
675
+
676
+ /**
677
+ * Body param
678
+ */
679
+ timeout_seconds?: number;
680
+
681
+ /**
682
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
683
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
684
+ * hours per key per customer.
685
+ */
686
+ 'Idempotency-Key'?: string;
687
+
688
+ /**
689
+ * Header param: Profile UUID to scope the request to a child profile. Only
690
+ * organization API keys can use this header. The profile must belong to the
691
+ * calling organization.
692
+ */
693
+ 'x-profile-id'?: string;
694
+ }
695
+
696
+ export interface WebhookRetrieveParams {
697
+ /**
698
+ * Profile UUID to scope the request to a child profile. Only organization API keys
699
+ * can use this header. The profile must belong to the calling organization.
700
+ */
701
+ 'x-profile-id'?: string;
702
+ }
703
+
704
+ export interface WebhookUpdateParams {
705
+ /**
706
+ * Body param
707
+ */
708
+ display_name?: string;
709
+
710
+ /**
711
+ * Body param
712
+ */
713
+ endpoint_url?: string;
714
+
715
+ /**
716
+ * Body param
717
+ */
718
+ event_types?: Array<string>;
719
+
720
+ /**
721
+ * Body param
722
+ */
723
+ retry_count?: number;
724
+
725
+ /**
726
+ * Body param: Sandbox flag - when true, the operation is simulated without side
727
+ * effects Useful for testing integrations without actual execution
728
+ */
729
+ sandbox?: boolean;
730
+
731
+ /**
732
+ * Body param
733
+ */
734
+ timeout_seconds?: number;
735
+
736
+ /**
737
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
738
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
739
+ * hours per key per customer.
740
+ */
741
+ 'Idempotency-Key'?: string;
742
+
743
+ /**
744
+ * Header param: Profile UUID to scope the request to a child profile. Only
745
+ * organization API keys can use this header. The profile must belong to the
746
+ * calling organization.
747
+ */
748
+ 'x-profile-id'?: string;
749
+ }
750
+
751
+ export interface WebhookListParams {
752
+ /**
753
+ * Query param
754
+ */
755
+ page: number;
756
+
757
+ /**
758
+ * Query param
759
+ */
760
+ page_size: number;
761
+
762
+ /**
763
+ * Query param
764
+ */
765
+ is_active?: boolean | null;
766
+
767
+ /**
768
+ * Query param
769
+ */
770
+ search?: string | null;
771
+
772
+ /**
773
+ * Header param: Profile UUID to scope the request to a child profile. Only
774
+ * organization API keys can use this header. The profile must belong to the
775
+ * calling organization.
776
+ */
777
+ 'x-profile-id'?: string;
778
+ }
779
+
780
+ export interface WebhookDeleteParams {
781
+ /**
782
+ * Profile UUID to scope the request to a child profile. Only organization API keys
783
+ * can use this header. The profile must belong to the calling organization.
784
+ */
785
+ 'x-profile-id'?: string;
786
+ }
787
+
788
+ export interface WebhookListEventTypesParams {
789
+ /**
790
+ * Profile UUID to scope the request to a child profile. Only organization API keys
791
+ * can use this header. The profile must belong to the calling organization.
792
+ */
793
+ 'x-profile-id'?: string;
794
+ }
795
+
796
+ export interface WebhookListEventsParams {
797
+ /**
798
+ * Query param
799
+ */
800
+ page: number;
801
+
802
+ /**
803
+ * Query param
804
+ */
805
+ page_size: number;
806
+
807
+ /**
808
+ * Query param
809
+ */
810
+ search?: string | null;
811
+
812
+ /**
813
+ * Header param: Profile UUID to scope the request to a child profile. Only
814
+ * organization API keys can use this header. The profile must belong to the
815
+ * calling organization.
816
+ */
817
+ 'x-profile-id'?: string;
818
+ }
819
+
820
+ export interface WebhookRotateSecretParams {
821
+ /**
822
+ * Body param
823
+ */
824
+ body: WebhookRotateSecretParams.Body;
825
+
826
+ /**
827
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
828
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
829
+ * hours per key per customer.
830
+ */
831
+ 'Idempotency-Key'?: string;
832
+
833
+ /**
834
+ * Header param: Profile UUID to scope the request to a child profile. Only
835
+ * organization API keys can use this header. The profile must belong to the
836
+ * calling organization.
837
+ */
838
+ 'x-profile-id'?: string;
839
+ }
840
+
841
+ export namespace WebhookRotateSecretParams {
842
+ export interface Body extends WebhooksAPI.MutationRequest {}
843
+ }
844
+
845
+ export interface WebhookTestParams {
846
+ /**
847
+ * Body param
848
+ */
849
+ event_type?: string;
850
+
851
+ /**
852
+ * Body param: Sandbox flag - when true, the operation is simulated without side
853
+ * effects Useful for testing integrations without actual execution
854
+ */
855
+ sandbox?: boolean;
856
+
857
+ /**
858
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
859
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
860
+ * hours per key per customer.
861
+ */
862
+ 'Idempotency-Key'?: string;
863
+
864
+ /**
865
+ * Header param: Profile UUID to scope the request to a child profile. Only
866
+ * organization API keys can use this header. The profile must belong to the
867
+ * calling organization.
868
+ */
869
+ 'x-profile-id'?: string;
870
+ }
871
+
872
+ export interface WebhookToggleStatusParams {
873
+ /**
874
+ * Body param
875
+ */
876
+ is_active?: boolean;
877
+
878
+ /**
879
+ * Body param: Sandbox flag - when true, the operation is simulated without side
880
+ * effects Useful for testing integrations without actual execution
881
+ */
882
+ sandbox?: boolean;
883
+
884
+ /**
885
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
886
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
887
+ * hours per key per customer.
888
+ */
889
+ 'Idempotency-Key'?: string;
890
+
891
+ /**
892
+ * Header param: Profile UUID to scope the request to a child profile. Only
893
+ * organization API keys can use this header. The profile must belong to the
894
+ * calling organization.
895
+ */
896
+ 'x-profile-id'?: string;
897
+ }
898
+
899
+ export declare namespace Webhooks {
900
+ export {
901
+ type APIMeta as APIMeta,
902
+ type APIResponseWebhook as APIResponseWebhook,
903
+ type ErrorDetail as ErrorDetail,
904
+ type MutationRequest as MutationRequest,
905
+ type PaginationMeta as PaginationMeta,
906
+ type WebhookResponse as WebhookResponse,
907
+ type WebhookListResponse as WebhookListResponse,
908
+ type WebhookListEventTypesResponse as WebhookListEventTypesResponse,
909
+ type WebhookListEventsResponse as WebhookListEventsResponse,
910
+ type WebhookRotateSecretResponse as WebhookRotateSecretResponse,
911
+ type WebhookTestResponse as WebhookTestResponse,
912
+ type WebhookCreateParams as WebhookCreateParams,
913
+ type WebhookRetrieveParams as WebhookRetrieveParams,
914
+ type WebhookUpdateParams as WebhookUpdateParams,
915
+ type WebhookListParams as WebhookListParams,
916
+ type WebhookDeleteParams as WebhookDeleteParams,
917
+ type WebhookListEventTypesParams as WebhookListEventTypesParams,
918
+ type WebhookListEventsParams as WebhookListEventsParams,
919
+ type WebhookRotateSecretParams as WebhookRotateSecretParams,
920
+ type WebhookTestParams as WebhookTestParams,
921
+ type WebhookToggleStatusParams as WebhookToggleStatusParams,
922
+ };
923
+ }