1#![allow(
14 missing_docs,
15 clippy::doc_lazy_continuation,
16 clippy::doc_overindented_list_items
17)]
18
19use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23pub struct BuilderAttributePublicV2Dto {
24 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub name: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub default: Option<serde_json::Value>,
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub unit: Option<String>,
35}
36
37#[derive(Debug, Clone, Default, Serialize, Deserialize)]
39pub struct BuilderCustomFlagsPublicV2Dto {
40 #[serde(rename = "layoutId", default, skip_serializing_if = "Option::is_none")]
42 pub layout_id: Option<serde_json::Value>,
43 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub theme: Option<String>,
46 #[serde(
49 rename = "socialElementType",
50 default,
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub social_element_type: Option<String>,
54}
55
56#[derive(Debug, Clone, Default, Serialize, Deserialize)]
58pub struct BuilderEditorContentPublicV2Dto {
59 #[serde(default, skip_serializing_if = "Vec::is_empty")]
61 pub elements: Vec<BuilderElementNodePublicV2Dto>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub attrs: Option<serde_json::Value>,
65 #[serde(
67 rename = "templateSettings",
68 default,
69 skip_serializing_if = "Option::is_none"
70 )]
71 pub template_settings: Option<serde_json::Value>,
72}
73
74#[derive(Debug, Clone, Default, Serialize, Deserialize)]
76pub struct BuilderElementNodePublicV2Dto {
77 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub id: Option<String>,
82 #[serde(rename = "tagName", default, skip_serializing_if = "Option::is_none")]
86 pub tag_name: Option<String>,
87 #[serde(default, skip_serializing_if = "Vec::is_empty")]
89 pub children: Vec<BuilderElementNodePublicV2Dto>,
90}
91
92#[derive(Debug, Clone, Default, Serialize, Deserialize)]
94pub struct BuilderNodeAttrsPublicV2Dto {
95 #[serde(rename = "tagName", default, skip_serializing_if = "Option::is_none")]
99 pub tag_name: Option<String>,
100 #[serde(default, skip_serializing_if = "Vec::is_empty")]
104 pub attributes: Vec<BuilderAttributePublicV2Dto>,
105 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub content: Option<String>,
108 #[serde(
110 rename = "customFlags",
111 default,
112 skip_serializing_if = "Option::is_none"
113 )]
114 pub custom_flags: Option<BuilderCustomFlagsPublicV2Dto>,
115}
116
117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
119pub struct BuilderUpdateSuccessfulDTO {
120 #[serde(default, skip_serializing_if = "Option::is_none")]
122 pub ok: Option<String>,
123 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
125 pub trace_id: Option<String>,
126 #[serde(
128 rename = "previewUrl",
129 default,
130 skip_serializing_if = "Option::is_none"
131 )]
132 pub preview_url: Option<String>,
133 #[serde(
135 rename = "templateDownloadUrl",
136 default,
137 skip_serializing_if = "Option::is_none"
138 )]
139 pub template_download_url: Option<String>,
140 #[serde(rename = "versionId", default, skip_serializing_if = "Option::is_none")]
142 pub version_id: Option<String>,
143}
144
145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
147pub struct BulkActionCampaignDto {
148 #[serde(default, skip_serializing_if = "Option::is_none")]
152 pub id: Option<String>,
153 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub name: Option<String>,
158 #[serde(default, skip_serializing_if = "Option::is_none")]
163 pub status: Option<String>,
164 #[serde(
168 rename = "scheduleType",
169 default,
170 skip_serializing_if = "Option::is_none"
171 )]
172 pub schedule_type: Option<String>,
173 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
177 pub created_by: Option<String>,
178 #[serde(default, skip_serializing_if = "Option::is_none")]
182 pub deleted: Option<bool>,
183 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
187 pub created_at: Option<String>,
188 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
192 pub updated_at: Option<String>,
193 #[serde(
195 rename = "completedAt",
196 default,
197 skip_serializing_if = "Option::is_none"
198 )]
199 pub completed_at: Option<String>,
200 #[serde(
202 rename = "emailMetadata",
203 default,
204 skip_serializing_if = "Option::is_none"
205 )]
206 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
207}
208
209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
211pub struct BulkActionCampaignEmailDetailsDto {
212 #[serde(default, skip_serializing_if = "Option::is_none")]
214 pub subject: Option<String>,
215 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
217 pub from_: Option<String>,
218 #[serde(default, skip_serializing_if = "Option::is_none")]
220 pub name: Option<String>,
221 #[serde(
223 rename = "templateId",
224 default,
225 skip_serializing_if = "Option::is_none"
226 )]
227 pub template_id: Option<String>,
228}
229
230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
232pub struct BulkActionCampaignPublicV2Dto {
233 #[serde(default, skip_serializing_if = "Option::is_none")]
237 pub id: Option<String>,
238 #[serde(default, skip_serializing_if = "Option::is_none")]
240 pub source: Option<String>,
241 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
243 pub source_id: Option<String>,
244 #[serde(default, skip_serializing_if = "Option::is_none")]
246 pub name: Option<String>,
247 #[serde(default, skip_serializing_if = "Option::is_none")]
252 pub status: Option<String>,
253 #[serde(
256 rename = "scheduleType",
257 default,
258 skip_serializing_if = "Option::is_none"
259 )]
260 pub schedule_type: Option<String>,
261 #[serde(default, skip_serializing_if = "Option::is_none")]
265 pub deleted: Option<bool>,
266 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
270 pub created_at: Option<String>,
271 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
275 pub updated_at: Option<String>,
276 #[serde(
278 rename = "completedAt",
279 default,
280 skip_serializing_if = "Option::is_none"
281 )]
282 pub completed_at: Option<String>,
283 #[serde(
285 rename = "emailMetadata",
286 default,
287 skip_serializing_if = "Option::is_none"
288 )]
289 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
290}
291
292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
294pub struct CreateBuilderDto {
295 #[serde(
298 rename = "locationId",
299 default,
300 skip_serializing_if = "Option::is_none"
301 )]
302 pub location_id: Option<String>,
303 #[serde(default, skip_serializing_if = "Option::is_none")]
304 pub title: Option<String>,
305 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
310 pub type_: Option<String>,
311 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
312 pub updated_by: Option<String>,
313 #[serde(
315 rename = "builderVersion",
316 default,
317 skip_serializing_if = "Option::is_none"
318 )]
319 pub builder_version: Option<String>,
320 #[serde(default, skip_serializing_if = "Option::is_none")]
321 pub name: Option<String>,
322 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
323 pub parent_id: Option<String>,
324 #[serde(
325 rename = "templateDataUrl",
326 default,
327 skip_serializing_if = "Option::is_none"
328 )]
329 pub template_data_url: Option<String>,
330 #[serde(
335 rename = "importProvider",
336 default,
337 skip_serializing_if = "Option::is_none"
338 )]
339 pub import_provider: Option<String>,
340 #[serde(rename = "importURL", default, skip_serializing_if = "Option::is_none")]
341 pub import_url: Option<String>,
342 #[serde(
343 rename = "templateSource",
344 default,
345 skip_serializing_if = "Option::is_none"
346 )]
347 pub template_source: Option<String>,
348 #[serde(
349 rename = "isPlainText",
350 default,
351 skip_serializing_if = "Option::is_none"
352 )]
353 pub is_plain_text: Option<bool>,
354 #[serde(
355 rename = "subjectLine",
356 default,
357 skip_serializing_if = "Option::is_none"
358 )]
359 pub subject_line: Option<String>,
360 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
361 pub from_name: Option<String>,
362 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
363 pub from_email: Option<String>,
364 #[serde(
365 rename = "previewText",
366 default,
367 skip_serializing_if = "Option::is_none"
368 )]
369 pub preview_text: Option<String>,
370}
371
372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
374pub struct CreateBuilderSuccesfulResponseDto {
375 #[serde(default, skip_serializing_if = "Option::is_none")]
379 pub redirect: Option<String>,
380 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
384 pub trace_id: Option<String>,
385}
386
387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
389pub struct CreateEmailCampaignPublicV2BodyDto {
390 pub name: String,
393 #[serde(rename = "editorType")]
398 pub editor_type: String,
399 #[serde(
402 rename = "templateId",
403 default,
404 skip_serializing_if = "Option::is_none"
405 )]
406 pub template_id: Option<String>,
407 #[serde(
410 rename = "editorContent",
411 default,
412 skip_serializing_if = "Option::is_none"
413 )]
414 pub editor_content: Option<String>,
415 #[serde(
417 rename = "parentFolderId",
418 default,
419 skip_serializing_if = "Option::is_none"
420 )]
421 pub parent_folder_id: Option<String>,
422 #[serde(rename = "timeZone")]
425 pub time_zone: String,
426 #[serde(rename = "userId")]
429 pub user_id: String,
430 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
432 pub user_name: Option<String>,
433}
434
435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
437pub struct CreateEmailCampaignPublicV2ResponseDto {
438 #[serde(default, skip_serializing_if = "Option::is_none")]
442 pub id: Option<String>,
443 #[serde(default, skip_serializing_if = "Option::is_none")]
445 pub source: Option<String>,
446 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
448 pub source_id: Option<String>,
449 #[serde(default, skip_serializing_if = "Option::is_none")]
451 pub name: Option<String>,
452 #[serde(default, skip_serializing_if = "Option::is_none")]
456 pub status: Option<String>,
457 #[serde(
459 rename = "campaignType",
460 default,
461 skip_serializing_if = "Option::is_none"
462 )]
463 pub campaign_type: Option<String>,
464 #[serde(
466 rename = "campaignCategory",
467 default,
468 skip_serializing_if = "Option::is_none"
469 )]
470 pub campaign_category: Option<String>,
471 #[serde(default, skip_serializing_if = "Vec::is_empty")]
473 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
474 #[serde(default, skip_serializing_if = "Option::is_none")]
478 pub deleted: Option<bool>,
479 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
483 pub created_at: Option<String>,
484 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
488 pub updated_at: Option<String>,
489 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
491 pub trace_id: Option<String>,
492}
493
494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
496pub struct CreateTemplateFolderPublicV2BodyDto {
497 pub name: String,
500 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
502 pub user_id: Option<String>,
503}
504
505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
507pub struct CreateTemplateFolderPublicV2ResponseDto {
508 #[serde(default, skip_serializing_if = "Option::is_none")]
512 pub id: Option<String>,
513 #[serde(default, skip_serializing_if = "Option::is_none")]
517 pub name: Option<String>,
518 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
520 pub created_at: Option<String>,
521 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
523 pub updated_at: Option<String>,
524 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
526 pub trace_id: Option<String>,
527}
528
529#[derive(Debug, Clone, Default, Serialize, Deserialize)]
531pub struct CreateTemplatePublicV2BodyDto {
532 pub name: String,
535 #[serde(rename = "editorType")]
540 pub editor_type: String,
541 #[serde(
543 rename = "editorContent",
544 default,
545 skip_serializing_if = "Option::is_none"
546 )]
547 pub editor_content: Option<String>,
548 #[serde(
550 rename = "parentFolderId",
551 default,
552 skip_serializing_if = "Option::is_none"
553 )]
554 pub parent_folder_id: Option<String>,
555 #[serde(
557 rename = "subjectLine",
558 default,
559 skip_serializing_if = "Option::is_none"
560 )]
561 pub subject_line: Option<String>,
562 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
564 pub from_name: Option<String>,
565 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
567 pub from_email: Option<String>,
568 #[serde(
570 rename = "previewText",
571 default,
572 skip_serializing_if = "Option::is_none"
573 )]
574 pub preview_text: Option<String>,
575 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
577 pub user_id: Option<String>,
578}
579
580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
582pub struct CreateTemplatePublicV2ResponseDto {
583 #[serde(default, skip_serializing_if = "Option::is_none")]
587 pub id: Option<String>,
588 #[serde(default, skip_serializing_if = "Option::is_none")]
592 pub name: Option<String>,
593 #[serde(
598 rename = "editorType",
599 default,
600 skip_serializing_if = "Option::is_none"
601 )]
602 pub editor_type: Option<String>,
603 #[serde(
607 rename = "isPlainText",
608 default,
609 skip_serializing_if = "Option::is_none"
610 )]
611 pub is_plain_text: Option<bool>,
612 #[serde(
614 rename = "parentFolderId",
615 default,
616 skip_serializing_if = "Option::is_none"
617 )]
618 pub parent_folder_id: Option<String>,
619 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
621 pub from_name: Option<String>,
622 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
624 pub from_email: Option<String>,
625 #[serde(
627 rename = "subjectLine",
628 default,
629 skip_serializing_if = "Option::is_none"
630 )]
631 pub subject_line: Option<String>,
632 #[serde(
634 rename = "previewText",
635 default,
636 skip_serializing_if = "Option::is_none"
637 )]
638 pub preview_text: Option<String>,
639 #[serde(
641 rename = "previewUrl",
642 default,
643 skip_serializing_if = "Option::is_none"
644 )]
645 pub preview_url: Option<String>,
646 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
648 pub created_at: Option<String>,
649 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
651 pub updated_at: Option<String>,
652 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
654 pub trace_id: Option<String>,
655}
656
657#[derive(Debug, Clone, Default, Serialize, Deserialize)]
659pub struct DeleteBuilderSuccesfulResponseDto {
660 #[serde(default, skip_serializing_if = "Option::is_none")]
662 pub ok: Option<String>,
663 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
665 pub trace_id: Option<String>,
666}
667
668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
670pub struct DeleteCampaignPublicV2ResponseDto {
671 #[serde(default, skip_serializing_if = "Option::is_none")]
675 pub deleted: Option<bool>,
676 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
678 pub trace_id: Option<String>,
679}
680
681#[derive(Debug, Clone, Default, Serialize, Deserialize)]
683pub struct DeleteTemplatePublicV2ResponseDto {
684 #[serde(default, skip_serializing_if = "Option::is_none")]
688 pub deleted: Option<bool>,
689 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
691 pub trace_id: Option<String>,
692}
693
694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
696pub struct EmailCampaignPublicV2Dto {
697 #[serde(default, skip_serializing_if = "Option::is_none")]
701 pub id: Option<String>,
702 #[serde(default, skip_serializing_if = "Option::is_none")]
704 pub source: Option<String>,
705 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
707 pub source_id: Option<String>,
708 #[serde(default, skip_serializing_if = "Option::is_none")]
710 pub name: Option<String>,
711 #[serde(default, skip_serializing_if = "Option::is_none")]
715 pub status: Option<String>,
716 #[serde(
718 rename = "campaignType",
719 default,
720 skip_serializing_if = "Option::is_none"
721 )]
722 pub campaign_type: Option<String>,
723 #[serde(
725 rename = "campaignCategory",
726 default,
727 skip_serializing_if = "Option::is_none"
728 )]
729 pub campaign_category: Option<String>,
730 #[serde(default, skip_serializing_if = "Vec::is_empty")]
732 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
733 #[serde(default, skip_serializing_if = "Option::is_none")]
737 pub deleted: Option<bool>,
738 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
742 pub created_at: Option<String>,
743 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
747 pub updated_at: Option<String>,
748}
749
750#[derive(Debug, Clone, Default, Serialize, Deserialize)]
752pub struct EmailCampaignVariationPublicV2Dto {
753 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
757 pub source_id: Option<String>,
758 #[serde(rename = "isWinner", default, skip_serializing_if = "Option::is_none")]
762 pub is_winner: Option<bool>,
763}
764
765#[derive(Debug, Clone, Default, Serialize, Deserialize)]
767pub struct EmailStatsNumbersDto {
768 #[serde(default, skip_serializing_if = "Option::is_none")]
772 pub delivered: Option<f64>,
773 #[serde(default, skip_serializing_if = "Option::is_none")]
777 pub opened: Option<f64>,
778 #[serde(default, skip_serializing_if = "Option::is_none")]
782 pub clicked: Option<f64>,
783 #[serde(default, skip_serializing_if = "Option::is_none")]
787 pub unsubscribed: Option<f64>,
788 #[serde(default, skip_serializing_if = "Option::is_none")]
792 pub complained: Option<f64>,
793 #[serde(
797 rename = "permanentFail",
798 default,
799 skip_serializing_if = "Option::is_none"
800 )]
801 pub permanent_fail: Option<f64>,
802 #[serde(
806 rename = "temporaryFail",
807 default,
808 skip_serializing_if = "Option::is_none"
809 )]
810 pub temporary_fail: Option<f64>,
811 #[serde(default, skip_serializing_if = "Option::is_none")]
815 pub rejected: Option<f64>,
816 #[serde(default, skip_serializing_if = "Option::is_none")]
820 pub failed: Option<f64>,
821 #[serde(default, skip_serializing_if = "Option::is_none")]
825 pub replied: Option<f64>,
826}
827
828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
830pub struct EmailStatsNumbersPublicV2Dto {
831 #[serde(default, skip_serializing_if = "Option::is_none")]
835 pub sent: Option<f64>,
836 #[serde(default, skip_serializing_if = "Option::is_none")]
840 pub accepted: Option<f64>,
841 #[serde(default, skip_serializing_if = "Option::is_none")]
845 pub delivered: Option<f64>,
846 #[serde(default, skip_serializing_if = "Option::is_none")]
850 pub opened: Option<f64>,
851 #[serde(default, skip_serializing_if = "Option::is_none")]
855 pub clicked: Option<f64>,
856 #[serde(default, skip_serializing_if = "Option::is_none")]
860 pub unsubscribed: Option<f64>,
861 #[serde(default, skip_serializing_if = "Option::is_none")]
865 pub complained: Option<f64>,
866 #[serde(
870 rename = "permanentFail",
871 default,
872 skip_serializing_if = "Option::is_none"
873 )]
874 pub permanent_fail: Option<f64>,
875 #[serde(
879 rename = "temporaryFail",
880 default,
881 skip_serializing_if = "Option::is_none"
882 )]
883 pub temporary_fail: Option<f64>,
884 #[serde(default, skip_serializing_if = "Option::is_none")]
888 pub rejected: Option<f64>,
889 #[serde(default, skip_serializing_if = "Option::is_none")]
893 pub failed: Option<f64>,
894 #[serde(default, skip_serializing_if = "Option::is_none")]
898 pub replied: Option<f64>,
899 #[serde(rename = "openRate", default, skip_serializing_if = "Option::is_none")]
903 pub open_rate: Option<f64>,
904 #[serde(rename = "clickRate", default, skip_serializing_if = "Option::is_none")]
908 pub click_rate: Option<f64>,
909 #[serde(
913 rename = "unsubscribeRate",
914 default,
915 skip_serializing_if = "Option::is_none"
916 )]
917 pub unsubscribe_rate: Option<f64>,
918 #[serde(
922 rename = "complaintRate",
923 default,
924 skip_serializing_if = "Option::is_none"
925 )]
926 pub complaint_rate: Option<f64>,
927 #[serde(
931 rename = "bounceRate",
932 default,
933 skip_serializing_if = "Option::is_none"
934 )]
935 pub bounce_rate: Option<f64>,
936 #[serde(rename = "replyRate", default, skip_serializing_if = "Option::is_none")]
940 pub reply_rate: Option<f64>,
941}
942
943#[derive(Debug, Clone, Default, Serialize, Deserialize)]
945pub struct FetchBuilderSuccesfulResponseDto {
946 #[serde(default, skip_serializing_if = "Option::is_none")]
948 pub name: Option<String>,
949 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
951 pub updated_by: Option<String>,
952 #[serde(
954 rename = "isPlainText",
955 default,
956 skip_serializing_if = "Option::is_none"
957 )]
958 pub is_plain_text: Option<bool>,
959 #[serde(
961 rename = "lastUpdated",
962 default,
963 skip_serializing_if = "Option::is_none"
964 )]
965 pub last_updated: Option<String>,
966 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
968 pub date_added: Option<String>,
969 #[serde(
971 rename = "previewUrl",
972 default,
973 skip_serializing_if = "Option::is_none"
974 )]
975 pub preview_url: Option<String>,
976 #[serde(default, skip_serializing_if = "Option::is_none")]
978 pub id: Option<String>,
979 #[serde(default, skip_serializing_if = "Option::is_none")]
981 pub version: Option<String>,
982 #[serde(
984 rename = "templateType",
985 default,
986 skip_serializing_if = "Option::is_none"
987 )]
988 pub template_type: Option<String>,
989}
990
991#[derive(Debug, Clone, Default, Serialize, Deserialize)]
993pub struct GetBulkActionCampaignPublicV2ResponseDto {
994 #[serde(default, skip_serializing_if = "Option::is_none")]
998 pub id: Option<String>,
999 #[serde(default, skip_serializing_if = "Option::is_none")]
1001 pub source: Option<String>,
1002 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1004 pub source_id: Option<String>,
1005 #[serde(default, skip_serializing_if = "Option::is_none")]
1007 pub name: Option<String>,
1008 #[serde(default, skip_serializing_if = "Option::is_none")]
1013 pub status: Option<String>,
1014 #[serde(
1017 rename = "scheduleType",
1018 default,
1019 skip_serializing_if = "Option::is_none"
1020 )]
1021 pub schedule_type: Option<String>,
1022 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1024 pub from_name: Option<String>,
1025 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1027 pub from_email: Option<String>,
1028 #[serde(default, skip_serializing_if = "Option::is_none")]
1030 pub subject: Option<String>,
1031 #[serde(
1033 rename = "replyToAddress",
1034 default,
1035 skip_serializing_if = "Option::is_none"
1036 )]
1037 pub reply_to_address: Option<String>,
1038 #[serde(
1040 rename = "previewText",
1041 default,
1042 skip_serializing_if = "Option::is_none"
1043 )]
1044 pub preview_text: Option<String>,
1045 #[serde(
1048 rename = "editorType",
1049 default,
1050 skip_serializing_if = "Option::is_none"
1051 )]
1052 pub editor_type: Option<String>,
1053 #[serde(
1055 rename = "isPlainText",
1056 default,
1057 skip_serializing_if = "Option::is_none"
1058 )]
1059 pub is_plain_text: Option<bool>,
1060 #[serde(
1063 rename = "editorContentUrl",
1064 default,
1065 skip_serializing_if = "Option::is_none"
1066 )]
1067 pub editor_content_url: Option<String>,
1068 #[serde(default, skip_serializing_if = "Option::is_none")]
1072 pub deleted: Option<bool>,
1073 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1077 pub created_at: Option<String>,
1078 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1082 pub updated_at: Option<String>,
1083 #[serde(
1085 rename = "completedAt",
1086 default,
1087 skip_serializing_if = "Option::is_none"
1088 )]
1089 pub completed_at: Option<String>,
1090 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1092 pub trace_id: Option<String>,
1093}
1094
1095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1097pub struct GetBulkActionCampaignsResponseDto {
1098 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1102 pub campaigns: Vec<BulkActionCampaignDto>,
1103 #[serde(default, skip_serializing_if = "Option::is_none")]
1107 pub total: Option<f64>,
1108}
1109
1110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1112pub struct GetCampaignStatsPublicV2ResponseDto {
1113 #[serde(
1117 rename = "locationId",
1118 default,
1119 skip_serializing_if = "Option::is_none"
1120 )]
1121 pub location_id: Option<String>,
1122 #[serde(default, skip_serializing_if = "Option::is_none")]
1127 pub source: Option<String>,
1128 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1132 pub source_id: Option<String>,
1133 #[serde(
1135 rename = "subSourceId",
1136 default,
1137 skip_serializing_if = "Option::is_none"
1138 )]
1139 pub sub_source_id: Option<String>,
1140 #[serde(default, skip_serializing_if = "Option::is_none")]
1144 pub stats: Option<EmailStatsNumbersPublicV2Dto>,
1145 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1147 pub trace_id: Option<String>,
1148}
1149
1150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1152pub struct GetCampaignStatsResponseDto {
1153 #[serde(
1157 rename = "locationId",
1158 default,
1159 skip_serializing_if = "Option::is_none"
1160 )]
1161 pub location_id: Option<String>,
1162 #[serde(default, skip_serializing_if = "Option::is_none")]
1167 pub source: Option<String>,
1168 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1172 pub source_id: Option<String>,
1173 #[serde(
1175 rename = "subSourceId",
1176 default,
1177 skip_serializing_if = "Option::is_none"
1178 )]
1179 pub sub_source_id: Option<String>,
1180 #[serde(default, skip_serializing_if = "Option::is_none")]
1184 pub stats: Option<EmailStatsNumbersDto>,
1185}
1186
1187#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1189pub struct GetEmailCampaignPublicV2ResponseDto {
1190 #[serde(default, skip_serializing_if = "Option::is_none")]
1194 pub id: Option<String>,
1195 #[serde(default, skip_serializing_if = "Option::is_none")]
1197 pub source: Option<String>,
1198 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1200 pub source_id: Option<String>,
1201 #[serde(default, skip_serializing_if = "Option::is_none")]
1203 pub name: Option<String>,
1204 #[serde(default, skip_serializing_if = "Option::is_none")]
1208 pub status: Option<String>,
1209 #[serde(
1211 rename = "campaignType",
1212 default,
1213 skip_serializing_if = "Option::is_none"
1214 )]
1215 pub campaign_type: Option<String>,
1216 #[serde(
1218 rename = "campaignCategory",
1219 default,
1220 skip_serializing_if = "Option::is_none"
1221 )]
1222 pub campaign_category: Option<String>,
1223 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1225 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
1226 #[serde(
1229 rename = "editorType",
1230 default,
1231 skip_serializing_if = "Option::is_none"
1232 )]
1233 pub editor_type: Option<String>,
1234 #[serde(
1236 rename = "isPlainText",
1237 default,
1238 skip_serializing_if = "Option::is_none"
1239 )]
1240 pub is_plain_text: Option<bool>,
1241 #[serde(
1244 rename = "editorContentUrl",
1245 default,
1246 skip_serializing_if = "Option::is_none"
1247 )]
1248 pub editor_content_url: Option<String>,
1249 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1251 pub from_name: Option<String>,
1252 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1254 pub from_email: Option<String>,
1255 #[serde(default, skip_serializing_if = "Option::is_none")]
1257 pub subject: Option<String>,
1258 #[serde(
1260 rename = "replyToAddress",
1261 default,
1262 skip_serializing_if = "Option::is_none"
1263 )]
1264 pub reply_to_address: Option<String>,
1265 #[serde(
1267 rename = "previewText",
1268 default,
1269 skip_serializing_if = "Option::is_none"
1270 )]
1271 pub preview_text: Option<String>,
1272 #[serde(default, skip_serializing_if = "Option::is_none")]
1276 pub deleted: Option<bool>,
1277 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1281 pub created_at: Option<String>,
1282 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1286 pub updated_at: Option<String>,
1287 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1289 pub trace_id: Option<String>,
1290}
1291
1292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1294pub struct GetTemplatePublicV2ResponseDto {
1295 #[serde(default, skip_serializing_if = "Option::is_none")]
1299 pub id: Option<String>,
1300 #[serde(default, skip_serializing_if = "Option::is_none")]
1304 pub name: Option<String>,
1305 #[serde(
1310 rename = "editorType",
1311 default,
1312 skip_serializing_if = "Option::is_none"
1313 )]
1314 pub editor_type: Option<String>,
1315 #[serde(
1319 rename = "isPlainText",
1320 default,
1321 skip_serializing_if = "Option::is_none"
1322 )]
1323 pub is_plain_text: Option<bool>,
1324 #[serde(
1326 rename = "parentFolderId",
1327 default,
1328 skip_serializing_if = "Option::is_none"
1329 )]
1330 pub parent_folder_id: Option<String>,
1331 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1333 pub from_name: Option<String>,
1334 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1336 pub from_email: Option<String>,
1337 #[serde(default, skip_serializing_if = "Option::is_none")]
1339 pub subject: Option<String>,
1340 #[serde(
1342 rename = "previewText",
1343 default,
1344 skip_serializing_if = "Option::is_none"
1345 )]
1346 pub preview_text: Option<String>,
1347 #[serde(
1350 rename = "editorContentUrl",
1351 default,
1352 skip_serializing_if = "Option::is_none"
1353 )]
1354 pub editor_content_url: Option<String>,
1355 #[serde(default, skip_serializing_if = "Option::is_none")]
1359 pub deleted: Option<bool>,
1360 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1362 pub created_at: Option<String>,
1363 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1365 pub updated_at: Option<String>,
1366 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1368 pub trace_id: Option<String>,
1369}
1370
1371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1373pub struct GetWorkflowCampaignPublicV2ResponseDto {
1374 #[serde(default, skip_serializing_if = "Option::is_none")]
1378 pub id: Option<String>,
1379 #[serde(default, skip_serializing_if = "Option::is_none")]
1381 pub name: Option<String>,
1382 #[serde(default, skip_serializing_if = "Option::is_none")]
1385 pub status: Option<String>,
1386 #[serde(default, skip_serializing_if = "Option::is_none")]
1388 pub source: Option<String>,
1389 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1391 pub source_id: Option<String>,
1392 #[serde(rename = "subSources", default, skip_serializing_if = "Vec::is_empty")]
1396 pub sub_sources: Vec<WorkflowCampaignSubSourcePublicV2Dto>,
1397 #[serde(default, skip_serializing_if = "Option::is_none")]
1399 pub deleted: Option<bool>,
1400 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1404 pub created_at: Option<String>,
1405 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1409 pub updated_at: Option<String>,
1410 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1412 pub trace_id: Option<String>,
1413}
1414
1415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1417pub struct GetWorkflowCampaignsPublicResponseDto {
1418 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1422 pub campaigns: Vec<WorkflowCampaignPublicDto>,
1423 #[serde(default, skip_serializing_if = "Option::is_none")]
1427 pub total: Option<f64>,
1428}
1429
1430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1432pub struct IBuilderJsonMapper {
1433 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1437 pub elements: Vec<String>,
1438 #[serde(default, skip_serializing_if = "Option::is_none")]
1442 pub attrs: Option<serde_json::Value>,
1443 #[serde(
1447 rename = "templateSettings",
1448 default,
1449 skip_serializing_if = "Option::is_none"
1450 )]
1451 pub template_settings: Option<TemplateSettings>,
1452}
1453
1454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1456pub struct ImportTemplatePublicV2BodyDto {
1457 #[serde(rename = "importProvider")]
1461 pub import_provider: String,
1462 #[serde(rename = "importUrl")]
1465 pub import_url: String,
1466 #[serde(default, skip_serializing_if = "Option::is_none")]
1468 pub name: Option<String>,
1469 #[serde(
1471 rename = "parentFolderId",
1472 default,
1473 skip_serializing_if = "Option::is_none"
1474 )]
1475 pub parent_folder_id: Option<String>,
1476 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
1478 pub user_id: Option<String>,
1479}
1480
1481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1483pub struct ImportTemplatePublicV2ResponseDto {
1484 #[serde(default, skip_serializing_if = "Option::is_none")]
1488 pub id: Option<String>,
1489 #[serde(default, skip_serializing_if = "Option::is_none")]
1493 pub name: Option<String>,
1494 #[serde(
1499 rename = "editorType",
1500 default,
1501 skip_serializing_if = "Option::is_none"
1502 )]
1503 pub editor_type: Option<String>,
1504 #[serde(
1508 rename = "isPlainText",
1509 default,
1510 skip_serializing_if = "Option::is_none"
1511 )]
1512 pub is_plain_text: Option<bool>,
1513 #[serde(
1515 rename = "parentFolderId",
1516 default,
1517 skip_serializing_if = "Option::is_none"
1518 )]
1519 pub parent_folder_id: Option<String>,
1520 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1522 pub from_name: Option<String>,
1523 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1525 pub from_email: Option<String>,
1526 #[serde(
1528 rename = "subjectLine",
1529 default,
1530 skip_serializing_if = "Option::is_none"
1531 )]
1532 pub subject_line: Option<String>,
1533 #[serde(
1535 rename = "previewText",
1536 default,
1537 skip_serializing_if = "Option::is_none"
1538 )]
1539 pub preview_text: Option<String>,
1540 #[serde(
1542 rename = "previewUrl",
1543 default,
1544 skip_serializing_if = "Option::is_none"
1545 )]
1546 pub preview_url: Option<String>,
1547 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1549 pub created_at: Option<String>,
1550 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1552 pub updated_at: Option<String>,
1553 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1555 pub trace_id: Option<String>,
1556}
1557
1558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1560pub struct InvalidLocationDTO {
1561 #[serde(
1563 rename = "statusCode",
1564 default,
1565 skip_serializing_if = "Option::is_none"
1566 )]
1567 pub status_code: Option<f64>,
1568 #[serde(default, skip_serializing_if = "Option::is_none")]
1570 pub message: Option<String>,
1571}
1572
1573#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1575pub struct ListBulkActionCampaignsPublicV2ResponseDto {
1576 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1580 pub campaigns: Vec<BulkActionCampaignPublicV2Dto>,
1581 #[serde(default, skip_serializing_if = "Option::is_none")]
1585 pub total: Option<f64>,
1586 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1588 pub trace_id: Option<String>,
1589}
1590
1591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1593pub struct ListEmailCampaignsPublicV2ResponseDto {
1594 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1598 pub campaigns: Vec<EmailCampaignPublicV2Dto>,
1599 #[serde(default, skip_serializing_if = "Option::is_none")]
1603 pub total: Option<f64>,
1604 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1606 pub trace_id: Option<String>,
1607}
1608
1609#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1611pub struct ListTemplatesPublicV2ResponseDto {
1612 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1616 pub items: Vec<TemplateListItemPublicV2Dto>,
1617 #[serde(default, skip_serializing_if = "Option::is_none")]
1621 pub total: Option<f64>,
1622 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1624 pub trace_id: Option<String>,
1625}
1626
1627#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1629pub struct ListWorkflowCampaignsPublicV2ResponseDto {
1630 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1634 pub campaigns: Vec<WorkflowCampaignPublicV2Dto>,
1635 #[serde(default, skip_serializing_if = "Option::is_none")]
1639 pub total: Option<f64>,
1640 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1642 pub trace_id: Option<String>,
1643}
1644
1645#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1647pub struct NotFoundDTO {
1648 #[serde(
1650 rename = "statusCode",
1651 default,
1652 skip_serializing_if = "Option::is_none"
1653 )]
1654 pub status_code: Option<f64>,
1655 #[serde(default, skip_serializing_if = "Option::is_none")]
1657 pub message: Option<String>,
1658 #[serde(default, skip_serializing_if = "Option::is_none")]
1660 pub error: Option<String>,
1661}
1662
1663#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1665pub struct SaveBuilderDataDto {
1666 #[serde(
1669 rename = "locationId",
1670 default,
1671 skip_serializing_if = "Option::is_none"
1672 )]
1673 pub location_id: Option<String>,
1674 #[serde(
1677 rename = "templateId",
1678 default,
1679 skip_serializing_if = "Option::is_none"
1680 )]
1681 pub template_id: Option<String>,
1682 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
1685 pub updated_by: Option<String>,
1686 #[serde(default, skip_serializing_if = "Option::is_none")]
1689 pub dnd: Option<IBuilderJsonMapper>,
1690 #[serde(default, skip_serializing_if = "Option::is_none")]
1693 pub html: Option<String>,
1694 #[serde(
1698 rename = "editorType",
1699 default,
1700 skip_serializing_if = "Option::is_none"
1701 )]
1702 pub editor_type: Option<String>,
1703 #[serde(
1704 rename = "previewText",
1705 default,
1706 skip_serializing_if = "Option::is_none"
1707 )]
1708 pub preview_text: Option<String>,
1709 #[serde(
1710 rename = "isPlainText",
1711 default,
1712 skip_serializing_if = "Option::is_none"
1713 )]
1714 pub is_plain_text: Option<bool>,
1715 #[serde(
1717 rename = "usedEmailAI",
1718 default,
1719 skip_serializing_if = "Option::is_none"
1720 )]
1721 pub used_email_ai: Option<bool>,
1722}
1723
1724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1726pub struct ScheduleCampaignABTestConfigPublicV2Dto {
1727 #[serde(rename = "testType")]
1731 pub test_type: String,
1732 #[serde(rename = "testDuration")]
1735 pub test_duration: f64,
1736 #[serde(rename = "variationCount")]
1739 pub variation_count: f64,
1740 #[serde(rename = "testSize")]
1743 pub test_size: f64,
1744 #[serde(rename = "winningCriteria")]
1748 pub winning_criteria: String,
1749 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1752 pub variations: Vec<ScheduleCampaignABTestVariationPublicV2Dto>,
1753}
1754
1755#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1757pub struct ScheduleCampaignABTestVariationPublicV2Dto {
1758 #[serde(default, skip_serializing_if = "Option::is_none")]
1760 pub subject: Option<String>,
1761 #[serde(
1763 rename = "documentId",
1764 default,
1765 skip_serializing_if = "Option::is_none"
1766 )]
1767 pub document_id: Option<String>,
1768}
1769
1770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1772pub struct ScheduleCampaignBatchConfigPublicV2Dto {
1773 #[serde(rename = "batchSize")]
1776 pub batch_size: f64,
1777 pub interval: f64,
1780 #[serde(rename = "intervalUnit")]
1784 pub interval_unit: String,
1785 #[serde(rename = "skipDays", default, skip_serializing_if = "Vec::is_empty")]
1788 pub skip_days: Vec<String>,
1789 #[serde(
1791 rename = "windowStart",
1792 default,
1793 skip_serializing_if = "Option::is_none"
1794 )]
1795 pub window_start: Option<String>,
1796 #[serde(rename = "windowEnd", default, skip_serializing_if = "Option::is_none")]
1798 pub window_end: Option<String>,
1799}
1800
1801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1803pub struct ScheduleCampaignEmailMetaPublicV2Dto {
1804 pub subject: String,
1807 #[serde(rename = "fromName")]
1810 pub from_name: String,
1811 #[serde(rename = "fromEmail")]
1814 pub from_email: String,
1815 #[serde(
1817 rename = "replyToAddress",
1818 default,
1819 skip_serializing_if = "Option::is_none"
1820 )]
1821 pub reply_to_address: Option<String>,
1822 #[serde(
1824 rename = "previewText",
1825 default,
1826 skip_serializing_if = "Option::is_none"
1827 )]
1828 pub preview_text: Option<String>,
1829 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1831 pub attachments: Vec<String>,
1832}
1833
1834#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1836pub struct ScheduleCampaignPublicV2BodyDto {
1837 #[serde(rename = "scheduleType")]
1841 pub schedule_type: String,
1842 #[serde(rename = "timeZone")]
1845 pub time_zone: String,
1846 #[serde(rename = "userId")]
1849 pub user_id: String,
1850 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
1852 pub user_name: Option<String>,
1853 #[serde(rename = "emailMeta")]
1856 pub email_meta: ScheduleCampaignEmailMetaPublicV2Dto,
1857 pub recipients: ScheduleCampaignRecipientsPublicV2Dto,
1860 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
1863 pub send_days: Vec<String>,
1864 #[serde(
1867 rename = "scheduleConfig",
1868 default,
1869 skip_serializing_if = "Option::is_none"
1870 )]
1871 pub schedule_config: Option<ScheduleCampaignScheduleConfigPublicV2Dto>,
1872 #[serde(rename = "rssConfig", default, skip_serializing_if = "Option::is_none")]
1874 pub rss_config: Option<ScheduleCampaignRssConfigPublicV2Dto>,
1875 #[serde(
1877 rename = "abTestConfig",
1878 default,
1879 skip_serializing_if = "Option::is_none"
1880 )]
1881 pub ab_test_config: Option<ScheduleCampaignABTestConfigPublicV2Dto>,
1882}
1883
1884#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1886pub struct ScheduleCampaignPublicV2ResponseDto {
1887 #[serde(
1891 rename = "campaignId",
1892 default,
1893 skip_serializing_if = "Option::is_none"
1894 )]
1895 pub campaign_id: Option<String>,
1896 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1900 pub source_id: Option<String>,
1901 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1903 pub trace_id: Option<String>,
1904}
1905
1906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1908pub struct ScheduleCampaignRecipientsPublicV2Dto {
1909 #[serde(rename = "type")]
1913 pub type_: String,
1914 #[serde(rename = "contactIds", default, skip_serializing_if = "Vec::is_empty")]
1916 pub contact_ids: Vec<String>,
1917 #[serde(rename = "tagIds", default, skip_serializing_if = "Vec::is_empty")]
1919 pub tag_ids: Vec<String>,
1920 #[serde(default, skip_serializing_if = "Option::is_none")]
1924 pub segment: Option<String>,
1925 #[serde(
1927 rename = "freezeList",
1928 default,
1929 skip_serializing_if = "Option::is_none"
1930 )]
1931 pub freeze_list: Option<bool>,
1932}
1933
1934#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1936pub struct ScheduleCampaignResendPublicV2Dto {
1937 #[serde(default, skip_serializing_if = "Option::is_none")]
1939 pub enabled: Option<bool>,
1940 #[serde(rename = "waitHours", default, skip_serializing_if = "Option::is_none")]
1942 pub wait_hours: Option<f64>,
1943 #[serde(default, skip_serializing_if = "Option::is_none")]
1945 pub subject: Option<String>,
1946}
1947
1948#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1950pub struct ScheduleCampaignRssConfigPublicV2Dto {
1951 pub name: String,
1954 #[serde(rename = "rssFeedURL")]
1957 pub rss_feed_url: String,
1958 #[serde(rename = "repeatAfter")]
1962 pub repeat_after: String,
1963 #[serde(rename = "repeatAfterTime")]
1966 pub repeat_after_time: String,
1967 #[serde(
1969 rename = "rssFeedLimit",
1970 default,
1971 skip_serializing_if = "Option::is_none"
1972 )]
1973 pub rss_feed_limit: Option<f64>,
1974 #[serde(
1978 rename = "startAtDay",
1979 default,
1980 skip_serializing_if = "Option::is_none"
1981 )]
1982 pub start_at_day: Option<String>,
1983 #[serde(
1985 rename = "startAtMonthDay",
1986 default,
1987 skip_serializing_if = "Option::is_none"
1988 )]
1989 pub start_at_month_day: Option<String>,
1990 #[serde(
1992 rename = "firstExecutionDate",
1993 default,
1994 skip_serializing_if = "Option::is_none"
1995 )]
1996 pub first_execution_date: Option<String>,
1997}
1998
1999#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2001pub struct ScheduleCampaignScheduleConfigPublicV2Dto {
2002 #[serde(rename = "sendAt", default, skip_serializing_if = "Option::is_none")]
2004 pub send_at: Option<String>,
2005 #[serde(default, skip_serializing_if = "Option::is_none")]
2007 pub batch: Option<ScheduleCampaignBatchConfigPublicV2Dto>,
2008 #[serde(default, skip_serializing_if = "Option::is_none")]
2010 pub tracking: Option<ScheduleCampaignTrackingPublicV2Dto>,
2011 #[serde(default, skip_serializing_if = "Option::is_none")]
2013 pub resend: Option<ScheduleCampaignResendPublicV2Dto>,
2014 #[serde(
2016 rename = "emailPreferenceId",
2017 default,
2018 skip_serializing_if = "Option::is_none"
2019 )]
2020 pub email_preference_id: Option<String>,
2021}
2022
2023#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2025pub struct ScheduleCampaignTrackingPublicV2Dto {
2026 #[serde(
2028 rename = "clickTracking",
2029 default,
2030 skip_serializing_if = "Option::is_none"
2031 )]
2032 pub click_tracking: Option<bool>,
2033 #[serde(
2035 rename = "utmTracking",
2036 default,
2037 skip_serializing_if = "Option::is_none"
2038 )]
2039 pub utm_tracking: Option<bool>,
2040}
2041
2042#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2044pub struct ScheduleDto {
2045 #[serde(default, skip_serializing_if = "Option::is_none")]
2048 pub name: Option<String>,
2049 #[serde(
2052 rename = "repeatAfter",
2053 default,
2054 skip_serializing_if = "Option::is_none"
2055 )]
2056 pub repeat_after: Option<String>,
2057 #[serde(default, skip_serializing_if = "Option::is_none")]
2060 pub id: Option<String>,
2061 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
2064 pub parent_id: Option<String>,
2065 #[serde(
2068 rename = "childCount",
2069 default,
2070 skip_serializing_if = "Option::is_none"
2071 )]
2072 pub child_count: Option<f64>,
2073 #[serde(
2076 rename = "campaignType",
2077 default,
2078 skip_serializing_if = "Option::is_none"
2079 )]
2080 pub campaign_type: Option<String>,
2081 #[serde(
2084 rename = "bulkActionVersion",
2085 default,
2086 skip_serializing_if = "Option::is_none"
2087 )]
2088 pub bulk_action_version: Option<String>,
2089 #[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
2092 pub id_alt: Option<String>,
2093 #[serde(default, skip_serializing_if = "Option::is_none")]
2096 pub status: Option<String>,
2097 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
2100 pub send_days: Vec<String>,
2101 #[serde(default, skip_serializing_if = "Option::is_none")]
2104 pub deleted: Option<bool>,
2105 #[serde(default, skip_serializing_if = "Option::is_none")]
2108 pub migrated: Option<bool>,
2109 #[serde(default, skip_serializing_if = "Option::is_none")]
2112 pub archived: Option<bool>,
2113 #[serde(
2116 rename = "hasTracking",
2117 default,
2118 skip_serializing_if = "Option::is_none"
2119 )]
2120 pub has_tracking: Option<bool>,
2121 #[serde(
2124 rename = "isPlainText",
2125 default,
2126 skip_serializing_if = "Option::is_none"
2127 )]
2128 pub is_plain_text: Option<bool>,
2129 #[serde(
2132 rename = "hasUtmTracking",
2133 default,
2134 skip_serializing_if = "Option::is_none"
2135 )]
2136 pub has_utm_tracking: Option<bool>,
2137 #[serde(
2140 rename = "enableResendToUnopened",
2141 default,
2142 skip_serializing_if = "Option::is_none"
2143 )]
2144 pub enable_resend_to_unopened: Option<bool>,
2145 #[serde(
2148 rename = "locationId",
2149 default,
2150 skip_serializing_if = "Option::is_none"
2151 )]
2152 pub location_id: Option<String>,
2153 #[serde(
2156 rename = "templateId",
2157 default,
2158 skip_serializing_if = "Option::is_none"
2159 )]
2160 pub template_id: Option<String>,
2161 #[serde(
2164 rename = "templateType",
2165 default,
2166 skip_serializing_if = "Option::is_none"
2167 )]
2168 pub template_type: Option<String>,
2169 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2172 pub created_at: Option<String>,
2173 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2176 pub updated_at: Option<String>,
2177 #[serde(rename = "__v", default, skip_serializing_if = "Option::is_none")]
2180 pub v: Option<f64>,
2181 #[serde(
2184 rename = "documentId",
2185 default,
2186 skip_serializing_if = "Option::is_none"
2187 )]
2188 pub document_id: Option<String>,
2189 #[serde(
2192 rename = "downloadUrl",
2193 default,
2194 skip_serializing_if = "Option::is_none"
2195 )]
2196 pub download_url: Option<String>,
2197 #[serde(
2200 rename = "templateDataDownloadUrl",
2201 default,
2202 skip_serializing_if = "Option::is_none"
2203 )]
2204 pub template_data_download_url: Option<String>,
2205 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2208 pub child: Vec<String>,
2209}
2210
2211#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2213pub struct ScheduleFetchSuccessfulDTO {
2214 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2218 pub schedules: Vec<ScheduleDto>,
2219 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2223 pub total: Vec<String>,
2224 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2228 pub trace_id: Option<String>,
2229}
2230
2231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2233pub struct TemplateListItemPublicV2Dto {
2234 #[serde(default, skip_serializing_if = "Option::is_none")]
2238 pub id: Option<String>,
2239 #[serde(default, skip_serializing_if = "Option::is_none")]
2243 pub name: Option<String>,
2244 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
2249 pub type_: Option<String>,
2250 #[serde(
2252 rename = "isPlainText",
2253 default,
2254 skip_serializing_if = "Option::is_none"
2255 )]
2256 pub is_plain_text: Option<bool>,
2257 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2259 pub updated_at: Option<String>,
2260 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2262 pub created_at: Option<String>,
2263 #[serde(
2265 rename = "previewUrl",
2266 default,
2267 skip_serializing_if = "Option::is_none"
2268 )]
2269 pub preview_url: Option<String>,
2270 #[serde(
2273 rename = "editorType",
2274 default,
2275 skip_serializing_if = "Option::is_none"
2276 )]
2277 pub editor_type: Option<String>,
2278 #[serde(
2280 rename = "childCount",
2281 default,
2282 skip_serializing_if = "Option::is_none"
2283 )]
2284 pub child_count: Option<f64>,
2285 #[serde(
2287 rename = "hasChildren",
2288 default,
2289 skip_serializing_if = "Option::is_none"
2290 )]
2291 pub has_children: Option<bool>,
2292 #[serde(
2294 rename = "parentFolderId",
2295 default,
2296 skip_serializing_if = "Option::is_none"
2297 )]
2298 pub parent_folder_id: Option<String>,
2299}
2300
2301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2303pub struct TemplateSettings {
2304 #[serde(flatten)]
2306 pub extra: serde_json::Map<String, serde_json::Value>,
2307}
2308
2309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2311pub struct UpdateEmailCampaignPublicV2BodyDto {
2312 #[serde(default, skip_serializing_if = "Option::is_none")]
2314 pub name: Option<String>,
2315 #[serde(
2318 rename = "editorContent",
2319 default,
2320 skip_serializing_if = "Option::is_none"
2321 )]
2322 pub editor_content: Option<String>,
2323 #[serde(
2327 rename = "editorType",
2328 default,
2329 skip_serializing_if = "Option::is_none"
2330 )]
2331 pub editor_type: Option<String>,
2332 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2334 pub user_id: Option<String>,
2335}
2336
2337#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2339pub struct UpdateEmailCampaignPublicV2ResponseDto {
2340 #[serde(default, skip_serializing_if = "Option::is_none")]
2344 pub id: Option<String>,
2345 #[serde(default, skip_serializing_if = "Option::is_none")]
2347 pub source: Option<String>,
2348 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
2350 pub source_id: Option<String>,
2351 #[serde(default, skip_serializing_if = "Option::is_none")]
2353 pub name: Option<String>,
2354 #[serde(default, skip_serializing_if = "Option::is_none")]
2358 pub status: Option<String>,
2359 #[serde(
2361 rename = "campaignType",
2362 default,
2363 skip_serializing_if = "Option::is_none"
2364 )]
2365 pub campaign_type: Option<String>,
2366 #[serde(
2368 rename = "campaignCategory",
2369 default,
2370 skip_serializing_if = "Option::is_none"
2371 )]
2372 pub campaign_category: Option<String>,
2373 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2375 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
2376 #[serde(default, skip_serializing_if = "Option::is_none")]
2380 pub deleted: Option<bool>,
2381 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2385 pub created_at: Option<String>,
2386 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2390 pub updated_at: Option<String>,
2391 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2393 pub trace_id: Option<String>,
2394}
2395
2396#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2398pub struct UpdateEmailTemplateDto {
2399 #[serde(
2403 rename = "locationId",
2404 default,
2405 skip_serializing_if = "Option::is_none"
2406 )]
2407 pub location_id: Option<String>,
2408 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
2410 pub updated_by: Option<String>,
2411 #[serde(
2417 rename = "editorContent",
2418 default,
2419 skip_serializing_if = "Option::is_none"
2420 )]
2421 pub editor_content: Option<serde_json::Value>,
2422 #[serde(
2427 rename = "editorType",
2428 default,
2429 skip_serializing_if = "Option::is_none"
2430 )]
2431 pub editor_type: Option<String>,
2432 #[serde(
2434 rename = "previewText",
2435 default,
2436 skip_serializing_if = "Option::is_none"
2437 )]
2438 pub preview_text: Option<String>,
2439 #[serde(
2441 rename = "subjectLine",
2442 default,
2443 skip_serializing_if = "Option::is_none"
2444 )]
2445 pub subject_line: Option<String>,
2446 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2448 pub from_name: Option<String>,
2449 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2451 pub from_email: Option<String>,
2452 #[serde(default, skip_serializing_if = "Option::is_none")]
2454 pub name: Option<String>,
2455 #[serde(default, skip_serializing_if = "Option::is_none")]
2457 pub archived: Option<bool>,
2458 #[serde(
2461 rename = "fieldDefaults",
2462 default,
2463 skip_serializing_if = "Option::is_none"
2464 )]
2465 pub field_defaults: Option<serde_json::Value>,
2466}
2467
2468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2470pub struct UpdateEmailTemplateResponseDto {
2471 #[serde(default, skip_serializing_if = "Option::is_none")]
2475 pub ok: Option<bool>,
2476 #[serde(default, skip_serializing_if = "Option::is_none")]
2480 pub id: Option<String>,
2481 #[serde(default, skip_serializing_if = "Option::is_none")]
2485 pub name: Option<String>,
2486 #[serde(default, skip_serializing_if = "Option::is_none")]
2490 pub archived: Option<bool>,
2491 #[serde(
2495 rename = "builderVersion",
2496 default,
2497 skip_serializing_if = "Option::is_none"
2498 )]
2499 pub builder_version: Option<String>,
2500 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2504 pub from_name: Option<String>,
2505 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2509 pub from_email: Option<String>,
2510 #[serde(
2514 rename = "subjectLine",
2515 default,
2516 skip_serializing_if = "Option::is_none"
2517 )]
2518 pub subject_line: Option<String>,
2519 #[serde(
2523 rename = "previewText",
2524 default,
2525 skip_serializing_if = "Option::is_none"
2526 )]
2527 pub preview_text: Option<String>,
2528 #[serde(
2532 rename = "previewUrl",
2533 default,
2534 skip_serializing_if = "Option::is_none"
2535 )]
2536 pub preview_url: Option<String>,
2537 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
2542 pub type_: Option<String>,
2543 #[serde(
2547 rename = "lastUpdated",
2548 default,
2549 skip_serializing_if = "Option::is_none"
2550 )]
2551 pub last_updated: Option<String>,
2552 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2556 pub created_at: Option<String>,
2557 #[serde(
2561 rename = "isPlainText",
2562 default,
2563 skip_serializing_if = "Option::is_none"
2564 )]
2565 pub is_plain_text: Option<bool>,
2566 #[serde(
2568 rename = "fieldDefaults",
2569 default,
2570 skip_serializing_if = "Option::is_none"
2571 )]
2572 pub field_defaults: Option<serde_json::Value>,
2573}
2574
2575#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2577pub struct UpdateTemplatePublicV2BodyDto {
2578 #[serde(default, skip_serializing_if = "Option::is_none")]
2580 pub name: Option<String>,
2581 #[serde(
2584 rename = "editorContent",
2585 default,
2586 skip_serializing_if = "Option::is_none"
2587 )]
2588 pub editor_content: Option<String>,
2589 #[serde(
2593 rename = "editorType",
2594 default,
2595 skip_serializing_if = "Option::is_none"
2596 )]
2597 pub editor_type: Option<String>,
2598 #[serde(
2600 rename = "previewText",
2601 default,
2602 skip_serializing_if = "Option::is_none"
2603 )]
2604 pub preview_text: Option<String>,
2605 #[serde(
2607 rename = "subjectLine",
2608 default,
2609 skip_serializing_if = "Option::is_none"
2610 )]
2611 pub subject_line: Option<String>,
2612 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2614 pub from_name: Option<String>,
2615 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2617 pub from_email: Option<String>,
2618 #[serde(default, skip_serializing_if = "Option::is_none")]
2620 pub archived: Option<bool>,
2621 #[serde(
2623 rename = "parentFolderId",
2624 default,
2625 skip_serializing_if = "Option::is_none"
2626 )]
2627 pub parent_folder_id: Option<String>,
2628 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2630 pub user_id: Option<String>,
2631}
2632
2633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2635pub struct UpdateTemplatePublicV2ResponseDto {
2636 #[serde(default, skip_serializing_if = "Option::is_none")]
2640 pub id: Option<String>,
2641 #[serde(default, skip_serializing_if = "Option::is_none")]
2645 pub name: Option<String>,
2646 #[serde(default, skip_serializing_if = "Option::is_none")]
2650 pub archived: Option<bool>,
2651 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2655 pub from_name: Option<String>,
2656 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2660 pub from_email: Option<String>,
2661 #[serde(
2665 rename = "subjectLine",
2666 default,
2667 skip_serializing_if = "Option::is_none"
2668 )]
2669 pub subject_line: Option<String>,
2670 #[serde(
2674 rename = "previewText",
2675 default,
2676 skip_serializing_if = "Option::is_none"
2677 )]
2678 pub preview_text: Option<String>,
2679 #[serde(
2683 rename = "previewUrl",
2684 default,
2685 skip_serializing_if = "Option::is_none"
2686 )]
2687 pub preview_url: Option<String>,
2688 #[serde(
2691 rename = "editorType",
2692 default,
2693 skip_serializing_if = "Option::is_none"
2694 )]
2695 pub editor_type: Option<String>,
2696 #[serde(
2698 rename = "isPlainText",
2699 default,
2700 skip_serializing_if = "Option::is_none"
2701 )]
2702 pub is_plain_text: Option<bool>,
2703 #[serde(
2705 rename = "parentFolderId",
2706 default,
2707 skip_serializing_if = "Option::is_none"
2708 )]
2709 pub parent_folder_id: Option<String>,
2710 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2712 pub updated_at: Option<String>,
2713 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2715 pub created_at: Option<String>,
2716 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2718 pub trace_id: Option<String>,
2719}
2720
2721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2723pub struct WorkflowCampaignPublicDto {
2724 #[serde(default, skip_serializing_if = "Option::is_none")]
2728 pub id: Option<String>,
2729 #[serde(default, skip_serializing_if = "Option::is_none")]
2733 pub name: Option<String>,
2734 #[serde(default, skip_serializing_if = "Option::is_none")]
2739 pub status: Option<String>,
2740 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
2744 pub source_id: Option<String>,
2745 #[serde(default, skip_serializing_if = "Option::is_none")]
2749 pub deleted: Option<bool>,
2750 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2754 pub created_at: Option<String>,
2755 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2759 pub updated_at: Option<String>,
2760}
2761
2762#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2764pub struct WorkflowCampaignPublicV2Dto {
2765 #[serde(default, skip_serializing_if = "Option::is_none")]
2769 pub id: Option<String>,
2770 #[serde(default, skip_serializing_if = "Option::is_none")]
2772 pub name: Option<String>,
2773 #[serde(default, skip_serializing_if = "Option::is_none")]
2776 pub status: Option<String>,
2777 #[serde(default, skip_serializing_if = "Option::is_none")]
2779 pub source: Option<String>,
2780 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
2782 pub source_id: Option<String>,
2783 #[serde(default, skip_serializing_if = "Option::is_none")]
2785 pub deleted: Option<bool>,
2786 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2790 pub created_at: Option<String>,
2791 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2795 pub updated_at: Option<String>,
2796}
2797
2798#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2800pub struct WorkflowCampaignSubSourcePublicV2Dto {
2801 #[serde(default, skip_serializing_if = "Option::is_none")]
2806 pub id: Option<String>,
2807 #[serde(default, skip_serializing_if = "Option::is_none")]
2809 pub name: Option<String>,
2810 #[serde(default, skip_serializing_if = "Option::is_none")]
2812 pub subject: Option<String>,
2813 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2815 pub from_name: Option<String>,
2816 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2818 pub from_email: Option<String>,
2819 #[serde(
2821 rename = "previewText",
2822 default,
2823 skip_serializing_if = "Option::is_none"
2824 )]
2825 pub preview_text: Option<String>,
2826 #[serde(
2829 rename = "editorType",
2830 default,
2831 skip_serializing_if = "Option::is_none"
2832 )]
2833 pub editor_type: Option<String>,
2834 #[serde(
2836 rename = "isPlainText",
2837 default,
2838 skip_serializing_if = "Option::is_none"
2839 )]
2840 pub is_plain_text: Option<bool>,
2841 #[serde(
2844 rename = "editorContentUrl",
2845 default,
2846 skip_serializing_if = "Option::is_none"
2847 )]
2848 pub editor_content_url: Option<String>,
2849 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2851 pub created_at: Option<String>,
2852 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2854 pub updated_at: Option<String>,
2855}