1#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8pub struct AccessCode {
9 #[prost(string, tag="1")]
11 pub id: ::prost::alloc::string::String,
12 #[prost(string, tag="2")]
15 pub code: ::prost::alloc::string::String,
16 #[prost(string, tag="3")]
19 pub label: ::prost::alloc::string::String,
20 #[prost(message, optional, tag="4")]
22 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
23 #[prost(message, optional, tag="5")]
25 pub redeemed_at: ::core::option::Option<::prost_types::Timestamp>,
26 #[prost(string, tag="6")]
28 pub redeemed_by: ::prost::alloc::string::String,
29 #[prost(message, optional, tag="7")]
31 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
32}
33#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
35pub struct GenerateAccessCodesRequest {
36 #[prost(int32, tag="1")]
38 pub count: i32,
39 #[prost(string, tag="2")]
42 pub label: ::prost::alloc::string::String,
43}
44#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct GenerateAccessCodesResponse {
47 #[prost(message, repeated, tag="1")]
49 pub access_codes: ::prost::alloc::vec::Vec<AccessCode>,
50}
51#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
53pub struct ListAccessCodesRequest {
54}
55#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct ListAccessCodesResponse {
58 #[prost(message, repeated, tag="1")]
60 pub access_codes: ::prost::alloc::vec::Vec<AccessCode>,
61}
62#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
64pub struct RevokeAccessCodeRequest {
65 #[prost(string, tag="1")]
67 pub access_code_id: ::prost::alloc::string::String,
68}
69#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
71pub struct RevokeAccessCodeResponse {
72}
73#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
77pub struct SubmitActionRequest {
78 #[prost(string, tag="1")]
81 pub delivery_id: ::prost::alloc::string::String,
82 #[prost(string, tag="2")]
85 pub action_id: ::prost::alloc::string::String,
86 #[prost(bytes="vec", tag="3")]
89 pub payload: ::prost::alloc::vec::Vec<u8>,
90}
91#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
93pub struct SubmitActionResponse {
94 #[prost(bool, tag="1")]
96 pub success: bool,
97}
98#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
104pub struct ChannelEvent {
105 #[prost(string, tag="1")]
106 pub org_id: ::prost::alloc::string::String,
107 #[prost(string, tag="2")]
108 pub campaign_id: ::prost::alloc::string::String,
109 #[prost(string, tag="3")]
110 pub recipient_user_id: ::prost::alloc::string::String,
111 #[prost(enumeration="ChannelName", tag="4")]
112 pub channel: i32,
113 #[prost(enumeration="ChannelStepKind", tag="5")]
114 pub step_kind: i32,
115 #[prost(enumeration="ChannelEventStatus", tag="6")]
116 pub status: i32,
117 #[prost(enumeration="ChannelSkipReason", tag="7")]
119 pub skip_reason: i32,
120 #[prost(string, tag="8")]
122 pub provider_message_id: ::prost::alloc::string::String,
123 #[prost(int64, tag="9")]
126 pub cost_micros: i64,
127 #[prost(string, tag="10")]
130 pub metadata_json: ::prost::alloc::string::String,
131 #[prost(message, optional, tag="11")]
132 pub occurred_at: ::core::option::Option<::prost_types::Timestamp>,
133}
134#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
135pub struct RecordChannelEventRequest {
136 #[prost(message, optional, tag="1")]
137 pub event: ::core::option::Option<ChannelEvent>,
138}
139#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
140pub struct RecordChannelEventResponse {
141 #[prost(bool, tag="1")]
144 pub accepted: bool,
145 #[prost(string, tag="2")]
148 pub reason: ::prost::alloc::string::String,
149}
150#[derive(Clone, PartialEq, ::prost::Message)]
151pub struct RecordChannelEventBatchRequest {
152 #[prost(message, repeated, tag="1")]
153 pub events: ::prost::alloc::vec::Vec<ChannelEvent>,
154}
155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
157pub struct RecordChannelEventBatchResult {
158 #[prost(bool, tag="1")]
159 pub accepted: bool,
160 #[prost(string, tag="2")]
161 pub reason: ::prost::alloc::string::String,
162}
163#[derive(Clone, PartialEq, ::prost::Message)]
164pub struct RecordChannelEventBatchResponse {
165 #[prost(message, repeated, tag="1")]
166 pub results: ::prost::alloc::vec::Vec<RecordChannelEventBatchResult>,
167}
168#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
177#[repr(i32)]
178pub enum ChannelName {
179 Unspecified = 0,
180 Email = 1,
181 Webhook = 2,
182 Telegram = 3,
183 Slack = 4,
184 Sms = 5,
185 Whatsapp = 6,
186 MicrosoftTeams = 7,
187 Line = 8,
188}
189impl ChannelName {
190 pub fn as_str_name(&self) -> &'static str {
195 match self {
196 Self::Unspecified => "CHANNEL_NAME_UNSPECIFIED",
197 Self::Email => "CHANNEL_NAME_EMAIL",
198 Self::Webhook => "CHANNEL_NAME_WEBHOOK",
199 Self::Telegram => "CHANNEL_NAME_TELEGRAM",
200 Self::Slack => "CHANNEL_NAME_SLACK",
201 Self::Sms => "CHANNEL_NAME_SMS",
202 Self::Whatsapp => "CHANNEL_NAME_WHATSAPP",
203 Self::MicrosoftTeams => "CHANNEL_NAME_MICROSOFT_TEAMS",
204 Self::Line => "CHANNEL_NAME_LINE",
205 }
206 }
207 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
209 match value {
210 "CHANNEL_NAME_UNSPECIFIED" => Some(Self::Unspecified),
211 "CHANNEL_NAME_EMAIL" => Some(Self::Email),
212 "CHANNEL_NAME_WEBHOOK" => Some(Self::Webhook),
213 "CHANNEL_NAME_TELEGRAM" => Some(Self::Telegram),
214 "CHANNEL_NAME_SLACK" => Some(Self::Slack),
215 "CHANNEL_NAME_SMS" => Some(Self::Sms),
216 "CHANNEL_NAME_WHATSAPP" => Some(Self::Whatsapp),
217 "CHANNEL_NAME_MICROSOFT_TEAMS" => Some(Self::MicrosoftTeams),
218 "CHANNEL_NAME_LINE" => Some(Self::Line),
219 _ => None,
220 }
221 }
222}
223#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
227#[repr(i32)]
228pub enum ChannelStepKind {
229 Unspecified = 0,
230 Reminder = 1,
231 Escalation = 2,
232}
233impl ChannelStepKind {
234 pub fn as_str_name(&self) -> &'static str {
239 match self {
240 Self::Unspecified => "CHANNEL_STEP_KIND_UNSPECIFIED",
241 Self::Reminder => "CHANNEL_STEP_KIND_REMINDER",
242 Self::Escalation => "CHANNEL_STEP_KIND_ESCALATION",
243 }
244 }
245 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
247 match value {
248 "CHANNEL_STEP_KIND_UNSPECIFIED" => Some(Self::Unspecified),
249 "CHANNEL_STEP_KIND_REMINDER" => Some(Self::Reminder),
250 "CHANNEL_STEP_KIND_ESCALATION" => Some(Self::Escalation),
251 _ => None,
252 }
253 }
254}
255#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
259#[repr(i32)]
260pub enum ChannelEventStatus {
261 Unspecified = 0,
262 Sent = 1,
263 Delivered = 2,
264 Opened = 3,
265 Clicked = 4,
266 Bounced = 5,
267 Failed = 6,
268 Skipped = 7,
269}
270impl ChannelEventStatus {
271 pub fn as_str_name(&self) -> &'static str {
276 match self {
277 Self::Unspecified => "CHANNEL_EVENT_STATUS_UNSPECIFIED",
278 Self::Sent => "CHANNEL_EVENT_STATUS_SENT",
279 Self::Delivered => "CHANNEL_EVENT_STATUS_DELIVERED",
280 Self::Opened => "CHANNEL_EVENT_STATUS_OPENED",
281 Self::Clicked => "CHANNEL_EVENT_STATUS_CLICKED",
282 Self::Bounced => "CHANNEL_EVENT_STATUS_BOUNCED",
283 Self::Failed => "CHANNEL_EVENT_STATUS_FAILED",
284 Self::Skipped => "CHANNEL_EVENT_STATUS_SKIPPED",
285 }
286 }
287 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
289 match value {
290 "CHANNEL_EVENT_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
291 "CHANNEL_EVENT_STATUS_SENT" => Some(Self::Sent),
292 "CHANNEL_EVENT_STATUS_DELIVERED" => Some(Self::Delivered),
293 "CHANNEL_EVENT_STATUS_OPENED" => Some(Self::Opened),
294 "CHANNEL_EVENT_STATUS_CLICKED" => Some(Self::Clicked),
295 "CHANNEL_EVENT_STATUS_BOUNCED" => Some(Self::Bounced),
296 "CHANNEL_EVENT_STATUS_FAILED" => Some(Self::Failed),
297 "CHANNEL_EVENT_STATUS_SKIPPED" => Some(Self::Skipped),
298 _ => None,
299 }
300 }
301}
302#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
305#[repr(i32)]
306pub enum ChannelSkipReason {
307 Unspecified = 0,
308 OptedOut = 1,
309 RegionBlocked = 2,
310 CostCapExceeded = 3,
311 NoIdentifier = 4,
312}
313impl ChannelSkipReason {
314 pub fn as_str_name(&self) -> &'static str {
319 match self {
320 Self::Unspecified => "CHANNEL_SKIP_REASON_UNSPECIFIED",
321 Self::OptedOut => "CHANNEL_SKIP_REASON_OPTED_OUT",
322 Self::RegionBlocked => "CHANNEL_SKIP_REASON_REGION_BLOCKED",
323 Self::CostCapExceeded => "CHANNEL_SKIP_REASON_COST_CAP_EXCEEDED",
324 Self::NoIdentifier => "CHANNEL_SKIP_REASON_NO_IDENTIFIER",
325 }
326 }
327 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
329 match value {
330 "CHANNEL_SKIP_REASON_UNSPECIFIED" => Some(Self::Unspecified),
331 "CHANNEL_SKIP_REASON_OPTED_OUT" => Some(Self::OptedOut),
332 "CHANNEL_SKIP_REASON_REGION_BLOCKED" => Some(Self::RegionBlocked),
333 "CHANNEL_SKIP_REASON_COST_CAP_EXCEEDED" => Some(Self::CostCapExceeded),
334 "CHANNEL_SKIP_REASON_NO_IDENTIFIER" => Some(Self::NoIdentifier),
335 _ => None,
336 }
337 }
338}
339#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
341pub struct Role {
342 #[prost(string, tag="1")]
344 pub id: ::prost::alloc::string::String,
345 #[prost(string, tag="2")]
347 pub slug: ::prost::alloc::string::String,
348 #[prost(string, tag="3")]
350 pub name: ::prost::alloc::string::String,
351 #[prost(bool, tag="4")]
353 pub is_default: bool,
354 #[prost(enumeration="Permission", repeated, tag="5")]
356 pub permissions: ::prost::alloc::vec::Vec<i32>,
357 #[prost(bool, tag="6")]
359 pub is_system: bool,
360}
361#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
365pub struct Pagination {
366 #[prost(int32, tag="1")]
368 pub page_size: i32,
369 #[prost(string, tag="2")]
371 pub page_token: ::prost::alloc::string::String,
372}
373#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
375pub struct PaginationMeta {
376 #[prost(string, tag="1")]
378 pub next_page_token: ::prost::alloc::string::String,
379 #[prost(int32, tag="2")]
381 pub total_count: i32,
382}
383#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
387pub struct MessageAction {
388 #[prost(string, tag="1")]
390 pub id: ::prost::alloc::string::String,
391 #[prost(enumeration="ActionType", tag="2")]
393 pub r#type: i32,
394 #[prost(string, tag="3")]
397 pub label: ::prost::alloc::string::String,
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
402pub struct Message {
403 #[prost(string, tag="1")]
405 pub content_id: ::prost::alloc::string::String,
406 #[prost(string, tag="2")]
408 pub campaign_id: ::prost::alloc::string::String,
409 #[prost(string, tag="3")]
412 pub sender_name: ::prost::alloc::string::String,
413 #[prost(string, tag="4")]
416 pub summary: ::prost::alloc::string::String,
417 #[prost(string, tag="5")]
420 pub preview: ::prost::alloc::string::String,
421 #[prost(string, tag="6")]
424 pub body: ::prost::alloc::string::String,
425 #[prost(bool, tag="7")]
427 pub critical: bool,
428 #[prost(message, repeated, tag="8")]
430 pub actions: ::prost::alloc::vec::Vec<MessageAction>,
431 #[prost(message, optional, tag="9")]
433 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
434 #[prost(string, tag="10")]
437 pub title: ::prost::alloc::string::String,
438}
439#[derive(Clone, PartialEq, ::prost::Message)]
445pub struct WorkflowDefinition {
446 #[prost(message, repeated, tag="1")]
449 pub steps: ::prost::alloc::vec::Vec<WorkflowStep>,
450}
451#[derive(Clone, PartialEq, ::prost::Message)]
453pub struct WorkflowStep {
454 #[prost(string, tag="1")]
456 pub id: ::prost::alloc::string::String,
457 #[prost(enumeration="StepType", tag="2")]
459 pub r#type: i32,
460 #[prost(map="string, string", tag="7")]
463 pub transitions: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
464 #[prost(oneof="workflow_step::Config", tags="3, 4, 5, 6, 8")]
466 pub config: ::core::option::Option<workflow_step::Config>,
467}
468pub mod workflow_step {
470 #[derive(Clone, PartialEq, ::prost::Oneof)]
472 pub enum Config {
473 #[prost(message, tag="3")]
475 SendNotification(super::SendNotificationConfig),
476 #[prost(message, tag="4")]
478 DeadlineCheck(super::DeadlineCheckConfig),
479 #[prost(message, tag="5")]
481 SendReminder(super::SendReminderConfig),
482 #[prost(message, tag="6")]
484 CallWebhook(super::CallWebhookConfig),
485 #[prost(message, tag="8")]
487 EscalateConfig(super::EscalateConfig),
488 }
489}
490#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct SendNotificationConfig {
493 #[prost(string, tag="1")]
496 pub r#type: ::prost::alloc::string::String,
497 #[prost(string, tag="2")]
501 pub template_id: ::prost::alloc::string::String,
502 #[prost(int32, tag="3")]
505 pub template_version: i32,
506 #[prost(string, tag="4")]
509 pub action_label: ::prost::alloc::string::String,
510 #[prost(enumeration="ActionType", tag="5")]
512 pub action_type: i32,
513 #[prost(map="string, string", tag="6")]
516 pub custom_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
517}
518#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
522pub struct DeadlineCheckConfig {
523 #[prost(string, tag="1")]
526 pub delay: ::prost::alloc::string::String,
527}
528#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
530pub struct SendReminderConfig {
531 #[prost(string, tag="1")]
534 pub r#type: ::prost::alloc::string::String,
535 #[prost(enumeration="ChannelName", repeated, tag="4")]
542 pub third_party_channels: ::prost::alloc::vec::Vec<i32>,
543}
544#[derive(Clone, PartialEq, ::prost::Message)]
546pub struct CallWebhookConfig {
547 #[prost(string, tag="1")]
550 pub name: ::prost::alloc::string::String,
551 #[prost(string, tag="2")]
556 pub url: ::prost::alloc::string::String,
557 #[prost(map="string, string", tag="3")]
560 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
561}
562#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
564pub struct EscalationTarget {
565 #[prost(enumeration="EscalationTargetType", tag="1")]
567 pub r#type: i32,
568 #[prost(string, tag="2")]
571 pub target_id: ::prost::alloc::string::String,
572}
573#[derive(Clone, PartialEq, ::prost::Message)]
575pub struct EscalateConfig {
576 #[prost(enumeration="EscalationCondition", tag="1")]
578 pub condition: i32,
579 #[prost(message, repeated, tag="2")]
581 pub targets: ::prost::alloc::vec::Vec<EscalationTarget>,
582 #[prost(int32, tag="3")]
585 pub repeat_count: i32,
586 #[prost(int32, tag="4")]
588 pub repeat_interval_minutes: i32,
589 #[prost(enumeration="EscalateMode", tag="5")]
591 pub mode: i32,
592 #[prost(enumeration="ChannelName", repeated, tag="6")]
600 pub third_party_channels: ::prost::alloc::vec::Vec<i32>,
601}
602#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
606#[repr(i32)]
607pub enum CampaignStatus {
608 Unspecified = 0,
610 Created = 1,
612 Running = 2,
614 Completed = 3,
616 Failed = 4,
618 Cancelled = 5,
620}
621impl CampaignStatus {
622 pub fn as_str_name(&self) -> &'static str {
627 match self {
628 Self::Unspecified => "CAMPAIGN_STATUS_UNSPECIFIED",
629 Self::Created => "CAMPAIGN_STATUS_CREATED",
630 Self::Running => "CAMPAIGN_STATUS_RUNNING",
631 Self::Completed => "CAMPAIGN_STATUS_COMPLETED",
632 Self::Failed => "CAMPAIGN_STATUS_FAILED",
633 Self::Cancelled => "CAMPAIGN_STATUS_CANCELLED",
634 }
635 }
636 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
638 match value {
639 "CAMPAIGN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
640 "CAMPAIGN_STATUS_CREATED" => Some(Self::Created),
641 "CAMPAIGN_STATUS_RUNNING" => Some(Self::Running),
642 "CAMPAIGN_STATUS_COMPLETED" => Some(Self::Completed),
643 "CAMPAIGN_STATUS_FAILED" => Some(Self::Failed),
644 "CAMPAIGN_STATUS_CANCELLED" => Some(Self::Cancelled),
645 _ => None,
646 }
647 }
648}
649#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
651#[repr(i32)]
652pub enum DeliveryStatus {
653 Unspecified = 0,
655 Pending = 1,
657 Sent = 2,
659 Delivered = 3,
661 Acknowledged = 4,
663 Missed = 5,
665 NoDevice = 6,
667 Failed = 7,
669}
670impl DeliveryStatus {
671 pub fn as_str_name(&self) -> &'static str {
676 match self {
677 Self::Unspecified => "DELIVERY_STATUS_UNSPECIFIED",
678 Self::Pending => "DELIVERY_STATUS_PENDING",
679 Self::Sent => "DELIVERY_STATUS_SENT",
680 Self::Delivered => "DELIVERY_STATUS_DELIVERED",
681 Self::Acknowledged => "DELIVERY_STATUS_ACKNOWLEDGED",
682 Self::Missed => "DELIVERY_STATUS_MISSED",
683 Self::NoDevice => "DELIVERY_STATUS_NO_DEVICE",
684 Self::Failed => "DELIVERY_STATUS_FAILED",
685 }
686 }
687 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
689 match value {
690 "DELIVERY_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
691 "DELIVERY_STATUS_PENDING" => Some(Self::Pending),
692 "DELIVERY_STATUS_SENT" => Some(Self::Sent),
693 "DELIVERY_STATUS_DELIVERED" => Some(Self::Delivered),
694 "DELIVERY_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
695 "DELIVERY_STATUS_MISSED" => Some(Self::Missed),
696 "DELIVERY_STATUS_NO_DEVICE" => Some(Self::NoDevice),
697 "DELIVERY_STATUS_FAILED" => Some(Self::Failed),
698 _ => None,
699 }
700 }
701}
702#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
704#[repr(i32)]
705pub enum Platform {
706 Unspecified = 0,
708 Ios = 1,
710 Android = 2,
712}
713impl Platform {
714 pub fn as_str_name(&self) -> &'static str {
719 match self {
720 Self::Unspecified => "PLATFORM_UNSPECIFIED",
721 Self::Ios => "PLATFORM_IOS",
722 Self::Android => "PLATFORM_ANDROID",
723 }
724 }
725 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
727 match value {
728 "PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
729 "PLATFORM_IOS" => Some(Self::Ios),
730 "PLATFORM_ANDROID" => Some(Self::Android),
731 _ => None,
732 }
733 }
734}
735#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
740#[repr(i32)]
741pub enum Permission {
742 Unspecified = 0,
744 OrgRead = 1,
746 OrgWrite = 2,
748 MembersRead = 3,
750 MembersInvite = 4,
752 MembersManage = 5,
754 CampaignsRead = 6,
756 CampaignsWrite = 7,
758 CampaignsStart = 8,
760 TemplatesRead = 9,
762 TemplatesWrite = 10,
764 InboxRead = 11,
766 InboxAct = 12,
768 GroupsAllRead = 13,
770 GroupsWrite = 14,
772 GroupsAllWrite = 15,
774 TeamsAllRead = 16,
776 TeamsWrite = 17,
778 TeamsAllWrite = 18,
780 PrivacyRead = 19,
782 PrivacyWrite = 20,
784 AuditRead = 21,
786 TemplatesReview = 22,
788 PlatformSupport = 23,
791 PlatformAccessCodes = 24,
794 PlatformProvision = 25,
797}
798impl Permission {
799 pub fn as_str_name(&self) -> &'static str {
804 match self {
805 Self::Unspecified => "PERMISSION_UNSPECIFIED",
806 Self::OrgRead => "PERMISSION_ORG_READ",
807 Self::OrgWrite => "PERMISSION_ORG_WRITE",
808 Self::MembersRead => "PERMISSION_MEMBERS_READ",
809 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
810 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
811 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
812 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
813 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
814 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
815 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
816 Self::InboxRead => "PERMISSION_INBOX_READ",
817 Self::InboxAct => "PERMISSION_INBOX_ACT",
818 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
819 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
820 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
821 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
822 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
823 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
824 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
825 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
826 Self::AuditRead => "PERMISSION_AUDIT_READ",
827 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
828 Self::PlatformSupport => "PERMISSION_PLATFORM_SUPPORT",
829 Self::PlatformAccessCodes => "PERMISSION_PLATFORM_ACCESS_CODES",
830 Self::PlatformProvision => "PERMISSION_PLATFORM_PROVISION",
831 }
832 }
833 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
835 match value {
836 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
837 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
838 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
839 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
840 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
841 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
842 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
843 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
844 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
845 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
846 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
847 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
848 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
849 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
850 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
851 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
852 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
853 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
854 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
855 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
856 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
857 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
858 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
859 "PERMISSION_PLATFORM_SUPPORT" => Some(Self::PlatformSupport),
860 "PERMISSION_PLATFORM_ACCESS_CODES" => Some(Self::PlatformAccessCodes),
861 "PERMISSION_PLATFORM_PROVISION" => Some(Self::PlatformProvision),
862 _ => None,
863 }
864 }
865}
866#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
868#[repr(i32)]
869pub enum ActionType {
870 Unspecified = 0,
872 Ack = 1,
874}
875impl ActionType {
876 pub fn as_str_name(&self) -> &'static str {
881 match self {
882 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
883 Self::Ack => "ACTION_TYPE_ACK",
884 }
885 }
886 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
888 match value {
889 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
890 "ACTION_TYPE_ACK" => Some(Self::Ack),
891 _ => None,
892 }
893 }
894}
895#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
897#[repr(i32)]
898pub enum StepType {
899 Unspecified = 0,
901 SendNotification = 1,
903 DeadlineCheck = 2,
905 SendReminder = 3,
907 CallWebhook = 4,
909 MarkMissed = 5,
911 Escalate = 6,
913}
914impl StepType {
915 pub fn as_str_name(&self) -> &'static str {
920 match self {
921 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
922 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
923 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
924 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
925 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
926 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
927 Self::Escalate => "STEP_TYPE_ESCALATE",
928 }
929 }
930 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
932 match value {
933 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
934 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
935 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
936 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
937 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
938 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
939 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
940 _ => None,
941 }
942 }
943}
944#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
946#[repr(i32)]
947pub enum EscalationCondition {
948 Unspecified = 0,
949 IfNotAcked = 1,
951 IfNotClosed = 2,
953}
954impl EscalationCondition {
955 pub fn as_str_name(&self) -> &'static str {
960 match self {
961 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
962 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
963 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
964 }
965 }
966 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
968 match value {
969 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
970 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
971 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
972 _ => None,
973 }
974 }
975}
976#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
978#[repr(i32)]
979pub enum EscalationTargetType {
980 Unspecified = 0,
981 User = 1,
983 Group = 2,
985 Manager = 3,
987 Role = 4,
989}
990impl EscalationTargetType {
991 pub fn as_str_name(&self) -> &'static str {
996 match self {
997 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
998 Self::User => "ESCALATION_TARGET_TYPE_USER",
999 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
1000 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
1001 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
1002 }
1003 }
1004 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1006 match value {
1007 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1008 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
1009 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
1010 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
1011 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
1012 _ => None,
1013 }
1014 }
1015}
1016#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1018#[repr(i32)]
1019pub enum EscalateMode {
1020 Unspecified = 0,
1022 Deliver = 1,
1024 AlertOnly = 2,
1026}
1027impl EscalateMode {
1028 pub fn as_str_name(&self) -> &'static str {
1033 match self {
1034 Self::Unspecified => "ESCALATE_MODE_UNSPECIFIED",
1035 Self::Deliver => "ESCALATE_MODE_DELIVER",
1036 Self::AlertOnly => "ESCALATE_MODE_ALERT_ONLY",
1037 }
1038 }
1039 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1041 match value {
1042 "ESCALATE_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1043 "ESCALATE_MODE_DELIVER" => Some(Self::Deliver),
1044 "ESCALATE_MODE_ALERT_ONLY" => Some(Self::AlertOnly),
1045 _ => None,
1046 }
1047 }
1048}
1049#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1053pub struct ApiKey {
1054 #[prost(string, tag="1")]
1056 pub id: ::prost::alloc::string::String,
1057 #[prost(string, tag="2")]
1059 pub name: ::prost::alloc::string::String,
1060 #[prost(string, tag="3")]
1063 pub key_prefix: ::prost::alloc::string::String,
1064 #[prost(enumeration="Permission", repeated, tag="4")]
1066 pub permissions: ::prost::alloc::vec::Vec<i32>,
1067 #[prost(message, optional, tag="5")]
1069 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1070 #[prost(message, optional, tag="6")]
1072 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
1073 #[prost(message, optional, tag="7")]
1075 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1076 #[prost(enumeration="KeyType", tag="8")]
1079 pub key_type: i32,
1080}
1081#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1083pub struct CreateApiKeyRequest {
1084 #[prost(string, tag="1")]
1086 pub name: ::prost::alloc::string::String,
1087 #[prost(enumeration="Permission", repeated, tag="2")]
1090 pub permissions: ::prost::alloc::vec::Vec<i32>,
1091 #[prost(message, optional, tag="3")]
1093 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1094 #[prost(enumeration="KeyType", tag="4")]
1097 pub key_type: i32,
1098}
1099#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1102pub struct CreateApiKeyResponse {
1103 #[prost(message, optional, tag="1")]
1105 pub api_key: ::core::option::Option<ApiKey>,
1106 #[prost(string, tag="2")]
1109 pub key: ::prost::alloc::string::String,
1110}
1111#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1113pub struct ListApiKeysRequest {
1114 #[prost(enumeration="KeyType", tag="1")]
1116 pub key_type: i32,
1117}
1118#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct ListApiKeysResponse {
1121 #[prost(message, repeated, tag="1")]
1123 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
1124}
1125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1127pub struct RevokeApiKeyRequest {
1128 #[prost(string, tag="1")]
1130 pub api_key_id: ::prost::alloc::string::String,
1131}
1132#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1134pub struct RevokeApiKeyResponse {
1135}
1136#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1140#[repr(i32)]
1141pub enum KeyType {
1142 Unspecified = 0,
1143 ApiKey = 1,
1144 ScimToken = 2,
1145}
1146impl KeyType {
1147 pub fn as_str_name(&self) -> &'static str {
1152 match self {
1153 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
1154 Self::ApiKey => "KEY_TYPE_API_KEY",
1155 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
1156 }
1157 }
1158 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1160 match value {
1161 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1162 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
1163 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
1164 _ => None,
1165 }
1166 }
1167}
1168#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1173pub struct ExportUserDataRequest {
1174 #[prost(string, tag="1")]
1177 pub user_id: ::prost::alloc::string::String,
1178}
1179#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1181pub struct ExportUserDataResponse {
1182 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1184 pub status: i32,
1185 #[prost(string, tag="2")]
1188 pub result_url: ::prost::alloc::string::String,
1189 #[prost(string, tag="3")]
1192 pub export_id: ::prost::alloc::string::String,
1193}
1194#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1197pub struct DeleteUserDataRequest {
1198 #[prost(string, tag="1")]
1201 pub user_id: ::prost::alloc::string::String,
1202 #[prost(bool, tag="2")]
1205 pub anonymize: bool,
1206}
1207#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1209pub struct DeleteUserDataResponse {
1210 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1212 pub status: i32,
1213 #[prost(message, optional, tag="2")]
1216 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
1217 #[prost(string, tag="3")]
1219 pub request_id: ::prost::alloc::string::String,
1220}
1221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1224pub struct ListPrivacyRequestsRequest {
1225 #[prost(int32, tag="1")]
1228 pub page_size: i32,
1229 #[prost(string, tag="2")]
1231 pub page_token: ::prost::alloc::string::String,
1232 #[prost(string, tag="3")]
1234 pub request_type: ::prost::alloc::string::String,
1235 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1237 pub status: i32,
1238}
1239#[derive(Clone, PartialEq, ::prost::Message)]
1241pub struct ListPrivacyRequestsResponse {
1242 #[prost(message, repeated, tag="1")]
1244 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1245 #[prost(string, tag="2")]
1247 pub next_page_token: ::prost::alloc::string::String,
1248}
1249#[derive(Clone, PartialEq, ::prost::Message)]
1251pub struct PrivacyRequest {
1252 #[prost(string, tag="1")]
1254 pub id: ::prost::alloc::string::String,
1255 #[prost(string, tag="2")]
1257 pub user_id: ::prost::alloc::string::String,
1258 #[prost(string, tag="3")]
1260 pub user_email: ::prost::alloc::string::String,
1261 #[prost(string, tag="4")]
1263 pub request_type: ::prost::alloc::string::String,
1264 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
1266 pub status: i32,
1267 #[prost(bool, tag="6")]
1269 pub anonymize: bool,
1270 #[prost(string, tag="7")]
1272 pub requested_by_email: ::prost::alloc::string::String,
1273 #[prost(message, optional, tag="8")]
1275 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1276 #[prost(message, optional, tag="9")]
1278 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1279 #[prost(map="string, string", tag="10")]
1281 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1282}
1283#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1286pub struct CancelDeletionRequest {
1287 #[prost(string, tag="1")]
1289 pub request_id: ::prost::alloc::string::String,
1290 #[prost(string, tag="2")]
1292 pub confirmation_email: ::prost::alloc::string::String,
1293}
1294#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1296pub struct CancelDeletionResponse {
1297 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1299 pub status: i32,
1300}
1301#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1304pub struct ImmediateDeleteRequest {
1305 #[prost(string, tag="1")]
1307 pub request_id: ::prost::alloc::string::String,
1308 #[prost(string, tag="2")]
1310 pub confirmation_email: ::prost::alloc::string::String,
1311}
1312#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1314pub struct ImmediateDeleteResponse {
1315 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1317 pub status: i32,
1318}
1319#[derive(Clone, PartialEq, ::prost::Message)]
1322pub struct RectifyUserDataRequest {
1323 #[prost(string, tag="1")]
1326 pub user_id: ::prost::alloc::string::String,
1327 #[prost(map="string, string", tag="2")]
1331 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1332}
1333#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1335pub struct RectifyUserDataResponse {
1336 #[prost(string, repeated, tag="1")]
1338 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1339}
1340#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1343pub struct RestrictProcessingRequest {
1344 #[prost(string, tag="1")]
1347 pub user_id: ::prost::alloc::string::String,
1348 #[prost(bool, tag="2")]
1350 pub restricted: bool,
1351}
1352#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1354pub struct RestrictProcessingResponse {
1355 #[prost(bool, tag="1")]
1357 pub restricted: bool,
1358 #[prost(message, optional, tag="2")]
1360 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1361}
1362#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1366pub struct GetDataExistenceConfirmationRequest {
1367 #[prost(string, tag="1")]
1370 pub user_id: ::prost::alloc::string::String,
1371}
1372#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1374pub struct GetDataExistenceConfirmationResponse {
1375 #[prost(bool, tag="1")]
1377 pub exists: bool,
1378 #[prost(string, repeated, tag="2")]
1380 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1381}
1382#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1385pub struct ListMyPrivacyRequestsRequest {
1386 #[prost(int32, tag="1")]
1389 pub page_size: i32,
1390 #[prost(string, tag="2")]
1392 pub page_token: ::prost::alloc::string::String,
1393 #[prost(string, tag="3")]
1395 pub request_type: ::prost::alloc::string::String,
1396 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1398 pub status: i32,
1399}
1400#[derive(Clone, PartialEq, ::prost::Message)]
1402pub struct ListMyPrivacyRequestsResponse {
1403 #[prost(message, repeated, tag="1")]
1405 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1406 #[prost(string, tag="2")]
1408 pub next_page_token: ::prost::alloc::string::String,
1409}
1410#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1414#[repr(i32)]
1415pub enum PrivacyRequestStatus {
1416 Unspecified = 0,
1418 Pending = 1,
1420 Processing = 2,
1422 Completed = 3,
1424 Failed = 4,
1426}
1427impl PrivacyRequestStatus {
1428 pub fn as_str_name(&self) -> &'static str {
1433 match self {
1434 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1435 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1436 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1437 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1438 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1439 }
1440 }
1441 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1443 match value {
1444 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1445 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1446 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1447 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1448 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1449 _ => None,
1450 }
1451 }
1452}
1453#[derive(Clone, PartialEq, ::prost::Message)]
1458pub struct AuditEvent {
1459 #[prost(string, tag="1")]
1462 pub id: ::prost::alloc::string::String,
1463 #[prost(string, tag="2")]
1466 pub org_id: ::prost::alloc::string::String,
1467 #[prost(string, tag="3")]
1470 pub actor_id: ::prost::alloc::string::String,
1471 #[prost(enumeration="AuditEventType", tag="4")]
1473 pub event_type: i32,
1474 #[prost(string, tag="5")]
1477 pub entity_type: ::prost::alloc::string::String,
1478 #[prost(string, tag="6")]
1481 pub entity_id: ::prost::alloc::string::String,
1482 #[prost(map="string, string", tag="7")]
1485 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1486 #[prost(message, optional, tag="10")]
1488 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1489}
1490#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1493pub struct ListAuditEventsRequest {
1494 #[prost(string, tag="1")]
1496 pub page_token: ::prost::alloc::string::String,
1497 #[prost(int32, tag="2")]
1500 pub page_size: i32,
1501 #[prost(enumeration="AuditEventType", tag="3")]
1503 pub event_type: i32,
1504 #[prost(string, tag="4")]
1507 pub actor_id: ::prost::alloc::string::String,
1508 #[prost(message, optional, tag="5")]
1510 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1511 #[prost(message, optional, tag="6")]
1513 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1514}
1515#[derive(Clone, PartialEq, ::prost::Message)]
1517pub struct ListAuditEventsResponse {
1518 #[prost(message, repeated, tag="1")]
1520 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1521 #[prost(string, tag="2")]
1523 pub next_page_token: ::prost::alloc::string::String,
1524}
1525#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1528pub struct ExportAuditTrailRequest {
1529 #[prost(enumeration="AuditExportFormat", tag="1")]
1531 pub format: i32,
1532 #[prost(message, optional, tag="2")]
1534 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1535 #[prost(message, optional, tag="3")]
1537 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1538}
1539#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1541pub struct ExportAuditTrailResponse {
1542 #[prost(string, tag="1")]
1545 pub export_url: ::prost::alloc::string::String,
1546 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1548 pub status: i32,
1549}
1550#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1552pub struct AuditExport {
1553 #[prost(string, tag="1")]
1555 pub id: ::prost::alloc::string::String,
1556 #[prost(string, tag="2")]
1558 pub format: ::prost::alloc::string::String,
1559 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1561 pub status: i32,
1562 #[prost(string, tag="4")]
1564 pub result_url: ::prost::alloc::string::String,
1565 #[prost(string, tag="5")]
1567 pub error_message: ::prost::alloc::string::String,
1568 #[prost(string, tag="6")]
1570 pub requested_by_email: ::prost::alloc::string::String,
1571 #[prost(message, optional, tag="7")]
1573 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1574 #[prost(message, optional, tag="8")]
1576 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1577}
1578#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1581pub struct ListAuditExportsRequest {
1582}
1583#[derive(Clone, PartialEq, ::prost::Message)]
1585pub struct ListAuditExportsResponse {
1586 #[prost(message, repeated, tag="1")]
1588 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1589}
1590#[derive(Clone, PartialEq, ::prost::Message)]
1598pub struct AppendRequest {
1599 #[prost(string, tag="1")]
1605 pub event_type: ::prost::alloc::string::String,
1606 #[prost(string, tag="2")]
1608 pub org_id: ::prost::alloc::string::String,
1609 #[prost(string, optional, tag="3")]
1612 pub subject_user_id: ::core::option::Option<::prost::alloc::string::String>,
1613 #[prost(string, optional, tag="4")]
1616 pub actor_id: ::core::option::Option<::prost::alloc::string::String>,
1617 #[prost(message, optional, tag="5")]
1625 pub details: ::core::option::Option<::prost_types::Struct>,
1626}
1627#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1628pub struct AppendResponse {
1629 #[prost(string, tag="1")]
1631 pub event_id: ::prost::alloc::string::String,
1632}
1633#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1637#[repr(i32)]
1638pub enum AuditEventType {
1639 Unspecified = 0,
1641 CampaignCreated = 1,
1644 MessageSent = 2,
1646 MessageOpened = 3,
1648 AckRegistered = 4,
1650 EscalationExecuted = 5,
1652 CampaignStarted = 12,
1654 CampaignCancelled = 13,
1656 CampaignUpdated = 14,
1658 UserInvited = 6,
1661 UserDeactivated = 7,
1663 UserReactivated = 15,
1665 RoleChanged = 10,
1667 InviteRevoked = 16,
1669 ProfileUpdated = 17,
1671 SettingsUpdated = 18,
1673 PasskeyEnrolled = 19,
1675 DataExportRequested = 8,
1678 DataDeletionRequested = 9,
1680 DataRectified = 20,
1682 ProcessingRestricted = 21,
1684 DeletionCancelled = 22,
1686 DeletionImmediate = 23,
1688 SsoConfigured = 11,
1691 SsoProviderCreated = 24,
1693 SsoProviderDeleted = 25,
1695 OrgUpdated = 26,
1697 RoleCreated = 27,
1700 RoleUpdated = 28,
1702 RoleDeleted = 29,
1704 TemplateCreated = 30,
1707 TemplateUpdated = 31,
1709 ApiKeyCreated = 32,
1712 ApiKeyRevoked = 33,
1714 InviteLinkCreated = 34,
1717 InviteLinkRevoked = 35,
1719 GroupCreated = 36,
1722 GroupUpdated = 37,
1724 GroupDeleted = 38,
1726 GroupMembersAdded = 39,
1728 GroupMembersRemoved = 40,
1730 TeamCreated = 41,
1733 TeamUpdated = 42,
1735 TeamDeleted = 43,
1737 TeamMembersAdded = 44,
1739 TeamMembersRemoved = 45,
1741 ScimUserProvisioned = 46,
1744 ScimUserDeprovisioned = 47,
1746 ScimUserUpdated = 48,
1748 TranslationCreated = 49,
1751 TranslationApproved = 50,
1753 SandboxCreated = 51,
1756 SandboxExpired = 52,
1758 AiPredictionLogged = 53,
1761 MlPipelineTriggered = 54,
1763 ArchetypeClusteringTriggered = 55,
1765 OrgCreated = 56,
1768 OrgDeleted = 57,
1770 ReachabilityUpsert = 58,
1774 ReachabilityRemove = 59,
1777}
1778impl AuditEventType {
1779 pub fn as_str_name(&self) -> &'static str {
1784 match self {
1785 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1786 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1787 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1788 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1789 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1790 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1791 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1792 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1793 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1794 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1795 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1796 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1797 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1798 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1799 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1800 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1801 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1802 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1803 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1804 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1805 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1806 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1807 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1808 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1809 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1810 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1811 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1812 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1813 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1814 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1815 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1816 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1817 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1818 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1819 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1820 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1821 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1822 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1823 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1824 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1825 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1826 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1827 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1828 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1829 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1830 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1831 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1832 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1833 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1834 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1835 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1836 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1837 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1838 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1839 Self::MlPipelineTriggered => "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED",
1840 Self::ArchetypeClusteringTriggered => "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED",
1841 Self::OrgCreated => "AUDIT_EVENT_TYPE_ORG_CREATED",
1842 Self::OrgDeleted => "AUDIT_EVENT_TYPE_ORG_DELETED",
1843 Self::ReachabilityUpsert => "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT",
1844 Self::ReachabilityRemove => "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE",
1845 }
1846 }
1847 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1849 match value {
1850 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1851 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1852 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1853 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1854 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1855 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1856 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1857 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1858 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1859 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1860 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1861 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1862 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1863 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1864 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1865 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1866 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1867 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1868 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1869 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1870 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1871 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1872 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1873 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1874 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1875 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1876 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1877 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1878 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1879 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1880 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1881 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1882 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1883 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1884 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1885 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1886 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1887 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1888 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1889 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1890 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1891 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1892 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1893 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1894 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1895 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1896 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1897 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1898 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1899 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1900 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1901 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1902 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1903 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1904 "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED" => Some(Self::MlPipelineTriggered),
1905 "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED" => Some(Self::ArchetypeClusteringTriggered),
1906 "AUDIT_EVENT_TYPE_ORG_CREATED" => Some(Self::OrgCreated),
1907 "AUDIT_EVENT_TYPE_ORG_DELETED" => Some(Self::OrgDeleted),
1908 "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT" => Some(Self::ReachabilityUpsert),
1909 "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE" => Some(Self::ReachabilityRemove),
1910 _ => None,
1911 }
1912 }
1913}
1914#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1916#[repr(i32)]
1917pub enum AuditExportFormat {
1918 Unspecified = 0,
1920 Csv = 1,
1922 Json = 2,
1924 Parquet = 3,
1926}
1927impl AuditExportFormat {
1928 pub fn as_str_name(&self) -> &'static str {
1933 match self {
1934 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1935 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1936 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1937 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1938 }
1939 }
1940 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1942 match value {
1943 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1944 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1945 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1946 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1947 _ => None,
1948 }
1949 }
1950}
1951#[derive(Clone, PartialEq, ::prost::Message)]
1956pub struct Campaign {
1957 #[prost(string, tag="1")]
1960 pub id: ::prost::alloc::string::String,
1961 #[prost(string, tag="2")]
1964 pub name: ::prost::alloc::string::String,
1965 #[prost(string, tag="3")]
1968 pub template_id: ::prost::alloc::string::String,
1969 #[prost(int32, tag="4")]
1971 pub template_version: i32,
1972 #[prost(string, tag="5")]
1974 pub audience_snapshot_ref: ::prost::alloc::string::String,
1975 #[prost(enumeration="CampaignStatus", tag="6")]
1977 pub status: i32,
1978 #[prost(message, optional, tag="7")]
1980 pub workflow: ::core::option::Option<WorkflowDefinition>,
1981 #[prost(int32, tag="8")]
1983 pub total_recipients: i32,
1984 #[prost(int32, tag="9")]
1986 pub action_completed_count: i32,
1987 #[prost(int32, tag="10")]
1989 pub missed_count: i32,
1990 #[prost(message, optional, tag="11")]
1992 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1993 #[prost(message, optional, tag="12")]
1995 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1996 #[prost(message, optional, tag="13")]
1998 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1999 #[prost(string, tag="14")]
2002 pub sender_name: ::prost::alloc::string::String,
2003 #[prost(string, tag="15")]
2006 pub title: ::prost::alloc::string::String,
2007 #[prost(bool, tag="16")]
2009 pub critical: bool,
2010 #[prost(string, tag="17")]
2015 pub default_locale: ::prost::alloc::string::String,
2016 #[prost(bool, tag="18")]
2020 pub wait_for_enrollment: bool,
2021 #[prost(message, optional, tag="19")]
2024 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2025}
2026#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2031pub struct CampaignOriginatingArchetype {
2032 #[prost(string, tag="1")]
2034 pub group_id: ::prost::alloc::string::String,
2035 #[prost(string, tag="2")]
2038 pub archetype_label: ::prost::alloc::string::String,
2039}
2040#[derive(Clone, PartialEq, ::prost::Message)]
2042pub struct AudienceMember {
2043 #[prost(string, tag="1")]
2045 pub user_id: ::prost::alloc::string::String,
2046 #[prost(map="string, string", tag="2")]
2048 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2049}
2050#[derive(Clone, PartialEq, ::prost::Message)]
2052pub struct CreateCampaignRequest {
2053 #[prost(string, tag="1")]
2056 pub name: ::prost::alloc::string::String,
2057 #[prost(string, tag="2")]
2060 pub template_id: ::prost::alloc::string::String,
2061 #[prost(int32, tag="3")]
2063 pub template_version: i32,
2064 #[prost(string, repeated, tag="4")]
2067 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2068 #[prost(message, optional, tag="5")]
2070 pub workflow: ::core::option::Option<WorkflowDefinition>,
2071 #[prost(string, tag="6")]
2074 pub sender_name: ::prost::alloc::string::String,
2075 #[prost(string, tag="7")]
2078 pub title: ::prost::alloc::string::String,
2079 #[prost(message, repeated, tag="8")]
2083 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
2084 #[prost(bool, tag="9")]
2087 pub include_restricted: bool,
2088 #[prost(bool, tag="10")]
2090 pub critical: bool,
2091 #[prost(string, tag="11")]
2093 pub default_locale: ::prost::alloc::string::String,
2094 #[prost(bool, tag="12")]
2098 pub wait_for_enrollment: bool,
2099 #[prost(message, optional, tag="13")]
2104 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2105}
2106#[derive(Clone, PartialEq, ::prost::Message)]
2108pub struct CreateCampaignResponse {
2109 #[prost(message, optional, tag="1")]
2111 pub campaign: ::core::option::Option<Campaign>,
2112}
2113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2115pub struct StartCampaignRequest {
2116 #[prost(string, tag="1")]
2119 pub campaign_id: ::prost::alloc::string::String,
2120}
2121#[derive(Clone, PartialEq, ::prost::Message)]
2123pub struct StartCampaignResponse {
2124 #[prost(message, optional, tag="1")]
2126 pub campaign: ::core::option::Option<Campaign>,
2127}
2128#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2130pub struct GetCampaignRequest {
2131 #[prost(string, tag="1")]
2134 pub campaign_id: ::prost::alloc::string::String,
2135}
2136#[derive(Clone, PartialEq, ::prost::Message)]
2138pub struct GetCampaignResponse {
2139 #[prost(message, optional, tag="1")]
2141 pub campaign: ::core::option::Option<Campaign>,
2142}
2143#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2145pub struct ListCampaignsRequest {
2146 #[prost(message, optional, tag="1")]
2148 pub pagination: ::core::option::Option<Pagination>,
2149}
2150#[derive(Clone, PartialEq, ::prost::Message)]
2152pub struct ListCampaignsResponse {
2153 #[prost(message, repeated, tag="1")]
2155 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
2156 #[prost(message, optional, tag="2")]
2158 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2159}
2160#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2162pub struct CancelCampaignRequest {
2163 #[prost(string, tag="1")]
2166 pub campaign_id: ::prost::alloc::string::String,
2167}
2168#[derive(Clone, PartialEq, ::prost::Message)]
2170pub struct CancelCampaignResponse {
2171 #[prost(message, optional, tag="1")]
2173 pub campaign: ::core::option::Option<Campaign>,
2174}
2175#[derive(Clone, PartialEq, ::prost::Message)]
2178pub struct UpdateCampaignRequest {
2179 #[prost(string, tag="1")]
2182 pub campaign_id: ::prost::alloc::string::String,
2183 #[prost(string, tag="2")]
2186 pub name: ::prost::alloc::string::String,
2187 #[prost(string, tag="3")]
2190 pub sender_name: ::prost::alloc::string::String,
2191 #[prost(string, tag="4")]
2194 pub title: ::prost::alloc::string::String,
2195 #[prost(string, tag="5")]
2198 pub template_id: ::prost::alloc::string::String,
2199 #[prost(int32, tag="6")]
2201 pub template_version: i32,
2202 #[prost(message, optional, tag="7")]
2204 pub workflow: ::core::option::Option<WorkflowDefinition>,
2205}
2206#[derive(Clone, PartialEq, ::prost::Message)]
2208pub struct UpdateCampaignResponse {
2209 #[prost(message, optional, tag="1")]
2211 pub campaign: ::core::option::Option<Campaign>,
2212}
2213#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2215pub struct Delivery {
2216 #[prost(string, tag="1")]
2219 pub id: ::prost::alloc::string::String,
2220 #[prost(string, tag="2")]
2223 pub user_id: ::prost::alloc::string::String,
2224 #[prost(string, tag="3")]
2227 pub campaign_id: ::prost::alloc::string::String,
2228 #[prost(enumeration="DeliveryStatus", tag="4")]
2230 pub status: i32,
2231 #[prost(message, optional, tag="5")]
2233 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
2234 #[prost(message, optional, tag="6")]
2236 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
2237 #[prost(message, optional, tag="7")]
2239 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
2240 #[prost(string, tag="8")]
2242 pub recipient_email: ::prost::alloc::string::String,
2243 #[prost(enumeration="delivery::Kind", tag="12")]
2246 pub kind: i32,
2247 #[prost(string, tag="13")]
2251 pub parent_delivery_id: ::prost::alloc::string::String,
2252 #[prost(string, tag="14")]
2256 pub rendered_locale: ::prost::alloc::string::String,
2257}
2258pub mod delivery {
2260 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2262 #[repr(i32)]
2263 pub enum Kind {
2264 Unspecified = 0,
2266 Primary = 1,
2268 Escalation = 2,
2270 }
2271 impl Kind {
2272 pub fn as_str_name(&self) -> &'static str {
2277 match self {
2278 Self::Unspecified => "KIND_UNSPECIFIED",
2279 Self::Primary => "KIND_PRIMARY",
2280 Self::Escalation => "KIND_ESCALATION",
2281 }
2282 }
2283 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2285 match value {
2286 "KIND_UNSPECIFIED" => Some(Self::Unspecified),
2287 "KIND_PRIMARY" => Some(Self::Primary),
2288 "KIND_ESCALATION" => Some(Self::Escalation),
2289 _ => None,
2290 }
2291 }
2292 }
2293}
2294#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2296pub struct ListDeliveriesRequest {
2297 #[prost(string, tag="1")]
2300 pub campaign_id: ::prost::alloc::string::String,
2301 #[prost(enumeration="DeliveryStatus", tag="2")]
2303 pub status_filter: i32,
2304 #[prost(message, optional, tag="3")]
2306 pub pagination: ::core::option::Option<Pagination>,
2307}
2308#[derive(Clone, PartialEq, ::prost::Message)]
2310pub struct ListDeliveriesResponse {
2311 #[prost(message, repeated, tag="1")]
2313 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
2314 #[prost(message, optional, tag="2")]
2316 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2317}
2318#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2323pub struct GetCampaignArchetypeBreakdownRequest {
2324 #[prost(string, tag="1")]
2327 pub campaign_id: ::prost::alloc::string::String,
2328}
2329#[derive(Clone, PartialEq, ::prost::Message)]
2334pub struct ArchetypeShareShift {
2335 #[prost(string, tag="1")]
2337 pub label: ::prost::alloc::string::String,
2338 #[prost(double, tag="2")]
2341 pub share_before: f64,
2342 #[prost(double, tag="3")]
2345 pub share_after: f64,
2346 #[prost(bool, tag="4")]
2349 pub is_origin: bool,
2350 #[prost(uint64, tag="5")]
2353 pub email_delivered_count: u64,
2354 #[prost(double, tag="6")]
2357 pub email_open_rate_real: f64,
2358 #[prost(double, tag="7")]
2361 pub email_open_rate_raw: f64,
2362}
2363#[derive(Clone, PartialEq, ::prost::Message)]
2368pub struct GetCampaignArchetypeBreakdownResponse {
2369 #[prost(message, repeated, tag="1")]
2372 pub shifts: ::prost::alloc::vec::Vec<ArchetypeShareShift>,
2373 #[prost(message, optional, tag="2")]
2376 pub before_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2377 #[prost(message, optional, tag="3")]
2379 pub after_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2380 #[prost(bool, tag="4")]
2384 pub insufficient_history: bool,
2385}
2386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2393pub struct ResolveOrCreateShortCodeRequest {
2394 #[prost(string, tag="1")]
2397 pub campaign_id: ::prost::alloc::string::String,
2398}
2399#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2403pub struct ResolveOrCreateShortCodeResponse {
2404 #[prost(string, tag="1")]
2406 pub short_code: ::prost::alloc::string::String,
2407}
2408#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2415pub struct GetCampaignByShortCodeRequest {
2416 #[prost(string, tag="1")]
2419 pub short_code: ::prost::alloc::string::String,
2420}
2421#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2428pub struct GetCampaignByShortCodeResponse {
2429 #[prost(string, tag="1")]
2432 pub campaign_id: ::prost::alloc::string::String,
2433 #[prost(string, tag="2")]
2436 pub org_id: ::prost::alloc::string::String,
2437 #[prost(string, tag="3")]
2441 pub organization_name: ::prost::alloc::string::String,
2442 #[prost(string, tag="4")]
2446 pub subject: ::prost::alloc::string::String,
2447}
2448#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2453pub struct Device {
2454 #[prost(string, tag="1")]
2457 pub device_id: ::prost::alloc::string::String,
2458 #[prost(string, tag="2")]
2461 pub user_id: ::prost::alloc::string::String,
2462 #[prost(enumeration="Platform", tag="3")]
2464 pub platform: i32,
2465 #[prost(string, tag="4")]
2467 pub push_token: ::prost::alloc::string::String,
2468 #[prost(bool, tag="5")]
2470 pub active: bool,
2471 #[prost(message, optional, tag="6")]
2473 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2474 #[prost(message, optional, tag="7")]
2476 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2477}
2478#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2480pub struct DeviceSummary {
2481 #[prost(string, tag="1")]
2483 pub device_id: ::prost::alloc::string::String,
2484 #[prost(string, tag="2")]
2486 pub user_id: ::prost::alloc::string::String,
2487 #[prost(enumeration="Platform", tag="3")]
2489 pub platform: i32,
2490 #[prost(bool, tag="4")]
2492 pub active: bool,
2493 #[prost(message, optional, tag="5")]
2495 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2496 #[prost(message, optional, tag="6")]
2498 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2499}
2500#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2502pub struct RegisterRequest {
2503 #[prost(string, tag="1")]
2506 pub device_id: ::prost::alloc::string::String,
2507 #[prost(enumeration="Platform", tag="2")]
2509 pub platform: i32,
2510 #[prost(string, tag="3")]
2513 pub push_token: ::prost::alloc::string::String,
2514}
2515#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2517pub struct RegisterResponse {
2518 #[prost(message, optional, tag="1")]
2520 pub device: ::core::option::Option<DeviceSummary>,
2521}
2522#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2524pub struct DeactivateRequest {
2525 #[prost(string, tag="1")]
2528 pub device_id: ::prost::alloc::string::String,
2529}
2530#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2532pub struct DeactivateResponse {
2533 #[prost(bool, tag="1")]
2535 pub success: bool,
2536}
2537#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2539pub struct ListDevicesRequest {
2540}
2541#[derive(Clone, PartialEq, ::prost::Message)]
2543pub struct ListDevicesResponse {
2544 #[prost(message, repeated, tag="1")]
2546 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2547}
2548#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2550pub struct ListMemberDevicesRequest {
2551 #[prost(string, tag="1")]
2554 pub user_id: ::prost::alloc::string::String,
2555}
2556#[derive(Clone, PartialEq, ::prost::Message)]
2558pub struct ListMemberDevicesResponse {
2559 #[prost(message, repeated, tag="1")]
2561 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2562}
2563#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2568pub struct UserSettings {
2569 #[prost(enumeration="ThemePreference", tag="1")]
2571 pub theme_preference: i32,
2572 #[prost(string, tag="2")]
2576 pub preferred_locale: ::prost::alloc::string::String,
2577}
2578#[derive(Clone, PartialEq, ::prost::Message)]
2581pub struct UserProfile {
2582 #[prost(string, tag="1")]
2585 pub first_name: ::prost::alloc::string::String,
2586 #[prost(string, tag="2")]
2589 pub last_name: ::prost::alloc::string::String,
2590 #[prost(string, tag="3")]
2593 pub department: ::prost::alloc::string::String,
2594 #[prost(string, tag="4")]
2597 pub title: ::prost::alloc::string::String,
2598 #[prost(string, tag="5")]
2601 pub phone: ::prost::alloc::string::String,
2602 #[prost(string, tag="6")]
2605 pub location: ::prost::alloc::string::String,
2606 #[prost(string, tag="7")]
2609 pub employee_id: ::prost::alloc::string::String,
2610 #[prost(string, tag="8")]
2613 pub manager_name: ::prost::alloc::string::String,
2614 #[prost(string, tag="9")]
2617 pub start_date: ::prost::alloc::string::String,
2618 #[prost(map="string, string", tag="10")]
2621 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2622 #[prost(string, tag="11")]
2626 pub manager_id: ::prost::alloc::string::String,
2627}
2628#[derive(Clone, PartialEq, ::prost::Message)]
2630pub struct User {
2631 #[prost(string, tag="1")]
2633 pub id: ::prost::alloc::string::String,
2634 #[prost(string, tag="2")]
2637 pub email: ::prost::alloc::string::String,
2638 #[prost(string, tag="3")]
2641 pub name: ::prost::alloc::string::String,
2642 #[prost(enumeration="UserStatus", tag="5")]
2644 pub status: i32,
2645 #[prost(message, optional, tag="6")]
2647 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2648 #[prost(message, optional, tag="7")]
2650 pub role: ::core::option::Option<Role>,
2651 #[prost(string, tag="8")]
2653 pub role_id: ::prost::alloc::string::String,
2654 #[prost(message, optional, tag="9")]
2657 pub profile: ::core::option::Option<UserProfile>,
2658 #[prost(bool, tag="10")]
2661 pub processing_restricted: bool,
2662 #[prost(string, tag="11")]
2665 pub data_governance_region: ::prost::alloc::string::String,
2666}
2667#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2671#[repr(i32)]
2672pub enum UserStatus {
2673 Unspecified = 0,
2675 Invited = 1,
2677 Active = 2,
2679 Deactivated = 3,
2681}
2682impl UserStatus {
2683 pub fn as_str_name(&self) -> &'static str {
2688 match self {
2689 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2690 Self::Invited => "USER_STATUS_INVITED",
2691 Self::Active => "USER_STATUS_ACTIVE",
2692 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2693 }
2694 }
2695 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2697 match value {
2698 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2699 "USER_STATUS_INVITED" => Some(Self::Invited),
2700 "USER_STATUS_ACTIVE" => Some(Self::Active),
2701 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2702 _ => None,
2703 }
2704 }
2705}
2706#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2708#[repr(i32)]
2709pub enum ThemePreference {
2710 Unspecified = 0,
2712 Light = 1,
2714 Dark = 2,
2716 System = 3,
2718}
2719impl ThemePreference {
2720 pub fn as_str_name(&self) -> &'static str {
2725 match self {
2726 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2727 Self::Light => "THEME_PREFERENCE_LIGHT",
2728 Self::Dark => "THEME_PREFERENCE_DARK",
2729 Self::System => "THEME_PREFERENCE_SYSTEM",
2730 }
2731 }
2732 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2734 match value {
2735 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2736 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2737 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2738 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2739 _ => None,
2740 }
2741 }
2742}
2743#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2748pub struct Group {
2749 #[prost(string, tag="1")]
2751 pub id: ::prost::alloc::string::String,
2752 #[prost(string, tag="2")]
2755 pub name: ::prost::alloc::string::String,
2756 #[prost(string, tag="3")]
2759 pub description: ::prost::alloc::string::String,
2760 #[prost(int32, tag="4")]
2762 pub member_count: i32,
2763 #[prost(message, optional, tag="5")]
2765 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2766 #[prost(message, optional, tag="6")]
2768 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2769 #[prost(bool, tag="7")]
2771 pub is_default: bool,
2772 #[prost(string, tag="8")]
2774 pub created_by: ::prost::alloc::string::String,
2775}
2776#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2778pub struct CreateGroupRequest {
2779 #[prost(string, tag="1")]
2782 pub name: ::prost::alloc::string::String,
2783 #[prost(string, tag="2")]
2786 pub description: ::prost::alloc::string::String,
2787}
2788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2790pub struct CreateGroupResponse {
2791 #[prost(message, optional, tag="1")]
2793 pub group: ::core::option::Option<Group>,
2794}
2795#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2797pub struct GetGroupRequest {
2798 #[prost(string, tag="1")]
2800 pub group_id: ::prost::alloc::string::String,
2801}
2802#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2804pub struct GetGroupResponse {
2805 #[prost(message, optional, tag="1")]
2807 pub group: ::core::option::Option<Group>,
2808}
2809#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2811pub struct ListGroupsRequest {
2812 #[prost(message, optional, tag="1")]
2814 pub pagination: ::core::option::Option<Pagination>,
2815}
2816#[derive(Clone, PartialEq, ::prost::Message)]
2818pub struct ListGroupsResponse {
2819 #[prost(message, repeated, tag="1")]
2821 pub groups: ::prost::alloc::vec::Vec<Group>,
2822 #[prost(message, optional, tag="2")]
2824 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2825}
2826#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2828pub struct UpdateGroupRequest {
2829 #[prost(string, tag="1")]
2831 pub group_id: ::prost::alloc::string::String,
2832 #[prost(string, tag="2")]
2836 pub name: ::prost::alloc::string::String,
2837 #[prost(string, tag="3")]
2840 pub description: ::prost::alloc::string::String,
2841}
2842#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2844pub struct UpdateGroupResponse {
2845 #[prost(message, optional, tag="1")]
2847 pub group: ::core::option::Option<Group>,
2848}
2849#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2851pub struct DeleteGroupRequest {
2852 #[prost(string, tag="1")]
2855 pub group_id: ::prost::alloc::string::String,
2856}
2857#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2859pub struct DeleteGroupResponse {
2860}
2861#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2863pub struct AddGroupMembersRequest {
2864 #[prost(string, tag="1")]
2866 pub group_id: ::prost::alloc::string::String,
2867 #[prost(string, repeated, tag="2")]
2871 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2872}
2873#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2875pub struct AddGroupMembersResponse {
2876 #[prost(message, optional, tag="1")]
2878 pub group: ::core::option::Option<Group>,
2879}
2880#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2882pub struct RemoveGroupMembersRequest {
2883 #[prost(string, tag="1")]
2885 pub group_id: ::prost::alloc::string::String,
2886 #[prost(string, repeated, tag="2")]
2889 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2890}
2891#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2893pub struct RemoveGroupMembersResponse {
2894 #[prost(message, optional, tag="1")]
2896 pub group: ::core::option::Option<Group>,
2897}
2898#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2900pub struct ListGroupMembersRequest {
2901 #[prost(string, tag="1")]
2903 pub group_id: ::prost::alloc::string::String,
2904 #[prost(message, optional, tag="2")]
2906 pub pagination: ::core::option::Option<Pagination>,
2907}
2908#[derive(Clone, PartialEq, ::prost::Message)]
2910pub struct ListGroupMembersResponse {
2911 #[prost(message, repeated, tag="1")]
2913 pub users: ::prost::alloc::vec::Vec<User>,
2914 #[prost(message, optional, tag="2")]
2916 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2917}
2918#[derive(Clone, PartialEq, ::prost::Message)]
2920pub struct UserGroupMembership {
2921 #[prost(string, tag="1")]
2923 pub user_id: ::prost::alloc::string::String,
2924 #[prost(message, repeated, tag="2")]
2926 pub groups: ::prost::alloc::vec::Vec<Group>,
2927}
2928#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2930pub struct GetUserGroupMembershipsRequest {
2931 #[prost(string, repeated, tag="1")]
2934 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2935}
2936#[derive(Clone, PartialEq, ::prost::Message)]
2938pub struct GetUserGroupMembershipsResponse {
2939 #[prost(message, repeated, tag="1")]
2941 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2942}
2943#[derive(Clone, PartialEq, ::prost::Message)]
2947pub struct TouchEvent {
2948 #[prost(string, tag="1")]
2951 pub screen_name: ::prost::alloc::string::String,
2952 #[prost(float, tag="2")]
2955 pub x_pct: f32,
2956 #[prost(float, tag="3")]
2959 pub y_pct: f32,
2960 #[prost(enumeration="TouchEventType", tag="4")]
2962 pub event_type: i32,
2963 #[prost(int32, tag="5")]
2965 pub screen_width: i32,
2966 #[prost(int32, tag="6")]
2968 pub screen_height: i32,
2969 #[prost(message, optional, tag="7")]
2971 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2972 #[prost(string, tag="8")]
2975 pub campaign_id: ::prost::alloc::string::String,
2976}
2977#[derive(Clone, PartialEq, ::prost::Message)]
2979pub struct IngestTouchEventsRequest {
2980 #[prost(message, repeated, tag="1")]
2983 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2984}
2985#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2987pub struct IngestTouchEventsResponse {
2988 #[prost(int32, tag="1")]
2990 pub ingested_count: i32,
2991}
2992#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2994pub struct HeatmapDataPoint {
2995 #[prost(float, tag="1")]
2997 pub x_pct: f32,
2998 #[prost(float, tag="2")]
3000 pub y_pct: f32,
3001 #[prost(float, tag="3")]
3003 pub value: f32,
3004}
3005#[derive(Clone, PartialEq, ::prost::Message)]
3007pub struct QueryHeatmapDataRequest {
3008 #[prost(string, tag="1")]
3011 pub screen_name: ::prost::alloc::string::String,
3012 #[prost(message, optional, tag="2")]
3014 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3015 #[prost(message, optional, tag="3")]
3017 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3018 #[prost(string, tag="4")]
3021 pub campaign_id: ::prost::alloc::string::String,
3022 #[prost(float, tag="6")]
3025 pub grid_resolution: f32,
3026 #[prost(enumeration="HeatmapMode", tag="7")]
3028 pub mode: i32,
3029 #[prost(enumeration="TouchEventType", repeated, tag="8")]
3031 pub event_types: ::prost::alloc::vec::Vec<i32>,
3032}
3033#[derive(Clone, PartialEq, ::prost::Message)]
3035pub struct QueryHeatmapDataResponse {
3036 #[prost(message, repeated, tag="1")]
3038 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
3039 #[prost(string, tag="3")]
3042 pub screenshot_url: ::prost::alloc::string::String,
3043 #[prost(bool, tag="4")]
3045 pub cohort_enabled: bool,
3046}
3047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3049pub struct UploadScreenshotRequest {
3050 #[prost(string, tag="1")]
3053 pub screen_name: ::prost::alloc::string::String,
3054 #[prost(string, tag="2")]
3056 pub app_version: ::prost::alloc::string::String,
3057 #[prost(bytes="vec", tag="3")]
3060 pub image_data: ::prost::alloc::vec::Vec<u8>,
3061}
3062#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3064pub struct UploadScreenshotResponse {
3065 #[prost(string, tag="1")]
3067 pub url: ::prost::alloc::string::String,
3068}
3069#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3071pub struct ScreenScreenshot {
3072 #[prost(string, tag="1")]
3074 pub screen_name: ::prost::alloc::string::String,
3075 #[prost(string, tag="2")]
3077 pub url: ::prost::alloc::string::String,
3078 #[prost(string, tag="3")]
3080 pub app_version: ::prost::alloc::string::String,
3081}
3082#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3084pub struct ListScreenshotsRequest {
3085}
3086#[derive(Clone, PartialEq, ::prost::Message)]
3088pub struct ListScreenshotsResponse {
3089 #[prost(message, repeated, tag="1")]
3091 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
3092}
3093#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3097#[repr(i32)]
3098pub enum TouchEventType {
3099 Unspecified = 0,
3101 Tap = 1,
3103 LongPress = 2,
3105 Scroll = 3,
3107 ActionClick = 4,
3109}
3110impl TouchEventType {
3111 pub fn as_str_name(&self) -> &'static str {
3116 match self {
3117 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
3118 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
3119 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
3120 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
3121 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
3122 }
3123 }
3124 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3126 match value {
3127 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3128 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
3129 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
3130 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
3131 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
3132 _ => None,
3133 }
3134 }
3135}
3136#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3138#[repr(i32)]
3139pub enum HeatmapMode {
3140 Unspecified = 0,
3142 Total = 1,
3144 Median = 2,
3146}
3147impl HeatmapMode {
3148 pub fn as_str_name(&self) -> &'static str {
3153 match self {
3154 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
3155 Self::Total => "HEATMAP_MODE_TOTAL",
3156 Self::Median => "HEATMAP_MODE_MEDIAN",
3157 }
3158 }
3159 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3161 match value {
3162 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
3163 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
3164 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
3165 _ => None,
3166 }
3167 }
3168}
3169#[derive(Clone, PartialEq, ::prost::Message)]
3173pub struct InboxEntry {
3174 #[prost(string, tag="1")]
3177 pub delivery_id: ::prost::alloc::string::String,
3178 #[prost(message, optional, tag="2")]
3180 pub message: ::core::option::Option<Message>,
3181 #[prost(enumeration="DeliveryStatus", tag="3")]
3183 pub status: i32,
3184 #[prost(bool, tag="4")]
3186 pub read: bool,
3187 #[prost(message, optional, tag="5")]
3189 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
3190 #[prost(enumeration="delivery::Kind", tag="6")]
3194 pub kind: i32,
3195 #[prost(string, tag="7")]
3198 pub parent_delivery_id: ::prost::alloc::string::String,
3199 #[prost(string, tag="8")]
3202 pub rendered_locale: ::prost::alloc::string::String,
3203}
3204#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3206pub struct SyncRequest {
3207 #[prost(message, optional, tag="1")]
3209 pub since: ::core::option::Option<::prost_types::Timestamp>,
3210 #[prost(int32, tag="2")]
3213 pub limit: i32,
3214}
3215#[derive(Clone, PartialEq, ::prost::Message)]
3217pub struct SyncResponse {
3218 #[prost(message, repeated, tag="1")]
3220 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
3221 #[prost(message, optional, tag="2")]
3223 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
3224}
3225#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3227pub struct MarkReadRequest {
3228 #[prost(string, tag="1")]
3231 pub delivery_id: ::prost::alloc::string::String,
3232}
3233#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3235pub struct MarkReadResponse {
3236 #[prost(bool, tag="1")]
3238 pub success: bool,
3239}
3240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3242pub struct GetMessageRequest {
3243 #[prost(string, tag="1")]
3246 pub delivery_id: ::prost::alloc::string::String,
3247}
3248#[derive(Clone, PartialEq, ::prost::Message)]
3250pub struct GetMessageResponse {
3251 #[prost(message, optional, tag="1")]
3253 pub entry: ::core::option::Option<InboxEntry>,
3254}
3255#[derive(Clone, PartialEq, ::prost::Message)]
3260pub struct Archetype {
3261 #[prost(string, tag="1")]
3263 pub label: ::prost::alloc::string::String,
3264 #[prost(string, tag="2")]
3266 pub description: ::prost::alloc::string::String,
3267 #[prost(float, tag="3")]
3269 pub percentage: f32,
3270 #[prost(map="string, double", tag="4")]
3277 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
3278 #[prost(map="string, message", tag="5")]
3283 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
3284 #[prost(message, optional, tag="6")]
3288 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
3289 #[prost(message, optional, tag="7")]
3293 pub forecast: ::core::option::Option<ArchetypeForecast>,
3294 #[prost(message, repeated, tag="8")]
3300 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
3301 #[prost(message, optional, tag="9")]
3304 pub screen_dwell: ::core::option::Option<ScreenDwell>,
3305 #[prost(message, optional, tag="10")]
3309 pub response_timeline: ::core::option::Option<ResponseTimeline>,
3310}
3311#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3316pub struct DimensionStats {
3317 #[prost(double, tag="1")]
3319 pub centroid: f64,
3320 #[prost(double, tag="2")]
3322 pub p25: f64,
3323 #[prost(double, tag="3")]
3325 pub p50: f64,
3326 #[prost(double, tag="4")]
3328 pub p75: f64,
3329 #[prost(double, tag="5")]
3332 pub group_p50: f64,
3333}
3334#[derive(Clone, PartialEq, ::prost::Message)]
3338pub struct TapHeatmap {
3339 #[prost(int32, tag="1")]
3341 pub width: i32,
3342 #[prost(int32, tag="2")]
3344 pub height: i32,
3345 #[prost(double, repeated, tag="3")]
3348 pub values: ::prost::alloc::vec::Vec<f64>,
3349 #[prost(int32, tag="4")]
3352 pub session_count: i32,
3353 #[prost(message, repeated, tag="5")]
3357 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
3358}
3359#[derive(Clone, PartialEq, ::prost::Message)]
3361pub struct TapHeatmapLayer {
3362 #[prost(string, tag="1")]
3365 pub event_type: ::prost::alloc::string::String,
3366 #[prost(double, repeated, tag="2")]
3369 pub values: ::prost::alloc::vec::Vec<f64>,
3370}
3371#[derive(Clone, PartialEq, ::prost::Message)]
3373pub struct ArchetypeForecast {
3374 #[prost(message, repeated, tag="1")]
3377 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
3378}
3379#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3381pub struct ForecastHorizon {
3382 #[prost(int32, tag="1")]
3384 pub days: i32,
3385 #[prost(double, tag="2")]
3388 pub predicted_share: f64,
3389 #[prost(double, tag="3")]
3391 pub lower: f64,
3392 #[prost(double, tag="4")]
3394 pub upper: f64,
3395 #[prost(enumeration="ConfidenceLevel", tag="5")]
3397 pub confidence: i32,
3398}
3399#[derive(Clone, PartialEq, ::prost::Message)]
3402pub struct ExemplarSession {
3403 #[prost(string, tag="1")]
3406 pub session_id: ::prost::alloc::string::String,
3407 #[prost(int32, tag="2")]
3410 pub rank: i32,
3411 #[prost(double, tag="3")]
3413 pub distance: f64,
3414 #[prost(int32, tag="4")]
3416 pub duration_seconds: i32,
3417 #[prost(string, tag="5")]
3421 pub platform: ::prost::alloc::string::String,
3422}
3423#[derive(Clone, PartialEq, ::prost::Message)]
3427pub struct ScreenDwell {
3428 #[prost(message, repeated, tag="1")]
3431 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
3432}
3433#[derive(Clone, PartialEq, ::prost::Message)]
3434pub struct ScreenDwellEntry {
3435 #[prost(string, tag="1")]
3439 pub screen_name: ::prost::alloc::string::String,
3440 #[prost(double, tag="2")]
3442 pub median_seconds: f64,
3443 #[prost(double, tag="3")]
3445 pub p75_seconds: f64,
3446 #[prost(int32, tag="4")]
3448 pub session_count: i32,
3449}
3450#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3454pub struct ResponseTimeline {
3455 #[prost(message, optional, tag="1")]
3457 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
3458 #[prost(message, optional, tag="2")]
3461 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
3462 #[prost(message, optional, tag="3")]
3465 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
3466 #[prost(int32, tag="4")]
3468 pub delivery_count: i32,
3469}
3470#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3472pub struct LatencyPercentiles {
3473 #[prost(double, tag="1")]
3474 pub p50: f64,
3475 #[prost(double, tag="2")]
3476 pub p75: f64,
3477 #[prost(double, tag="3")]
3478 pub p95: f64,
3479}
3480#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3483pub struct CohortPrediction {
3484 #[prost(float, tag="1")]
3486 pub predicted_ack_rate: f32,
3487 #[prost(float, tag="2")]
3489 pub confidence_low: f32,
3490 #[prost(float, tag="3")]
3492 pub confidence_high: f32,
3493 #[prost(enumeration="ConfidenceLevel", tag="4")]
3495 pub confidence_level: i32,
3496 #[prost(int32, tag="5")]
3498 pub data_point_count: i32,
3499}
3500#[derive(Clone, PartialEq, ::prost::Message)]
3502pub struct CampaignAdvisory {
3503 #[prost(message, optional, tag="1")]
3505 pub predicted_ack: ::core::option::Option<CohortPrediction>,
3506 #[prost(int32, tag="2")]
3509 pub suggested_escalation_delay_minutes: i32,
3510 #[prost(message, repeated, tag="3")]
3512 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3513}
3514#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3516pub struct GetGroupArchetypesRequest {
3517 #[prost(string, tag="1")]
3519 pub group_id: ::prost::alloc::string::String,
3520}
3521#[derive(Clone, PartialEq, ::prost::Message)]
3523pub struct GetGroupArchetypesResponse {
3524 #[prost(message, repeated, tag="1")]
3526 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3527 #[prost(int32, tag="2")]
3529 pub data_point_count: i32,
3530 #[prost(enumeration="PipelineState", tag="3")]
3534 pub pipeline_state: i32,
3535}
3536#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3538pub struct PredictCampaignAckRequest {
3539 #[prost(string, tag="1")]
3541 pub group_id: ::prost::alloc::string::String,
3542 #[prost(string, tag="2")]
3544 pub template_type: ::prost::alloc::string::String,
3545 #[prost(int32, tag="3")]
3547 pub workflow_step_count: i32,
3548}
3549#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3551pub struct PredictCampaignAckResponse {
3552 #[prost(message, optional, tag="1")]
3554 pub prediction: ::core::option::Option<CohortPrediction>,
3555}
3556#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3558pub struct GetCampaignAdvisoryRequest {
3559 #[prost(string, tag="1")]
3561 pub group_id: ::prost::alloc::string::String,
3562 #[prost(string, tag="2")]
3564 pub template_id: ::prost::alloc::string::String,
3565 #[prost(int32, tag="3")]
3567 pub template_version: i32,
3568 #[prost(int32, tag="4")]
3570 pub workflow_step_count: i32,
3571}
3572#[derive(Clone, PartialEq, ::prost::Message)]
3574pub struct GetCampaignAdvisoryResponse {
3575 #[prost(message, optional, tag="1")]
3577 pub advisory: ::core::option::Option<CampaignAdvisory>,
3578}
3579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3581pub struct GetInsightNarrativeRequest {
3582 #[prost(string, tag="1")]
3584 pub group_id: ::prost::alloc::string::String,
3585 #[prost(string, tag="2")]
3587 pub prompt_name: ::prost::alloc::string::String,
3588}
3589#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3591pub struct GetInsightNarrativeResponse {
3592 #[prost(string, tag="1")]
3594 pub narrative: ::prost::alloc::string::String,
3595 #[prost(message, optional, tag="2")]
3597 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3598 #[prost(string, tag="3")]
3600 pub model_id: ::prost::alloc::string::String,
3601}
3602#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3605pub struct TriggerMlPipelineRequest {
3606}
3607#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3609pub struct TriggerMlPipelineResponse {
3610 #[prost(int32, tag="1")]
3612 pub remaining_this_month: i32,
3613 #[prost(message, optional, tag="2")]
3615 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3616}
3617#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3621pub struct TriggerArchetypeClusteringRequest {
3622 #[prost(string, tag="1")]
3624 pub group_id: ::prost::alloc::string::String,
3625}
3626#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3628pub struct TriggerArchetypeClusteringResponse {
3629 #[prost(string, tag="1")]
3632 pub workflow_id: ::prost::alloc::string::String,
3633 #[prost(int32, tag="2")]
3636 pub remaining_this_month: i32,
3637 #[prost(message, optional, tag="3")]
3640 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3641}
3642#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3646pub struct GenerateCampaignBodyDraftRequest {
3647 #[prost(string, tag="1")]
3649 pub group_id: ::prost::alloc::string::String,
3650 #[prost(string, tag="2")]
3652 pub archetype_label: ::prost::alloc::string::String,
3653 #[prost(string, tag="3")]
3656 pub lane_action: ::prost::alloc::string::String,
3657}
3658#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3660pub struct GenerateCampaignBodyDraftResponse {
3661 #[prost(string, tag="1")]
3664 pub body_markdown: ::prost::alloc::string::String,
3665}
3666#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3670#[repr(i32)]
3671pub enum ConfidenceLevel {
3672 Unspecified = 0,
3673 Low = 1,
3675 Medium = 2,
3677 High = 3,
3679}
3680impl ConfidenceLevel {
3681 pub fn as_str_name(&self) -> &'static str {
3686 match self {
3687 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3688 Self::Low => "CONFIDENCE_LEVEL_LOW",
3689 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3690 Self::High => "CONFIDENCE_LEVEL_HIGH",
3691 }
3692 }
3693 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3695 match value {
3696 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3697 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3698 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3699 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3700 _ => None,
3701 }
3702 }
3703}
3704#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3710#[repr(i32)]
3711pub enum PipelineState {
3712 Unspecified = 0,
3713 NeverRun = 1,
3716 BelowThreshold = 2,
3720 NoClusters = 3,
3724 Ready = 4,
3726}
3727impl PipelineState {
3728 pub fn as_str_name(&self) -> &'static str {
3733 match self {
3734 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3735 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3736 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3737 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3738 Self::Ready => "PIPELINE_STATE_READY",
3739 }
3740 }
3741 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3743 match value {
3744 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3745 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3746 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3747 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3748 "PIPELINE_STATE_READY" => Some(Self::Ready),
3749 _ => None,
3750 }
3751 }
3752}
3753#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3760pub struct Reachability {
3761 #[prost(string, tag="1")]
3763 pub id: ::prost::alloc::string::String,
3764 #[prost(string, tag="2")]
3766 pub org_id: ::prost::alloc::string::String,
3767 #[prost(string, tag="3")]
3769 pub user_id: ::prost::alloc::string::String,
3770 #[prost(enumeration="ChannelName", tag="4")]
3772 pub channel: i32,
3773 #[prost(message, optional, tag="5")]
3775 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3776 #[prost(message, optional, tag="6")]
3778 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3779 #[prost(string, optional, tag="7")]
3783 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3784}
3785#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3789pub struct RegionPolicy {
3790 #[prost(string, tag="1")]
3791 pub org_id: ::prost::alloc::string::String,
3792 #[prost(enumeration="ChannelName", tag="2")]
3793 pub channel: i32,
3794 #[prost(string, repeated, tag="3")]
3797 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3798 #[prost(message, optional, tag="4")]
3799 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3800}
3801#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3809#[repr(i32)]
3810pub enum DispatchStatus {
3811 Unspecified = 0,
3813 Sent = 1,
3815 Failed = 2,
3818 Deduped = 3,
3822}
3823impl DispatchStatus {
3824 pub fn as_str_name(&self) -> &'static str {
3829 match self {
3830 Self::Unspecified => "DISPATCH_STATUS_UNSPECIFIED",
3831 Self::Sent => "DISPATCH_STATUS_SENT",
3832 Self::Failed => "DISPATCH_STATUS_FAILED",
3833 Self::Deduped => "DISPATCH_STATUS_DEDUPED",
3834 }
3835 }
3836 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3838 match value {
3839 "DISPATCH_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
3840 "DISPATCH_STATUS_SENT" => Some(Self::Sent),
3841 "DISPATCH_STATUS_FAILED" => Some(Self::Failed),
3842 "DISPATCH_STATUS_DEDUPED" => Some(Self::Deduped),
3843 _ => None,
3844 }
3845 }
3846}
3847#[derive(Clone, PartialEq, ::prost::Message)]
3854pub struct DispatchToChannelRequest {
3855 #[prost(string, tag="1")]
3857 pub dispatch_id: ::prost::alloc::string::String,
3858 #[prost(string, tag="2")]
3859 pub org_id: ::prost::alloc::string::String,
3860 #[prost(string, tag="3")]
3861 pub user_id: ::prost::alloc::string::String,
3862 #[prost(enumeration="ChannelName", tag="4")]
3864 pub channel: i32,
3865 #[prost(string, tag="5")]
3867 pub template_id: ::prost::alloc::string::String,
3868 #[prost(map="string, string", tag="6")]
3870 pub template_vars: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3871 #[prost(string, tag="7")]
3873 pub locale: ::prost::alloc::string::String,
3874 #[prost(string, optional, tag="8")]
3877 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3878}
3879#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3880pub struct DispatchToChannelResponse {
3881 #[prost(string, tag="1")]
3883 pub dispatch_id: ::prost::alloc::string::String,
3884 #[prost(enumeration="DispatchStatus", tag="2")]
3886 pub status: i32,
3887 #[prost(string, optional, tag="3")]
3890 pub failure_reason: ::core::option::Option<::prost::alloc::string::String>,
3891}
3892#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3899pub struct UpsertReachabilityRequest {
3900 #[prost(string, tag="1")]
3901 pub org_id: ::prost::alloc::string::String,
3902 #[prost(string, tag="2")]
3903 pub user_id: ::prost::alloc::string::String,
3904 #[prost(enumeration="ChannelName", tag="3")]
3905 pub channel: i32,
3906 #[prost(string, tag="4")]
3910 pub identifier_plaintext: ::prost::alloc::string::String,
3911 #[prost(string, optional, tag="5")]
3914 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3915}
3916#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3917pub struct UpsertReachabilityResponse {
3918 #[prost(message, optional, tag="1")]
3921 pub reachability: ::core::option::Option<Reachability>,
3922}
3923#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3929pub struct RemoveReachabilityRequest {
3930 #[prost(string, tag="1")]
3931 pub org_id: ::prost::alloc::string::String,
3932 #[prost(string, tag="2")]
3933 pub user_id: ::prost::alloc::string::String,
3934 #[prost(enumeration="ChannelName", tag="3")]
3935 pub channel: i32,
3936}
3937#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3938pub struct RemoveReachabilityResponse {
3939 #[prost(bool, tag="1")]
3942 pub removed: bool,
3943}
3944#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3949pub struct GetReachabilityRequest {
3950 #[prost(string, tag="1")]
3951 pub org_id: ::prost::alloc::string::String,
3952 #[prost(string, tag="2")]
3953 pub user_id: ::prost::alloc::string::String,
3954 #[prost(enumeration="ChannelName", tag="3")]
3955 pub channel: i32,
3956}
3957#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3958pub struct GetReachabilityResponse {
3959 #[prost(message, optional, tag="1")]
3961 pub reachability: ::core::option::Option<Reachability>,
3962}
3963#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3970pub struct ListReachabilityForUserRequest {
3971 #[prost(string, tag="1")]
3972 pub org_id: ::prost::alloc::string::String,
3973 #[prost(string, tag="2")]
3974 pub user_id: ::prost::alloc::string::String,
3975}
3976#[derive(Clone, PartialEq, ::prost::Message)]
3977pub struct ListReachabilityForUserResponse {
3978 #[prost(message, repeated, tag="1")]
3980 pub reachabilities: ::prost::alloc::vec::Vec<Reachability>,
3981}
3982#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3985pub struct GetRegionPolicyRequest {
3986 #[prost(string, tag="1")]
3987 pub org_id: ::prost::alloc::string::String,
3988 #[prost(enumeration="ChannelName", tag="2")]
3989 pub channel: i32,
3990}
3991#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3992pub struct GetRegionPolicyResponse {
3993 #[prost(message, optional, tag="1")]
3996 pub policy: ::core::option::Option<RegionPolicy>,
3997}
3998#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4000pub struct SetRegionPolicyRequest {
4001 #[prost(string, tag="1")]
4002 pub org_id: ::prost::alloc::string::String,
4003 #[prost(enumeration="ChannelName", tag="2")]
4004 pub channel: i32,
4005 #[prost(string, repeated, tag="3")]
4007 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4008}
4009#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4010pub struct SetRegionPolicyResponse {
4011 #[prost(message, optional, tag="1")]
4012 pub policy: ::core::option::Option<RegionPolicy>,
4013}
4014#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4021pub struct GetCostCapPolicyRequest {
4022 #[prost(string, tag="1")]
4023 pub org_id: ::prost::alloc::string::String,
4024 #[prost(enumeration="ChannelName", tag="2")]
4025 pub channel: i32,
4026}
4027#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4028pub struct GetCostCapPolicyResponse {
4029 #[prost(string, tag="1")]
4030 pub org_id: ::prost::alloc::string::String,
4031 #[prost(enumeration="ChannelName", tag="2")]
4032 pub channel: i32,
4033 #[prost(int64, tag="3")]
4035 pub cap_micros: i64,
4036 #[prost(int64, tag="4")]
4038 pub used_micros: i64,
4039 #[prost(int32, tag="5")]
4041 pub period_yyyymm: i32,
4042}
4043#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4046pub struct SetCostCapPolicyRequest {
4047 #[prost(string, tag="1")]
4048 pub org_id: ::prost::alloc::string::String,
4049 #[prost(enumeration="ChannelName", tag="2")]
4050 pub channel: i32,
4051 #[prost(int64, tag="3")]
4052 pub cap_micros: i64,
4053}
4054#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4055pub struct SetCostCapPolicyResponse {
4056 #[prost(string, tag="1")]
4057 pub org_id: ::prost::alloc::string::String,
4058 #[prost(enumeration="ChannelName", tag="2")]
4059 pub channel: i32,
4060 #[prost(int64, tag="3")]
4061 pub cap_micros: i64,
4062 #[prost(int64, tag="4")]
4063 pub used_micros: i64,
4064 #[prost(int32, tag="5")]
4065 pub period_yyyymm: i32,
4066}
4067#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4072pub struct InviteLink {
4073 #[prost(string, tag="1")]
4075 pub id: ::prost::alloc::string::String,
4076 #[prost(string, tag="2")]
4078 pub token: ::prost::alloc::string::String,
4079 #[prost(string, tag="3")]
4081 pub role_id: ::prost::alloc::string::String,
4082 #[prost(int32, tag="4")]
4085 pub max_uses: i32,
4086 #[prost(int32, tag="5")]
4088 pub use_count: i32,
4089 #[prost(message, optional, tag="6")]
4091 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4092 #[prost(message, optional, tag="7")]
4094 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
4095 #[prost(string, tag="8")]
4097 pub created_by: ::prost::alloc::string::String,
4098 #[prost(message, optional, tag="9")]
4100 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4101 #[prost(string, tag="10")]
4104 pub data_governance_region: ::prost::alloc::string::String,
4105}
4106#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4108pub struct CreateInviteLinkRequest {
4109 #[prost(string, tag="1")]
4111 pub role_id: ::prost::alloc::string::String,
4112 #[prost(int32, tag="2")]
4114 pub max_uses: i32,
4115 #[prost(int32, tag="3")]
4118 pub expires_in_hours: i32,
4119 #[prost(string, tag="4")]
4122 pub data_governance_region: ::prost::alloc::string::String,
4123}
4124#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4126pub struct CreateInviteLinkResponse {
4127 #[prost(message, optional, tag="1")]
4129 pub invite_link: ::core::option::Option<InviteLink>,
4130 #[prost(string, tag="2")]
4132 pub url: ::prost::alloc::string::String,
4133}
4134#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4136pub struct ListInviteLinksRequest {
4137}
4138#[derive(Clone, PartialEq, ::prost::Message)]
4140pub struct ListInviteLinksResponse {
4141 #[prost(message, repeated, tag="1")]
4143 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
4144}
4145#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4147pub struct RevokeInviteLinkRequest {
4148 #[prost(string, tag="1")]
4150 pub invite_link_id: ::prost::alloc::string::String,
4151}
4152#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4154pub struct RevokeInviteLinkResponse {
4155}
4156#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4158pub struct RedeemInviteLinkRequest {
4159 #[prost(string, tag="1")]
4161 pub token: ::prost::alloc::string::String,
4162}
4163#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4165pub struct RedeemInviteLinkResponse {
4166 #[prost(string, tag="1")]
4168 pub organization_name: ::prost::alloc::string::String,
4169}
4170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4172pub struct ValidateInviteLinkRequest {
4173 #[prost(string, tag="1")]
4175 pub token: ::prost::alloc::string::String,
4176 #[prost(string, tag="2")]
4179 pub email: ::prost::alloc::string::String,
4180}
4181#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4183pub struct ValidateInviteLinkResponse {
4184 #[prost(string, tag="1")]
4186 pub organization_name: ::prost::alloc::string::String,
4187}
4188#[derive(Clone, PartialEq, ::prost::Message)]
4192pub struct InviteUserRequest {
4193 #[prost(string, tag="1")]
4196 pub email: ::prost::alloc::string::String,
4197 #[prost(string, tag="2")]
4200 pub name: ::prost::alloc::string::String,
4201 #[prost(string, tag="4")]
4203 pub role_id: ::prost::alloc::string::String,
4204 #[prost(message, optional, tag="5")]
4206 pub profile: ::core::option::Option<UserProfile>,
4207 #[prost(string, tag="6")]
4210 pub data_governance_region: ::prost::alloc::string::String,
4211}
4212#[derive(Clone, PartialEq, ::prost::Message)]
4214pub struct InviteUserResponse {
4215 #[prost(message, optional, tag="1")]
4217 pub user: ::core::option::Option<User>,
4218}
4219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4221pub struct GetUserRequest {
4222 #[prost(string, tag="1")]
4224 pub user_id: ::prost::alloc::string::String,
4225}
4226#[derive(Clone, PartialEq, ::prost::Message)]
4228pub struct GetUserResponse {
4229 #[prost(message, optional, tag="1")]
4231 pub user: ::core::option::Option<User>,
4232}
4233#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4235pub struct ListUsersRequest {
4236 #[prost(message, optional, tag="1")]
4238 pub pagination: ::core::option::Option<Pagination>,
4239}
4240#[derive(Clone, PartialEq, ::prost::Message)]
4242pub struct ListUsersResponse {
4243 #[prost(message, repeated, tag="1")]
4245 pub users: ::prost::alloc::vec::Vec<User>,
4246 #[prost(message, optional, tag="2")]
4248 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4249}
4250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4252pub struct UpdateUserRoleRequest {
4253 #[prost(string, tag="1")]
4255 pub user_id: ::prost::alloc::string::String,
4256 #[prost(string, tag="2")]
4258 pub role_id: ::prost::alloc::string::String,
4259}
4260#[derive(Clone, PartialEq, ::prost::Message)]
4262pub struct UpdateUserRoleResponse {
4263 #[prost(message, optional, tag="1")]
4265 pub user: ::core::option::Option<User>,
4266}
4267#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4269pub struct DeactivateUserRequest {
4270 #[prost(string, tag="1")]
4272 pub user_id: ::prost::alloc::string::String,
4273}
4274#[derive(Clone, PartialEq, ::prost::Message)]
4276pub struct DeactivateUserResponse {
4277 #[prost(message, optional, tag="1")]
4279 pub user: ::core::option::Option<User>,
4280}
4281#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4283pub struct ReactivateUserRequest {
4284 #[prost(string, tag="1")]
4286 pub user_id: ::prost::alloc::string::String,
4287}
4288#[derive(Clone, PartialEq, ::prost::Message)]
4290pub struct ReactivateUserResponse {
4291 #[prost(message, optional, tag="1")]
4293 pub user: ::core::option::Option<User>,
4294}
4295#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4297pub struct RevokeInviteRequest {
4298 #[prost(string, tag="1")]
4301 pub user_id: ::prost::alloc::string::String,
4302}
4303#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4305pub struct RevokeInviteResponse {
4306}
4307#[derive(Clone, PartialEq, ::prost::Message)]
4309pub struct UpdateUserProfileRequest {
4310 #[prost(string, tag="1")]
4313 pub user_id: ::prost::alloc::string::String,
4314 #[prost(message, optional, tag="2")]
4316 pub profile: ::core::option::Option<UserProfile>,
4317}
4318#[derive(Clone, PartialEq, ::prost::Message)]
4320pub struct UpdateUserProfileResponse {
4321 #[prost(message, optional, tag="1")]
4323 pub user: ::core::option::Option<User>,
4324}
4325#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4327pub struct GetUserSettingsRequest {
4328}
4329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4331pub struct GetUserSettingsResponse {
4332 #[prost(message, optional, tag="1")]
4334 pub settings: ::core::option::Option<UserSettings>,
4335}
4336#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4338pub struct UpdateUserSettingsRequest {
4339 #[prost(message, optional, tag="1")]
4342 pub settings: ::core::option::Option<UserSettings>,
4343}
4344#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4346pub struct UpdateUserSettingsResponse {
4347 #[prost(message, optional, tag="1")]
4349 pub settings: ::core::option::Option<UserSettings>,
4350}
4351#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4353pub struct BulkInviteUsersRequest {
4354 #[prost(string, repeated, tag="1")]
4357 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4358 #[prost(string, tag="2")]
4360 pub role_id: ::prost::alloc::string::String,
4361}
4362#[derive(Clone, PartialEq, ::prost::Message)]
4364pub struct BulkInviteResult {
4365 #[prost(string, tag="1")]
4367 pub email: ::prost::alloc::string::String,
4368 #[prost(bool, tag="2")]
4370 pub success: bool,
4371 #[prost(string, tag="3")]
4374 pub error: ::prost::alloc::string::String,
4375 #[prost(message, optional, tag="4")]
4377 pub user: ::core::option::Option<User>,
4378}
4379#[derive(Clone, PartialEq, ::prost::Message)]
4381pub struct BulkInviteUsersResponse {
4382 #[prost(message, repeated, tag="1")]
4384 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
4385 #[prost(int32, tag="2")]
4387 pub invited_count: i32,
4388 #[prost(int32, tag="3")]
4390 pub failed_count: i32,
4391}
4392#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4396pub struct ConfirmPasskeyEnrollmentRequest {
4397}
4398#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4400pub struct ConfirmPasskeyEnrollmentResponse {
4401 #[prost(bool, tag="1")]
4403 pub confirmed: bool,
4404}
4405#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4407pub struct UpdateUserRegionRequest {
4408 #[prost(string, tag="1")]
4410 pub user_id: ::prost::alloc::string::String,
4411 #[prost(string, tag="2")]
4414 pub data_governance_region: ::prost::alloc::string::String,
4415}
4416#[derive(Clone, PartialEq, ::prost::Message)]
4418pub struct UpdateUserRegionResponse {
4419 #[prost(message, optional, tag="1")]
4421 pub user: ::core::option::Option<User>,
4422 #[prost(string, tag="2")]
4425 pub migration_workflow_id: ::prost::alloc::string::String,
4426}
4427#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4436pub struct Pepper {
4437 #[prost(int32, tag="1")]
4439 pub version: i32,
4440 #[prost(bytes="vec", tag="2")]
4444 pub key_material: ::prost::alloc::vec::Vec<u8>,
4445}
4446#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4453pub struct GetPeppersRequest {
4454 #[prost(string, tag="1")]
4456 pub org_id: ::prost::alloc::string::String,
4457 #[prost(string, tag="2")]
4460 pub purpose: ::prost::alloc::string::String,
4461}
4462#[derive(Clone, PartialEq, ::prost::Message)]
4463pub struct GetPeppersResponse {
4464 #[prost(message, repeated, tag="1")]
4469 pub peppers: ::prost::alloc::vec::Vec<Pepper>,
4470}
4471#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4476pub struct SsoAttributeMapping {
4477 #[prost(string, tag="1")]
4480 pub idp_claim: ::prost::alloc::string::String,
4481 #[prost(string, tag="2")]
4485 pub profile_field: ::prost::alloc::string::String,
4486}
4487#[derive(Clone, PartialEq, ::prost::Message)]
4489pub struct Organization {
4490 #[prost(string, tag="1")]
4492 pub id: ::prost::alloc::string::String,
4493 #[prost(string, tag="2")]
4496 pub name: ::prost::alloc::string::String,
4497 #[prost(message, optional, tag="3")]
4499 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4500 #[prost(message, optional, tag="4")]
4502 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4503 #[prost(enumeration="Industry", tag="5")]
4505 pub industry: i32,
4506 #[prost(enumeration="CompanySize", tag="6")]
4508 pub company_size: i32,
4509 #[prost(message, repeated, tag="7")]
4512 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4513 #[prost(string, tag="8")]
4517 pub default_locale: ::prost::alloc::string::String,
4518 #[prost(enumeration="OrgType", tag="9")]
4520 pub org_type: i32,
4521 #[prost(message, optional, tag="10")]
4523 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4524 #[prost(string, tag="11")]
4527 pub data_governance_region: ::prost::alloc::string::String,
4528 #[prost(string, tag="12")]
4531 pub data_content_region: ::prost::alloc::string::String,
4532 #[prost(int32, tag="13")]
4537 pub ml_retrain_cold_threshold: i32,
4538 #[prost(bool, tag="14")]
4540 pub ml_cancelled_counts: bool,
4541 #[prost(int32, tag="15")]
4543 pub ml_manual_limit_monthly: i32,
4544 #[prost(int32, tag="16")]
4546 pub ml_manual_retrains_used: i32,
4547 #[prost(bool, tag="17")]
4549 pub ml_needs_retrain: bool,
4550 #[prost(int32, tag="18")]
4552 pub campaigns_since_last_training: i32,
4553 #[prost(int32, tag="19")]
4555 pub total_completed_campaigns: i32,
4556 #[prost(message, optional, tag="20")]
4558 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
4559}
4560#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4564pub struct CreateOrganizationRequest {
4565 #[prost(string, tag="1")]
4568 pub name: ::prost::alloc::string::String,
4569 #[prost(enumeration="Industry", tag="2")]
4571 pub industry: i32,
4572 #[prost(enumeration="CompanySize", tag="3")]
4574 pub company_size: i32,
4575 #[prost(string, tag="4")]
4578 pub access_code: ::prost::alloc::string::String,
4579 #[prost(string, tag="5")]
4582 pub data_governance_region: ::prost::alloc::string::String,
4583}
4584#[derive(Clone, PartialEq, ::prost::Message)]
4586pub struct CreateOrganizationResponse {
4587 #[prost(message, optional, tag="1")]
4589 pub organization: ::core::option::Option<Organization>,
4590 #[prost(message, optional, tag="2")]
4592 pub admin_user: ::core::option::Option<User>,
4593}
4594#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4596pub struct GetOrganizationRequest {
4597}
4598#[derive(Clone, PartialEq, ::prost::Message)]
4600pub struct GetOrganizationResponse {
4601 #[prost(message, optional, tag="1")]
4603 pub organization: ::core::option::Option<Organization>,
4604}
4605#[derive(Clone, PartialEq, ::prost::Message)]
4607pub struct UpdateOrganizationRequest {
4608 #[prost(string, tag="1")]
4611 pub name: ::prost::alloc::string::String,
4612 #[prost(message, optional, tag="2")]
4614 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4615 #[prost(enumeration="Industry", tag="3")]
4617 pub industry: i32,
4618 #[prost(enumeration="CompanySize", tag="4")]
4620 pub company_size: i32,
4621 #[prost(string, tag="5")]
4624 pub default_locale: ::prost::alloc::string::String,
4625 #[prost(int32, tag="6")]
4627 pub ml_retrain_cold_threshold: i32,
4628 #[prost(bool, optional, tag="7")]
4631 pub ml_cancelled_counts: ::core::option::Option<bool>,
4632 #[prost(int32, tag="8")]
4635 pub ml_manual_limit_monthly: i32,
4636}
4637#[derive(Clone, PartialEq, ::prost::Message)]
4639pub struct UpdateOrganizationResponse {
4640 #[prost(message, optional, tag="1")]
4642 pub organization: ::core::option::Option<Organization>,
4643}
4644#[derive(Clone, PartialEq, ::prost::Message)]
4646pub struct UpdateSsoAttributeMappingsRequest {
4647 #[prost(message, repeated, tag="1")]
4649 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4650}
4651#[derive(Clone, PartialEq, ::prost::Message)]
4653pub struct UpdateSsoAttributeMappingsResponse {
4654 #[prost(message, optional, tag="1")]
4656 pub organization: ::core::option::Option<Organization>,
4657}
4658#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4660pub struct RotateAnalyticsSaltRequest {
4661 #[prost(int32, tag="1")]
4663 pub new_bucket_count: i32,
4664}
4665#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4667pub struct RotateAnalyticsSaltResponse {
4668 #[prost(int32, tag="1")]
4670 pub bucket_count: i32,
4671}
4672#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4674pub struct UpdateAnalyticsEpsilonRequest {
4675 #[prost(float, tag="1")]
4677 pub epsilon: f32,
4678}
4679#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4681pub struct UpdateAnalyticsEpsilonResponse {
4682 #[prost(float, tag="1")]
4684 pub epsilon: f32,
4685}
4686#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4688pub struct CreateSandboxOrganizationRequest {
4689 #[prost(string, tag="1")]
4692 pub name: ::prost::alloc::string::String,
4693 #[prost(message, optional, tag="2")]
4696 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4697 #[prost(string, tag="3")]
4700 pub data_governance_region: ::prost::alloc::string::String,
4701 #[prost(string, tag="4")]
4705 pub fixture_id: ::prost::alloc::string::String,
4706}
4707#[derive(Clone, PartialEq, ::prost::Message)]
4709pub struct CreateSandboxOrganizationResponse {
4710 #[prost(message, optional, tag="1")]
4712 pub organization: ::core::option::Option<Organization>,
4713 #[prost(message, optional, tag="2")]
4715 pub admin_user: ::core::option::Option<User>,
4716}
4717#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4720pub struct DeleteSandboxOrganizationRequest {
4721 #[prost(string, tag="1")]
4723 pub org_id: ::prost::alloc::string::String,
4724}
4725#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4728pub struct DeleteSandboxOrganizationResponse {
4729 #[prost(string, tag="1")]
4731 pub workflow_id: ::prost::alloc::string::String,
4732}
4733#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4735pub struct SandboxFixture {
4736 #[prost(string, tag="1")]
4738 pub id: ::prost::alloc::string::String,
4739 #[prost(string, tag="2")]
4741 pub name: ::prost::alloc::string::String,
4742 #[prost(string, tag="3")]
4744 pub description: ::prost::alloc::string::String,
4745 #[prost(bool, tag="4")]
4748 pub is_default: bool,
4749}
4750#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4753pub struct ListSandboxFixturesRequest {
4754}
4755#[derive(Clone, PartialEq, ::prost::Message)]
4757pub struct ListSandboxFixturesResponse {
4758 #[prost(message, repeated, tag="1")]
4760 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
4761}
4762#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4765pub struct ListUserOrganizationsRequest {
4766}
4767#[derive(Clone, PartialEq, ::prost::Message)]
4769pub struct ListUserOrganizationsResponse {
4770 #[prost(message, repeated, tag="1")]
4773 pub organizations: ::prost::alloc::vec::Vec<Organization>,
4774}
4775#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4780pub struct ListUserSandboxesRequest {
4781}
4782#[derive(Clone, PartialEq, ::prost::Message)]
4784pub struct ListUserSandboxesResponse {
4785 #[prost(message, repeated, tag="1")]
4790 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
4791}
4792#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4796#[repr(i32)]
4797pub enum Industry {
4798 Unspecified = 0,
4799 Technology = 1,
4800 Finance = 2,
4801 Healthcare = 3,
4802 Education = 4,
4803 Retail = 5,
4804 Manufacturing = 6,
4805 Media = 7,
4806 Other = 8,
4807}
4808impl Industry {
4809 pub fn as_str_name(&self) -> &'static str {
4814 match self {
4815 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
4816 Self::Technology => "INDUSTRY_TECHNOLOGY",
4817 Self::Finance => "INDUSTRY_FINANCE",
4818 Self::Healthcare => "INDUSTRY_HEALTHCARE",
4819 Self::Education => "INDUSTRY_EDUCATION",
4820 Self::Retail => "INDUSTRY_RETAIL",
4821 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
4822 Self::Media => "INDUSTRY_MEDIA",
4823 Self::Other => "INDUSTRY_OTHER",
4824 }
4825 }
4826 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4828 match value {
4829 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
4830 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
4831 "INDUSTRY_FINANCE" => Some(Self::Finance),
4832 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
4833 "INDUSTRY_EDUCATION" => Some(Self::Education),
4834 "INDUSTRY_RETAIL" => Some(Self::Retail),
4835 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
4836 "INDUSTRY_MEDIA" => Some(Self::Media),
4837 "INDUSTRY_OTHER" => Some(Self::Other),
4838 _ => None,
4839 }
4840 }
4841}
4842#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4844#[repr(i32)]
4845pub enum CompanySize {
4846 Unspecified = 0,
4847 CompanySize1200 = 1,
4848 CompanySize200500 = 2,
4849 CompanySize5001000 = 3,
4850 CompanySize10005000 = 4,
4851 CompanySize5000Plus = 5,
4852}
4853impl CompanySize {
4854 pub fn as_str_name(&self) -> &'static str {
4859 match self {
4860 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
4861 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
4862 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
4863 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
4864 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
4865 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
4866 }
4867 }
4868 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4870 match value {
4871 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
4872 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
4873 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
4874 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
4875 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
4876 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
4877 _ => None,
4878 }
4879 }
4880}
4881#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4883#[repr(i32)]
4884pub enum OrgType {
4885 Unspecified = 0,
4886 Standard = 1,
4887 Sandbox = 2,
4888 Staff = 3,
4891}
4892impl OrgType {
4893 pub fn as_str_name(&self) -> &'static str {
4898 match self {
4899 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
4900 Self::Standard => "ORG_TYPE_STANDARD",
4901 Self::Sandbox => "ORG_TYPE_SANDBOX",
4902 Self::Staff => "ORG_TYPE_STAFF",
4903 }
4904 }
4905 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4907 match value {
4908 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4909 "ORG_TYPE_STANDARD" => Some(Self::Standard),
4910 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
4911 "ORG_TYPE_STAFF" => Some(Self::Staff),
4912 _ => None,
4913 }
4914 }
4915}
4916#[derive(Clone, PartialEq, ::prost::Message)]
4920pub struct UserRenderContext {
4921 #[prost(string, tag="1")]
4923 pub user_id: ::prost::alloc::string::String,
4924 #[prost(map="string, string", tag="2")]
4927 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4928}
4929#[derive(Clone, PartialEq, ::prost::Message)]
4931pub struct RenderBatchRequest {
4932 #[prost(string, tag="1")]
4934 pub template_id: ::prost::alloc::string::String,
4935 #[prost(int32, tag="2")]
4937 pub version: i32,
4938 #[prost(message, repeated, tag="3")]
4941 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
4942}
4943#[derive(Clone, PartialEq, ::prost::Message)]
4946pub struct RenderBatchResponse {
4947 #[prost(string, tag="1")]
4949 pub user_id: ::prost::alloc::string::String,
4950 #[prost(message, optional, tag="2")]
4952 pub message: ::core::option::Option<Message>,
4953 #[prost(string, tag="3")]
4955 pub error: ::prost::alloc::string::String,
4956}
4957#[derive(Clone, PartialEq, ::prost::Message)]
4962pub struct SessionRecording {
4963 #[prost(string, tag="1")]
4965 pub id: ::prost::alloc::string::String,
4966 #[prost(message, optional, tag="2")]
4968 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
4969 #[prost(message, optional, tag="3")]
4971 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
4972 #[prost(int32, tag="4")]
4974 pub duration_seconds: i32,
4975 #[prost(float, tag="5")]
4977 pub activity_score: f32,
4978}
4979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4981pub struct ListSessionRecordingsRequest {
4982 #[prost(string, tag="1")]
4985 pub campaign_id: ::prost::alloc::string::String,
4986 #[prost(message, optional, tag="2")]
4988 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
4989 #[prost(message, optional, tag="3")]
4991 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
4992 #[prost(message, optional, tag="4")]
4994 pub pagination: ::core::option::Option<Pagination>,
4995}
4996#[derive(Clone, PartialEq, ::prost::Message)]
4998pub struct ListSessionRecordingsResponse {
4999 #[prost(message, repeated, tag="1")]
5001 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
5002 #[prost(message, optional, tag="2")]
5004 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5005}
5006#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5008pub struct GetSessionSnapshotsRequest {
5009 #[prost(string, tag="1")]
5012 pub recording_id: ::prost::alloc::string::String,
5013}
5014#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5016pub struct GetSessionSnapshotsResponse {
5017 #[prost(string, tag="1")]
5020 pub snapshot_data: ::prost::alloc::string::String,
5021}
5022#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5026pub struct ListRolesRequest {
5027}
5028#[derive(Clone, PartialEq, ::prost::Message)]
5030pub struct ListRolesResponse {
5031 #[prost(message, repeated, tag="1")]
5033 pub roles: ::prost::alloc::vec::Vec<Role>,
5034}
5035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5037pub struct CreateRoleRequest {
5038 #[prost(string, tag="1")]
5041 pub name: ::prost::alloc::string::String,
5042 #[prost(enumeration="Permission", repeated, tag="2")]
5045 pub permissions: ::prost::alloc::vec::Vec<i32>,
5046}
5047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5049pub struct CreateRoleResponse {
5050 #[prost(message, optional, tag="1")]
5052 pub role: ::core::option::Option<Role>,
5053}
5054#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5056pub struct UpdateRoleRequest {
5057 #[prost(string, tag="1")]
5059 pub role_id: ::prost::alloc::string::String,
5060 #[prost(string, tag="2")]
5062 pub name: ::prost::alloc::string::String,
5063 #[prost(enumeration="Permission", repeated, tag="3")]
5067 pub permissions: ::prost::alloc::vec::Vec<i32>,
5068}
5069#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5071pub struct UpdateRoleResponse {
5072 #[prost(message, optional, tag="1")]
5074 pub role: ::core::option::Option<Role>,
5075}
5076#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5078pub struct DeleteRoleRequest {
5079 #[prost(string, tag="1")]
5081 pub role_id: ::prost::alloc::string::String,
5082}
5083#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5085pub struct DeleteRoleResponse {
5086}
5087#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5093pub struct SamlAttributeNames {
5094 #[prost(string, tag="1")]
5096 pub email: ::prost::alloc::string::String,
5097 #[prost(string, tag="2")]
5099 pub given_name: ::prost::alloc::string::String,
5100 #[prost(string, tag="3")]
5102 pub family_name: ::prost::alloc::string::String,
5103}
5104#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5106pub struct SsoProvider {
5107 #[prost(string, tag="1")]
5109 pub id: ::prost::alloc::string::String,
5110 #[prost(string, tag="2")]
5113 pub domain: ::prost::alloc::string::String,
5114 #[prost(enumeration="SsoProviderType", tag="3")]
5116 pub r#type: i32,
5117 #[prost(string, tag="4")]
5120 pub metadata_url: ::prost::alloc::string::String,
5121 #[prost(string, tag="5")]
5124 pub idp_provider_name: ::prost::alloc::string::String,
5125 #[prost(message, optional, tag="6")]
5127 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5128 #[prost(message, optional, tag="7")]
5130 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5131 #[prost(message, optional, tag="8")]
5133 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5134}
5135#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5138pub struct CheckSsoByDomainRequest {
5139 #[prost(string, tag="1")]
5142 pub email: ::prost::alloc::string::String,
5143}
5144#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5146pub struct CheckSsoByDomainResponse {
5147 #[prost(bool, tag="1")]
5149 pub sso_enabled: bool,
5150 #[prost(string, tag="2")]
5153 pub provider_name: ::prost::alloc::string::String,
5154}
5155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5157pub struct CreateSsoProviderRequest {
5158 #[prost(string, tag="1")]
5161 pub domain: ::prost::alloc::string::String,
5162 #[prost(enumeration="SsoProviderType", tag="2")]
5164 pub r#type: i32,
5165 #[prost(string, tag="3")]
5168 pub metadata_url: ::prost::alloc::string::String,
5169 #[prost(message, optional, tag="4")]
5172 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5173}
5174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5176pub struct CreateSsoProviderResponse {
5177 #[prost(message, optional, tag="1")]
5179 pub provider: ::core::option::Option<SsoProvider>,
5180}
5181#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5184pub struct GetSsoProviderRequest {
5185}
5186#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5188pub struct GetSsoProviderResponse {
5189 #[prost(message, optional, tag="1")]
5191 pub provider: ::core::option::Option<SsoProvider>,
5192}
5193#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5195pub struct DeleteSsoProviderRequest {
5196 #[prost(string, tag="1")]
5198 pub provider_id: ::prost::alloc::string::String,
5199}
5200#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5202pub struct DeleteSsoProviderResponse {
5203}
5204#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5208#[repr(i32)]
5209pub enum SsoProviderType {
5210 Unspecified = 0,
5212 Saml = 1,
5214 Oidc = 2,
5216}
5217impl SsoProviderType {
5218 pub fn as_str_name(&self) -> &'static str {
5223 match self {
5224 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
5225 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
5226 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
5227 }
5228 }
5229 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5231 match value {
5232 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5233 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
5234 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
5235 _ => None,
5236 }
5237 }
5238}
5239#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5245pub struct Team {
5246 #[prost(string, tag="1")]
5248 pub id: ::prost::alloc::string::String,
5249 #[prost(string, tag="2")]
5252 pub name: ::prost::alloc::string::String,
5253 #[prost(string, tag="3")]
5256 pub description: ::prost::alloc::string::String,
5257 #[prost(int32, tag="4")]
5259 pub member_count: i32,
5260 #[prost(message, optional, tag="5")]
5262 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5263 #[prost(message, optional, tag="6")]
5265 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5266 #[prost(bool, tag="7")]
5268 pub is_default: bool,
5269 #[prost(string, tag="8")]
5271 pub created_by: ::prost::alloc::string::String,
5272}
5273#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5275pub struct CreateTeamRequest {
5276 #[prost(string, tag="1")]
5279 pub name: ::prost::alloc::string::String,
5280 #[prost(string, tag="2")]
5283 pub description: ::prost::alloc::string::String,
5284}
5285#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5287pub struct CreateTeamResponse {
5288 #[prost(message, optional, tag="1")]
5290 pub team: ::core::option::Option<Team>,
5291}
5292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5294pub struct GetTeamRequest {
5295 #[prost(string, tag="1")]
5297 pub team_id: ::prost::alloc::string::String,
5298}
5299#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5301pub struct GetTeamResponse {
5302 #[prost(message, optional, tag="1")]
5304 pub team: ::core::option::Option<Team>,
5305}
5306#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5308pub struct ListTeamsRequest {
5309 #[prost(message, optional, tag="1")]
5311 pub pagination: ::core::option::Option<Pagination>,
5312}
5313#[derive(Clone, PartialEq, ::prost::Message)]
5315pub struct ListTeamsResponse {
5316 #[prost(message, repeated, tag="1")]
5318 pub teams: ::prost::alloc::vec::Vec<Team>,
5319 #[prost(message, optional, tag="2")]
5321 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5322}
5323#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5325pub struct UpdateTeamRequest {
5326 #[prost(string, tag="1")]
5328 pub team_id: ::prost::alloc::string::String,
5329 #[prost(string, tag="2")]
5333 pub name: ::prost::alloc::string::String,
5334 #[prost(string, tag="3")]
5337 pub description: ::prost::alloc::string::String,
5338}
5339#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5341pub struct UpdateTeamResponse {
5342 #[prost(message, optional, tag="1")]
5344 pub team: ::core::option::Option<Team>,
5345}
5346#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5348pub struct DeleteTeamRequest {
5349 #[prost(string, tag="1")]
5352 pub team_id: ::prost::alloc::string::String,
5353}
5354#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5356pub struct DeleteTeamResponse {
5357}
5358#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5360pub struct AddTeamMembersRequest {
5361 #[prost(string, tag="1")]
5363 pub team_id: ::prost::alloc::string::String,
5364 #[prost(string, repeated, tag="2")]
5368 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5369}
5370#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5372pub struct AddTeamMembersResponse {
5373 #[prost(message, optional, tag="1")]
5375 pub team: ::core::option::Option<Team>,
5376}
5377#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5379pub struct RemoveTeamMembersRequest {
5380 #[prost(string, tag="1")]
5382 pub team_id: ::prost::alloc::string::String,
5383 #[prost(string, repeated, tag="2")]
5386 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5387}
5388#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5390pub struct RemoveTeamMembersResponse {
5391 #[prost(message, optional, tag="1")]
5393 pub team: ::core::option::Option<Team>,
5394}
5395#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5397pub struct ListTeamMembersRequest {
5398 #[prost(string, tag="1")]
5400 pub team_id: ::prost::alloc::string::String,
5401 #[prost(message, optional, tag="2")]
5403 pub pagination: ::core::option::Option<Pagination>,
5404}
5405#[derive(Clone, PartialEq, ::prost::Message)]
5407pub struct ListTeamMembersResponse {
5408 #[prost(message, repeated, tag="1")]
5410 pub users: ::prost::alloc::vec::Vec<User>,
5411 #[prost(message, optional, tag="2")]
5413 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5414}
5415#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5419pub struct TemplateVariable {
5420 #[prost(string, tag="1")]
5423 pub name: ::prost::alloc::string::String,
5424 #[prost(string, tag="2")]
5427 pub description: ::prost::alloc::string::String,
5428 #[prost(bool, tag="3")]
5430 pub required: bool,
5431 #[prost(enumeration="TemplateVariableSource", tag="4")]
5433 pub source: i32,
5434 #[prost(string, tag="5")]
5437 pub default_value: ::prost::alloc::string::String,
5438 #[prost(bool, tag="6")]
5441 pub pii: bool,
5442}
5443#[derive(Clone, PartialEq, ::prost::Message)]
5446pub struct Template {
5447 #[prost(string, tag="1")]
5449 pub id: ::prost::alloc::string::String,
5450 #[prost(string, tag="2")]
5453 pub name: ::prost::alloc::string::String,
5454 #[prost(string, tag="3")]
5457 pub body: ::prost::alloc::string::String,
5458 #[prost(message, repeated, tag="4")]
5460 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5461 #[prost(int32, tag="5")]
5463 pub version: i32,
5464 #[prost(message, optional, tag="6")]
5466 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5467 #[prost(message, optional, tag="7")]
5469 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5470 #[prost(string, tag="8")]
5474 pub title: ::prost::alloc::string::String,
5475 #[prost(enumeration="TemplateType", tag="9")]
5478 pub r#type: i32,
5479 #[prost(string, tag="10")]
5483 pub source_locale: ::prost::alloc::string::String,
5484}
5485#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5488pub struct TemplateTranslation {
5489 #[prost(string, tag="1")]
5491 pub id: ::prost::alloc::string::String,
5492 #[prost(string, tag="2")]
5494 pub template_id: ::prost::alloc::string::String,
5495 #[prost(int32, tag="3")]
5497 pub version: i32,
5498 #[prost(string, tag="4")]
5500 pub locale: ::prost::alloc::string::String,
5501 #[prost(string, tag="5")]
5504 pub title: ::prost::alloc::string::String,
5505 #[prost(string, tag="6")]
5508 pub body: ::prost::alloc::string::String,
5509 #[prost(enumeration="TranslationStatus", tag="7")]
5511 pub status: i32,
5512 #[prost(string, tag="8")]
5514 pub translated_by: ::prost::alloc::string::String,
5515 #[prost(string, tag="9")]
5517 pub reviewed_by: ::prost::alloc::string::String,
5518 #[prost(message, optional, tag="10")]
5520 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
5521 #[prost(message, optional, tag="11")]
5523 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5524}
5525#[derive(Clone, PartialEq, ::prost::Message)]
5527pub struct CreateTemplateRequest {
5528 #[prost(string, tag="1")]
5531 pub name: ::prost::alloc::string::String,
5532 #[prost(string, tag="2")]
5535 pub body: ::prost::alloc::string::String,
5536 #[prost(message, repeated, tag="3")]
5538 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5539 #[prost(string, tag="4")]
5542 pub title: ::prost::alloc::string::String,
5543 #[prost(enumeration="TemplateType", tag="5")]
5545 pub r#type: i32,
5546 #[prost(string, tag="6")]
5549 pub source_locale: ::prost::alloc::string::String,
5550}
5551#[derive(Clone, PartialEq, ::prost::Message)]
5553pub struct CreateTemplateResponse {
5554 #[prost(message, optional, tag="1")]
5556 pub template: ::core::option::Option<Template>,
5557}
5558#[derive(Clone, PartialEq, ::prost::Message)]
5560pub struct UpdateTemplateRequest {
5561 #[prost(string, tag="1")]
5563 pub template_id: ::prost::alloc::string::String,
5564 #[prost(string, tag="2")]
5567 pub body: ::prost::alloc::string::String,
5568 #[prost(message, repeated, tag="3")]
5570 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5571}
5572#[derive(Clone, PartialEq, ::prost::Message)]
5574pub struct UpdateTemplateResponse {
5575 #[prost(message, optional, tag="1")]
5577 pub template: ::core::option::Option<Template>,
5578}
5579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5581pub struct GetTemplateRequest {
5582 #[prost(string, tag="1")]
5584 pub template_id: ::prost::alloc::string::String,
5585 #[prost(int32, tag="2")]
5587 pub version: i32,
5588}
5589#[derive(Clone, PartialEq, ::prost::Message)]
5591pub struct GetTemplateResponse {
5592 #[prost(message, optional, tag="1")]
5594 pub template: ::core::option::Option<Template>,
5595}
5596#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5598pub struct ListTemplatesRequest {
5599 #[prost(message, optional, tag="1")]
5601 pub pagination: ::core::option::Option<Pagination>,
5602 #[prost(enumeration="TemplateType", tag="2")]
5604 pub r#type: i32,
5605}
5606#[derive(Clone, PartialEq, ::prost::Message)]
5608pub struct ListTemplatesResponse {
5609 #[prost(message, repeated, tag="1")]
5611 pub templates: ::prost::alloc::vec::Vec<Template>,
5612 #[prost(message, optional, tag="2")]
5614 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5615}
5616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5618pub struct CreateTemplateTranslationRequest {
5619 #[prost(string, tag="1")]
5621 pub template_id: ::prost::alloc::string::String,
5622 #[prost(int32, tag="2")]
5624 pub version: i32,
5625 #[prost(string, tag="3")]
5627 pub locale: ::prost::alloc::string::String,
5628 #[prost(string, tag="4")]
5630 pub title: ::prost::alloc::string::String,
5631 #[prost(string, tag="5")]
5633 pub body: ::prost::alloc::string::String,
5634 #[prost(string, tag="6")]
5636 pub translated_by: ::prost::alloc::string::String,
5637 #[prost(enumeration="TranslationStatus", tag="7")]
5639 pub status: i32,
5640}
5641#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5643pub struct CreateTemplateTranslationResponse {
5644 #[prost(message, optional, tag="1")]
5646 pub translation: ::core::option::Option<TemplateTranslation>,
5647}
5648#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5650pub struct UpdateTemplateTranslationRequest {
5651 #[prost(string, tag="1")]
5653 pub translation_id: ::prost::alloc::string::String,
5654 #[prost(string, tag="2")]
5656 pub title: ::prost::alloc::string::String,
5657 #[prost(string, tag="3")]
5659 pub body: ::prost::alloc::string::String,
5660 #[prost(enumeration="TranslationStatus", tag="4")]
5662 pub status: i32,
5663}
5664#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5666pub struct UpdateTemplateTranslationResponse {
5667 #[prost(message, optional, tag="1")]
5669 pub translation: ::core::option::Option<TemplateTranslation>,
5670}
5671#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5673pub struct ListTemplateTranslationsRequest {
5674 #[prost(string, tag="1")]
5676 pub template_id: ::prost::alloc::string::String,
5677 #[prost(int32, tag="2")]
5679 pub version: i32,
5680}
5681#[derive(Clone, PartialEq, ::prost::Message)]
5683pub struct ListTemplateTranslationsResponse {
5684 #[prost(message, repeated, tag="1")]
5686 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
5687}
5688#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5690pub struct ApproveTemplateTranslationRequest {
5691 #[prost(string, tag="1")]
5693 pub translation_id: ::prost::alloc::string::String,
5694}
5695#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5697pub struct ApproveTemplateTranslationResponse {
5698 #[prost(message, optional, tag="1")]
5700 pub translation: ::core::option::Option<TemplateTranslation>,
5701}
5702#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5706#[repr(i32)]
5707pub enum TemplateType {
5708 Unspecified = 0,
5710 Markdown = 1,
5712 Rich = 2,
5714 Html = 3,
5716}
5717impl TemplateType {
5718 pub fn as_str_name(&self) -> &'static str {
5723 match self {
5724 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
5725 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
5726 Self::Rich => "TEMPLATE_TYPE_RICH",
5727 Self::Html => "TEMPLATE_TYPE_HTML",
5728 }
5729 }
5730 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5732 match value {
5733 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5734 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
5735 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
5736 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
5737 _ => None,
5738 }
5739 }
5740}
5741#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5743#[repr(i32)]
5744pub enum TemplateVariableSource {
5745 Unspecified = 0,
5747 Profile = 1,
5749 Custom = 2,
5751}
5752impl TemplateVariableSource {
5753 pub fn as_str_name(&self) -> &'static str {
5758 match self {
5759 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
5760 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
5761 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
5762 }
5763 }
5764 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5766 match value {
5767 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
5768 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
5769 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
5770 _ => None,
5771 }
5772 }
5773}
5774#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5776#[repr(i32)]
5777pub enum TranslationStatus {
5778 Unspecified = 0,
5779 Draft = 1,
5781 AiTranslated = 2,
5783 InReview = 3,
5785 Approved = 4,
5787}
5788impl TranslationStatus {
5789 pub fn as_str_name(&self) -> &'static str {
5794 match self {
5795 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
5796 Self::Draft => "TRANSLATION_STATUS_DRAFT",
5797 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
5798 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
5799 Self::Approved => "TRANSLATION_STATUS_APPROVED",
5800 }
5801 }
5802 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5804 match value {
5805 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
5806 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
5807 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
5808 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
5809 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
5810 _ => None,
5811 }
5812 }
5813}
5814#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5819pub struct DeeplinkTokenPayload {
5820 #[prost(string, tag="1")]
5823 pub campaign_id: ::prost::alloc::string::String,
5824 #[prost(string, tag="2")]
5830 pub recipient_user_id: ::prost::alloc::string::String,
5831 #[prost(enumeration="ChannelStepKind", tag="3")]
5835 pub step_kind: i32,
5836 #[prost(message, optional, tag="4")]
5839 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5840}
5841#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5842pub struct SignDeeplinkTokenRequest {
5843 #[prost(string, tag="1")]
5846 pub campaign_id: ::prost::alloc::string::String,
5847 #[prost(string, tag="2")]
5850 pub recipient_user_id: ::prost::alloc::string::String,
5851 #[prost(enumeration="ChannelStepKind", tag="3")]
5853 pub step_kind: i32,
5854 #[prost(int64, tag="4")]
5859 pub ttl_seconds: i64,
5860}
5861#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5862pub struct SignDeeplinkTokenResponse {
5863 #[prost(string, tag="1")]
5869 pub token: ::prost::alloc::string::String,
5870 #[prost(message, optional, tag="2")]
5873 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5874 #[prost(int32, tag="3")]
5878 pub key_version: i32,
5879}
5880#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5881pub struct ValidateDeeplinkTokenRequest {
5882 #[prost(string, tag="1")]
5885 pub token: ::prost::alloc::string::String,
5886 #[prost(string, tag="2")]
5893 pub campaign_id: ::prost::alloc::string::String,
5894}
5895#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5896pub struct ValidateDeeplinkTokenResponse {
5897 #[prost(bool, tag="1")]
5900 pub valid: bool,
5901 #[prost(enumeration="ValidationFailureReason", tag="2")]
5905 pub failure_reason: i32,
5906 #[prost(message, optional, tag="3")]
5910 pub payload: ::core::option::Option<DeeplinkTokenPayload>,
5911}
5912#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5916#[repr(i32)]
5917pub enum ValidationFailureReason {
5918 Unspecified = 0,
5919 InvalidSignature = 1,
5922 Expired = 2,
5924 KeyRetired = 3,
5930 Malformed = 4,
5934}
5935impl ValidationFailureReason {
5936 pub fn as_str_name(&self) -> &'static str {
5941 match self {
5942 Self::Unspecified => "VALIDATION_FAILURE_REASON_UNSPECIFIED",
5943 Self::InvalidSignature => "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE",
5944 Self::Expired => "VALIDATION_FAILURE_REASON_EXPIRED",
5945 Self::KeyRetired => "VALIDATION_FAILURE_REASON_KEY_RETIRED",
5946 Self::Malformed => "VALIDATION_FAILURE_REASON_MALFORMED",
5947 }
5948 }
5949 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5951 match value {
5952 "VALIDATION_FAILURE_REASON_UNSPECIFIED" => Some(Self::Unspecified),
5953 "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE" => Some(Self::InvalidSignature),
5954 "VALIDATION_FAILURE_REASON_EXPIRED" => Some(Self::Expired),
5955 "VALIDATION_FAILURE_REASON_KEY_RETIRED" => Some(Self::KeyRetired),
5956 "VALIDATION_FAILURE_REASON_MALFORMED" => Some(Self::Malformed),
5957 _ => None,
5958 }
5959 }
5960}
5961include!("pidgr.v1.tonic.rs");
5962