apollo-deploy-signal-sdk 1.0.5

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 (36) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/LICENSE +21 -0
  4. data/README.md +79 -0
  5. data/docs/README.md +30 -0
  6. data/docs/domains/api-keys.md +92 -0
  7. data/docs/domains/contact-properties.md +122 -0
  8. data/docs/domains/contacts.md +394 -0
  9. data/docs/domains/emails.md +150 -0
  10. data/docs/domains/metrics.md +131 -0
  11. data/docs/domains/projects.md +127 -0
  12. data/docs/domains/segments.md +116 -0
  13. data/docs/domains/sending-domains.md +160 -0
  14. data/docs/domains/suppressions.md +120 -0
  15. data/docs/domains/topics.md +141 -0
  16. data/docs/domains/webhooks.md +200 -0
  17. data/docs/types.md +1225 -0
  18. data/lib/apollo-deploy-signal-sdk.rb +3 -0
  19. data/lib/apollo_deploy_signal_sdk/client.rb +111 -0
  20. data/lib/apollo_deploy_signal_sdk/errors.rb +150 -0
  21. data/lib/apollo_deploy_signal_sdk/resources/api-keys.rb +86 -0
  22. data/lib/apollo_deploy_signal_sdk/resources/contact-properties.rb +108 -0
  23. data/lib/apollo_deploy_signal_sdk/resources/contacts.rb +356 -0
  24. data/lib/apollo_deploy_signal_sdk/resources/emails.rb +128 -0
  25. data/lib/apollo_deploy_signal_sdk/resources/metrics.rb +122 -0
  26. data/lib/apollo_deploy_signal_sdk/resources/projects.rb +114 -0
  27. data/lib/apollo_deploy_signal_sdk/resources/segments.rb +105 -0
  28. data/lib/apollo_deploy_signal_sdk/resources/sending-domains.rb +144 -0
  29. data/lib/apollo_deploy_signal_sdk/resources/suppressions.rb +104 -0
  30. data/lib/apollo_deploy_signal_sdk/resources/topics.rb +126 -0
  31. data/lib/apollo_deploy_signal_sdk/resources/webhooks.rb +184 -0
  32. data/lib/apollo_deploy_signal_sdk/transport.rb +618 -0
  33. data/lib/apollo_deploy_signal_sdk/types.rb +4917 -0
  34. data/lib/apollo_deploy_signal_sdk/version.rb +5 -0
  35. data/lib/apollo_deploy_signal_sdk.rb +47 -0
  36. metadata +135 -0
data/docs/types.md ADDED
@@ -0,0 +1,1225 @@
1
+ # Apollo Signal API generated types
2
+
3
+ [Documentation index](./README.md) · [SDK overview](../README.md)
4
+
5
+ ## Index
6
+
7
+ | Type | Kind | Description |
8
+ |---|---|---|
9
+ | [`AttachmentRequest`](#attachmentrequest) | Model | — |
10
+ | [`DeliveryWindowRequest`](#deliverywindowrequest) | Model | — |
11
+ | [`TrackingSettingsRequest`](#trackingsettingsrequest) | Model | — |
12
+ | [`SendEmailRequest`](#sendemailrequest) | Model | — |
13
+ | [`BatchSendItemResponse`](#batchsenditemresponse) | Model | — |
14
+ | [`SendEmailResponse`](#sendemailresponse) | Model | — |
15
+ | [`EmailDetailResponse`](#emaildetailresponse) | Model | — |
16
+ | [`BatchSendRequest`](#batchsendrequest) | Model | — |
17
+ | [`BatchSendResponse`](#batchsendresponse) | Model | — |
18
+ | [`CancelResponse`](#cancelresponse) | Model | — |
19
+ | [`BulkCancelResponse`](#bulkcancelresponse) | Model | — |
20
+ | [`StreamTokenResponse`](#streamtokenresponse) | Model | — |
21
+ | [`StreamEventResponse`](#streameventresponse) | Model | — |
22
+ | [`ValidateLinksRequest`](#validatelinksrequest) | Model | — |
23
+ | [`LinkResultItem`](#linkresultitem) | Model | — |
24
+ | [`ValidateLinksResponse`](#validatelinksresponse) | Model | — |
25
+ | [`MetricsWindowResponse`](#metricswindowresponse) | Model | — |
26
+ | [`TopicPerformanceResponse`](#topicperformanceresponse) | Model | — |
27
+ | [`EmailPerformanceResponse`](#emailperformanceresponse) | Model | — |
28
+ | [`EmailReadScrollAnalyticsResponse`](#emailreadscrollanalyticsresponse) | Model | — |
29
+ | [`ProjectMetricsSummaryResponse`](#projectmetricssummaryresponse) | Model | — |
30
+ | [`ProjectTimelineBucketResponse`](#projecttimelinebucketresponse) | Model | — |
31
+ | [`ProjectMetricsTimelineResponse`](#projectmetricstimelineresponse) | Model | — |
32
+ | [`AdvisorRecommendationDataResponse`](#advisorrecommendationdataresponse) | Model | — |
33
+ | [`AdvisorRecommendationResponse`](#advisorrecommendationresponse) | Model | — |
34
+ | [`AdvisorReportResponse`](#advisorreportresponse) | Model | — |
35
+ | [`SuppressionResponse`](#suppressionresponse) | Model | — |
36
+ | [`PageInfo`](#pageinfo) | Model | — |
37
+ | [`SuppressionPageResponse`](#suppressionpageresponse) | Model | — |
38
+ | [`AddSuppressionBody`](#addsuppressionbody) | Model | — |
39
+ | [`SuppressionImportRowSerializable`](#suppressionimportrowserializable) | Model | — |
40
+ | [`SuppressionImportBody`](#suppressionimportbody) | Model | — |
41
+ | [`SuppressionImportResponse`](#suppressionimportresponse) | Model | — |
42
+ | [`SegmentResponse`](#segmentresponse) | Model | — |
43
+ | [`SegmentPageResponse`](#segmentpageresponse) | Model | — |
44
+ | [`SegmentContactResponse`](#segmentcontactresponse) | Model | — |
45
+ | [`CursorInfo`](#cursorinfo) | Model | — |
46
+ | [`CursorPage`](#cursorpage) | Model | — |
47
+ | [`CreateSegmentBody`](#createsegmentbody) | Model | — |
48
+ | [`TopicResponse`](#topicresponse) | Model | — |
49
+ | [`TopicPageResponse`](#topicpageresponse) | Model | — |
50
+ | [`CreateTopicBody`](#createtopicbody) | Model | — |
51
+ | [`UpdateTopicBody`](#updatetopicbody) | Model | — |
52
+ | [`ContactPropertyResponse`](#contactpropertyresponse) | Model | — |
53
+ | [`ContactPropertyPageResponse`](#contactpropertypageresponse) | Model | — |
54
+ | [`CreateContactPropertyBody`](#createcontactpropertybody) | Model | — |
55
+ | [`UpdateContactPropertyBody`](#updatecontactpropertybody) | Model | — |
56
+ | [`TopicSubscriptionResponse`](#topicsubscriptionresponse) | Model | — |
57
+ | [`ContactResponse`](#contactresponse) | Model | — |
58
+ | [`ContactPageResponse`](#contactpageresponse) | Model | — |
59
+ | [`SegmentRef`](#segmentref) | Model | — |
60
+ | [`TopicSubscriptionBody`](#topicsubscriptionbody) | Model | — |
61
+ | [`CreateContactBody`](#createcontactbody) | Model | — |
62
+ | [`UpdateContactBody`](#updatecontactbody) | Model | — |
63
+ | [`SetImageUrlBody`](#setimageurlbody) | Model | — |
64
+ | [`AddToSegmentBody`](#addtosegmentbody) | Model | — |
65
+ | [`UpdateTopicsBody`](#updatetopicsbody) | Model | — |
66
+ | [`ActivityMetadataResponse`](#activitymetadataresponse) | Model | — |
67
+ | [`ActivityResponse`](#activityresponse) | Model | — |
68
+ | [`EngagementScoreResponse`](#engagementscoreresponse) | Model | — |
69
+ | [`EmailValidationStatusResponse`](#emailvalidationstatusresponse) | Model | — |
70
+ | [`RecordValidationBody`](#recordvalidationbody) | Model | — |
71
+ | [`WebhookFilterSerializable`](#webhookfilterserializable) | Model | — |
72
+ | [`WebhookTransformationSerializable`](#webhooktransformationserializable) | Model | — |
73
+ | [`WebhookResponse`](#webhookresponse) | Model | — |
74
+ | [`WebhookPageResponse`](#webhookpageresponse) | Model | — |
75
+ | [`WebhookDeliveryResponse`](#webhookdeliveryresponse) | Model | — |
76
+ | [`WebhookDeliveryPageResponse`](#webhookdeliverypageresponse) | Model | — |
77
+ | [`CreateWebhookBody`](#createwebhookbody) | Model | — |
78
+ | [`WebhookCreateResponse`](#webhookcreateresponse) | Model | — |
79
+ | [`UpdateWebhookBody`](#updatewebhookbody) | Model | — |
80
+ | [`ApiKey`](#apikey) | Model | — |
81
+ | [`ApiKeyUsageRecord`](#apikeyusagerecord) | Model | — |
82
+ | [`UsagePage`](#usagepage) | Model | — |
83
+ | [`ApiKeyUsageResponse`](#apikeyusageresponse) | Model | — |
84
+ | [`ProjectLimitsModel`](#projectlimitsmodel) | Model | — |
85
+ | [`ProjectTrackingSettingsModel`](#projecttrackingsettingsmodel) | Model | — |
86
+ | [`ProjectResponse`](#projectresponse) | Model | — |
87
+ | [`ProjectPageResponse`](#projectpageresponse) | Model | — |
88
+ | [`UpdateProjectRequest`](#updateprojectrequest) | Model | — |
89
+ | [`EmailPageResponse`](#emailpageresponse) | Model | — |
90
+ | [`EmailTimelineItem`](#emailtimelineitem) | Model | — |
91
+ | [`EmailTimelineResponse`](#emailtimelineresponse) | Model | — |
92
+ | [`DomainListItemResponse`](#domainlistitemresponse) | Model | — |
93
+ | [`DomainListPageResponse`](#domainlistpageresponse) | Model | — |
94
+ | [`DkimRecordResponse`](#dkimrecordresponse) | Model | — |
95
+ | [`DnsRecordResponse`](#dnsrecordresponse) | Model | — |
96
+ | [`VerificationRecordsResponse`](#verificationrecordsresponse) | Model | — |
97
+ | [`DomainResponse`](#domainresponse) | Model | — |
98
+ | [`RegisterDomainRequest`](#registerdomainrequest) | Model | — |
99
+ | [`UpdateBimiRequest`](#updatebimirequest) | Model | — |
100
+ | [`EmailValidationStatusInput`](#emailvalidationstatusinput) | Enum | — |
101
+ | [`GetTopicPerformanceQuery`](#gettopicperformancequery) | Model | — |
102
+ | [`GetProjectMetricsSummaryQuery`](#getprojectmetricssummaryquery) | Model | — |
103
+ | [`GetProjectMetricsTimelineQuery`](#getprojectmetricstimelinequery) | Model | — |
104
+ | [`GetMetricsAdvisorQuery`](#getmetricsadvisorquery) | Model | — |
105
+ | [`ListContactSegmentsResponse`](#listcontactsegmentsresponse) | Alias | — |
106
+ | [`GetContactTopicsResponse`](#getcontacttopicsresponse) | Alias | — |
107
+ | [`GetContactActivityResponse`](#getcontactactivityresponse) | Alias | — |
108
+ | [`ListApiKeysResponse`](#listapikeysresponse) | Model | — |
109
+
110
+ ## AttachmentRequest
111
+
112
+ | Property | Type | Required | Description |
113
+ |---|---|:---:|---|
114
+ | `filename` | `String` | Yes | — |
115
+ | `content` | `String` | Yes | — |
116
+ | `contentType` | `String` | Yes | — |
117
+ | `disposition` | `String` | No | — |
118
+ | `contentId` | `String, nil | null` | No | — |
119
+
120
+
121
+ ## DeliveryWindowRequest
122
+
123
+ | Property | Type | Required | Description |
124
+ |---|---|:---:|---|
125
+ | `start` | `String` | Yes | — |
126
+ | `end` | `String` | Yes | — |
127
+
128
+
129
+ ## TrackingSettingsRequest
130
+
131
+ | Property | Type | Required | Description |
132
+ |---|---|:---:|---|
133
+ | `openTracking` | `Boolean, nil | null` | No | — |
134
+ | `clickTracking` | `Boolean, nil | null` | No | — |
135
+ | `unsubscribeTracking` | `Boolean, nil | null` | No | — |
136
+ | `readEngagement` | `Boolean, nil | null` | No | — |
137
+
138
+
139
+ ## SendEmailRequest
140
+
141
+ | Property | Type | Required | Description |
142
+ |---|---|:---:|---|
143
+ | `from` | `String` | Yes | — |
144
+ | `to` | `Array<String>` | Yes | — |
145
+ | `cc` | `Array<String> | null` | No | — |
146
+ | `bcc` | `Array<String> | null` | No | — |
147
+ | `replyTo` | `String, nil | null` | No | — |
148
+ | `subject` | `String, nil | null` | No | — |
149
+ | `html` | `String, nil | null` | No | — |
150
+ | `text` | `String, nil | null` | No | — |
151
+ | `tags` | `Hash{String => String} | null` | No | — |
152
+ | `metadata` | `Hash{String => String} | null` | No | — |
153
+ | `idempotencyKey` | `String, nil | null` | No | — |
154
+ | `testMode` | `Boolean` | No | — |
155
+ | `attachments` | `Array<AttachmentRequest> | null` | No | — |
156
+ | `scheduledAt` | `String, nil | null` | No | — |
157
+ | `deliveryWindow` | `DeliveryWindowRequest, nil | null` | No | — |
158
+ | `sendTimeCategory` | `String` | No | — |
159
+ | `trackingSettings` | `TrackingSettingsRequest, nil | null` | No | — |
160
+
161
+
162
+ ## BatchSendItemResponse
163
+
164
+ | Property | Type | Required | Description |
165
+ |---|---|:---:|---|
166
+ | `index` | `Integer` | Yes | — |
167
+ | `id` | `String, nil | null` | No | — |
168
+ | `messageId` | `String, nil | null` | No | — |
169
+ | `status` | `String, nil | null` | No | — |
170
+ | `createdAt` | `String, nil | null` | No | — |
171
+ | `scheduledAt` | `String, nil | null` | No | — |
172
+ | `error` | `String, nil | null` | No | — |
173
+
174
+
175
+ ## SendEmailResponse
176
+
177
+ | Property | Type | Required | Description |
178
+ |---|---|:---:|---|
179
+ | `id` | `String` | Yes | — |
180
+ | `messageId` | `String, nil | null` | Yes | — |
181
+ | `status` | `String` | Yes | — |
182
+ | `createdAt` | `String` | Yes | — |
183
+ | `scheduledAt` | `String, nil | null` | No | — |
184
+ | `audienceId` | `String, nil | null` | No | — |
185
+ | `messages` | `Array<BatchSendItemResponse> | null` | No | — |
186
+
187
+
188
+ ## EmailDetailResponse
189
+
190
+ | Property | Type | Required | Description |
191
+ |---|---|:---:|---|
192
+ | `id` | `String` | Yes | — |
193
+ | `messageId` | `String, nil | null` | Yes | — |
194
+ | `from` | `String` | Yes | — |
195
+ | `to` | `Array<String>` | Yes | — |
196
+ | `cc` | `Array<String> | null` | Yes | — |
197
+ | `bcc` | `Array<String> | null` | Yes | — |
198
+ | `replyTo` | `String, nil | null` | Yes | — |
199
+ | `subject` | `String` | Yes | — |
200
+ | `html` | `String, nil | null` | No | — |
201
+ | `text` | `String, nil | null` | No | — |
202
+ | `status` | `String` | Yes | — |
203
+ | `error` | `String, nil | null` | Yes | — |
204
+ | `tags` | `Hash{String => String} | null` | Yes | — |
205
+ | `metadata` | `Hash{String => String} | null` | Yes | — |
206
+ | `testMode` | `Boolean` | Yes | — |
207
+ | `topicId` | `String, nil | null` | No | — |
208
+ | `createdAt` | `String` | Yes | — |
209
+ | `sentAt` | `String, nil | null` | Yes | — |
210
+ | `updatedAt` | `String, nil | null` | Yes | — |
211
+
212
+
213
+ ## BatchSendRequest
214
+
215
+ | Property | Type | Required | Description |
216
+ |---|---|:---:|---|
217
+ | `items` | `Array<SendEmailRequest>` | Yes | — |
218
+
219
+
220
+ ## BatchSendResponse
221
+
222
+ | Property | Type | Required | Description |
223
+ |---|---|:---:|---|
224
+ | `results` | `Array<BatchSendItemResponse>` | Yes | — |
225
+
226
+
227
+ ## CancelResponse
228
+
229
+ | Property | Type | Required | Description |
230
+ |---|---|:---:|---|
231
+ | `cancelled` | `Boolean` | No | — |
232
+
233
+
234
+ ## BulkCancelResponse
235
+
236
+ | Property | Type | Required | Description |
237
+ |---|---|:---:|---|
238
+ | `cancelled` | `Integer` | Yes | — |
239
+
240
+
241
+ ## StreamTokenResponse
242
+
243
+ | Property | Type | Required | Description |
244
+ |---|---|:---:|---|
245
+ | `token` | `String` | Yes | — |
246
+ | `expiresAt` | `String` | Yes | — |
247
+
248
+
249
+ ## StreamEventResponse
250
+
251
+ | Property | Type | Required | Description |
252
+ |---|---|:---:|---|
253
+ | `type` | `String` | Yes | — |
254
+ | `emailId` | `String` | Yes | — |
255
+ | `occurredAt` | `String` | Yes | — |
256
+ | `data` | `Hash{String => String}` | No | — |
257
+
258
+
259
+ ## ValidateLinksRequest
260
+
261
+ | Property | Type | Required | Description |
262
+ |---|---|:---:|---|
263
+ | `html` | `String, nil | null` | No | — |
264
+
265
+
266
+ ## LinkResultItem
267
+
268
+ | Property | Type | Required | Description |
269
+ |---|---|:---:|---|
270
+ | `url` | `String` | Yes | — |
271
+ | `status` | `String` | Yes | — |
272
+ | `statusCode` | `Integer, nil | null` | No | — |
273
+ | `error` | `String, nil | null` | No | — |
274
+
275
+
276
+ ## ValidateLinksResponse
277
+
278
+ | Property | Type | Required | Description |
279
+ |---|---|:---:|---|
280
+ | `links` | `Array<LinkResultItem>` | Yes | — |
281
+ | `totalLinks` | `Integer` | Yes | — |
282
+ | `brokenLinks` | `Integer` | Yes | — |
283
+ | `errorLinks` | `Integer` | Yes | — |
284
+
285
+
286
+ ## MetricsWindowResponse
287
+
288
+ | Property | Type | Required | Description |
289
+ |---|---|:---:|---|
290
+ | `from` | `String` | Yes | — |
291
+ | `to` | `String` | Yes | — |
292
+ | `label` | `String` | Yes | — |
293
+
294
+
295
+ ## TopicPerformanceResponse
296
+
297
+ | Property | Type | Required | Description |
298
+ |---|---|:---:|---|
299
+ | `topicId` | `String` | Yes | — |
300
+ | `topicName` | `String` | Yes | — |
301
+ | `window` | `MetricsWindowResponse` | Yes | — |
302
+ | `totalEmails` | `Integer` | Yes | — |
303
+ | `delivered` | `Integer` | Yes | — |
304
+ | `deliveryRate` | `Float` | Yes | — |
305
+ | `opened` | `Integer` | Yes | — |
306
+ | `openRate` | `Float` | Yes | — |
307
+ | `clicked` | `Integer` | Yes | — |
308
+ | `clickRate` | `Float` | Yes | — |
309
+ | `bounced` | `Integer` | Yes | — |
310
+ | `bounceRate` | `Float` | Yes | — |
311
+ | `complained` | `Integer` | Yes | — |
312
+ | `complaintRate` | `Float` | Yes | — |
313
+ | `unsubscribed` | `Integer` | Yes | — |
314
+ | `unsubscribeRate` | `Float` | Yes | — |
315
+ | `readEngaged` | `Integer` | Yes | — |
316
+ | `readEngagementRate` | `Float` | Yes | — |
317
+ | `avgReadTimeSeconds` | `Float, nil | null` | Yes | — |
318
+ | `optInCount` | `Integer` | Yes | — |
319
+ | `optOutCount` | `Integer` | Yes | — |
320
+ | `computedAt` | `String` | Yes | — |
321
+
322
+
323
+ ## EmailPerformanceResponse
324
+
325
+ | Property | Type | Required | Description |
326
+ |---|---|:---:|---|
327
+ | `emailId` | `String` | Yes | — |
328
+ | `subject` | `String` | Yes | — |
329
+ | `fromAddress` | `String` | Yes | — |
330
+ | `topicId` | `String, nil | null` | Yes | — |
331
+ | `status` | `String` | Yes | — |
332
+ | `delivered` | `Boolean` | Yes | — |
333
+ | `opened` | `Boolean` | Yes | — |
334
+ | `clicked` | `Boolean` | Yes | — |
335
+ | `totalClicks` | `Integer` | Yes | — |
336
+ | `bounced` | `Boolean` | Yes | — |
337
+ | `complained` | `Boolean` | Yes | — |
338
+ | `unsubscribed` | `Boolean` | Yes | — |
339
+ | `readEngaged` | `Boolean` | Yes | — |
340
+ | `readTimeSeconds` | `Float, nil | null` | Yes | — |
341
+ | `readCategory` | `String, nil | null` | Yes | — |
342
+ | `sentAt` | `String, nil | null` | Yes | — |
343
+ | `lastEventAt` | `String, nil | null` | Yes | — |
344
+ | `computedAt` | `String` | Yes | — |
345
+
346
+
347
+ ## EmailReadScrollAnalyticsResponse
348
+
349
+ | Property | Type | Required | Description |
350
+ |---|---|:---:|---|
351
+ | `emailId` | `String` | Yes | — |
352
+ | `subject` | `String` | Yes | — |
353
+ | `computedAt` | `String` | Yes | — |
354
+ | `readEngaged` | `Boolean` | Yes | — |
355
+ | `readTimeSeconds` | `Float, nil | null` | Yes | — |
356
+ | `readCategory` | `String, nil | null` | Yes | — |
357
+ | `mailClient` | `String, nil | null` | Yes | — |
358
+ | `deviceType` | `String, nil | null` | Yes | — |
359
+ | `os` | `String, nil | null` | Yes | — |
360
+ | `readEngagedAt` | `String, nil | null` | Yes | — |
361
+ | `shortEmail` | `Boolean` | Yes | — |
362
+ | `depth25Count` | `Integer` | Yes | — |
363
+ | `depth50Count` | `Integer` | Yes | — |
364
+ | `depth75Count` | `Integer` | Yes | — |
365
+ | `depth100Count` | `Integer` | Yes | — |
366
+ | `maxDepthPct` | `Integer, nil | null` | Yes | — |
367
+ | `depth25Rate` | `Float, nil | null` | Yes | — |
368
+ | `depth50Rate` | `Float, nil | null` | Yes | — |
369
+ | `depth75Rate` | `Float, nil | null` | Yes | — |
370
+ | `depth100Rate` | `Float, nil | null` | Yes | — |
371
+
372
+
373
+ ## ProjectMetricsSummaryResponse
374
+
375
+ | Property | Type | Required | Description |
376
+ |---|---|:---:|---|
377
+ | `projectId` | `String` | Yes | — |
378
+ | `window` | `MetricsWindowResponse` | Yes | — |
379
+ | `sent` | `Integer` | Yes | — |
380
+ | `delivered` | `Integer` | Yes | — |
381
+ | `opened` | `Integer` | Yes | — |
382
+ | `clicked` | `Integer` | Yes | — |
383
+ | `bounced` | `Integer` | Yes | — |
384
+ | `complained` | `Integer` | Yes | — |
385
+ | `failed` | `Integer` | Yes | — |
386
+ | `unsubscribed` | `Integer` | Yes | — |
387
+ | `readEngaged` | `Integer` | Yes | — |
388
+ | `deliveryRate` | `Float` | Yes | — |
389
+ | `openRate` | `Float` | Yes | — |
390
+ | `clickRate` | `Float` | Yes | — |
391
+ | `bounceRate` | `Float` | Yes | — |
392
+ | `complaintRate` | `Float` | Yes | — |
393
+ | `readEngagementRate` | `Float` | Yes | — |
394
+
395
+
396
+ ## ProjectTimelineBucketResponse
397
+
398
+ | Property | Type | Required | Description |
399
+ |---|---|:---:|---|
400
+ | `bucket` | `String` | Yes | — |
401
+ | `type` | `String` | Yes | — |
402
+ | `count` | `Integer` | Yes | — |
403
+
404
+
405
+ ## ProjectMetricsTimelineResponse
406
+
407
+ | Property | Type | Required | Description |
408
+ |---|---|:---:|---|
409
+ | `projectId` | `String` | Yes | — |
410
+ | `window` | `MetricsWindowResponse` | Yes | — |
411
+ | `granularity` | `String` | Yes | — |
412
+ | `format` | `String` | Yes | — |
413
+ | `buckets` | `Array<ProjectTimelineBucketResponse>` | Yes | — |
414
+
415
+
416
+ ## AdvisorRecommendationDataResponse
417
+
418
+ | Property | Type | Required | Description |
419
+ |---|---|:---:|---|
420
+ | `bounceRate` | `Float, nil | null` | No | — |
421
+ | `bounced` | `Integer, nil | null` | No | — |
422
+ | `accepted` | `Integer, nil | null` | No | — |
423
+ | `complaintRate` | `Float, nil | null` | No | — |
424
+ | `accepted24h` | `Integer, nil | null` | No | — |
425
+ | `avgDailyAccepted7d` | `Integer, nil | null` | No | — |
426
+ | `daysSinceLastSend` | `Integer, nil | null` | No | — |
427
+ | `reportedOpenRate` | `Float, nil | null` | No | — |
428
+ | `adjustedOpenRate` | `Float, nil | null` | No | — |
429
+ | `proxyRate` | `Float, nil | null` | No | — |
430
+ | `proxyOpens` | `Integer, nil | null` | No | — |
431
+ | `totalOpens` | `Integer, nil | null` | No | — |
432
+ | `humanOpenRate` | `Float, nil | null` | No | — |
433
+ | `delivered` | `Integer, nil | null` | No | — |
434
+ | `unsubRate` | `Float, nil | null` | No | — |
435
+ | `unsubscribed` | `Integer, nil | null` | No | — |
436
+ | `dmarcAlignmentFailureRate7d` | `Float, nil | null` | No | — |
437
+ | `dmarcDomain` | `String, nil | null` | No | — |
438
+ | `dmarcCurrentPolicy` | `String, nil | null` | No | — |
439
+ | `dmarcRecommendedPolicy` | `String, nil | null` | No | — |
440
+ | `dmarcObservedMessages` | `Integer, nil | null` | No | — |
441
+ | `dmarcAlignedMessages` | `Integer, nil | null` | No | — |
442
+ | `dmarcAccountedRate` | `Float, nil | null` | No | — |
443
+ | `dmarcUnknownMessages` | `Integer, nil | null` | No | — |
444
+ | `dmarcUnknownSources` | `Integer, nil | null` | No | — |
445
+ | `dmarcReportingDays` | `Integer, nil | null` | No | — |
446
+
447
+
448
+ ## AdvisorRecommendationResponse
449
+
450
+ | Property | Type | Required | Description |
451
+ |---|---|:---:|---|
452
+ | `code` | `String` | Yes | — |
453
+ | `severity` | `String` | Yes | — |
454
+ | `title` | `String` | Yes | — |
455
+ | `message` | `String` | Yes | — |
456
+ | `data` | `AdvisorRecommendationDataResponse, nil | null` | No | — |
457
+
458
+
459
+ ## AdvisorReportResponse
460
+
461
+ | Property | Type | Required | Description |
462
+ |---|---|:---:|---|
463
+ | `projectId` | `String` | Yes | — |
464
+ | `generatedAt` | `String` | Yes | — |
465
+ | `score` | `Integer` | Yes | — |
466
+ | `recommendations` | `Array<AdvisorRecommendationResponse>` | Yes | — |
467
+
468
+
469
+ ## SuppressionResponse
470
+
471
+ | Property | Type | Required | Description |
472
+ |---|---|:---:|---|
473
+ | `id` | `String` | Yes | — |
474
+ | `projectId` | `String` | Yes | — |
475
+ | `email` | `String` | Yes | — |
476
+ | `reason` | `String` | Yes | — |
477
+ | `createdAt` | `String` | Yes | — |
478
+ | `contactId` | `String, nil | null` | No | — |
479
+
480
+
481
+ ## PageInfo
482
+
483
+ | Property | Type | Required | Description |
484
+ |---|---|:---:|---|
485
+ | `page` | `Integer` | Yes | — |
486
+ | `size` | `Integer` | Yes | — |
487
+ | `total` | `Integer` | Yes | — |
488
+ | `totalPages` | `Integer` | Yes | — |
489
+ | `hasNextPage` | `Boolean` | Yes | — |
490
+ | `hasPreviousPage` | `Boolean` | Yes | — |
491
+
492
+
493
+ ## SuppressionPageResponse
494
+
495
+ | Property | Type | Required | Description |
496
+ |---|---|:---:|---|
497
+ | `data` | `Array<SuppressionResponse>` | Yes | — |
498
+ | `page` | `PageInfo` | Yes | — |
499
+
500
+
501
+ ## AddSuppressionBody
502
+
503
+ | Property | Type | Required | Description |
504
+ |---|---|:---:|---|
505
+ | `email` | `String` | Yes | — |
506
+
507
+
508
+ ## SuppressionImportRowSerializable
509
+
510
+ | Property | Type | Required | Description |
511
+ |---|---|:---:|---|
512
+ | `email` | `String` | Yes | — |
513
+ | `reason` | `String, nil | null` | No | — |
514
+
515
+
516
+ ## SuppressionImportBody
517
+
518
+ | Property | Type | Required | Description |
519
+ |---|---|:---:|---|
520
+ | `suppressions` | `Array<SuppressionImportRowSerializable>` | Yes | — |
521
+
522
+
523
+ ## SuppressionImportResponse
524
+
525
+ | Property | Type | Required | Description |
526
+ |---|---|:---:|---|
527
+ | `imported` | `Integer` | Yes | — |
528
+ | `skipped` | `Integer` | Yes | — |
529
+
530
+
531
+ ## SegmentResponse
532
+
533
+ | Property | Type | Required | Description |
534
+ |---|---|:---:|---|
535
+ | `object` | `String` | No | — |
536
+ | `id` | `String` | Yes | — |
537
+ | `name` | `String` | Yes | — |
538
+ | `projectId` | `String` | Yes | — |
539
+ | `createdAt` | `String` | Yes | — |
540
+ | `contactCount` | `Integer` | No | — |
541
+ | `unsubscribedCount` | `Integer` | No | — |
542
+
543
+
544
+ ## SegmentPageResponse
545
+
546
+ | Property | Type | Required | Description |
547
+ |---|---|:---:|---|
548
+ | `data` | `Array<SegmentResponse>` | Yes | — |
549
+ | `page` | `PageInfo` | Yes | — |
550
+
551
+
552
+ ## SegmentContactResponse
553
+
554
+ | Property | Type | Required | Description |
555
+ |---|---|:---:|---|
556
+ | `contactId` | `String` | Yes | — |
557
+ | `email` | `String` | Yes | — |
558
+ | `firstName` | `String, nil | null` | Yes | — |
559
+ | `lastName` | `String, nil | null` | Yes | — |
560
+ | `segments` | `Array<String>` | Yes | — |
561
+
562
+
563
+ ## CursorInfo
564
+
565
+ | Property | Type | Required | Description |
566
+ |---|---|:---:|---|
567
+ | `nextCursor` | `String, nil | null` | Yes | — |
568
+ | `previousCursor` | `String, nil | null` | Yes | — |
569
+ | `hasNextPage` | `Boolean` | Yes | — |
570
+ | `hasPreviousPage` | `Boolean` | Yes | — |
571
+
572
+
573
+ ## CursorPage
574
+
575
+ | Property | Type | Required | Description |
576
+ |---|---|:---:|---|
577
+ | `data` | `Array<SegmentContactResponse>` | Yes | — |
578
+ | `cursor` | `CursorInfo` | Yes | — |
579
+
580
+
581
+ ## CreateSegmentBody
582
+
583
+ | Property | Type | Required | Description |
584
+ |---|---|:---:|---|
585
+ | `name` | `String` | Yes | — |
586
+
587
+
588
+ ## TopicResponse
589
+
590
+ | Property | Type | Required | Description |
591
+ |---|---|:---:|---|
592
+ | `object` | `String` | No | — |
593
+ | `id` | `String` | Yes | — |
594
+ | `name` | `String` | Yes | — |
595
+ | `defaultSubscription` | `String` | Yes | — |
596
+ | `description` | `String, nil | null` | Yes | — |
597
+ | `visibility` | `String` | Yes | — |
598
+ | `projectId` | `String` | Yes | — |
599
+ | `optInCount` | `Integer` | Yes | — |
600
+ | `optOutCount` | `Integer` | Yes | — |
601
+ | `createdAt` | `String` | Yes | — |
602
+ | `updatedAt` | `String` | Yes | — |
603
+
604
+
605
+ ## TopicPageResponse
606
+
607
+ | Property | Type | Required | Description |
608
+ |---|---|:---:|---|
609
+ | `data` | `Array<TopicResponse>` | Yes | — |
610
+ | `page` | `PageInfo` | Yes | — |
611
+
612
+
613
+ ## CreateTopicBody
614
+
615
+ | Property | Type | Required | Description |
616
+ |---|---|:---:|---|
617
+ | `name` | `String` | Yes | — |
618
+ | `defaultSubscription` | `String` | Yes | — |
619
+ | `description` | `String, nil | null` | No | — |
620
+ | `visibility` | `String, nil | null` | No | — |
621
+
622
+
623
+ ## UpdateTopicBody
624
+
625
+ | Property | Type | Required | Description |
626
+ |---|---|:---:|---|
627
+ | `name` | `String, nil | null` | No | — |
628
+ | `description` | `String, nil | null` | No | — |
629
+ | `visibility` | `String, nil | null` | No | — |
630
+
631
+
632
+ ## ContactPropertyResponse
633
+
634
+ | Property | Type | Required | Description |
635
+ |---|---|:---:|---|
636
+ | `object` | `String` | No | — |
637
+ | `id` | `String` | Yes | — |
638
+ | `key` | `String` | Yes | — |
639
+ | `type` | `String` | Yes | — |
640
+ | `fallbackValue` | `String, nil | null` | Yes | — |
641
+ | `projectId` | `String` | Yes | — |
642
+ | `createdAt` | `String` | Yes | — |
643
+ | `updatedAt` | `String` | Yes | — |
644
+
645
+
646
+ ## ContactPropertyPageResponse
647
+
648
+ | Property | Type | Required | Description |
649
+ |---|---|:---:|---|
650
+ | `data` | `Array<ContactPropertyResponse>` | Yes | — |
651
+ | `page` | `PageInfo` | Yes | — |
652
+
653
+
654
+ ## CreateContactPropertyBody
655
+
656
+ | Property | Type | Required | Description |
657
+ |---|---|:---:|---|
658
+ | `key` | `String` | Yes | — |
659
+ | `type` | `String` | Yes | — |
660
+ | `fallbackValue` | `String, nil | null` | No | — |
661
+
662
+
663
+ ## UpdateContactPropertyBody
664
+
665
+ | Property | Type | Required | Description |
666
+ |---|---|:---:|---|
667
+ | `fallbackValue` | `String, nil | null` | No | — |
668
+
669
+
670
+ ## TopicSubscriptionResponse
671
+
672
+ | Property | Type | Required | Description |
673
+ |---|---|:---:|---|
674
+ | `topicId` | `String` | Yes | — |
675
+ | `subscription` | `String` | Yes | — |
676
+
677
+
678
+ ## ContactResponse
679
+
680
+ | Property | Type | Required | Description |
681
+ |---|---|:---:|---|
682
+ | `object` | `String` | No | — |
683
+ | `id` | `String` | Yes | — |
684
+ | `email` | `String` | Yes | — |
685
+ | `phone` | `String, nil | null` | No | — |
686
+ | `firstName` | `String, nil | null` | Yes | — |
687
+ | `lastName` | `String, nil | null` | Yes | — |
688
+ | `unsubscribed` | `Boolean` | Yes | — |
689
+ | `properties` | `Hash{String => String}` | Yes | — |
690
+ | `profileImageUrl` | `String, nil | null` | Yes | — |
691
+ | `projectId` | `String` | Yes | — |
692
+ | `segments` | `Array<String>` | Yes | — |
693
+ | `topics` | `Array<TopicSubscriptionResponse>` | Yes | — |
694
+ | `createdAt` | `String` | Yes | — |
695
+ | `updatedAt` | `String` | Yes | — |
696
+
697
+
698
+ ## ContactPageResponse
699
+
700
+ | Property | Type | Required | Description |
701
+ |---|---|:---:|---|
702
+ | `data` | `Array<ContactResponse>` | Yes | — |
703
+ | `page` | `PageInfo` | Yes | — |
704
+
705
+
706
+ ## SegmentRef
707
+
708
+ | Property | Type | Required | Description |
709
+ |---|---|:---:|---|
710
+ | `id` | `String` | Yes | — |
711
+
712
+
713
+ ## TopicSubscriptionBody
714
+
715
+ | Property | Type | Required | Description |
716
+ |---|---|:---:|---|
717
+ | `id` | `String` | Yes | — |
718
+ | `subscription` | `String` | Yes | — |
719
+
720
+
721
+ ## CreateContactBody
722
+
723
+ | Property | Type | Required | Description |
724
+ |---|---|:---:|---|
725
+ | `email` | `String` | Yes | — |
726
+ | `phone` | `String, nil | null` | No | — |
727
+ | `firstName` | `String, nil | null` | No | — |
728
+ | `lastName` | `String, nil | null` | No | — |
729
+ | `unsubscribed` | `Boolean` | No | — |
730
+ | `properties` | `Hash{String => String}` | No | — |
731
+ | `segments` | `Array<SegmentRef>` | No | — |
732
+ | `topics` | `Array<TopicSubscriptionBody>` | No | — |
733
+
734
+
735
+ ## UpdateContactBody
736
+
737
+ | Property | Type | Required | Description |
738
+ |---|---|:---:|---|
739
+ | `firstName` | `String, nil | null` | No | — |
740
+ | `lastName` | `String, nil | null` | No | — |
741
+ | `phone` | `String, nil | null` | No | — |
742
+ | `unsubscribed` | `Boolean, nil | null` | No | — |
743
+ | `properties` | `Hash{String => String} | null` | No | — |
744
+
745
+
746
+ ## SetImageUrlBody
747
+
748
+ | Property | Type | Required | Description |
749
+ |---|---|:---:|---|
750
+ | `url` | `String` | Yes | — |
751
+
752
+
753
+ ## AddToSegmentBody
754
+
755
+ | Property | Type | Required | Description |
756
+ |---|---|:---:|---|
757
+ | `segmentId` | `String` | Yes | — |
758
+
759
+
760
+ ## UpdateTopicsBody
761
+
762
+ | Property | Type | Required | Description |
763
+ |---|---|:---:|---|
764
+ | `topics` | `Array<TopicSubscriptionBody>` | Yes | — |
765
+
766
+
767
+ ## ActivityMetadataResponse
768
+
769
+ | Property | Type | Required | Description |
770
+ |---|---|:---:|---|
771
+ | `topicId` | `String, nil | null` | No | — |
772
+
773
+
774
+ ## ActivityResponse
775
+
776
+ | Property | Type | Required | Description |
777
+ |---|---|:---:|---|
778
+ | `object` | `String` | No | — |
779
+ | `id` | `String` | Yes | — |
780
+ | `type` | `String` | Yes | — |
781
+ | `referenceId` | `String, nil | null` | No | — |
782
+ | `referenceName` | `String, nil | null` | No | — |
783
+ | `metadata` | `ActivityMetadataResponse, nil | null` | No | — |
784
+ | `occurredAt` | `String` | Yes | — |
785
+
786
+
787
+ ## EngagementScoreResponse
788
+
789
+ | Property | Type | Required | Description |
790
+ |---|---|:---:|---|
791
+ | `object` | `String` | No | — |
792
+ | `score` | `Integer` | Yes | — |
793
+ | `tier` | `String` | Yes | — |
794
+ | `scoredAt` | `String` | Yes | — |
795
+
796
+
797
+ ## EmailValidationStatusResponse
798
+
799
+ | Property | Type | Required | Description |
800
+ |---|---|:---:|---|
801
+ | `object` | `String` | No | — |
802
+ | `status` | `String` | Yes | — |
803
+ | `reason` | `String, nil | null` | Yes | — |
804
+ | `validatedAt` | `String, nil | null` | Yes | — |
805
+
806
+
807
+ ## RecordValidationBody
808
+
809
+ | Property | Type | Required | Description |
810
+ |---|---|:---:|---|
811
+ | `status` | `EmailValidationStatusInput` | Yes | — |
812
+ | `reason` | `String, nil | null` | No | — |
813
+
814
+
815
+ ## WebhookFilterSerializable
816
+
817
+ | Property | Type | Required | Description |
818
+ |---|---|:---:|---|
819
+ | `field` | `String` | Yes | — |
820
+ | `operator` | `String` | Yes | — |
821
+ | `value` | `String, nil | null` | No | — |
822
+
823
+
824
+ ## WebhookTransformationSerializable
825
+
826
+ | Property | Type | Required | Description |
827
+ |---|---|:---:|---|
828
+ | `type` | `String` | Yes | — |
829
+ | `from` | `String, nil | null` | No | — |
830
+ | `to` | `String, nil | null` | No | — |
831
+ | `field` | `String, nil | null` | No | — |
832
+ | `value` | `String, nil | null` | No | — |
833
+ | `template` | `String, nil | null` | No | — |
834
+
835
+
836
+ ## WebhookResponse
837
+
838
+ | Property | Type | Required | Description |
839
+ |---|---|:---:|---|
840
+ | `id` | `String` | Yes | — |
841
+ | `projectId` | `String` | Yes | — |
842
+ | `name` | `String` | Yes | — |
843
+ | `url` | `String` | Yes | — |
844
+ | `events` | `Array<String>` | Yes | — |
845
+ | `enabled` | `Boolean` | Yes | — |
846
+ | `filters` | `Array<WebhookFilterSerializable> | null` | Yes | — |
847
+ | `transformations` | `Array<WebhookTransformationSerializable> | null` | Yes | — |
848
+ | `createdAt` | `String` | Yes | — |
849
+ | `updatedAt` | `String` | Yes | — |
850
+
851
+
852
+ ## WebhookPageResponse
853
+
854
+ | Property | Type | Required | Description |
855
+ |---|---|:---:|---|
856
+ | `data` | `Array<WebhookResponse>` | Yes | — |
857
+ | `page` | `PageInfo` | Yes | — |
858
+
859
+
860
+ ## WebhookDeliveryResponse
861
+
862
+ | Property | Type | Required | Description |
863
+ |---|---|:---:|---|
864
+ | `id` | `String` | Yes | — |
865
+ | `projectId` | `String` | Yes | — |
866
+ | `webhookEndpointId` | `String` | Yes | — |
867
+ | `eventType` | `String` | Yes | — |
868
+ | `status` | `String` | Yes | — |
869
+ | `attemptCount` | `Integer` | Yes | — |
870
+ | `lastStatusCode` | `Integer, nil | null` | Yes | — |
871
+ | `lastError` | `String, nil | null` | Yes | — |
872
+ | `responseBodySnippet` | `String, nil | null` | Yes | — |
873
+ | `nextAttemptAt` | `String, nil | null` | Yes | — |
874
+ | `createdAt` | `String` | Yes | — |
875
+ | `updatedAt` | `String` | Yes | — |
876
+
877
+
878
+ ## WebhookDeliveryPageResponse
879
+
880
+ | Property | Type | Required | Description |
881
+ |---|---|:---:|---|
882
+ | `data` | `Array<WebhookDeliveryResponse>` | Yes | — |
883
+ | `page` | `PageInfo` | Yes | — |
884
+
885
+
886
+ ## CreateWebhookBody
887
+
888
+ | Property | Type | Required | Description |
889
+ |---|---|:---:|---|
890
+ | `url` | `String` | Yes | — |
891
+ | `events` | `Array<String>` | Yes | — |
892
+ | `name` | `String, nil | null` | No | — |
893
+ | `secret` | `String, nil | null` | No | — |
894
+ | `filters` | `Array<WebhookFilterSerializable> | null` | No | — |
895
+ | `transformations` | `Array<WebhookTransformationSerializable> | null` | No | — |
896
+
897
+
898
+ ## WebhookCreateResponse
899
+
900
+ | Property | Type | Required | Description |
901
+ |---|---|:---:|---|
902
+ | `id` | `String` | Yes | — |
903
+ | `projectId` | `String` | Yes | — |
904
+ | `name` | `String` | Yes | — |
905
+ | `url` | `String` | Yes | — |
906
+ | `events` | `Array<String>` | Yes | — |
907
+ | `enabled` | `Boolean` | Yes | — |
908
+ | `filters` | `Array<WebhookFilterSerializable> | null` | Yes | — |
909
+ | `transformations` | `Array<WebhookTransformationSerializable> | null` | Yes | — |
910
+ | `createdAt` | `String` | Yes | — |
911
+ | `updatedAt` | `String` | Yes | — |
912
+ | `secret` | `String` | Yes | — |
913
+
914
+
915
+ ## UpdateWebhookBody
916
+
917
+ | Property | Type | Required | Description |
918
+ |---|---|:---:|---|
919
+ | `name` | `String, nil | null` | No | — |
920
+ | `url` | `String, nil | null` | No | — |
921
+ | `events` | `Array<String> | null` | No | — |
922
+ | `secret` | `String, nil | null` | No | — |
923
+ | `enabled` | `Boolean, nil | null` | No | — |
924
+ | `filters` | `Array<WebhookFilterSerializable> | null` | No | — |
925
+ | `transformations` | `Array<WebhookTransformationSerializable> | null` | No | — |
926
+
927
+
928
+ ## ApiKey
929
+
930
+ | Property | Type | Required | Description |
931
+ |---|---|:---:|---|
932
+ | `id` | `String` | Yes | — |
933
+ | `configId` | `String` | Yes | — |
934
+ | `name` | `String, nil | null` | Yes | — |
935
+ | `start` | `String, nil | null` | Yes | — |
936
+ | `prefix` | `String, nil | null` | Yes | — |
937
+ | `organizationId` | `String` | Yes | — |
938
+ | `projectId` | `String, nil | null` | Yes | — |
939
+ | `enabled` | `Boolean` | Yes | — |
940
+ | `rateLimitEnabled` | `Boolean` | Yes | — |
941
+ | `rateLimitTimeWindow` | `Integer, nil | null` | Yes | — |
942
+ | `rateLimitMax` | `Integer, nil | null` | Yes | — |
943
+ | `requestCount` | `Integer` | Yes | — |
944
+ | `remaining` | `Integer, nil | null` | Yes | — |
945
+ | `lastRequest` | `String, nil | null` | Yes | — |
946
+ | `expiresAt` | `String, nil | null` | Yes | — |
947
+ | `createdAt` | `String` | Yes | — |
948
+ | `updatedAt` | `String` | Yes | — |
949
+ | `metadata` | `Hash{String => String} | null` | Yes | — |
950
+ | `permissions` | `Hash{String => Array<String>} | null` | Yes | — |
951
+
952
+
953
+ ## ApiKeyUsageRecord
954
+
955
+ | Property | Type | Required | Description |
956
+ |---|---|:---:|---|
957
+ | `id` | `String` | Yes | — |
958
+ | `keyId` | `String` | Yes | — |
959
+ | `orgId` | `String` | Yes | — |
960
+ | `method` | `String` | Yes | — |
961
+ | `route` | `String` | Yes | — |
962
+ | `statusCode` | `Integer` | Yes | — |
963
+ | `durationMs` | `Integer, nil | null` | Yes | — |
964
+ | `ip` | `String, nil | null` | Yes | — |
965
+ | `ts` | `String` | Yes | — |
966
+
967
+
968
+ ## UsagePage
969
+
970
+ | Property | Type | Required | Description |
971
+ |---|---|:---:|---|
972
+ | `size` | `Integer` | Yes | — |
973
+ | `totalPages` | `Integer` | Yes | — |
974
+ | `hasMore` | `Boolean` | Yes | — |
975
+
976
+
977
+ ## ApiKeyUsageResponse
978
+
979
+ | Property | Type | Required | Description |
980
+ |---|---|:---:|---|
981
+ | `data` | `Array<ApiKeyUsageRecord>` | Yes | — |
982
+ | `page` | `UsagePage` | Yes | — |
983
+
984
+
985
+ ## ProjectLimitsModel
986
+
987
+ | Property | Type | Required | Description |
988
+ |---|---|:---:|---|
989
+ | `dailySends` | `Integer` | Yes | — |
990
+ | `perSecondSends` | `Integer` | Yes | — |
991
+ | `maxRecipientsPerMessage` | `Integer` | Yes | — |
992
+ | `maxDomains` | `Integer` | Yes | — |
993
+ | `maxApiKeys` | `Integer` | Yes | — |
994
+ | `maxWebhooks` | `Integer` | Yes | — |
995
+
996
+
997
+ ## ProjectTrackingSettingsModel
998
+
999
+ | Property | Type | Required | Description |
1000
+ |---|---|:---:|---|
1001
+ | `openTracking` | `Boolean` | Yes | — |
1002
+ | `clickTracking` | `Boolean` | Yes | — |
1003
+ | `unsubscribeTracking` | `Boolean` | Yes | — |
1004
+ | `readEngagement` | `Boolean` | Yes | — |
1005
+ | `scrollDepth` | `Boolean` | No | — |
1006
+
1007
+
1008
+ ## ProjectResponse
1009
+
1010
+ | Property | Type | Required | Description |
1011
+ |---|---|:---:|---|
1012
+ | `id` | `String` | Yes | — |
1013
+ | `name` | `String` | Yes | — |
1014
+ | `slug` | `String` | Yes | — |
1015
+ | `status` | `String` | Yes | — |
1016
+ | `suspensionReason` | `String, nil | null` | Yes | — |
1017
+ | `region` | `String` | Yes | — |
1018
+ | `limits` | `ProjectLimitsModel` | Yes | — |
1019
+ | `trackingSettings` | `ProjectTrackingSettingsModel` | Yes | — |
1020
+ | `createdAt` | `String` | Yes | — |
1021
+ | `updatedAt` | `String` | Yes | — |
1022
+
1023
+
1024
+ ## ProjectPageResponse
1025
+
1026
+ | Property | Type | Required | Description |
1027
+ |---|---|:---:|---|
1028
+ | `data` | `Array<ProjectResponse>` | Yes | — |
1029
+ | `page` | `PageInfo` | Yes | — |
1030
+
1031
+
1032
+ ## UpdateProjectRequest
1033
+
1034
+ | Property | Type | Required | Description |
1035
+ |---|---|:---:|---|
1036
+ | `name` | `String, nil | null` | No | — |
1037
+ | `slug` | `String, nil | null` | No | — |
1038
+ | `limits` | `ProjectLimitsModel, nil | null` | No | — |
1039
+ | `trackingSettings` | `ProjectTrackingSettingsModel, nil | null` | No | — |
1040
+
1041
+
1042
+ ## EmailPageResponse
1043
+
1044
+ | Property | Type | Required | Description |
1045
+ |---|---|:---:|---|
1046
+ | `data` | `Array<EmailDetailResponse>` | Yes | — |
1047
+ | `page` | `PageInfo` | Yes | — |
1048
+
1049
+
1050
+ ## EmailTimelineItem
1051
+
1052
+ | Property | Type | Required | Description |
1053
+ |---|---|:---:|---|
1054
+ | `id` | `String` | Yes | — |
1055
+ | `type` | `String` | Yes | — |
1056
+ | `providerEventId` | `String, nil | null` | Yes | — |
1057
+ | `payload` | `Hash{String => String, nil} | null` | Yes | — |
1058
+ | `occurredAt` | `String` | Yes | — |
1059
+ | `createdAt` | `String` | Yes | — |
1060
+
1061
+
1062
+ ## EmailTimelineResponse
1063
+
1064
+ | Property | Type | Required | Description |
1065
+ |---|---|:---:|---|
1066
+ | `items` | `Array<EmailTimelineItem>` | Yes | — |
1067
+
1068
+
1069
+ ## DomainListItemResponse
1070
+
1071
+ | Property | Type | Required | Description |
1072
+ |---|---|:---:|---|
1073
+ | `id` | `String` | Yes | — |
1074
+ | `domain` | `String` | Yes | — |
1075
+ | `region` | `String` | Yes | — |
1076
+ | `status` | `String` | Yes | — |
1077
+ | `dkimStatus` | `String` | Yes | — |
1078
+ | `bimiStatus` | `String` | Yes | — |
1079
+ | `trackingStatus` | `String` | Yes | — |
1080
+ | `updatedAt` | `String` | Yes | — |
1081
+
1082
+
1083
+ ## DomainListPageResponse
1084
+
1085
+ | Property | Type | Required | Description |
1086
+ |---|---|:---:|---|
1087
+ | `data` | `Array<DomainListItemResponse>` | Yes | — |
1088
+ | `page` | `PageInfo` | Yes | — |
1089
+
1090
+
1091
+ ## DkimRecordResponse
1092
+
1093
+ | Property | Type | Required | Description |
1094
+ |---|---|:---:|---|
1095
+ | `name` | `String` | Yes | — |
1096
+ | `type` | `String` | Yes | — |
1097
+ | `value` | `String` | Yes | — |
1098
+ | `status` | `String, nil | null` | No | — |
1099
+
1100
+
1101
+ ## DnsRecordResponse
1102
+
1103
+ | Property | Type | Required | Description |
1104
+ |---|---|:---:|---|
1105
+ | `name` | `String` | Yes | — |
1106
+ | `type` | `String` | Yes | — |
1107
+ | `value` | `String` | Yes | — |
1108
+ | `priority` | `Integer, nil | null` | No | — |
1109
+ | `optional` | `Boolean, nil | null` | No | — |
1110
+ | `status` | `String, nil | null` | No | — |
1111
+
1112
+
1113
+ ## VerificationRecordsResponse
1114
+
1115
+ | Property | Type | Required | Description |
1116
+ |---|---|:---:|---|
1117
+ | `dkim` | `Array<DkimRecordResponse>` | Yes | — |
1118
+ | `mailFromMx` | `DnsRecordResponse` | Yes | — |
1119
+ | `mailFromSpf` | `DnsRecordResponse` | Yes | — |
1120
+ | `dmarcRecommended` | `DnsRecordResponse, nil | null` | No | — |
1121
+ | `bimi` | `DnsRecordResponse, nil | null` | No | — |
1122
+ | `trackingCname` | `DnsRecordResponse, nil | null` | No | — |
1123
+
1124
+
1125
+ ## DomainResponse
1126
+
1127
+ | Property | Type | Required | Description |
1128
+ |---|---|:---:|---|
1129
+ | `id` | `String` | Yes | — |
1130
+ | `projectId` | `String` | Yes | — |
1131
+ | `domain` | `String` | Yes | — |
1132
+ | `region` | `String` | Yes | — |
1133
+ | `status` | `String` | Yes | — |
1134
+ | `dkimStatus` | `String` | Yes | — |
1135
+ | `spfStatus` | `String` | Yes | — |
1136
+ | `dmarcStatus` | `String` | Yes | — |
1137
+ | `mailFromStatus` | `String` | Yes | — |
1138
+ | `mailFromDomain` | `String` | Yes | — |
1139
+ | `verificationRecords` | `VerificationRecordsResponse` | Yes | — |
1140
+ | `bimiStatus` | `String` | Yes | — |
1141
+ | `bimiLogoUrl` | `String, nil | null` | Yes | — |
1142
+ | `createdAt` | `String` | Yes | — |
1143
+ | `updatedAt` | `String` | Yes | — |
1144
+ | `verifiedAt` | `String, nil | null` | Yes | — |
1145
+
1146
+
1147
+ ## RegisterDomainRequest
1148
+
1149
+ | Property | Type | Required | Description |
1150
+ |---|---|:---:|---|
1151
+ | `domain` | `String` | Yes | — |
1152
+ | `region` | `String` | Yes | — |
1153
+
1154
+
1155
+ ## UpdateBimiRequest
1156
+
1157
+ | Property | Type | Required | Description |
1158
+ |---|---|:---:|---|
1159
+ | `logoUrl` | `String, nil | null` | No | — |
1160
+
1161
+
1162
+ ## EmailValidationStatusInput
1163
+
1164
+ Allowed values:
1165
+
1166
+ - `"valid"`
1167
+ - `"risky"`
1168
+ - `"invalid"`
1169
+ - `"unknown"`
1170
+
1171
+
1172
+ ## GetTopicPerformanceQuery
1173
+
1174
+ | Property | Type | Required | Description |
1175
+ |---|---|:---:|---|
1176
+ | `window` | `String` | No | Time window. |
1177
+ | `projectId` | `String` | No | Required for session auth; ignored for API key auth. |
1178
+
1179
+
1180
+ ## GetProjectMetricsSummaryQuery
1181
+
1182
+ | Property | Type | Required | Description |
1183
+ |---|---|:---:|---|
1184
+ | `window` | `String` | No | Metrics time window. |
1185
+ | `projectId` | `String` | No | Required for session auth; ignored for API key auth. |
1186
+
1187
+
1188
+ ## GetProjectMetricsTimelineQuery
1189
+
1190
+ | Property | Type | Required | Description |
1191
+ |---|---|:---:|---|
1192
+ | `window` | `String` | No | Metrics time window. |
1193
+ | `granularity` | `String` | No | `hour` or `day`. |
1194
+ | `format` | `String` | No | `compact` or `detailed`. |
1195
+ | `projectId` | `String` | No | Required for session auth; ignored for API key auth. |
1196
+
1197
+
1198
+ ## GetMetricsAdvisorQuery
1199
+
1200
+ | Property | Type | Required | Description |
1201
+ |---|---|:---:|---|
1202
+ | `projectId` | `String` | No | Required for session auth; ignored for API key auth. |
1203
+
1204
+
1205
+ ## ListContactSegmentsResponse
1206
+
1207
+ Alias of `Array<String>`.
1208
+
1209
+
1210
+ ## GetContactTopicsResponse
1211
+
1212
+ Alias of `Array<TopicSubscriptionResponse>`.
1213
+
1214
+
1215
+ ## GetContactActivityResponse
1216
+
1217
+ Alias of `Array<ActivityResponse>`.
1218
+
1219
+
1220
+ ## ListApiKeysResponse
1221
+
1222
+ This model has no declared properties.
1223
+
1224
+ Additional properties use `Array<ApiKey>`.
1225
+