@medalsocial/sdk 1.1.7 → 1.2.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.
@@ -0,0 +1,1910 @@
1
+ openapi: 3.1.0
2
+ jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
3
+ info:
4
+ title: Medal Social API
5
+ version: 1.1.7
6
+ description: Public API contract for the Medal Social TypeScript SDK.
7
+ license:
8
+ name: Apache-2.0
9
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
10
+ servers:
11
+ - url: https://io.medalsocial.com
12
+ description: Medal Social production API
13
+ security:
14
+ - bearerAuth: []
15
+ tags:
16
+ - name: Posts
17
+ description: Create, schedule, publish, and inspect posts.
18
+ - name: Emails
19
+ description: Send transactional email and inspect templates.
20
+ - name: Contacts
21
+ description: Manage workspace CRM contacts.
22
+ - name: Deals
23
+ description: Manage sponsorship and brand deals.
24
+ - name: GDPR
25
+ description: Manage exports, consent records, and cookie consent.
26
+ - name: Workspaces
27
+ description: Inspect workspaces accessible to the current credential.
28
+ paths:
29
+ /api/v1/posts:
30
+ get:
31
+ tags: [Posts]
32
+ operationId: listPosts
33
+ summary: List posts
34
+ parameters:
35
+ - $ref: "#/components/parameters/Limit"
36
+ - $ref: "#/components/parameters/Cursor"
37
+ - name: status
38
+ in: query
39
+ schema:
40
+ type: string
41
+ - name: type
42
+ in: query
43
+ schema:
44
+ $ref: "#/components/schemas/PostType"
45
+ responses:
46
+ "200":
47
+ description: Posts page.
48
+ content:
49
+ application/json:
50
+ schema:
51
+ $ref: "#/components/schemas/PaginatedResponse_Post"
52
+ default:
53
+ $ref: "#/components/responses/ApiError"
54
+ post:
55
+ tags: [Posts]
56
+ operationId: createPost
57
+ summary: Create a post
58
+ requestBody:
59
+ required: true
60
+ content:
61
+ application/json:
62
+ schema:
63
+ $ref: "#/components/schemas/CreatePostInput"
64
+ responses:
65
+ "200":
66
+ description: Created post reference.
67
+ content:
68
+ application/json:
69
+ schema:
70
+ $ref: "#/components/schemas/ApiResponse_PostCreateResult"
71
+ default:
72
+ $ref: "#/components/responses/ApiError"
73
+ /api/v1/posts/channels:
74
+ get:
75
+ tags: [Posts]
76
+ operationId: listPostChannels
77
+ summary: List connected post channels
78
+ responses:
79
+ "200":
80
+ description: Connected channels.
81
+ content:
82
+ application/json:
83
+ schema:
84
+ $ref: "#/components/schemas/ApiResponse_ChannelArray"
85
+ default:
86
+ $ref: "#/components/responses/ApiError"
87
+ /api/v1/posts/{id}:
88
+ parameters:
89
+ - $ref: "#/components/parameters/Id"
90
+ get:
91
+ tags: [Posts]
92
+ operationId: getPost
93
+ summary: Get post detail
94
+ responses:
95
+ "200":
96
+ description: Post detail.
97
+ content:
98
+ application/json:
99
+ schema:
100
+ $ref: "#/components/schemas/ApiResponse_PostDetail"
101
+ default:
102
+ $ref: "#/components/responses/ApiError"
103
+ patch:
104
+ tags: [Posts]
105
+ operationId: updatePost
106
+ summary: Update a draft post
107
+ requestBody:
108
+ required: true
109
+ content:
110
+ application/json:
111
+ schema:
112
+ $ref: "#/components/schemas/UpdatePostInput"
113
+ responses:
114
+ "200":
115
+ description: Update result.
116
+ content:
117
+ application/json:
118
+ schema:
119
+ $ref: "#/components/schemas/ApiResponse_Success"
120
+ default:
121
+ $ref: "#/components/responses/ApiError"
122
+ delete:
123
+ tags: [Posts]
124
+ operationId: deletePost
125
+ summary: Delete a post
126
+ responses:
127
+ "200":
128
+ description: Delete result.
129
+ content:
130
+ application/json:
131
+ schema:
132
+ $ref: "#/components/schemas/ApiResponse_Success"
133
+ default:
134
+ $ref: "#/components/responses/ApiError"
135
+ /api/v1/posts/{id}/schedule:
136
+ parameters:
137
+ - $ref: "#/components/parameters/Id"
138
+ post:
139
+ tags: [Posts]
140
+ operationId: schedulePost
141
+ summary: Schedule a post
142
+ requestBody:
143
+ required: true
144
+ content:
145
+ application/json:
146
+ schema:
147
+ $ref: "#/components/schemas/SchedulePostInput"
148
+ responses:
149
+ "200":
150
+ description: Schedule result.
151
+ content:
152
+ application/json:
153
+ schema:
154
+ $ref: "#/components/schemas/ApiResponse_ScheduleResult"
155
+ default:
156
+ $ref: "#/components/responses/ApiError"
157
+ /api/v1/posts/{id}/publish:
158
+ parameters:
159
+ - $ref: "#/components/parameters/Id"
160
+ post:
161
+ tags: [Posts]
162
+ operationId: publishPost
163
+ summary: Publish a post
164
+ responses:
165
+ "200":
166
+ description: Publish result.
167
+ content:
168
+ application/json:
169
+ schema:
170
+ $ref: "#/components/schemas/ApiResponse_PublishResult"
171
+ default:
172
+ $ref: "#/components/responses/ApiError"
173
+ /api/v1/emails:
174
+ post:
175
+ tags: [Emails]
176
+ operationId: sendEmail
177
+ summary: Send a transactional email
178
+ requestBody:
179
+ required: true
180
+ content:
181
+ application/json:
182
+ schema:
183
+ $ref: "#/components/schemas/SendEmailInput"
184
+ responses:
185
+ "202":
186
+ description: Email queued.
187
+ content:
188
+ application/json:
189
+ schema:
190
+ $ref: "#/components/schemas/ApiResponse_EmailSendResult"
191
+ default:
192
+ $ref: "#/components/responses/ApiError"
193
+ /api/v1/emails/batch:
194
+ post:
195
+ tags: [Emails]
196
+ operationId: batchSendEmails
197
+ summary: Send a batch of transactional emails
198
+ requestBody:
199
+ required: true
200
+ content:
201
+ application/json:
202
+ schema:
203
+ $ref: "#/components/schemas/BatchSendInput"
204
+ responses:
205
+ "202":
206
+ description: Batch queued.
207
+ content:
208
+ application/json:
209
+ schema:
210
+ $ref: "#/components/schemas/ApiResponse_BatchSendSummary"
211
+ default:
212
+ $ref: "#/components/responses/ApiError"
213
+ /api/v1/emails/templates:
214
+ get:
215
+ tags: [Emails]
216
+ operationId: listEmailTemplates
217
+ summary: List active email templates
218
+ responses:
219
+ "200":
220
+ description: Active templates.
221
+ content:
222
+ application/json:
223
+ schema:
224
+ $ref: "#/components/schemas/ApiResponse_EmailTemplateArray"
225
+ default:
226
+ $ref: "#/components/responses/ApiError"
227
+ /api/v1/emails/templates/{slug}:
228
+ parameters:
229
+ - $ref: "#/components/parameters/Slug"
230
+ get:
231
+ tags: [Emails]
232
+ operationId: getEmailTemplate
233
+ summary: Get an email template
234
+ parameters:
235
+ - name: locale
236
+ in: query
237
+ schema:
238
+ type: string
239
+ - name: fallback_locale
240
+ in: query
241
+ schema:
242
+ type: string
243
+ responses:
244
+ "200":
245
+ description: Email template detail.
246
+ content:
247
+ application/json:
248
+ schema:
249
+ $ref: "#/components/schemas/ApiResponse_EmailTemplateDetail"
250
+ default:
251
+ $ref: "#/components/responses/ApiError"
252
+ /api/v1/emails/{id}:
253
+ parameters:
254
+ - $ref: "#/components/parameters/Id"
255
+ get:
256
+ tags: [Emails]
257
+ operationId: getEmailSend
258
+ summary: Get sent email status
259
+ responses:
260
+ "200":
261
+ description: Sent email status.
262
+ content:
263
+ application/json:
264
+ schema:
265
+ $ref: "#/components/schemas/ApiResponse_EmailSend"
266
+ default:
267
+ $ref: "#/components/responses/ApiError"
268
+ /api/v1/contacts:
269
+ get:
270
+ tags: [Contacts]
271
+ operationId: listContacts
272
+ summary: List contacts
273
+ parameters:
274
+ - $ref: "#/components/parameters/Limit"
275
+ - $ref: "#/components/parameters/Cursor"
276
+ - name: status
277
+ in: query
278
+ schema:
279
+ $ref: "#/components/schemas/ContactStatus"
280
+ - name: email_status
281
+ in: query
282
+ schema:
283
+ $ref: "#/components/schemas/EmailStatus"
284
+ - name: label_ids
285
+ in: query
286
+ schema:
287
+ type: string
288
+ description: Comma-separated label IDs.
289
+ - name: search
290
+ in: query
291
+ schema:
292
+ type: string
293
+ responses:
294
+ "200":
295
+ description: Contacts page.
296
+ content:
297
+ application/json:
298
+ schema:
299
+ $ref: "#/components/schemas/PaginatedResponse_Contact"
300
+ default:
301
+ $ref: "#/components/responses/ApiError"
302
+ post:
303
+ tags: [Contacts]
304
+ operationId: createContact
305
+ summary: Create a contact
306
+ requestBody:
307
+ required: true
308
+ content:
309
+ application/json:
310
+ schema:
311
+ $ref: "#/components/schemas/CreateContactInput"
312
+ responses:
313
+ "200":
314
+ description: Created contact reference.
315
+ content:
316
+ application/json:
317
+ schema:
318
+ $ref: "#/components/schemas/ApiResponse_ContactCreateResult"
319
+ default:
320
+ $ref: "#/components/responses/ApiError"
321
+ /api/v1/contacts/import:
322
+ post:
323
+ tags: [Contacts]
324
+ operationId: importContacts
325
+ summary: Import contacts
326
+ requestBody:
327
+ required: true
328
+ content:
329
+ application/json:
330
+ schema:
331
+ type: object
332
+ required: [contacts]
333
+ properties:
334
+ contacts:
335
+ type: array
336
+ maxItems: 500
337
+ items:
338
+ $ref: "#/components/schemas/ImportContactInput"
339
+ responses:
340
+ "200":
341
+ description: Import summary.
342
+ content:
343
+ application/json:
344
+ schema:
345
+ $ref: "#/components/schemas/ApiResponse_ImportContactsResult"
346
+ default:
347
+ $ref: "#/components/responses/ApiError"
348
+ /api/v1/contacts/{id}:
349
+ parameters:
350
+ - $ref: "#/components/parameters/Id"
351
+ get:
352
+ tags: [Contacts]
353
+ operationId: getContact
354
+ summary: Get a contact
355
+ responses:
356
+ "200":
357
+ description: Contact.
358
+ content:
359
+ application/json:
360
+ schema:
361
+ $ref: "#/components/schemas/ApiResponse_Contact"
362
+ default:
363
+ $ref: "#/components/responses/ApiError"
364
+ patch:
365
+ tags: [Contacts]
366
+ operationId: updateContact
367
+ summary: Update a contact
368
+ requestBody:
369
+ required: true
370
+ content:
371
+ application/json:
372
+ schema:
373
+ $ref: "#/components/schemas/UpdateContactInput"
374
+ responses:
375
+ "200":
376
+ description: Update result.
377
+ content:
378
+ application/json:
379
+ schema:
380
+ $ref: "#/components/schemas/ApiResponse_ContactUpdateResult"
381
+ default:
382
+ $ref: "#/components/responses/ApiError"
383
+ delete:
384
+ tags: [Contacts]
385
+ operationId: deleteContact
386
+ summary: Delete a contact
387
+ responses:
388
+ "200":
389
+ description: Delete result.
390
+ content:
391
+ application/json:
392
+ schema:
393
+ $ref: "#/components/schemas/ApiResponse_ContactRemoveResult"
394
+ default:
395
+ $ref: "#/components/responses/ApiError"
396
+ /api/v1/contacts/{id}/activities:
397
+ parameters:
398
+ - $ref: "#/components/parameters/Id"
399
+ get:
400
+ tags: [Contacts]
401
+ operationId: listContactActivities
402
+ summary: List contact activities
403
+ parameters:
404
+ - $ref: "#/components/parameters/Limit"
405
+ - $ref: "#/components/parameters/Cursor"
406
+ responses:
407
+ "200":
408
+ description: Contact activities page.
409
+ content:
410
+ application/json:
411
+ schema:
412
+ $ref: "#/components/schemas/PaginatedResponse_Activity"
413
+ default:
414
+ $ref: "#/components/responses/ApiError"
415
+ /api/v1/contacts/{id}/notes:
416
+ parameters:
417
+ - $ref: "#/components/parameters/Id"
418
+ post:
419
+ tags: [Contacts]
420
+ operationId: addContactNote
421
+ summary: Add a contact note
422
+ requestBody:
423
+ required: true
424
+ content:
425
+ application/json:
426
+ schema:
427
+ $ref: "#/components/schemas/AddNoteInput"
428
+ responses:
429
+ "200":
430
+ description: Created note reference.
431
+ content:
432
+ application/json:
433
+ schema:
434
+ $ref: "#/components/schemas/ApiResponse_ContactNoteResult"
435
+ default:
436
+ $ref: "#/components/responses/ApiError"
437
+ /api/v1/deals:
438
+ get:
439
+ tags: [Deals]
440
+ operationId: listDeals
441
+ summary: List deals
442
+ parameters:
443
+ - $ref: "#/components/parameters/Limit"
444
+ - $ref: "#/components/parameters/Cursor"
445
+ - name: status
446
+ in: query
447
+ schema:
448
+ $ref: "#/components/schemas/DealStatus"
449
+ - name: search
450
+ in: query
451
+ schema:
452
+ type: string
453
+ responses:
454
+ "200":
455
+ description: Deals page.
456
+ content:
457
+ application/json:
458
+ schema:
459
+ $ref: "#/components/schemas/PaginatedResponse_Deal"
460
+ default:
461
+ $ref: "#/components/responses/ApiError"
462
+ post:
463
+ tags: [Deals]
464
+ operationId: createDeal
465
+ summary: Create a deal
466
+ requestBody:
467
+ required: true
468
+ content:
469
+ application/json:
470
+ schema:
471
+ $ref: "#/components/schemas/CreateDealInput"
472
+ responses:
473
+ "200":
474
+ description: Created deal reference.
475
+ content:
476
+ application/json:
477
+ schema:
478
+ $ref: "#/components/schemas/ApiResponse_DealCreateResult"
479
+ default:
480
+ $ref: "#/components/responses/ApiError"
481
+ /api/v1/deals/{id}:
482
+ parameters:
483
+ - $ref: "#/components/parameters/Id"
484
+ get:
485
+ tags: [Deals]
486
+ operationId: getDeal
487
+ summary: Get a deal
488
+ responses:
489
+ "200":
490
+ description: Deal.
491
+ content:
492
+ application/json:
493
+ schema:
494
+ $ref: "#/components/schemas/ApiResponse_Deal"
495
+ default:
496
+ $ref: "#/components/responses/ApiError"
497
+ patch:
498
+ tags: [Deals]
499
+ operationId: updateDeal
500
+ summary: Update a deal
501
+ requestBody:
502
+ required: true
503
+ content:
504
+ application/json:
505
+ schema:
506
+ $ref: "#/components/schemas/UpdateDealInput"
507
+ responses:
508
+ "200":
509
+ description: Update result.
510
+ content:
511
+ application/json:
512
+ schema:
513
+ $ref: "#/components/schemas/ApiResponse_DealUpdateResult"
514
+ default:
515
+ $ref: "#/components/responses/ApiError"
516
+ delete:
517
+ tags: [Deals]
518
+ operationId: deleteDeal
519
+ summary: Delete a deal
520
+ responses:
521
+ "200":
522
+ description: Delete result.
523
+ content:
524
+ application/json:
525
+ schema:
526
+ $ref: "#/components/schemas/ApiResponse_DealRemoveResult"
527
+ default:
528
+ $ref: "#/components/responses/ApiError"
529
+ /api/v1/gdpr/export:
530
+ post:
531
+ tags: [GDPR]
532
+ operationId: requestGdprExport
533
+ summary: Request a GDPR export
534
+ responses:
535
+ "200":
536
+ description: Export request reference.
537
+ content:
538
+ application/json:
539
+ schema:
540
+ $ref: "#/components/schemas/ApiResponse_GdprExportRequest"
541
+ default:
542
+ $ref: "#/components/responses/ApiError"
543
+ /api/v1/gdpr/exports:
544
+ get:
545
+ tags: [GDPR]
546
+ operationId: listGdprExports
547
+ summary: List GDPR exports
548
+ responses:
549
+ "200":
550
+ description: Export requests.
551
+ content:
552
+ application/json:
553
+ schema:
554
+ $ref: "#/components/schemas/ApiResponse_GdprExportArray"
555
+ default:
556
+ $ref: "#/components/responses/ApiError"
557
+ /api/v1/gdpr/exports/{id}:
558
+ parameters:
559
+ - $ref: "#/components/parameters/Id"
560
+ get:
561
+ tags: [GDPR]
562
+ operationId: getGdprExport
563
+ summary: Get a GDPR export
564
+ responses:
565
+ "200":
566
+ description: Export request.
567
+ content:
568
+ application/json:
569
+ schema:
570
+ $ref: "#/components/schemas/ApiResponse_GdprExport"
571
+ default:
572
+ $ref: "#/components/responses/ApiError"
573
+ /api/v1/gdpr/consent:
574
+ post:
575
+ tags: [GDPR]
576
+ operationId: recordGdprConsent
577
+ summary: Record GDPR consent
578
+ requestBody:
579
+ required: true
580
+ content:
581
+ application/json:
582
+ schema:
583
+ $ref: "#/components/schemas/RecordConsentInput"
584
+ responses:
585
+ "200":
586
+ description: Consent reference.
587
+ content:
588
+ application/json:
589
+ schema:
590
+ $ref: "#/components/schemas/ApiResponse_ConsentResult"
591
+ default:
592
+ $ref: "#/components/responses/ApiError"
593
+ /api/v1/gdpr/consent/{email}:
594
+ parameters:
595
+ - name: email
596
+ in: path
597
+ required: true
598
+ schema:
599
+ type: string
600
+ format: email
601
+ get:
602
+ tags: [GDPR]
603
+ operationId: getGdprConsent
604
+ summary: Get GDPR consent records
605
+ responses:
606
+ "200":
607
+ description: Consent records.
608
+ content:
609
+ application/json:
610
+ schema:
611
+ $ref: "#/components/schemas/ApiResponse_ConsentRecordArray"
612
+ default:
613
+ $ref: "#/components/responses/ApiError"
614
+ /api/cookie-consent:
615
+ post:
616
+ tags: [GDPR]
617
+ operationId: recordCookieConsent
618
+ summary: Record cookie consent
619
+ requestBody:
620
+ required: true
621
+ content:
622
+ application/json:
623
+ schema:
624
+ $ref: "#/components/schemas/CookieConsentInput"
625
+ responses:
626
+ "200":
627
+ description: Cookie consent result.
628
+ content:
629
+ application/json:
630
+ schema:
631
+ $ref: "#/components/schemas/CookieConsentResult"
632
+ default:
633
+ $ref: "#/components/responses/ApiError"
634
+ /api/v1/me/workspaces:
635
+ get:
636
+ tags: [Workspaces]
637
+ operationId: listWorkspaces
638
+ summary: List accessible workspaces
639
+ responses:
640
+ "200":
641
+ description: Workspaces.
642
+ content:
643
+ application/json:
644
+ schema:
645
+ $ref: "#/components/schemas/ApiResponse_WorkspaceArray"
646
+ default:
647
+ $ref: "#/components/responses/ApiError"
648
+ components:
649
+ securitySchemes:
650
+ bearerAuth:
651
+ type: http
652
+ scheme: bearer
653
+ parameters:
654
+ Id:
655
+ name: id
656
+ in: path
657
+ required: true
658
+ schema:
659
+ type: string
660
+ Slug:
661
+ name: slug
662
+ in: path
663
+ required: true
664
+ schema:
665
+ type: string
666
+ Cursor:
667
+ name: cursor
668
+ in: query
669
+ schema:
670
+ type: string
671
+ Limit:
672
+ name: limit
673
+ in: query
674
+ schema:
675
+ type: integer
676
+ minimum: 1
677
+ maximum: 500
678
+ responses:
679
+ ApiError:
680
+ description: API error.
681
+ content:
682
+ application/json:
683
+ schema:
684
+ $ref: "#/components/schemas/ApiError"
685
+ schemas:
686
+ ApiError:
687
+ type: object
688
+ required: [error]
689
+ properties:
690
+ error:
691
+ type: object
692
+ required: [code, message]
693
+ properties:
694
+ code:
695
+ type: string
696
+ message:
697
+ type: string
698
+ details: true
699
+ Pagination:
700
+ type: object
701
+ required: [has_more, next_cursor]
702
+ properties:
703
+ has_more:
704
+ type: boolean
705
+ next_cursor:
706
+ type: [string, "null"]
707
+ Success:
708
+ type: object
709
+ required: [success]
710
+ properties:
711
+ success:
712
+ type: boolean
713
+ PostCreateResult:
714
+ type: object
715
+ required: [id]
716
+ properties:
717
+ id:
718
+ type: string
719
+ Post:
720
+ type: object
721
+ required:
722
+ - id
723
+ - type
724
+ - title
725
+ - content
726
+ - status
727
+ - channel_ids
728
+ - variant_count
729
+ - published_count
730
+ - failed_count
731
+ - scheduled_at
732
+ - published_at
733
+ - created_at
734
+ - updated_at
735
+ properties:
736
+ id:
737
+ type: string
738
+ type:
739
+ $ref: "#/components/schemas/PostType"
740
+ title:
741
+ type: [string, "null"]
742
+ content:
743
+ type: string
744
+ status:
745
+ type: string
746
+ channel_ids:
747
+ type: array
748
+ items:
749
+ type: string
750
+ variant_count:
751
+ type: integer
752
+ published_count:
753
+ type: integer
754
+ failed_count:
755
+ type: integer
756
+ scheduled_at:
757
+ type: [string, "null"]
758
+ format: date-time
759
+ published_at:
760
+ type: [string, "null"]
761
+ format: date-time
762
+ created_at:
763
+ type: [string, "null"]
764
+ format: date-time
765
+ updated_at:
766
+ type: [string, "null"]
767
+ format: date-time
768
+ PostType:
769
+ type: string
770
+ enum: [social, newsletter, blog]
771
+ PostVariant:
772
+ type: object
773
+ required:
774
+ - id
775
+ - channel_id
776
+ - content
777
+ - status
778
+ - platform
779
+ - channel_display_name
780
+ - scheduled_at
781
+ - published_at
782
+ - platform_post_id
783
+ - permalink
784
+ - error
785
+ properties:
786
+ id:
787
+ type: string
788
+ channel_id:
789
+ type: string
790
+ content:
791
+ type: string
792
+ status:
793
+ type: string
794
+ platform:
795
+ type: [string, "null"]
796
+ channel_display_name:
797
+ type: [string, "null"]
798
+ scheduled_at:
799
+ type: [string, "null"]
800
+ format: date-time
801
+ published_at:
802
+ type: [string, "null"]
803
+ format: date-time
804
+ platform_post_id:
805
+ type: [string, "null"]
806
+ permalink:
807
+ type: [string, "null"]
808
+ format: uri
809
+ error:
810
+ type: [string, "null"]
811
+ PostDetail:
812
+ allOf:
813
+ - $ref: "#/components/schemas/Post"
814
+ - type: object
815
+ required: [variants]
816
+ properties:
817
+ variants:
818
+ type: array
819
+ items:
820
+ $ref: "#/components/schemas/PostVariant"
821
+ Channel:
822
+ type: object
823
+ required: [id, platform, display_name, platform_username, state, connected_at]
824
+ properties:
825
+ id:
826
+ type: string
827
+ platform:
828
+ type: [string, "null"]
829
+ display_name:
830
+ type: [string, "null"]
831
+ platform_username:
832
+ type: [string, "null"]
833
+ state:
834
+ type: string
835
+ connected_at:
836
+ type: [string, "null"]
837
+ format: date-time
838
+ CreatePostInput:
839
+ type: object
840
+ required: [content, channel_ids]
841
+ properties:
842
+ type:
843
+ $ref: "#/components/schemas/PostType"
844
+ title:
845
+ type: string
846
+ content:
847
+ type: string
848
+ channel_ids:
849
+ type: array
850
+ items:
851
+ type: string
852
+ UpdatePostInput:
853
+ type: object
854
+ properties:
855
+ title:
856
+ type: string
857
+ content:
858
+ type: string
859
+ SchedulePostInput:
860
+ type: object
861
+ required: [scheduled_at]
862
+ properties:
863
+ scheduled_at:
864
+ oneOf:
865
+ - type: integer
866
+ - type: string
867
+ format: date-time
868
+ ScheduleResult:
869
+ type: object
870
+ required: [success, workflow_id]
871
+ properties:
872
+ success:
873
+ type: boolean
874
+ workflow_id:
875
+ type: string
876
+ PublishResult:
877
+ type: object
878
+ required: [success, workflow_id]
879
+ properties:
880
+ success:
881
+ type: boolean
882
+ workflow_id:
883
+ type: string
884
+ SendEmailInput:
885
+ type: object
886
+ required: [template_slug, to]
887
+ properties:
888
+ template_slug:
889
+ type: string
890
+ to:
891
+ type: string
892
+ format: email
893
+ name:
894
+ type: string
895
+ locale:
896
+ type: string
897
+ fallback_locale:
898
+ type: string
899
+ variables:
900
+ type: object
901
+ additionalProperties:
902
+ type: string
903
+ contact_id:
904
+ type: string
905
+ EmailSendResult:
906
+ type: object
907
+ required: [id, status]
908
+ properties:
909
+ id:
910
+ type: string
911
+ status:
912
+ type: string
913
+ EmailSend:
914
+ type: object
915
+ required:
916
+ - id
917
+ - status
918
+ - recipient_email
919
+ - recipient_name
920
+ - subject
921
+ - template_id
922
+ - contact_id
923
+ - queued_at
924
+ - sent_at
925
+ - delivered_at
926
+ - opened_at
927
+ - clicked_at
928
+ - error_message
929
+ properties:
930
+ id:
931
+ type: string
932
+ status:
933
+ type: string
934
+ recipient_email:
935
+ type: string
936
+ format: email
937
+ recipient_name:
938
+ type: [string, "null"]
939
+ subject:
940
+ type: [string, "null"]
941
+ template_id:
942
+ type: [string, "null"]
943
+ contact_id:
944
+ type: [string, "null"]
945
+ queued_at:
946
+ type: [string, "null"]
947
+ format: date-time
948
+ sent_at:
949
+ type: [string, "null"]
950
+ format: date-time
951
+ delivered_at:
952
+ type: [string, "null"]
953
+ format: date-time
954
+ opened_at:
955
+ type: [string, "null"]
956
+ format: date-time
957
+ clicked_at:
958
+ type: [string, "null"]
959
+ format: date-time
960
+ error_message:
961
+ type: [string, "null"]
962
+ BatchSendInput:
963
+ type: object
964
+ required: [template_slug, recipients]
965
+ properties:
966
+ template_slug:
967
+ type: string
968
+ default_locale:
969
+ type: string
970
+ recipients:
971
+ type: array
972
+ maxItems: 100
973
+ items:
974
+ type: object
975
+ required: [email]
976
+ properties:
977
+ email:
978
+ type: string
979
+ format: email
980
+ name:
981
+ type: string
982
+ locale:
983
+ type: string
984
+ variables:
985
+ type: object
986
+ additionalProperties:
987
+ type: string
988
+ BatchSendSummary:
989
+ type: object
990
+ required: [batch_id, total, queued, failed]
991
+ properties:
992
+ batch_id:
993
+ type: string
994
+ total:
995
+ type: integer
996
+ queued:
997
+ type: integer
998
+ failed:
999
+ type: integer
1000
+ EmailTemplate:
1001
+ type: object
1002
+ required:
1003
+ - id
1004
+ - name
1005
+ - slug
1006
+ - type
1007
+ - subject
1008
+ - default_locale
1009
+ - available_locales
1010
+ - description
1011
+ - category
1012
+ - label_ids
1013
+ - is_active
1014
+ - is_archived
1015
+ - version
1016
+ - created_at
1017
+ - updated_at
1018
+ properties:
1019
+ id:
1020
+ type: string
1021
+ name:
1022
+ type: string
1023
+ slug:
1024
+ type: string
1025
+ type:
1026
+ type: [string, "null"]
1027
+ subject:
1028
+ type: [string, "null"]
1029
+ default_locale:
1030
+ type: string
1031
+ available_locales:
1032
+ type: array
1033
+ items:
1034
+ type: string
1035
+ description:
1036
+ type: [string, "null"]
1037
+ category:
1038
+ type: [string, "null"]
1039
+ label_ids:
1040
+ type: array
1041
+ items:
1042
+ type: string
1043
+ is_active:
1044
+ type: boolean
1045
+ is_archived:
1046
+ type: boolean
1047
+ version:
1048
+ type: integer
1049
+ created_at:
1050
+ type: [string, "null"]
1051
+ format: date-time
1052
+ updated_at:
1053
+ type: [string, "null"]
1054
+ format: date-time
1055
+ EmailTemplateDetail:
1056
+ allOf:
1057
+ - $ref: "#/components/schemas/EmailTemplate"
1058
+ - type: object
1059
+ required:
1060
+ - html_content
1061
+ - text_content
1062
+ - preview_text
1063
+ - from_name
1064
+ - from_email
1065
+ - reply_to
1066
+ - requested_locale
1067
+ - resolved_locale
1068
+ - content_source
1069
+ - localizations
1070
+ properties:
1071
+ html_content:
1072
+ type: [string, "null"]
1073
+ text_content:
1074
+ type: [string, "null"]
1075
+ preview_text:
1076
+ type: [string, "null"]
1077
+ from_name:
1078
+ type: [string, "null"]
1079
+ from_email:
1080
+ type: [string, "null"]
1081
+ format: email
1082
+ reply_to:
1083
+ type: [string, "null"]
1084
+ format: email
1085
+ requested_locale:
1086
+ type: [string, "null"]
1087
+ resolved_locale:
1088
+ type: string
1089
+ content_source:
1090
+ type: string
1091
+ localizations:
1092
+ type: array
1093
+ items:
1094
+ type: object
1095
+ required: [locale, subject, html_content, text_content, preview_text]
1096
+ properties:
1097
+ locale:
1098
+ type: [string, "null"]
1099
+ subject:
1100
+ type: [string, "null"]
1101
+ html_content:
1102
+ type: [string, "null"]
1103
+ text_content:
1104
+ type: [string, "null"]
1105
+ preview_text:
1106
+ type: [string, "null"]
1107
+ Contact:
1108
+ type: object
1109
+ required:
1110
+ - id
1111
+ - email
1112
+ - first_name
1113
+ - last_name
1114
+ - phone
1115
+ - company
1116
+ - job_title
1117
+ - address
1118
+ - status
1119
+ - email_status
1120
+ - label_ids
1121
+ - source
1122
+ - custom_fields
1123
+ - created_at
1124
+ - updated_at
1125
+ properties:
1126
+ id:
1127
+ type: string
1128
+ email:
1129
+ type: string
1130
+ format: email
1131
+ first_name:
1132
+ type: [string, "null"]
1133
+ last_name:
1134
+ type: [string, "null"]
1135
+ phone:
1136
+ type: [string, "null"]
1137
+ company:
1138
+ type: [string, "null"]
1139
+ job_title:
1140
+ type: [string, "null"]
1141
+ address:
1142
+ anyOf:
1143
+ - type: object
1144
+ additionalProperties:
1145
+ type: string
1146
+ - type: "null"
1147
+ status:
1148
+ $ref: "#/components/schemas/ContactStatus"
1149
+ email_status:
1150
+ $ref: "#/components/schemas/EmailStatus"
1151
+ label_ids:
1152
+ type: array
1153
+ items:
1154
+ type: string
1155
+ source:
1156
+ type: [string, "null"]
1157
+ custom_fields:
1158
+ anyOf:
1159
+ - type: object
1160
+ additionalProperties: true
1161
+ - type: "null"
1162
+ created_at:
1163
+ type: [string, "null"]
1164
+ format: date-time
1165
+ updated_at:
1166
+ type: [string, "null"]
1167
+ format: date-time
1168
+ ContactCreateResult:
1169
+ type: object
1170
+ required: [id]
1171
+ properties:
1172
+ id:
1173
+ type: string
1174
+ ContactUpdateResult:
1175
+ type: object
1176
+ required: [success]
1177
+ properties:
1178
+ success:
1179
+ type: boolean
1180
+ const: true
1181
+ ContactRemoveResult:
1182
+ type: object
1183
+ required: [success]
1184
+ properties:
1185
+ success:
1186
+ type: boolean
1187
+ const: true
1188
+ ContactNoteResult:
1189
+ type: object
1190
+ required: [id]
1191
+ properties:
1192
+ id:
1193
+ type: string
1194
+ ContactStatus:
1195
+ type: string
1196
+ enum: [lead, prospect, customer, churned, archived]
1197
+ EmailStatus:
1198
+ type: string
1199
+ enum: [subscribed, unsubscribed, bounced, complained]
1200
+ CreateContactInput:
1201
+ type: object
1202
+ required: [email]
1203
+ properties:
1204
+ email:
1205
+ type: string
1206
+ format: email
1207
+ first_name:
1208
+ type: string
1209
+ last_name:
1210
+ type: string
1211
+ phone:
1212
+ type: string
1213
+ company:
1214
+ type: string
1215
+ job_title:
1216
+ type: string
1217
+ address:
1218
+ type: object
1219
+ additionalProperties:
1220
+ type: string
1221
+ status:
1222
+ $ref: "#/components/schemas/ContactStatus"
1223
+ email_status:
1224
+ $ref: "#/components/schemas/EmailStatus"
1225
+ label_ids:
1226
+ type: array
1227
+ items:
1228
+ type: string
1229
+ labels:
1230
+ type: array
1231
+ items:
1232
+ type: string
1233
+ custom_fields:
1234
+ type: object
1235
+ additionalProperties: true
1236
+ notes:
1237
+ oneOf:
1238
+ - type: string
1239
+ - $ref: "#/components/schemas/ContactNoteInput"
1240
+ UpdateContactInput:
1241
+ type: object
1242
+ properties:
1243
+ email:
1244
+ type: string
1245
+ format: email
1246
+ first_name:
1247
+ type: string
1248
+ last_name:
1249
+ type: string
1250
+ phone:
1251
+ type: string
1252
+ company:
1253
+ type: string
1254
+ job_title:
1255
+ type: string
1256
+ status:
1257
+ $ref: "#/components/schemas/ContactStatus"
1258
+ email_status:
1259
+ $ref: "#/components/schemas/EmailStatus"
1260
+ label_ids:
1261
+ type: array
1262
+ items:
1263
+ type: string
1264
+ labels:
1265
+ type: array
1266
+ items:
1267
+ type: string
1268
+ custom_fields:
1269
+ type: object
1270
+ additionalProperties: true
1271
+ ContactNoteInput:
1272
+ type: object
1273
+ required: [content]
1274
+ properties:
1275
+ content:
1276
+ type: string
1277
+ attachments:
1278
+ type: array
1279
+ items:
1280
+ type: object
1281
+ required: [url, name]
1282
+ properties:
1283
+ url:
1284
+ type: string
1285
+ format: uri
1286
+ name:
1287
+ type: string
1288
+ type:
1289
+ type: string
1290
+ size:
1291
+ type: number
1292
+ ImportContactInput:
1293
+ type: object
1294
+ required: [email]
1295
+ properties:
1296
+ email:
1297
+ type: string
1298
+ format: email
1299
+ first_name:
1300
+ type: string
1301
+ last_name:
1302
+ type: string
1303
+ phone:
1304
+ type: string
1305
+ company:
1306
+ type: string
1307
+ job_title:
1308
+ type: string
1309
+ label_ids:
1310
+ type: array
1311
+ items:
1312
+ type: string
1313
+ status:
1314
+ type: string
1315
+ ImportContactsResult:
1316
+ type: object
1317
+ required: [added, skipped, total]
1318
+ properties:
1319
+ added:
1320
+ type: integer
1321
+ skipped:
1322
+ type: integer
1323
+ total:
1324
+ type: integer
1325
+ Activity:
1326
+ type: object
1327
+ required:
1328
+ - id
1329
+ - type
1330
+ - title
1331
+ - content
1332
+ - actor_name
1333
+ - actor_type
1334
+ - metadata
1335
+ - created_at
1336
+ properties:
1337
+ id:
1338
+ type: string
1339
+ type:
1340
+ type: string
1341
+ title:
1342
+ type: [string, "null"]
1343
+ content:
1344
+ type: [string, "null"]
1345
+ actor_name:
1346
+ type: [string, "null"]
1347
+ actor_type:
1348
+ type: [string, "null"]
1349
+ metadata: true
1350
+ created_at:
1351
+ type: [string, "null"]
1352
+ format: date-time
1353
+ AddNoteInput:
1354
+ type: object
1355
+ required: [content]
1356
+ properties:
1357
+ content:
1358
+ type: string
1359
+ Deal:
1360
+ type: object
1361
+ required:
1362
+ - id
1363
+ - title
1364
+ - description
1365
+ - value
1366
+ - currency
1367
+ - status
1368
+ - brand_name
1369
+ - brand_website
1370
+ - contact_id
1371
+ - contact_name
1372
+ - contact_email
1373
+ - start_date
1374
+ - end_date
1375
+ - notes
1376
+ - created_at
1377
+ - updated_at
1378
+ properties:
1379
+ id:
1380
+ type: string
1381
+ title:
1382
+ type: string
1383
+ description:
1384
+ type: [string, "null"]
1385
+ value:
1386
+ type: [number, "null"]
1387
+ currency:
1388
+ type: [string, "null"]
1389
+ status:
1390
+ $ref: "#/components/schemas/DealStatus"
1391
+ brand_name:
1392
+ type: [string, "null"]
1393
+ brand_website:
1394
+ type: [string, "null"]
1395
+ format: uri
1396
+ contact_id:
1397
+ type: [string, "null"]
1398
+ contact_name:
1399
+ type: [string, "null"]
1400
+ contact_email:
1401
+ type: [string, "null"]
1402
+ format: email
1403
+ start_date:
1404
+ type: [string, "null"]
1405
+ format: date
1406
+ end_date:
1407
+ type: [string, "null"]
1408
+ format: date
1409
+ notes:
1410
+ type: [string, "null"]
1411
+ created_at:
1412
+ type: [string, "null"]
1413
+ format: date-time
1414
+ updated_at:
1415
+ type: [string, "null"]
1416
+ format: date-time
1417
+ DealCreateResult:
1418
+ type: object
1419
+ required: [id]
1420
+ properties:
1421
+ id:
1422
+ type: string
1423
+ DealUpdateResult:
1424
+ type: object
1425
+ required: [success]
1426
+ properties:
1427
+ success:
1428
+ type: boolean
1429
+ const: true
1430
+ DealRemoveResult:
1431
+ type: object
1432
+ required: [success]
1433
+ properties:
1434
+ success:
1435
+ type: boolean
1436
+ const: true
1437
+ DealStatus:
1438
+ type: string
1439
+ enum: [draft, open, won, lost, negotiating, proposal_sent, on_hold, churned]
1440
+ CreateDealInput:
1441
+ type: object
1442
+ required: [title]
1443
+ properties:
1444
+ title:
1445
+ type: string
1446
+ description:
1447
+ type: string
1448
+ value:
1449
+ type: number
1450
+ currency:
1451
+ type: string
1452
+ brand_name:
1453
+ type: string
1454
+ brand_website:
1455
+ type: string
1456
+ format: uri
1457
+ contact_id:
1458
+ type: string
1459
+ contact_name:
1460
+ type: string
1461
+ contact_email:
1462
+ type: string
1463
+ format: email
1464
+ start_date:
1465
+ type: string
1466
+ format: date
1467
+ end_date:
1468
+ type: string
1469
+ format: date
1470
+ notes:
1471
+ type: string
1472
+ UpdateDealInput:
1473
+ type: object
1474
+ properties:
1475
+ title:
1476
+ type: string
1477
+ description:
1478
+ type: string
1479
+ value:
1480
+ type: number
1481
+ currency:
1482
+ type: string
1483
+ status:
1484
+ $ref: "#/components/schemas/DealStatus"
1485
+ brand_name:
1486
+ type: string
1487
+ brand_website:
1488
+ type: string
1489
+ format: uri
1490
+ contact_id:
1491
+ type: [string, "null"]
1492
+ contact_name:
1493
+ type: string
1494
+ contact_email:
1495
+ type: string
1496
+ format: email
1497
+ start_date:
1498
+ type: string
1499
+ format: date
1500
+ end_date:
1501
+ type: string
1502
+ format: date
1503
+ notes:
1504
+ type: string
1505
+ GdprExport:
1506
+ type: object
1507
+ required: [id, request_type, status, submitted_at, completed_at]
1508
+ properties:
1509
+ id:
1510
+ type: string
1511
+ request_type:
1512
+ type: string
1513
+ status:
1514
+ type: string
1515
+ submitted_at:
1516
+ type: [string, "null"]
1517
+ format: date-time
1518
+ completed_at:
1519
+ type: [string, "null"]
1520
+ format: date-time
1521
+ due_date:
1522
+ type: [string, "null"]
1523
+ format: date-time
1524
+ download_url:
1525
+ type: [string, "null"]
1526
+ format: uri
1527
+ expires_at:
1528
+ type: [string, "null"]
1529
+ format: date-time
1530
+ GdprExportRequest:
1531
+ type: object
1532
+ required: [request_id, status]
1533
+ properties:
1534
+ request_id:
1535
+ type: string
1536
+ status:
1537
+ type: string
1538
+ ConsentType:
1539
+ type: string
1540
+ enum: [marketing_email, analytics_tracking, third_party_sharing]
1541
+ RecordConsentInput:
1542
+ type: object
1543
+ required: [email, consent_type, granted]
1544
+ properties:
1545
+ email:
1546
+ type: string
1547
+ format: email
1548
+ consent_type:
1549
+ $ref: "#/components/schemas/ConsentType"
1550
+ granted:
1551
+ type: boolean
1552
+ source:
1553
+ type: string
1554
+ ip_address:
1555
+ type: string
1556
+ consent_text:
1557
+ type: string
1558
+ version:
1559
+ type: string
1560
+ ConsentRecord:
1561
+ type: object
1562
+ required: [id, email, consent_type, granted, granted_at, revoked_at]
1563
+ properties:
1564
+ id:
1565
+ type: string
1566
+ email:
1567
+ type: string
1568
+ format: email
1569
+ consent_type:
1570
+ $ref: "#/components/schemas/ConsentType"
1571
+ granted:
1572
+ type: boolean
1573
+ granted_at:
1574
+ type: [string, "null"]
1575
+ format: date-time
1576
+ revoked_at:
1577
+ type: [string, "null"]
1578
+ format: date-time
1579
+ source:
1580
+ type: string
1581
+ version:
1582
+ type: string
1583
+ ConsentResult:
1584
+ type: object
1585
+ required: [id]
1586
+ properties:
1587
+ id:
1588
+ type: string
1589
+ CookieConsentInput:
1590
+ type: object
1591
+ required: [domain, consentStatus, consentTimestamp, cookiePreferences]
1592
+ properties:
1593
+ domain:
1594
+ type: string
1595
+ consentStatus:
1596
+ type: string
1597
+ consentTimestamp:
1598
+ type: string
1599
+ format: date-time
1600
+ ipAddress:
1601
+ type: string
1602
+ userAgent:
1603
+ type: string
1604
+ cookiePreferences:
1605
+ type: object
1606
+ additionalProperties:
1607
+ $ref: "#/components/schemas/CookieCategoryConsent"
1608
+ CookieCategoryConsent:
1609
+ type: object
1610
+ required: [allowed]
1611
+ properties:
1612
+ allowed:
1613
+ type: boolean
1614
+ cookieRecords:
1615
+ type: array
1616
+ items:
1617
+ type: object
1618
+ required: [cookie, duration, description]
1619
+ properties:
1620
+ cookie:
1621
+ type: string
1622
+ duration:
1623
+ type: string
1624
+ description:
1625
+ type: string
1626
+ CookieConsentResult:
1627
+ type: object
1628
+ required: [success]
1629
+ properties:
1630
+ success:
1631
+ type: boolean
1632
+ logId:
1633
+ type: string
1634
+ Workspace:
1635
+ type: object
1636
+ required: [id, name, slug]
1637
+ properties:
1638
+ id:
1639
+ type: string
1640
+ name:
1641
+ type: string
1642
+ slug:
1643
+ type: string
1644
+ additionalProperties: true
1645
+ ApiResponse_PostCreateResult:
1646
+ $ref: "#/components/schemas/Envelope_PostCreateResult"
1647
+ ApiResponse_PostDetail:
1648
+ $ref: "#/components/schemas/Envelope_PostDetail"
1649
+ ApiResponse_Success:
1650
+ $ref: "#/components/schemas/Envelope_Success"
1651
+ ApiResponse_ScheduleResult:
1652
+ $ref: "#/components/schemas/Envelope_ScheduleResult"
1653
+ ApiResponse_PublishResult:
1654
+ $ref: "#/components/schemas/Envelope_PublishResult"
1655
+ ApiResponse_ChannelArray:
1656
+ $ref: "#/components/schemas/Envelope_ChannelArray"
1657
+ ApiResponse_EmailSendResult:
1658
+ $ref: "#/components/schemas/Envelope_EmailSendResult"
1659
+ ApiResponse_EmailSend:
1660
+ $ref: "#/components/schemas/Envelope_EmailSend"
1661
+ ApiResponse_BatchSendSummary:
1662
+ $ref: "#/components/schemas/Envelope_BatchSendSummary"
1663
+ ApiResponse_EmailTemplateArray:
1664
+ $ref: "#/components/schemas/Envelope_EmailTemplateArray"
1665
+ ApiResponse_EmailTemplateDetail:
1666
+ $ref: "#/components/schemas/Envelope_EmailTemplateDetail"
1667
+ ApiResponse_Contact:
1668
+ $ref: "#/components/schemas/Envelope_Contact"
1669
+ ApiResponse_ContactCreateResult:
1670
+ $ref: "#/components/schemas/Envelope_ContactCreateResult"
1671
+ ApiResponse_ContactUpdateResult:
1672
+ $ref: "#/components/schemas/Envelope_ContactUpdateResult"
1673
+ ApiResponse_ContactRemoveResult:
1674
+ $ref: "#/components/schemas/Envelope_ContactRemoveResult"
1675
+ ApiResponse_ContactNoteResult:
1676
+ $ref: "#/components/schemas/Envelope_ContactNoteResult"
1677
+ ApiResponse_ImportContactsResult:
1678
+ $ref: "#/components/schemas/Envelope_ImportContactsResult"
1679
+ ApiResponse_Deal:
1680
+ $ref: "#/components/schemas/Envelope_Deal"
1681
+ ApiResponse_DealCreateResult:
1682
+ $ref: "#/components/schemas/Envelope_DealCreateResult"
1683
+ ApiResponse_DealUpdateResult:
1684
+ $ref: "#/components/schemas/Envelope_DealUpdateResult"
1685
+ ApiResponse_DealRemoveResult:
1686
+ $ref: "#/components/schemas/Envelope_DealRemoveResult"
1687
+ ApiResponse_GdprExportRequest:
1688
+ $ref: "#/components/schemas/Envelope_GdprExportRequest"
1689
+ ApiResponse_GdprExportArray:
1690
+ $ref: "#/components/schemas/Envelope_GdprExportArray"
1691
+ ApiResponse_GdprExport:
1692
+ $ref: "#/components/schemas/Envelope_GdprExport"
1693
+ ApiResponse_ConsentResult:
1694
+ $ref: "#/components/schemas/Envelope_ConsentResult"
1695
+ ApiResponse_ConsentRecordArray:
1696
+ $ref: "#/components/schemas/Envelope_ConsentRecordArray"
1697
+ ApiResponse_WorkspaceArray:
1698
+ $ref: "#/components/schemas/Envelope_WorkspaceArray"
1699
+ PaginatedResponse_Post:
1700
+ type: object
1701
+ required: [data, pagination]
1702
+ properties:
1703
+ data:
1704
+ type: array
1705
+ items:
1706
+ $ref: "#/components/schemas/Post"
1707
+ pagination:
1708
+ $ref: "#/components/schemas/Pagination"
1709
+ PaginatedResponse_Contact:
1710
+ type: object
1711
+ required: [data, pagination]
1712
+ properties:
1713
+ data:
1714
+ type: array
1715
+ items:
1716
+ $ref: "#/components/schemas/Contact"
1717
+ pagination:
1718
+ $ref: "#/components/schemas/Pagination"
1719
+ PaginatedResponse_Activity:
1720
+ type: object
1721
+ required: [data, pagination]
1722
+ properties:
1723
+ data:
1724
+ type: array
1725
+ items:
1726
+ $ref: "#/components/schemas/Activity"
1727
+ pagination:
1728
+ $ref: "#/components/schemas/Pagination"
1729
+ PaginatedResponse_Deal:
1730
+ type: object
1731
+ required: [data, pagination]
1732
+ properties:
1733
+ data:
1734
+ type: array
1735
+ items:
1736
+ $ref: "#/components/schemas/Deal"
1737
+ pagination:
1738
+ $ref: "#/components/schemas/Pagination"
1739
+ Envelope_PostCreateResult:
1740
+ type: object
1741
+ required: [data]
1742
+ properties:
1743
+ data:
1744
+ $ref: "#/components/schemas/PostCreateResult"
1745
+ Envelope_PostDetail:
1746
+ type: object
1747
+ required: [data]
1748
+ properties:
1749
+ data:
1750
+ $ref: "#/components/schemas/PostDetail"
1751
+ Envelope_Success:
1752
+ type: object
1753
+ required: [data]
1754
+ properties:
1755
+ data:
1756
+ $ref: "#/components/schemas/Success"
1757
+ Envelope_ScheduleResult:
1758
+ type: object
1759
+ required: [data]
1760
+ properties:
1761
+ data:
1762
+ $ref: "#/components/schemas/ScheduleResult"
1763
+ Envelope_PublishResult:
1764
+ type: object
1765
+ required: [data]
1766
+ properties:
1767
+ data:
1768
+ $ref: "#/components/schemas/PublishResult"
1769
+ Envelope_ChannelArray:
1770
+ type: object
1771
+ required: [data]
1772
+ properties:
1773
+ data:
1774
+ type: array
1775
+ items:
1776
+ $ref: "#/components/schemas/Channel"
1777
+ Envelope_EmailSendResult:
1778
+ type: object
1779
+ required: [data]
1780
+ properties:
1781
+ data:
1782
+ $ref: "#/components/schemas/EmailSendResult"
1783
+ Envelope_EmailSend:
1784
+ type: object
1785
+ required: [data]
1786
+ properties:
1787
+ data:
1788
+ $ref: "#/components/schemas/EmailSend"
1789
+ Envelope_BatchSendSummary:
1790
+ type: object
1791
+ required: [data]
1792
+ properties:
1793
+ data:
1794
+ $ref: "#/components/schemas/BatchSendSummary"
1795
+ Envelope_EmailTemplateArray:
1796
+ type: object
1797
+ required: [data]
1798
+ properties:
1799
+ data:
1800
+ type: array
1801
+ items:
1802
+ $ref: "#/components/schemas/EmailTemplate"
1803
+ Envelope_EmailTemplateDetail:
1804
+ type: object
1805
+ required: [data]
1806
+ properties:
1807
+ data:
1808
+ $ref: "#/components/schemas/EmailTemplateDetail"
1809
+ Envelope_Contact:
1810
+ type: object
1811
+ required: [data]
1812
+ properties:
1813
+ data:
1814
+ $ref: "#/components/schemas/Contact"
1815
+ Envelope_ContactCreateResult:
1816
+ type: object
1817
+ required: [data]
1818
+ properties:
1819
+ data:
1820
+ $ref: "#/components/schemas/ContactCreateResult"
1821
+ Envelope_ContactUpdateResult:
1822
+ type: object
1823
+ required: [data]
1824
+ properties:
1825
+ data:
1826
+ $ref: "#/components/schemas/ContactUpdateResult"
1827
+ Envelope_ContactRemoveResult:
1828
+ type: object
1829
+ required: [data]
1830
+ properties:
1831
+ data:
1832
+ $ref: "#/components/schemas/ContactRemoveResult"
1833
+ Envelope_ContactNoteResult:
1834
+ type: object
1835
+ required: [data]
1836
+ properties:
1837
+ data:
1838
+ $ref: "#/components/schemas/ContactNoteResult"
1839
+ Envelope_ImportContactsResult:
1840
+ type: object
1841
+ required: [data]
1842
+ properties:
1843
+ data:
1844
+ $ref: "#/components/schemas/ImportContactsResult"
1845
+ Envelope_Deal:
1846
+ type: object
1847
+ required: [data]
1848
+ properties:
1849
+ data:
1850
+ $ref: "#/components/schemas/Deal"
1851
+ Envelope_DealCreateResult:
1852
+ type: object
1853
+ required: [data]
1854
+ properties:
1855
+ data:
1856
+ $ref: "#/components/schemas/DealCreateResult"
1857
+ Envelope_DealUpdateResult:
1858
+ type: object
1859
+ required: [data]
1860
+ properties:
1861
+ data:
1862
+ $ref: "#/components/schemas/DealUpdateResult"
1863
+ Envelope_DealRemoveResult:
1864
+ type: object
1865
+ required: [data]
1866
+ properties:
1867
+ data:
1868
+ $ref: "#/components/schemas/DealRemoveResult"
1869
+ Envelope_GdprExportRequest:
1870
+ type: object
1871
+ required: [data]
1872
+ properties:
1873
+ data:
1874
+ $ref: "#/components/schemas/GdprExportRequest"
1875
+ Envelope_GdprExportArray:
1876
+ type: object
1877
+ required: [data]
1878
+ properties:
1879
+ data:
1880
+ type: array
1881
+ items:
1882
+ $ref: "#/components/schemas/GdprExport"
1883
+ Envelope_GdprExport:
1884
+ type: object
1885
+ required: [data]
1886
+ properties:
1887
+ data:
1888
+ $ref: "#/components/schemas/GdprExport"
1889
+ Envelope_ConsentResult:
1890
+ type: object
1891
+ required: [data]
1892
+ properties:
1893
+ data:
1894
+ $ref: "#/components/schemas/ConsentResult"
1895
+ Envelope_ConsentRecordArray:
1896
+ type: object
1897
+ required: [data]
1898
+ properties:
1899
+ data:
1900
+ type: array
1901
+ items:
1902
+ $ref: "#/components/schemas/ConsentRecord"
1903
+ Envelope_WorkspaceArray:
1904
+ type: object
1905
+ required: [data]
1906
+ properties:
1907
+ data:
1908
+ type: array
1909
+ items:
1910
+ $ref: "#/components/schemas/Workspace"