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, ::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 #[prost(message, repeated, tag="5")]
556 pub notify_targets: ::prost::alloc::vec::Vec<EscalationTarget>,
557}
558#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct CallWebhookConfig {
561 #[prost(string, tag="1")]
564 pub name: ::prost::alloc::string::String,
565 #[prost(string, tag="2")]
570 pub url: ::prost::alloc::string::String,
571 #[prost(map="string, string", tag="3")]
574 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
575}
576#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
578pub struct EscalationTarget {
579 #[prost(enumeration="EscalationTargetType", tag="1")]
581 pub r#type: i32,
582 #[prost(string, tag="2")]
585 pub target_id: ::prost::alloc::string::String,
586}
587#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct EscalateConfig {
590 #[prost(enumeration="EscalationCondition", tag="1")]
592 pub condition: i32,
593 #[prost(message, repeated, tag="2")]
595 pub targets: ::prost::alloc::vec::Vec<EscalationTarget>,
596 #[prost(int32, tag="3")]
599 pub repeat_count: i32,
600 #[prost(int32, tag="4")]
602 pub repeat_interval_minutes: i32,
603 #[prost(enumeration="EscalateMode", tag="5")]
605 pub mode: i32,
606 #[prost(enumeration="ChannelName", repeated, tag="6")]
614 pub third_party_channels: ::prost::alloc::vec::Vec<i32>,
615}
616#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
620#[repr(i32)]
621pub enum CampaignStatus {
622 Unspecified = 0,
624 Created = 1,
626 Running = 2,
628 Completed = 3,
630 Failed = 4,
632 Cancelled = 5,
634}
635impl CampaignStatus {
636 pub fn as_str_name(&self) -> &'static str {
641 match self {
642 Self::Unspecified => "CAMPAIGN_STATUS_UNSPECIFIED",
643 Self::Created => "CAMPAIGN_STATUS_CREATED",
644 Self::Running => "CAMPAIGN_STATUS_RUNNING",
645 Self::Completed => "CAMPAIGN_STATUS_COMPLETED",
646 Self::Failed => "CAMPAIGN_STATUS_FAILED",
647 Self::Cancelled => "CAMPAIGN_STATUS_CANCELLED",
648 }
649 }
650 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
652 match value {
653 "CAMPAIGN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
654 "CAMPAIGN_STATUS_CREATED" => Some(Self::Created),
655 "CAMPAIGN_STATUS_RUNNING" => Some(Self::Running),
656 "CAMPAIGN_STATUS_COMPLETED" => Some(Self::Completed),
657 "CAMPAIGN_STATUS_FAILED" => Some(Self::Failed),
658 "CAMPAIGN_STATUS_CANCELLED" => Some(Self::Cancelled),
659 _ => None,
660 }
661 }
662}
663#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
665#[repr(i32)]
666pub enum DeliveryStatus {
667 Unspecified = 0,
669 Pending = 1,
671 Sent = 2,
673 Delivered = 3,
675 Acknowledged = 4,
677 Missed = 5,
679 NoDevice = 6,
681 Failed = 7,
683}
684impl DeliveryStatus {
685 pub fn as_str_name(&self) -> &'static str {
690 match self {
691 Self::Unspecified => "DELIVERY_STATUS_UNSPECIFIED",
692 Self::Pending => "DELIVERY_STATUS_PENDING",
693 Self::Sent => "DELIVERY_STATUS_SENT",
694 Self::Delivered => "DELIVERY_STATUS_DELIVERED",
695 Self::Acknowledged => "DELIVERY_STATUS_ACKNOWLEDGED",
696 Self::Missed => "DELIVERY_STATUS_MISSED",
697 Self::NoDevice => "DELIVERY_STATUS_NO_DEVICE",
698 Self::Failed => "DELIVERY_STATUS_FAILED",
699 }
700 }
701 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
703 match value {
704 "DELIVERY_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
705 "DELIVERY_STATUS_PENDING" => Some(Self::Pending),
706 "DELIVERY_STATUS_SENT" => Some(Self::Sent),
707 "DELIVERY_STATUS_DELIVERED" => Some(Self::Delivered),
708 "DELIVERY_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
709 "DELIVERY_STATUS_MISSED" => Some(Self::Missed),
710 "DELIVERY_STATUS_NO_DEVICE" => Some(Self::NoDevice),
711 "DELIVERY_STATUS_FAILED" => Some(Self::Failed),
712 _ => None,
713 }
714 }
715}
716#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
718#[repr(i32)]
719pub enum Platform {
720 Unspecified = 0,
722 Ios = 1,
724 Android = 2,
726}
727impl Platform {
728 pub fn as_str_name(&self) -> &'static str {
733 match self {
734 Self::Unspecified => "PLATFORM_UNSPECIFIED",
735 Self::Ios => "PLATFORM_IOS",
736 Self::Android => "PLATFORM_ANDROID",
737 }
738 }
739 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
741 match value {
742 "PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
743 "PLATFORM_IOS" => Some(Self::Ios),
744 "PLATFORM_ANDROID" => Some(Self::Android),
745 _ => None,
746 }
747 }
748}
749#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
754#[repr(i32)]
755pub enum Permission {
756 Unspecified = 0,
758 OrgRead = 1,
760 OrgWrite = 2,
762 MembersRead = 3,
764 MembersInvite = 4,
766 MembersManage = 5,
768 CampaignsRead = 6,
770 CampaignsWrite = 7,
772 CampaignsStart = 8,
774 TemplatesRead = 9,
776 TemplatesWrite = 10,
778 InboxRead = 11,
780 InboxAct = 12,
782 GroupsAllRead = 13,
784 GroupsWrite = 14,
786 GroupsAllWrite = 15,
788 TeamsAllRead = 16,
790 TeamsWrite = 17,
792 TeamsAllWrite = 18,
794 PrivacyRead = 19,
796 PrivacyWrite = 20,
798 AuditRead = 21,
800 TemplatesReview = 22,
802 PlatformSupport = 23,
805 PlatformAccessCodes = 24,
808 PlatformProvision = 25,
811}
812impl Permission {
813 pub fn as_str_name(&self) -> &'static str {
818 match self {
819 Self::Unspecified => "PERMISSION_UNSPECIFIED",
820 Self::OrgRead => "PERMISSION_ORG_READ",
821 Self::OrgWrite => "PERMISSION_ORG_WRITE",
822 Self::MembersRead => "PERMISSION_MEMBERS_READ",
823 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
824 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
825 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
826 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
827 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
828 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
829 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
830 Self::InboxRead => "PERMISSION_INBOX_READ",
831 Self::InboxAct => "PERMISSION_INBOX_ACT",
832 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
833 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
834 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
835 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
836 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
837 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
838 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
839 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
840 Self::AuditRead => "PERMISSION_AUDIT_READ",
841 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
842 Self::PlatformSupport => "PERMISSION_PLATFORM_SUPPORT",
843 Self::PlatformAccessCodes => "PERMISSION_PLATFORM_ACCESS_CODES",
844 Self::PlatformProvision => "PERMISSION_PLATFORM_PROVISION",
845 }
846 }
847 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
849 match value {
850 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
851 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
852 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
853 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
854 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
855 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
856 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
857 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
858 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
859 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
860 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
861 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
862 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
863 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
864 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
865 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
866 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
867 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
868 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
869 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
870 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
871 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
872 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
873 "PERMISSION_PLATFORM_SUPPORT" => Some(Self::PlatformSupport),
874 "PERMISSION_PLATFORM_ACCESS_CODES" => Some(Self::PlatformAccessCodes),
875 "PERMISSION_PLATFORM_PROVISION" => Some(Self::PlatformProvision),
876 _ => None,
877 }
878 }
879}
880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
882#[repr(i32)]
883pub enum ActionType {
884 Unspecified = 0,
886 Ack = 1,
888}
889impl ActionType {
890 pub fn as_str_name(&self) -> &'static str {
895 match self {
896 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
897 Self::Ack => "ACTION_TYPE_ACK",
898 }
899 }
900 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
902 match value {
903 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
904 "ACTION_TYPE_ACK" => Some(Self::Ack),
905 _ => None,
906 }
907 }
908}
909#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
911#[repr(i32)]
912pub enum StepType {
913 Unspecified = 0,
915 SendNotification = 1,
917 DeadlineCheck = 2,
919 SendReminder = 3,
921 CallWebhook = 4,
923 MarkMissed = 5,
925 Escalate = 6,
927}
928impl StepType {
929 pub fn as_str_name(&self) -> &'static str {
934 match self {
935 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
936 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
937 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
938 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
939 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
940 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
941 Self::Escalate => "STEP_TYPE_ESCALATE",
942 }
943 }
944 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
946 match value {
947 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
948 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
949 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
950 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
951 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
952 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
953 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
954 _ => None,
955 }
956 }
957}
958#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
960#[repr(i32)]
961pub enum EscalationCondition {
962 Unspecified = 0,
963 IfNotAcked = 1,
965 IfNotClosed = 2,
967}
968impl EscalationCondition {
969 pub fn as_str_name(&self) -> &'static str {
974 match self {
975 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
976 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
977 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
978 }
979 }
980 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
982 match value {
983 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
984 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
985 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
986 _ => None,
987 }
988 }
989}
990#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
992#[repr(i32)]
993pub enum EscalationTargetType {
994 Unspecified = 0,
995 User = 1,
997 Group = 2,
999 Manager = 3,
1001 Role = 4,
1003}
1004impl EscalationTargetType {
1005 pub fn as_str_name(&self) -> &'static str {
1010 match self {
1011 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
1012 Self::User => "ESCALATION_TARGET_TYPE_USER",
1013 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
1014 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
1015 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
1016 }
1017 }
1018 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1020 match value {
1021 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1022 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
1023 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
1024 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
1025 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
1026 _ => None,
1027 }
1028 }
1029}
1030#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1032#[repr(i32)]
1033pub enum EscalateMode {
1034 Unspecified = 0,
1036 Deliver = 1,
1038 AlertOnly = 2,
1040}
1041impl EscalateMode {
1042 pub fn as_str_name(&self) -> &'static str {
1047 match self {
1048 Self::Unspecified => "ESCALATE_MODE_UNSPECIFIED",
1049 Self::Deliver => "ESCALATE_MODE_DELIVER",
1050 Self::AlertOnly => "ESCALATE_MODE_ALERT_ONLY",
1051 }
1052 }
1053 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1055 match value {
1056 "ESCALATE_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1057 "ESCALATE_MODE_DELIVER" => Some(Self::Deliver),
1058 "ESCALATE_MODE_ALERT_ONLY" => Some(Self::AlertOnly),
1059 _ => None,
1060 }
1061 }
1062}
1063#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1067pub struct ApiKey {
1068 #[prost(string, tag="1")]
1070 pub id: ::prost::alloc::string::String,
1071 #[prost(string, tag="2")]
1073 pub name: ::prost::alloc::string::String,
1074 #[prost(string, tag="3")]
1077 pub key_prefix: ::prost::alloc::string::String,
1078 #[prost(enumeration="Permission", repeated, tag="4")]
1080 pub permissions: ::prost::alloc::vec::Vec<i32>,
1081 #[prost(message, optional, tag="5")]
1083 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1084 #[prost(message, optional, tag="6")]
1086 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
1087 #[prost(message, optional, tag="7")]
1089 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1090 #[prost(enumeration="KeyType", tag="8")]
1093 pub key_type: i32,
1094}
1095#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1097pub struct CreateApiKeyRequest {
1098 #[prost(string, tag="1")]
1100 pub name: ::prost::alloc::string::String,
1101 #[prost(enumeration="Permission", repeated, tag="2")]
1104 pub permissions: ::prost::alloc::vec::Vec<i32>,
1105 #[prost(message, optional, tag="3")]
1107 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1108 #[prost(enumeration="KeyType", tag="4")]
1111 pub key_type: i32,
1112}
1113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1116pub struct CreateApiKeyResponse {
1117 #[prost(message, optional, tag="1")]
1119 pub api_key: ::core::option::Option<ApiKey>,
1120 #[prost(string, tag="2")]
1123 pub key: ::prost::alloc::string::String,
1124}
1125#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1127pub struct ListApiKeysRequest {
1128 #[prost(enumeration="KeyType", tag="1")]
1130 pub key_type: i32,
1131}
1132#[derive(Clone, PartialEq, ::prost::Message)]
1134pub struct ListApiKeysResponse {
1135 #[prost(message, repeated, tag="1")]
1137 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
1138}
1139#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1141pub struct RevokeApiKeyRequest {
1142 #[prost(string, tag="1")]
1144 pub api_key_id: ::prost::alloc::string::String,
1145}
1146#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1148pub struct RevokeApiKeyResponse {
1149}
1150#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1154#[repr(i32)]
1155pub enum KeyType {
1156 Unspecified = 0,
1157 ApiKey = 1,
1158 ScimToken = 2,
1159}
1160impl KeyType {
1161 pub fn as_str_name(&self) -> &'static str {
1166 match self {
1167 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
1168 Self::ApiKey => "KEY_TYPE_API_KEY",
1169 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
1170 }
1171 }
1172 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1174 match value {
1175 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1176 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
1177 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
1178 _ => None,
1179 }
1180 }
1181}
1182#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1187pub struct ExportUserDataRequest {
1188 #[prost(string, tag="1")]
1191 pub user_id: ::prost::alloc::string::String,
1192}
1193#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1195pub struct ExportUserDataResponse {
1196 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1198 pub status: i32,
1199 #[prost(string, tag="2")]
1202 pub result_url: ::prost::alloc::string::String,
1203 #[prost(string, tag="3")]
1206 pub export_id: ::prost::alloc::string::String,
1207}
1208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1211pub struct DeleteUserDataRequest {
1212 #[prost(string, tag="1")]
1215 pub user_id: ::prost::alloc::string::String,
1216 #[prost(bool, tag="2")]
1219 pub anonymize: bool,
1220}
1221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1223pub struct DeleteUserDataResponse {
1224 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1226 pub status: i32,
1227 #[prost(message, optional, tag="2")]
1230 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
1231 #[prost(string, tag="3")]
1233 pub request_id: ::prost::alloc::string::String,
1234}
1235#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1238pub struct ListPrivacyRequestsRequest {
1239 #[prost(int32, tag="1")]
1242 pub page_size: i32,
1243 #[prost(string, tag="2")]
1245 pub page_token: ::prost::alloc::string::String,
1246 #[prost(string, tag="3")]
1248 pub request_type: ::prost::alloc::string::String,
1249 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1251 pub status: i32,
1252}
1253#[derive(Clone, PartialEq, ::prost::Message)]
1255pub struct ListPrivacyRequestsResponse {
1256 #[prost(message, repeated, tag="1")]
1258 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1259 #[prost(string, tag="2")]
1261 pub next_page_token: ::prost::alloc::string::String,
1262}
1263#[derive(Clone, PartialEq, ::prost::Message)]
1265pub struct PrivacyRequest {
1266 #[prost(string, tag="1")]
1268 pub id: ::prost::alloc::string::String,
1269 #[prost(string, tag="2")]
1271 pub user_id: ::prost::alloc::string::String,
1272 #[prost(string, tag="3")]
1274 pub user_email: ::prost::alloc::string::String,
1275 #[prost(string, tag="4")]
1277 pub request_type: ::prost::alloc::string::String,
1278 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
1280 pub status: i32,
1281 #[prost(bool, tag="6")]
1283 pub anonymize: bool,
1284 #[prost(string, tag="7")]
1286 pub requested_by_email: ::prost::alloc::string::String,
1287 #[prost(message, optional, tag="8")]
1289 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1290 #[prost(message, optional, tag="9")]
1292 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1293 #[prost(map="string, string", tag="10")]
1295 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1296}
1297#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1300pub struct CancelDeletionRequest {
1301 #[prost(string, tag="1")]
1303 pub request_id: ::prost::alloc::string::String,
1304 #[prost(string, tag="2")]
1306 pub confirmation_email: ::prost::alloc::string::String,
1307}
1308#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1310pub struct CancelDeletionResponse {
1311 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1313 pub status: i32,
1314}
1315#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1318pub struct ImmediateDeleteRequest {
1319 #[prost(string, tag="1")]
1321 pub request_id: ::prost::alloc::string::String,
1322 #[prost(string, tag="2")]
1324 pub confirmation_email: ::prost::alloc::string::String,
1325}
1326#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1328pub struct ImmediateDeleteResponse {
1329 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1331 pub status: i32,
1332}
1333#[derive(Clone, PartialEq, ::prost::Message)]
1336pub struct RectifyUserDataRequest {
1337 #[prost(string, tag="1")]
1340 pub user_id: ::prost::alloc::string::String,
1341 #[prost(map="string, string", tag="2")]
1345 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1346}
1347#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1349pub struct RectifyUserDataResponse {
1350 #[prost(string, repeated, tag="1")]
1352 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1353}
1354#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1357pub struct RestrictProcessingRequest {
1358 #[prost(string, tag="1")]
1361 pub user_id: ::prost::alloc::string::String,
1362 #[prost(bool, tag="2")]
1364 pub restricted: bool,
1365}
1366#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1368pub struct RestrictProcessingResponse {
1369 #[prost(bool, tag="1")]
1371 pub restricted: bool,
1372 #[prost(message, optional, tag="2")]
1374 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1375}
1376#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1380pub struct GetDataExistenceConfirmationRequest {
1381 #[prost(string, tag="1")]
1384 pub user_id: ::prost::alloc::string::String,
1385}
1386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1388pub struct GetDataExistenceConfirmationResponse {
1389 #[prost(bool, tag="1")]
1391 pub exists: bool,
1392 #[prost(string, repeated, tag="2")]
1394 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1395}
1396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1399pub struct ListMyPrivacyRequestsRequest {
1400 #[prost(int32, tag="1")]
1403 pub page_size: i32,
1404 #[prost(string, tag="2")]
1406 pub page_token: ::prost::alloc::string::String,
1407 #[prost(string, tag="3")]
1409 pub request_type: ::prost::alloc::string::String,
1410 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1412 pub status: i32,
1413}
1414#[derive(Clone, PartialEq, ::prost::Message)]
1416pub struct ListMyPrivacyRequestsResponse {
1417 #[prost(message, repeated, tag="1")]
1419 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1420 #[prost(string, tag="2")]
1422 pub next_page_token: ::prost::alloc::string::String,
1423}
1424#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1428#[repr(i32)]
1429pub enum PrivacyRequestStatus {
1430 Unspecified = 0,
1432 Pending = 1,
1434 Processing = 2,
1436 Completed = 3,
1438 Failed = 4,
1440}
1441impl PrivacyRequestStatus {
1442 pub fn as_str_name(&self) -> &'static str {
1447 match self {
1448 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1449 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1450 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1451 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1452 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1453 }
1454 }
1455 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1457 match value {
1458 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1459 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1460 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1461 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1462 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1463 _ => None,
1464 }
1465 }
1466}
1467#[derive(Clone, PartialEq, ::prost::Message)]
1472pub struct AuditEvent {
1473 #[prost(string, tag="1")]
1476 pub id: ::prost::alloc::string::String,
1477 #[prost(string, tag="2")]
1480 pub org_id: ::prost::alloc::string::String,
1481 #[prost(string, tag="3")]
1484 pub actor_id: ::prost::alloc::string::String,
1485 #[prost(enumeration="AuditEventType", tag="4")]
1487 pub event_type: i32,
1488 #[prost(string, tag="5")]
1491 pub entity_type: ::prost::alloc::string::String,
1492 #[prost(string, tag="6")]
1495 pub entity_id: ::prost::alloc::string::String,
1496 #[prost(map="string, string", tag="7")]
1499 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1500 #[prost(message, optional, tag="10")]
1502 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1503}
1504#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1507pub struct ListAuditEventsRequest {
1508 #[prost(string, tag="1")]
1510 pub page_token: ::prost::alloc::string::String,
1511 #[prost(int32, tag="2")]
1514 pub page_size: i32,
1515 #[prost(enumeration="AuditEventType", tag="3")]
1517 pub event_type: i32,
1518 #[prost(string, tag="4")]
1521 pub actor_id: ::prost::alloc::string::String,
1522 #[prost(message, optional, tag="5")]
1524 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1525 #[prost(message, optional, tag="6")]
1527 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1528}
1529#[derive(Clone, PartialEq, ::prost::Message)]
1531pub struct ListAuditEventsResponse {
1532 #[prost(message, repeated, tag="1")]
1534 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1535 #[prost(string, tag="2")]
1537 pub next_page_token: ::prost::alloc::string::String,
1538}
1539#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1542pub struct ExportAuditTrailRequest {
1543 #[prost(enumeration="AuditExportFormat", tag="1")]
1545 pub format: i32,
1546 #[prost(message, optional, tag="2")]
1548 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1549 #[prost(message, optional, tag="3")]
1551 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1552}
1553#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1555pub struct ExportAuditTrailResponse {
1556 #[prost(string, tag="1")]
1559 pub export_url: ::prost::alloc::string::String,
1560 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1562 pub status: i32,
1563}
1564#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1566pub struct AuditExport {
1567 #[prost(string, tag="1")]
1569 pub id: ::prost::alloc::string::String,
1570 #[prost(string, tag="2")]
1572 pub format: ::prost::alloc::string::String,
1573 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1575 pub status: i32,
1576 #[prost(string, tag="4")]
1578 pub result_url: ::prost::alloc::string::String,
1579 #[prost(string, tag="5")]
1581 pub error_message: ::prost::alloc::string::String,
1582 #[prost(string, tag="6")]
1584 pub requested_by_email: ::prost::alloc::string::String,
1585 #[prost(message, optional, tag="7")]
1587 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1588 #[prost(message, optional, tag="8")]
1590 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1591}
1592#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1595pub struct ListAuditExportsRequest {
1596}
1597#[derive(Clone, PartialEq, ::prost::Message)]
1599pub struct ListAuditExportsResponse {
1600 #[prost(message, repeated, tag="1")]
1602 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1603}
1604#[derive(Clone, PartialEq, ::prost::Message)]
1612pub struct AppendRequest {
1613 #[prost(string, tag="1")]
1619 pub event_type: ::prost::alloc::string::String,
1620 #[prost(string, tag="2")]
1622 pub org_id: ::prost::alloc::string::String,
1623 #[prost(string, optional, tag="3")]
1626 pub subject_user_id: ::core::option::Option<::prost::alloc::string::String>,
1627 #[prost(string, optional, tag="4")]
1630 pub actor_id: ::core::option::Option<::prost::alloc::string::String>,
1631 #[prost(message, optional, tag="5")]
1639 pub details: ::core::option::Option<::prost_types::Struct>,
1640}
1641#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1642pub struct AppendResponse {
1643 #[prost(string, tag="1")]
1645 pub event_id: ::prost::alloc::string::String,
1646}
1647#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1651#[repr(i32)]
1652pub enum AuditEventType {
1653 Unspecified = 0,
1655 CampaignCreated = 1,
1658 MessageSent = 2,
1660 MessageOpened = 3,
1662 AckRegistered = 4,
1664 EscalationExecuted = 5,
1666 CampaignStarted = 12,
1668 CampaignCancelled = 13,
1670 CampaignUpdated = 14,
1672 UserInvited = 6,
1675 UserDeactivated = 7,
1677 UserReactivated = 15,
1679 RoleChanged = 10,
1681 InviteRevoked = 16,
1683 ProfileUpdated = 17,
1685 SettingsUpdated = 18,
1687 PasskeyEnrolled = 19,
1689 DataExportRequested = 8,
1692 DataDeletionRequested = 9,
1694 DataRectified = 20,
1696 ProcessingRestricted = 21,
1698 DeletionCancelled = 22,
1700 DeletionImmediate = 23,
1702 SsoConfigured = 11,
1705 SsoProviderCreated = 24,
1707 SsoProviderDeleted = 25,
1709 OrgUpdated = 26,
1711 RoleCreated = 27,
1714 RoleUpdated = 28,
1716 RoleDeleted = 29,
1718 TemplateCreated = 30,
1721 TemplateUpdated = 31,
1723 ApiKeyCreated = 32,
1726 ApiKeyRevoked = 33,
1728 InviteLinkCreated = 34,
1731 InviteLinkRevoked = 35,
1733 GroupCreated = 36,
1736 GroupUpdated = 37,
1738 GroupDeleted = 38,
1740 GroupMembersAdded = 39,
1742 GroupMembersRemoved = 40,
1744 TeamCreated = 41,
1747 TeamUpdated = 42,
1749 TeamDeleted = 43,
1751 TeamMembersAdded = 44,
1753 TeamMembersRemoved = 45,
1755 ScimUserProvisioned = 46,
1758 ScimUserDeprovisioned = 47,
1760 ScimUserUpdated = 48,
1762 TranslationCreated = 49,
1765 TranslationApproved = 50,
1767 SandboxCreated = 51,
1770 SandboxExpired = 52,
1772 AiPredictionLogged = 53,
1775 MlPipelineTriggered = 54,
1777 ArchetypeClusteringTriggered = 55,
1779 OrgCreated = 56,
1782 OrgDeleted = 57,
1784 ReachabilityUpsert = 58,
1788 ReachabilityRemove = 59,
1791}
1792impl AuditEventType {
1793 pub fn as_str_name(&self) -> &'static str {
1798 match self {
1799 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1800 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1801 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1802 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1803 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1804 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1805 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1806 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1807 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1808 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1809 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1810 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1811 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1812 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1813 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1814 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1815 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1816 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1817 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1818 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1819 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1820 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1821 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1822 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1823 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1824 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1825 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1826 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1827 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1828 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1829 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1830 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1831 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1832 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1833 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1834 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1835 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1836 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1837 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1838 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1839 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1840 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1841 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1842 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1843 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1844 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1845 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1846 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1847 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1848 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1849 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1850 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1851 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1852 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1853 Self::MlPipelineTriggered => "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED",
1854 Self::ArchetypeClusteringTriggered => "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED",
1855 Self::OrgCreated => "AUDIT_EVENT_TYPE_ORG_CREATED",
1856 Self::OrgDeleted => "AUDIT_EVENT_TYPE_ORG_DELETED",
1857 Self::ReachabilityUpsert => "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT",
1858 Self::ReachabilityRemove => "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE",
1859 }
1860 }
1861 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1863 match value {
1864 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1865 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1866 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1867 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1868 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1869 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1870 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1871 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1872 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1873 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1874 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1875 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1876 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1877 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1878 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1879 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1880 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1881 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1882 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1883 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1884 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1885 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1886 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1887 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1888 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1889 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1890 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1891 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1892 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1893 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1894 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1895 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1896 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1897 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1898 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1899 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1900 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1901 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1902 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1903 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1904 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1905 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1906 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1907 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1908 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1909 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1910 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1911 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1912 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1913 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1914 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1915 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1916 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1917 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1918 "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED" => Some(Self::MlPipelineTriggered),
1919 "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED" => Some(Self::ArchetypeClusteringTriggered),
1920 "AUDIT_EVENT_TYPE_ORG_CREATED" => Some(Self::OrgCreated),
1921 "AUDIT_EVENT_TYPE_ORG_DELETED" => Some(Self::OrgDeleted),
1922 "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT" => Some(Self::ReachabilityUpsert),
1923 "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE" => Some(Self::ReachabilityRemove),
1924 _ => None,
1925 }
1926 }
1927}
1928#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1930#[repr(i32)]
1931pub enum AuditExportFormat {
1932 Unspecified = 0,
1934 Csv = 1,
1936 Json = 2,
1938 Parquet = 3,
1940}
1941impl AuditExportFormat {
1942 pub fn as_str_name(&self) -> &'static str {
1947 match self {
1948 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1949 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1950 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1951 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1952 }
1953 }
1954 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1956 match value {
1957 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1958 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1959 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1960 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1961 _ => None,
1962 }
1963 }
1964}
1965#[derive(Clone, PartialEq, ::prost::Message)]
1970pub struct Campaign {
1971 #[prost(string, tag="1")]
1974 pub id: ::prost::alloc::string::String,
1975 #[prost(string, tag="2")]
1978 pub name: ::prost::alloc::string::String,
1979 #[prost(string, tag="3")]
1982 pub template_id: ::prost::alloc::string::String,
1983 #[prost(int32, tag="4")]
1985 pub template_version: i32,
1986 #[prost(string, tag="5")]
1988 pub audience_snapshot_ref: ::prost::alloc::string::String,
1989 #[prost(enumeration="CampaignStatus", tag="6")]
1991 pub status: i32,
1992 #[prost(message, optional, tag="7")]
1994 pub workflow: ::core::option::Option<WorkflowDefinition>,
1995 #[prost(int32, tag="8")]
1997 pub total_recipients: i32,
1998 #[prost(int32, tag="9")]
2000 pub action_completed_count: i32,
2001 #[prost(int32, tag="10")]
2003 pub missed_count: i32,
2004 #[prost(message, optional, tag="11")]
2006 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2007 #[prost(message, optional, tag="12")]
2009 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
2010 #[prost(message, optional, tag="13")]
2012 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
2013 #[prost(string, tag="14")]
2016 pub sender_name: ::prost::alloc::string::String,
2017 #[prost(string, tag="15")]
2020 pub title: ::prost::alloc::string::String,
2021 #[prost(bool, tag="16")]
2023 pub critical: bool,
2024 #[prost(string, tag="17")]
2029 pub default_locale: ::prost::alloc::string::String,
2030 #[prost(bool, tag="18")]
2034 pub wait_for_enrollment: bool,
2035 #[prost(message, optional, tag="19")]
2038 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2039}
2040#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2045pub struct CampaignOriginatingArchetype {
2046 #[prost(string, tag="1")]
2048 pub group_id: ::prost::alloc::string::String,
2049 #[prost(string, tag="2")]
2052 pub archetype_label: ::prost::alloc::string::String,
2053}
2054#[derive(Clone, PartialEq, ::prost::Message)]
2056pub struct AudienceMember {
2057 #[prost(string, tag="1")]
2059 pub user_id: ::prost::alloc::string::String,
2060 #[prost(map="string, string", tag="2")]
2062 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2063}
2064#[derive(Clone, PartialEq, ::prost::Message)]
2066pub struct CreateCampaignRequest {
2067 #[prost(string, tag="1")]
2070 pub name: ::prost::alloc::string::String,
2071 #[prost(string, tag="2")]
2074 pub template_id: ::prost::alloc::string::String,
2075 #[prost(int32, tag="3")]
2077 pub template_version: i32,
2078 #[prost(string, repeated, tag="4")]
2081 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2082 #[prost(message, optional, tag="5")]
2084 pub workflow: ::core::option::Option<WorkflowDefinition>,
2085 #[prost(string, tag="6")]
2088 pub sender_name: ::prost::alloc::string::String,
2089 #[prost(string, tag="7")]
2092 pub title: ::prost::alloc::string::String,
2093 #[prost(message, repeated, tag="8")]
2097 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
2098 #[prost(bool, tag="9")]
2101 pub include_restricted: bool,
2102 #[prost(bool, tag="10")]
2104 pub critical: bool,
2105 #[prost(string, tag="11")]
2107 pub default_locale: ::prost::alloc::string::String,
2108 #[prost(bool, tag="12")]
2112 pub wait_for_enrollment: bool,
2113 #[prost(message, optional, tag="13")]
2118 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2119}
2120#[derive(Clone, PartialEq, ::prost::Message)]
2122pub struct CreateCampaignResponse {
2123 #[prost(message, optional, tag="1")]
2125 pub campaign: ::core::option::Option<Campaign>,
2126}
2127#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2129pub struct StartCampaignRequest {
2130 #[prost(string, tag="1")]
2133 pub campaign_id: ::prost::alloc::string::String,
2134}
2135#[derive(Clone, PartialEq, ::prost::Message)]
2137pub struct StartCampaignResponse {
2138 #[prost(message, optional, tag="1")]
2140 pub campaign: ::core::option::Option<Campaign>,
2141}
2142#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2144pub struct GetCampaignRequest {
2145 #[prost(string, tag="1")]
2148 pub campaign_id: ::prost::alloc::string::String,
2149}
2150#[derive(Clone, PartialEq, ::prost::Message)]
2152pub struct GetCampaignResponse {
2153 #[prost(message, optional, tag="1")]
2155 pub campaign: ::core::option::Option<Campaign>,
2156}
2157#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2159pub struct ListCampaignsRequest {
2160 #[prost(message, optional, tag="1")]
2162 pub pagination: ::core::option::Option<Pagination>,
2163}
2164#[derive(Clone, PartialEq, ::prost::Message)]
2166pub struct ListCampaignsResponse {
2167 #[prost(message, repeated, tag="1")]
2169 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
2170 #[prost(message, optional, tag="2")]
2172 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2173}
2174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2176pub struct CancelCampaignRequest {
2177 #[prost(string, tag="1")]
2180 pub campaign_id: ::prost::alloc::string::String,
2181}
2182#[derive(Clone, PartialEq, ::prost::Message)]
2184pub struct CancelCampaignResponse {
2185 #[prost(message, optional, tag="1")]
2187 pub campaign: ::core::option::Option<Campaign>,
2188}
2189#[derive(Clone, PartialEq, ::prost::Message)]
2192pub struct UpdateCampaignRequest {
2193 #[prost(string, tag="1")]
2196 pub campaign_id: ::prost::alloc::string::String,
2197 #[prost(string, tag="2")]
2200 pub name: ::prost::alloc::string::String,
2201 #[prost(string, tag="3")]
2204 pub sender_name: ::prost::alloc::string::String,
2205 #[prost(string, tag="4")]
2208 pub title: ::prost::alloc::string::String,
2209 #[prost(string, tag="5")]
2212 pub template_id: ::prost::alloc::string::String,
2213 #[prost(int32, tag="6")]
2215 pub template_version: i32,
2216 #[prost(message, optional, tag="7")]
2218 pub workflow: ::core::option::Option<WorkflowDefinition>,
2219}
2220#[derive(Clone, PartialEq, ::prost::Message)]
2222pub struct UpdateCampaignResponse {
2223 #[prost(message, optional, tag="1")]
2225 pub campaign: ::core::option::Option<Campaign>,
2226}
2227#[derive(Clone, PartialEq, ::prost::Message)]
2234pub struct DeliveryMetadata {
2235 #[prost(message, optional, tag="1")]
2239 pub original_message: ::core::option::Option<Message>,
2240 #[prost(string, tag="2")]
2243 pub original_recipient_name: ::prost::alloc::string::String,
2244 #[prost(string, tag="3")]
2247 pub campaign_title: ::prost::alloc::string::String,
2248 #[prost(message, optional, tag="4")]
2251 pub reminder_fired_at: ::core::option::Option<::prost_types::Timestamp>,
2252}
2253#[derive(Clone, PartialEq, ::prost::Message)]
2254pub struct Delivery {
2255 #[prost(string, tag="1")]
2258 pub id: ::prost::alloc::string::String,
2259 #[prost(string, tag="2")]
2262 pub user_id: ::prost::alloc::string::String,
2263 #[prost(string, tag="3")]
2266 pub campaign_id: ::prost::alloc::string::String,
2267 #[prost(enumeration="DeliveryStatus", tag="4")]
2269 pub status: i32,
2270 #[prost(message, optional, tag="5")]
2272 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
2273 #[prost(message, optional, tag="6")]
2275 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
2276 #[prost(message, optional, tag="7")]
2278 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
2279 #[prost(string, tag="8")]
2281 pub recipient_email: ::prost::alloc::string::String,
2282 #[prost(enumeration="delivery::Kind", tag="12")]
2285 pub kind: i32,
2286 #[prost(string, tag="13")]
2290 pub parent_delivery_id: ::prost::alloc::string::String,
2291 #[prost(string, tag="14")]
2295 pub rendered_locale: ::prost::alloc::string::String,
2296 #[prost(message, optional, tag="15")]
2300 pub metadata: ::core::option::Option<DeliveryMetadata>,
2301}
2302pub mod delivery {
2304 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2306 #[repr(i32)]
2307 pub enum Kind {
2308 Unspecified = 0,
2310 Primary = 1,
2312 Escalation = 2,
2314 ReminderFyi = 3,
2319 }
2320 impl Kind {
2321 pub fn as_str_name(&self) -> &'static str {
2326 match self {
2327 Self::Unspecified => "KIND_UNSPECIFIED",
2328 Self::Primary => "KIND_PRIMARY",
2329 Self::Escalation => "KIND_ESCALATION",
2330 Self::ReminderFyi => "KIND_REMINDER_FYI",
2331 }
2332 }
2333 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2335 match value {
2336 "KIND_UNSPECIFIED" => Some(Self::Unspecified),
2337 "KIND_PRIMARY" => Some(Self::Primary),
2338 "KIND_ESCALATION" => Some(Self::Escalation),
2339 "KIND_REMINDER_FYI" => Some(Self::ReminderFyi),
2340 _ => None,
2341 }
2342 }
2343 }
2344}
2345#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2347pub struct ListDeliveriesRequest {
2348 #[prost(string, tag="1")]
2351 pub campaign_id: ::prost::alloc::string::String,
2352 #[prost(enumeration="DeliveryStatus", tag="2")]
2354 pub status_filter: i32,
2355 #[prost(message, optional, tag="3")]
2357 pub pagination: ::core::option::Option<Pagination>,
2358}
2359#[derive(Clone, PartialEq, ::prost::Message)]
2361pub struct ListDeliveriesResponse {
2362 #[prost(message, repeated, tag="1")]
2364 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
2365 #[prost(message, optional, tag="2")]
2367 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2368}
2369#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2374pub struct GetCampaignArchetypeBreakdownRequest {
2375 #[prost(string, tag="1")]
2378 pub campaign_id: ::prost::alloc::string::String,
2379}
2380#[derive(Clone, PartialEq, ::prost::Message)]
2385pub struct ArchetypeShareShift {
2386 #[prost(string, tag="1")]
2388 pub label: ::prost::alloc::string::String,
2389 #[prost(double, tag="2")]
2392 pub share_before: f64,
2393 #[prost(double, tag="3")]
2396 pub share_after: f64,
2397 #[prost(bool, tag="4")]
2400 pub is_origin: bool,
2401 #[prost(uint64, tag="5")]
2404 pub email_delivered_count: u64,
2405 #[prost(double, tag="6")]
2408 pub email_open_rate_real: f64,
2409 #[prost(double, tag="7")]
2412 pub email_open_rate_raw: f64,
2413}
2414#[derive(Clone, PartialEq, ::prost::Message)]
2419pub struct GetCampaignArchetypeBreakdownResponse {
2420 #[prost(message, repeated, tag="1")]
2423 pub shifts: ::prost::alloc::vec::Vec<ArchetypeShareShift>,
2424 #[prost(message, optional, tag="2")]
2427 pub before_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2428 #[prost(message, optional, tag="3")]
2430 pub after_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2431 #[prost(bool, tag="4")]
2435 pub insufficient_history: bool,
2436}
2437#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2444pub struct ResolveOrCreateShortCodeRequest {
2445 #[prost(string, tag="1")]
2448 pub campaign_id: ::prost::alloc::string::String,
2449}
2450#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2454pub struct ResolveOrCreateShortCodeResponse {
2455 #[prost(string, tag="1")]
2457 pub short_code: ::prost::alloc::string::String,
2458}
2459#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2466pub struct GetCampaignByShortCodeRequest {
2467 #[prost(string, tag="1")]
2470 pub short_code: ::prost::alloc::string::String,
2471}
2472#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2479pub struct GetCampaignByShortCodeResponse {
2480 #[prost(string, tag="1")]
2483 pub campaign_id: ::prost::alloc::string::String,
2484 #[prost(string, tag="2")]
2487 pub org_id: ::prost::alloc::string::String,
2488 #[prost(string, tag="3")]
2492 pub organization_name: ::prost::alloc::string::String,
2493 #[prost(string, tag="4")]
2497 pub subject: ::prost::alloc::string::String,
2498}
2499#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2504pub struct Device {
2505 #[prost(string, tag="1")]
2508 pub device_id: ::prost::alloc::string::String,
2509 #[prost(string, tag="2")]
2512 pub user_id: ::prost::alloc::string::String,
2513 #[prost(enumeration="Platform", tag="3")]
2515 pub platform: i32,
2516 #[prost(string, tag="4")]
2518 pub push_token: ::prost::alloc::string::String,
2519 #[prost(bool, tag="5")]
2521 pub active: bool,
2522 #[prost(message, optional, tag="6")]
2524 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2525 #[prost(message, optional, tag="7")]
2527 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2528}
2529#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2531pub struct DeviceSummary {
2532 #[prost(string, tag="1")]
2534 pub device_id: ::prost::alloc::string::String,
2535 #[prost(string, tag="2")]
2537 pub user_id: ::prost::alloc::string::String,
2538 #[prost(enumeration="Platform", tag="3")]
2540 pub platform: i32,
2541 #[prost(bool, tag="4")]
2543 pub active: bool,
2544 #[prost(message, optional, tag="5")]
2546 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2547 #[prost(message, optional, tag="6")]
2549 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2550}
2551#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2553pub struct RegisterRequest {
2554 #[prost(string, tag="1")]
2557 pub device_id: ::prost::alloc::string::String,
2558 #[prost(enumeration="Platform", tag="2")]
2560 pub platform: i32,
2561 #[prost(string, tag="3")]
2564 pub push_token: ::prost::alloc::string::String,
2565}
2566#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2568pub struct RegisterResponse {
2569 #[prost(message, optional, tag="1")]
2571 pub device: ::core::option::Option<DeviceSummary>,
2572}
2573#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2575pub struct DeactivateRequest {
2576 #[prost(string, tag="1")]
2579 pub device_id: ::prost::alloc::string::String,
2580}
2581#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2583pub struct DeactivateResponse {
2584 #[prost(bool, tag="1")]
2586 pub success: bool,
2587}
2588#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2590pub struct ListDevicesRequest {
2591}
2592#[derive(Clone, PartialEq, ::prost::Message)]
2594pub struct ListDevicesResponse {
2595 #[prost(message, repeated, tag="1")]
2597 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2598}
2599#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2601pub struct ListMemberDevicesRequest {
2602 #[prost(string, tag="1")]
2605 pub user_id: ::prost::alloc::string::String,
2606}
2607#[derive(Clone, PartialEq, ::prost::Message)]
2609pub struct ListMemberDevicesResponse {
2610 #[prost(message, repeated, tag="1")]
2612 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2613}
2614#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2619pub struct UserSettings {
2620 #[prost(enumeration="ThemePreference", tag="1")]
2622 pub theme_preference: i32,
2623 #[prost(string, tag="2")]
2627 pub preferred_locale: ::prost::alloc::string::String,
2628}
2629#[derive(Clone, PartialEq, ::prost::Message)]
2632pub struct UserProfile {
2633 #[prost(string, tag="1")]
2636 pub first_name: ::prost::alloc::string::String,
2637 #[prost(string, tag="2")]
2640 pub last_name: ::prost::alloc::string::String,
2641 #[prost(string, tag="3")]
2644 pub department: ::prost::alloc::string::String,
2645 #[prost(string, tag="4")]
2648 pub title: ::prost::alloc::string::String,
2649 #[prost(string, tag="5")]
2652 pub phone: ::prost::alloc::string::String,
2653 #[prost(string, tag="6")]
2656 pub location: ::prost::alloc::string::String,
2657 #[prost(string, tag="7")]
2660 pub employee_id: ::prost::alloc::string::String,
2661 #[prost(string, tag="8")]
2664 pub manager_name: ::prost::alloc::string::String,
2665 #[prost(string, tag="9")]
2668 pub start_date: ::prost::alloc::string::String,
2669 #[prost(map="string, string", tag="10")]
2672 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2673 #[prost(string, tag="11")]
2677 pub manager_id: ::prost::alloc::string::String,
2678}
2679#[derive(Clone, PartialEq, ::prost::Message)]
2681pub struct User {
2682 #[prost(string, tag="1")]
2684 pub id: ::prost::alloc::string::String,
2685 #[prost(string, tag="2")]
2688 pub email: ::prost::alloc::string::String,
2689 #[prost(string, tag="3")]
2692 pub name: ::prost::alloc::string::String,
2693 #[prost(enumeration="UserStatus", tag="5")]
2695 pub status: i32,
2696 #[prost(message, optional, tag="6")]
2698 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2699 #[prost(message, optional, tag="7")]
2701 pub role: ::core::option::Option<Role>,
2702 #[prost(string, tag="8")]
2704 pub role_id: ::prost::alloc::string::String,
2705 #[prost(message, optional, tag="9")]
2708 pub profile: ::core::option::Option<UserProfile>,
2709 #[prost(bool, tag="10")]
2712 pub processing_restricted: bool,
2713 #[prost(string, tag="11")]
2716 pub data_governance_region: ::prost::alloc::string::String,
2717}
2718#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2722#[repr(i32)]
2723pub enum UserStatus {
2724 Unspecified = 0,
2726 Invited = 1,
2728 Active = 2,
2730 Deactivated = 3,
2732}
2733impl UserStatus {
2734 pub fn as_str_name(&self) -> &'static str {
2739 match self {
2740 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2741 Self::Invited => "USER_STATUS_INVITED",
2742 Self::Active => "USER_STATUS_ACTIVE",
2743 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2744 }
2745 }
2746 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2748 match value {
2749 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2750 "USER_STATUS_INVITED" => Some(Self::Invited),
2751 "USER_STATUS_ACTIVE" => Some(Self::Active),
2752 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2753 _ => None,
2754 }
2755 }
2756}
2757#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2759#[repr(i32)]
2760pub enum ThemePreference {
2761 Unspecified = 0,
2763 Light = 1,
2765 Dark = 2,
2767 System = 3,
2769}
2770impl ThemePreference {
2771 pub fn as_str_name(&self) -> &'static str {
2776 match self {
2777 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2778 Self::Light => "THEME_PREFERENCE_LIGHT",
2779 Self::Dark => "THEME_PREFERENCE_DARK",
2780 Self::System => "THEME_PREFERENCE_SYSTEM",
2781 }
2782 }
2783 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2785 match value {
2786 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2787 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2788 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2789 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2790 _ => None,
2791 }
2792 }
2793}
2794#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2799pub struct Group {
2800 #[prost(string, tag="1")]
2802 pub id: ::prost::alloc::string::String,
2803 #[prost(string, tag="2")]
2806 pub name: ::prost::alloc::string::String,
2807 #[prost(string, tag="3")]
2810 pub description: ::prost::alloc::string::String,
2811 #[prost(int32, tag="4")]
2813 pub member_count: i32,
2814 #[prost(message, optional, tag="5")]
2816 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2817 #[prost(message, optional, tag="6")]
2819 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2820 #[prost(bool, tag="7")]
2822 pub is_default: bool,
2823 #[prost(string, tag="8")]
2825 pub created_by: ::prost::alloc::string::String,
2826}
2827#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2829pub struct CreateGroupRequest {
2830 #[prost(string, tag="1")]
2833 pub name: ::prost::alloc::string::String,
2834 #[prost(string, tag="2")]
2837 pub description: ::prost::alloc::string::String,
2838}
2839#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2841pub struct CreateGroupResponse {
2842 #[prost(message, optional, tag="1")]
2844 pub group: ::core::option::Option<Group>,
2845}
2846#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2848pub struct GetGroupRequest {
2849 #[prost(string, tag="1")]
2851 pub group_id: ::prost::alloc::string::String,
2852}
2853#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2855pub struct GetGroupResponse {
2856 #[prost(message, optional, tag="1")]
2858 pub group: ::core::option::Option<Group>,
2859}
2860#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2862pub struct ListGroupsRequest {
2863 #[prost(message, optional, tag="1")]
2865 pub pagination: ::core::option::Option<Pagination>,
2866}
2867#[derive(Clone, PartialEq, ::prost::Message)]
2869pub struct ListGroupsResponse {
2870 #[prost(message, repeated, tag="1")]
2872 pub groups: ::prost::alloc::vec::Vec<Group>,
2873 #[prost(message, optional, tag="2")]
2875 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2876}
2877#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2879pub struct UpdateGroupRequest {
2880 #[prost(string, tag="1")]
2882 pub group_id: ::prost::alloc::string::String,
2883 #[prost(string, tag="2")]
2887 pub name: ::prost::alloc::string::String,
2888 #[prost(string, tag="3")]
2891 pub description: ::prost::alloc::string::String,
2892}
2893#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2895pub struct UpdateGroupResponse {
2896 #[prost(message, optional, tag="1")]
2898 pub group: ::core::option::Option<Group>,
2899}
2900#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2902pub struct DeleteGroupRequest {
2903 #[prost(string, tag="1")]
2906 pub group_id: ::prost::alloc::string::String,
2907}
2908#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2910pub struct DeleteGroupResponse {
2911}
2912#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2914pub struct AddGroupMembersRequest {
2915 #[prost(string, tag="1")]
2917 pub group_id: ::prost::alloc::string::String,
2918 #[prost(string, repeated, tag="2")]
2922 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2923}
2924#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2926pub struct AddGroupMembersResponse {
2927 #[prost(message, optional, tag="1")]
2929 pub group: ::core::option::Option<Group>,
2930}
2931#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2933pub struct RemoveGroupMembersRequest {
2934 #[prost(string, tag="1")]
2936 pub group_id: ::prost::alloc::string::String,
2937 #[prost(string, repeated, tag="2")]
2940 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2941}
2942#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2944pub struct RemoveGroupMembersResponse {
2945 #[prost(message, optional, tag="1")]
2947 pub group: ::core::option::Option<Group>,
2948}
2949#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2951pub struct ListGroupMembersRequest {
2952 #[prost(string, tag="1")]
2954 pub group_id: ::prost::alloc::string::String,
2955 #[prost(message, optional, tag="2")]
2957 pub pagination: ::core::option::Option<Pagination>,
2958}
2959#[derive(Clone, PartialEq, ::prost::Message)]
2961pub struct ListGroupMembersResponse {
2962 #[prost(message, repeated, tag="1")]
2964 pub users: ::prost::alloc::vec::Vec<User>,
2965 #[prost(message, optional, tag="2")]
2967 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2968}
2969#[derive(Clone, PartialEq, ::prost::Message)]
2971pub struct UserGroupMembership {
2972 #[prost(string, tag="1")]
2974 pub user_id: ::prost::alloc::string::String,
2975 #[prost(message, repeated, tag="2")]
2977 pub groups: ::prost::alloc::vec::Vec<Group>,
2978}
2979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2981pub struct GetUserGroupMembershipsRequest {
2982 #[prost(string, repeated, tag="1")]
2985 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2986}
2987#[derive(Clone, PartialEq, ::prost::Message)]
2989pub struct GetUserGroupMembershipsResponse {
2990 #[prost(message, repeated, tag="1")]
2992 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2993}
2994#[derive(Clone, PartialEq, ::prost::Message)]
2998pub struct TouchEvent {
2999 #[prost(string, tag="1")]
3002 pub screen_name: ::prost::alloc::string::String,
3003 #[prost(float, tag="2")]
3006 pub x_pct: f32,
3007 #[prost(float, tag="3")]
3010 pub y_pct: f32,
3011 #[prost(enumeration="TouchEventType", tag="4")]
3013 pub event_type: i32,
3014 #[prost(int32, tag="5")]
3016 pub screen_width: i32,
3017 #[prost(int32, tag="6")]
3019 pub screen_height: i32,
3020 #[prost(message, optional, tag="7")]
3022 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
3023 #[prost(string, tag="8")]
3026 pub campaign_id: ::prost::alloc::string::String,
3027}
3028#[derive(Clone, PartialEq, ::prost::Message)]
3030pub struct IngestTouchEventsRequest {
3031 #[prost(message, repeated, tag="1")]
3034 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
3035}
3036#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3038pub struct IngestTouchEventsResponse {
3039 #[prost(int32, tag="1")]
3041 pub ingested_count: i32,
3042}
3043#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3045pub struct HeatmapDataPoint {
3046 #[prost(float, tag="1")]
3048 pub x_pct: f32,
3049 #[prost(float, tag="2")]
3051 pub y_pct: f32,
3052 #[prost(float, tag="3")]
3054 pub value: f32,
3055}
3056#[derive(Clone, PartialEq, ::prost::Message)]
3058pub struct QueryHeatmapDataRequest {
3059 #[prost(string, tag="1")]
3062 pub screen_name: ::prost::alloc::string::String,
3063 #[prost(message, optional, tag="2")]
3065 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3066 #[prost(message, optional, tag="3")]
3068 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3069 #[prost(string, tag="4")]
3072 pub campaign_id: ::prost::alloc::string::String,
3073 #[prost(float, tag="6")]
3076 pub grid_resolution: f32,
3077 #[prost(enumeration="HeatmapMode", tag="7")]
3079 pub mode: i32,
3080 #[prost(enumeration="TouchEventType", repeated, tag="8")]
3082 pub event_types: ::prost::alloc::vec::Vec<i32>,
3083}
3084#[derive(Clone, PartialEq, ::prost::Message)]
3086pub struct QueryHeatmapDataResponse {
3087 #[prost(message, repeated, tag="1")]
3089 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
3090 #[prost(string, tag="3")]
3093 pub screenshot_url: ::prost::alloc::string::String,
3094 #[prost(bool, tag="4")]
3096 pub cohort_enabled: bool,
3097}
3098#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3100pub struct UploadScreenshotRequest {
3101 #[prost(string, tag="1")]
3104 pub screen_name: ::prost::alloc::string::String,
3105 #[prost(string, tag="2")]
3107 pub app_version: ::prost::alloc::string::String,
3108 #[prost(bytes="vec", tag="3")]
3111 pub image_data: ::prost::alloc::vec::Vec<u8>,
3112}
3113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3115pub struct UploadScreenshotResponse {
3116 #[prost(string, tag="1")]
3118 pub url: ::prost::alloc::string::String,
3119}
3120#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3122pub struct ScreenScreenshot {
3123 #[prost(string, tag="1")]
3125 pub screen_name: ::prost::alloc::string::String,
3126 #[prost(string, tag="2")]
3128 pub url: ::prost::alloc::string::String,
3129 #[prost(string, tag="3")]
3131 pub app_version: ::prost::alloc::string::String,
3132}
3133#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3135pub struct ListScreenshotsRequest {
3136}
3137#[derive(Clone, PartialEq, ::prost::Message)]
3139pub struct ListScreenshotsResponse {
3140 #[prost(message, repeated, tag="1")]
3142 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
3143}
3144#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3148#[repr(i32)]
3149pub enum TouchEventType {
3150 Unspecified = 0,
3152 Tap = 1,
3154 LongPress = 2,
3156 Scroll = 3,
3158 ActionClick = 4,
3160}
3161impl TouchEventType {
3162 pub fn as_str_name(&self) -> &'static str {
3167 match self {
3168 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
3169 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
3170 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
3171 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
3172 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
3173 }
3174 }
3175 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3177 match value {
3178 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3179 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
3180 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
3181 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
3182 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
3183 _ => None,
3184 }
3185 }
3186}
3187#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3189#[repr(i32)]
3190pub enum HeatmapMode {
3191 Unspecified = 0,
3193 Total = 1,
3195 Median = 2,
3197}
3198impl HeatmapMode {
3199 pub fn as_str_name(&self) -> &'static str {
3204 match self {
3205 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
3206 Self::Total => "HEATMAP_MODE_TOTAL",
3207 Self::Median => "HEATMAP_MODE_MEDIAN",
3208 }
3209 }
3210 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3212 match value {
3213 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
3214 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
3215 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
3216 _ => None,
3217 }
3218 }
3219}
3220#[derive(Clone, PartialEq, ::prost::Message)]
3224pub struct InboxEntry {
3225 #[prost(string, tag="1")]
3228 pub delivery_id: ::prost::alloc::string::String,
3229 #[prost(message, optional, tag="2")]
3231 pub message: ::core::option::Option<Message>,
3232 #[prost(enumeration="DeliveryStatus", tag="3")]
3234 pub status: i32,
3235 #[prost(bool, tag="4")]
3237 pub read: bool,
3238 #[prost(message, optional, tag="5")]
3240 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
3241 #[prost(enumeration="delivery::Kind", tag="6")]
3245 pub kind: i32,
3246 #[prost(string, tag="7")]
3249 pub parent_delivery_id: ::prost::alloc::string::String,
3250 #[prost(string, tag="8")]
3253 pub rendered_locale: ::prost::alloc::string::String,
3254 #[prost(message, optional, tag="9")]
3258 pub metadata: ::core::option::Option<DeliveryMetadata>,
3259}
3260#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3262pub struct SyncRequest {
3263 #[prost(message, optional, tag="1")]
3265 pub since: ::core::option::Option<::prost_types::Timestamp>,
3266 #[prost(int32, tag="2")]
3269 pub limit: i32,
3270}
3271#[derive(Clone, PartialEq, ::prost::Message)]
3273pub struct SyncResponse {
3274 #[prost(message, repeated, tag="1")]
3276 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
3277 #[prost(message, optional, tag="2")]
3279 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
3280}
3281#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3283pub struct MarkReadRequest {
3284 #[prost(string, tag="1")]
3287 pub delivery_id: ::prost::alloc::string::String,
3288}
3289#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3291pub struct MarkReadResponse {
3292 #[prost(bool, tag="1")]
3294 pub success: bool,
3295}
3296#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3298pub struct GetMessageRequest {
3299 #[prost(string, tag="1")]
3302 pub delivery_id: ::prost::alloc::string::String,
3303}
3304#[derive(Clone, PartialEq, ::prost::Message)]
3306pub struct GetMessageResponse {
3307 #[prost(message, optional, tag="1")]
3309 pub entry: ::core::option::Option<InboxEntry>,
3310}
3311#[derive(Clone, PartialEq, ::prost::Message)]
3316pub struct Archetype {
3317 #[prost(string, tag="1")]
3319 pub label: ::prost::alloc::string::String,
3320 #[prost(string, tag="2")]
3322 pub description: ::prost::alloc::string::String,
3323 #[prost(float, tag="3")]
3325 pub percentage: f32,
3326 #[prost(map="string, double", tag="4")]
3333 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
3334 #[prost(map="string, message", tag="5")]
3339 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
3340 #[prost(message, optional, tag="6")]
3344 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
3345 #[prost(message, optional, tag="7")]
3349 pub forecast: ::core::option::Option<ArchetypeForecast>,
3350 #[prost(message, repeated, tag="8")]
3356 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
3357 #[prost(message, optional, tag="9")]
3360 pub screen_dwell: ::core::option::Option<ScreenDwell>,
3361 #[prost(message, optional, tag="10")]
3365 pub response_timeline: ::core::option::Option<ResponseTimeline>,
3366}
3367#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3372pub struct DimensionStats {
3373 #[prost(double, tag="1")]
3375 pub centroid: f64,
3376 #[prost(double, tag="2")]
3378 pub p25: f64,
3379 #[prost(double, tag="3")]
3381 pub p50: f64,
3382 #[prost(double, tag="4")]
3384 pub p75: f64,
3385 #[prost(double, tag="5")]
3388 pub group_p50: f64,
3389}
3390#[derive(Clone, PartialEq, ::prost::Message)]
3394pub struct TapHeatmap {
3395 #[prost(int32, tag="1")]
3397 pub width: i32,
3398 #[prost(int32, tag="2")]
3400 pub height: i32,
3401 #[prost(double, repeated, tag="3")]
3404 pub values: ::prost::alloc::vec::Vec<f64>,
3405 #[prost(int32, tag="4")]
3408 pub session_count: i32,
3409 #[prost(message, repeated, tag="5")]
3413 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
3414}
3415#[derive(Clone, PartialEq, ::prost::Message)]
3417pub struct TapHeatmapLayer {
3418 #[prost(string, tag="1")]
3421 pub event_type: ::prost::alloc::string::String,
3422 #[prost(double, repeated, tag="2")]
3425 pub values: ::prost::alloc::vec::Vec<f64>,
3426}
3427#[derive(Clone, PartialEq, ::prost::Message)]
3429pub struct ArchetypeForecast {
3430 #[prost(message, repeated, tag="1")]
3433 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
3434}
3435#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3437pub struct ForecastHorizon {
3438 #[prost(int32, tag="1")]
3440 pub days: i32,
3441 #[prost(double, tag="2")]
3444 pub predicted_share: f64,
3445 #[prost(double, tag="3")]
3447 pub lower: f64,
3448 #[prost(double, tag="4")]
3450 pub upper: f64,
3451 #[prost(enumeration="ConfidenceLevel", tag="5")]
3453 pub confidence: i32,
3454}
3455#[derive(Clone, PartialEq, ::prost::Message)]
3458pub struct ExemplarSession {
3459 #[prost(string, tag="1")]
3462 pub session_id: ::prost::alloc::string::String,
3463 #[prost(int32, tag="2")]
3466 pub rank: i32,
3467 #[prost(double, tag="3")]
3469 pub distance: f64,
3470 #[prost(int32, tag="4")]
3472 pub duration_seconds: i32,
3473 #[prost(string, tag="5")]
3477 pub platform: ::prost::alloc::string::String,
3478}
3479#[derive(Clone, PartialEq, ::prost::Message)]
3483pub struct ScreenDwell {
3484 #[prost(message, repeated, tag="1")]
3487 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
3488}
3489#[derive(Clone, PartialEq, ::prost::Message)]
3490pub struct ScreenDwellEntry {
3491 #[prost(string, tag="1")]
3495 pub screen_name: ::prost::alloc::string::String,
3496 #[prost(double, tag="2")]
3498 pub median_seconds: f64,
3499 #[prost(double, tag="3")]
3501 pub p75_seconds: f64,
3502 #[prost(int32, tag="4")]
3504 pub session_count: i32,
3505}
3506#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3510pub struct ResponseTimeline {
3511 #[prost(message, optional, tag="1")]
3513 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
3514 #[prost(message, optional, tag="2")]
3517 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
3518 #[prost(message, optional, tag="3")]
3521 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
3522 #[prost(int32, tag="4")]
3524 pub delivery_count: i32,
3525}
3526#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3528pub struct LatencyPercentiles {
3529 #[prost(double, tag="1")]
3530 pub p50: f64,
3531 #[prost(double, tag="2")]
3532 pub p75: f64,
3533 #[prost(double, tag="3")]
3534 pub p95: f64,
3535}
3536#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3539pub struct CohortPrediction {
3540 #[prost(float, tag="1")]
3542 pub predicted_ack_rate: f32,
3543 #[prost(float, tag="2")]
3545 pub confidence_low: f32,
3546 #[prost(float, tag="3")]
3548 pub confidence_high: f32,
3549 #[prost(enumeration="ConfidenceLevel", tag="4")]
3551 pub confidence_level: i32,
3552 #[prost(int32, tag="5")]
3554 pub data_point_count: i32,
3555}
3556#[derive(Clone, PartialEq, ::prost::Message)]
3558pub struct CampaignAdvisory {
3559 #[prost(message, optional, tag="1")]
3561 pub predicted_ack: ::core::option::Option<CohortPrediction>,
3562 #[prost(int32, tag="2")]
3565 pub suggested_escalation_delay_minutes: i32,
3566 #[prost(message, repeated, tag="3")]
3568 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3569}
3570#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3572pub struct GetGroupArchetypesRequest {
3573 #[prost(string, tag="1")]
3575 pub group_id: ::prost::alloc::string::String,
3576}
3577#[derive(Clone, PartialEq, ::prost::Message)]
3579pub struct GetGroupArchetypesResponse {
3580 #[prost(message, repeated, tag="1")]
3582 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3583 #[prost(int32, tag="2")]
3585 pub data_point_count: i32,
3586 #[prost(enumeration="PipelineState", tag="3")]
3590 pub pipeline_state: i32,
3591}
3592#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3594pub struct PredictCampaignAckRequest {
3595 #[prost(string, tag="1")]
3597 pub group_id: ::prost::alloc::string::String,
3598 #[prost(string, tag="2")]
3600 pub template_type: ::prost::alloc::string::String,
3601 #[prost(int32, tag="3")]
3603 pub workflow_step_count: i32,
3604}
3605#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3607pub struct PredictCampaignAckResponse {
3608 #[prost(message, optional, tag="1")]
3610 pub prediction: ::core::option::Option<CohortPrediction>,
3611}
3612#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3614pub struct GetCampaignAdvisoryRequest {
3615 #[prost(string, tag="1")]
3617 pub group_id: ::prost::alloc::string::String,
3618 #[prost(string, tag="2")]
3620 pub template_id: ::prost::alloc::string::String,
3621 #[prost(int32, tag="3")]
3623 pub template_version: i32,
3624 #[prost(int32, tag="4")]
3626 pub workflow_step_count: i32,
3627}
3628#[derive(Clone, PartialEq, ::prost::Message)]
3630pub struct GetCampaignAdvisoryResponse {
3631 #[prost(message, optional, tag="1")]
3633 pub advisory: ::core::option::Option<CampaignAdvisory>,
3634}
3635#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3637pub struct GetInsightNarrativeRequest {
3638 #[prost(string, tag="1")]
3640 pub group_id: ::prost::alloc::string::String,
3641 #[prost(string, tag="2")]
3643 pub prompt_name: ::prost::alloc::string::String,
3644}
3645#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3647pub struct GetInsightNarrativeResponse {
3648 #[prost(string, tag="1")]
3650 pub narrative: ::prost::alloc::string::String,
3651 #[prost(message, optional, tag="2")]
3653 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3654 #[prost(string, tag="3")]
3656 pub model_id: ::prost::alloc::string::String,
3657}
3658#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3661pub struct TriggerMlPipelineRequest {
3662}
3663#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3665pub struct TriggerMlPipelineResponse {
3666 #[prost(int32, tag="1")]
3668 pub remaining_this_month: i32,
3669 #[prost(message, optional, tag="2")]
3671 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3672}
3673#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3677pub struct TriggerArchetypeClusteringRequest {
3678 #[prost(string, tag="1")]
3680 pub group_id: ::prost::alloc::string::String,
3681}
3682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3684pub struct TriggerArchetypeClusteringResponse {
3685 #[prost(string, tag="1")]
3688 pub workflow_id: ::prost::alloc::string::String,
3689 #[prost(int32, tag="2")]
3692 pub remaining_this_month: i32,
3693 #[prost(message, optional, tag="3")]
3696 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3697}
3698#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3702pub struct GenerateCampaignBodyDraftRequest {
3703 #[prost(string, tag="1")]
3705 pub group_id: ::prost::alloc::string::String,
3706 #[prost(string, tag="2")]
3708 pub archetype_label: ::prost::alloc::string::String,
3709 #[prost(string, tag="3")]
3712 pub lane_action: ::prost::alloc::string::String,
3713}
3714#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3716pub struct GenerateCampaignBodyDraftResponse {
3717 #[prost(string, tag="1")]
3720 pub body_markdown: ::prost::alloc::string::String,
3721}
3722#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3726#[repr(i32)]
3727pub enum ConfidenceLevel {
3728 Unspecified = 0,
3729 Low = 1,
3731 Medium = 2,
3733 High = 3,
3735}
3736impl ConfidenceLevel {
3737 pub fn as_str_name(&self) -> &'static str {
3742 match self {
3743 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3744 Self::Low => "CONFIDENCE_LEVEL_LOW",
3745 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3746 Self::High => "CONFIDENCE_LEVEL_HIGH",
3747 }
3748 }
3749 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3751 match value {
3752 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3753 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3754 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3755 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3756 _ => None,
3757 }
3758 }
3759}
3760#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3766#[repr(i32)]
3767pub enum PipelineState {
3768 Unspecified = 0,
3769 NeverRun = 1,
3772 BelowThreshold = 2,
3776 NoClusters = 3,
3780 Ready = 4,
3782}
3783impl PipelineState {
3784 pub fn as_str_name(&self) -> &'static str {
3789 match self {
3790 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3791 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3792 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3793 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3794 Self::Ready => "PIPELINE_STATE_READY",
3795 }
3796 }
3797 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3799 match value {
3800 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3801 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3802 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3803 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3804 "PIPELINE_STATE_READY" => Some(Self::Ready),
3805 _ => None,
3806 }
3807 }
3808}
3809#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3816pub struct Reachability {
3817 #[prost(string, tag="1")]
3819 pub id: ::prost::alloc::string::String,
3820 #[prost(string, tag="2")]
3822 pub org_id: ::prost::alloc::string::String,
3823 #[prost(string, tag="3")]
3825 pub user_id: ::prost::alloc::string::String,
3826 #[prost(enumeration="ChannelName", tag="4")]
3828 pub channel: i32,
3829 #[prost(message, optional, tag="5")]
3831 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3832 #[prost(message, optional, tag="6")]
3834 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3835 #[prost(string, optional, tag="7")]
3839 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3840}
3841#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3845pub struct RegionPolicy {
3846 #[prost(string, tag="1")]
3847 pub org_id: ::prost::alloc::string::String,
3848 #[prost(enumeration="ChannelName", tag="2")]
3849 pub channel: i32,
3850 #[prost(string, repeated, tag="3")]
3853 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3854 #[prost(message, optional, tag="4")]
3855 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3856}
3857#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3865#[repr(i32)]
3866pub enum DispatchStatus {
3867 Unspecified = 0,
3869 Sent = 1,
3871 Failed = 2,
3874 Deduped = 3,
3878}
3879impl DispatchStatus {
3880 pub fn as_str_name(&self) -> &'static str {
3885 match self {
3886 Self::Unspecified => "DISPATCH_STATUS_UNSPECIFIED",
3887 Self::Sent => "DISPATCH_STATUS_SENT",
3888 Self::Failed => "DISPATCH_STATUS_FAILED",
3889 Self::Deduped => "DISPATCH_STATUS_DEDUPED",
3890 }
3891 }
3892 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3894 match value {
3895 "DISPATCH_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
3896 "DISPATCH_STATUS_SENT" => Some(Self::Sent),
3897 "DISPATCH_STATUS_FAILED" => Some(Self::Failed),
3898 "DISPATCH_STATUS_DEDUPED" => Some(Self::Deduped),
3899 _ => None,
3900 }
3901 }
3902}
3903#[derive(Clone, PartialEq, ::prost::Message)]
3910pub struct DispatchToChannelRequest {
3911 #[prost(string, tag="1")]
3913 pub dispatch_id: ::prost::alloc::string::String,
3914 #[prost(string, tag="2")]
3915 pub org_id: ::prost::alloc::string::String,
3916 #[prost(string, tag="3")]
3917 pub user_id: ::prost::alloc::string::String,
3918 #[prost(enumeration="ChannelName", tag="4")]
3920 pub channel: i32,
3921 #[prost(string, tag="5")]
3923 pub template_id: ::prost::alloc::string::String,
3924 #[prost(map="string, string", tag="6")]
3926 pub template_vars: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3927 #[prost(string, tag="7")]
3929 pub locale: ::prost::alloc::string::String,
3930 #[prost(string, optional, tag="8")]
3933 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3934}
3935#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3936pub struct DispatchToChannelResponse {
3937 #[prost(string, tag="1")]
3939 pub dispatch_id: ::prost::alloc::string::String,
3940 #[prost(enumeration="DispatchStatus", tag="2")]
3942 pub status: i32,
3943 #[prost(string, optional, tag="3")]
3946 pub failure_reason: ::core::option::Option<::prost::alloc::string::String>,
3947}
3948#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3955pub struct UpsertReachabilityRequest {
3956 #[prost(string, tag="1")]
3957 pub org_id: ::prost::alloc::string::String,
3958 #[prost(string, tag="2")]
3959 pub user_id: ::prost::alloc::string::String,
3960 #[prost(enumeration="ChannelName", tag="3")]
3961 pub channel: i32,
3962 #[prost(string, tag="4")]
3966 pub identifier_plaintext: ::prost::alloc::string::String,
3967 #[prost(string, optional, tag="5")]
3970 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3971}
3972#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3973pub struct UpsertReachabilityResponse {
3974 #[prost(message, optional, tag="1")]
3977 pub reachability: ::core::option::Option<Reachability>,
3978}
3979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3985pub struct RemoveReachabilityRequest {
3986 #[prost(string, tag="1")]
3987 pub org_id: ::prost::alloc::string::String,
3988 #[prost(string, tag="2")]
3989 pub user_id: ::prost::alloc::string::String,
3990 #[prost(enumeration="ChannelName", tag="3")]
3991 pub channel: i32,
3992}
3993#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3994pub struct RemoveReachabilityResponse {
3995 #[prost(bool, tag="1")]
3998 pub removed: bool,
3999}
4000#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4005pub struct GetReachabilityRequest {
4006 #[prost(string, tag="1")]
4007 pub org_id: ::prost::alloc::string::String,
4008 #[prost(string, tag="2")]
4009 pub user_id: ::prost::alloc::string::String,
4010 #[prost(enumeration="ChannelName", tag="3")]
4011 pub channel: i32,
4012}
4013#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4014pub struct GetReachabilityResponse {
4015 #[prost(message, optional, tag="1")]
4017 pub reachability: ::core::option::Option<Reachability>,
4018}
4019#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4026pub struct ListReachabilityForUserRequest {
4027 #[prost(string, tag="1")]
4028 pub org_id: ::prost::alloc::string::String,
4029 #[prost(string, tag="2")]
4030 pub user_id: ::prost::alloc::string::String,
4031}
4032#[derive(Clone, PartialEq, ::prost::Message)]
4033pub struct ListReachabilityForUserResponse {
4034 #[prost(message, repeated, tag="1")]
4036 pub reachabilities: ::prost::alloc::vec::Vec<Reachability>,
4037}
4038#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4041pub struct GetRegionPolicyRequest {
4042 #[prost(string, tag="1")]
4043 pub org_id: ::prost::alloc::string::String,
4044 #[prost(enumeration="ChannelName", tag="2")]
4045 pub channel: i32,
4046}
4047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4048pub struct GetRegionPolicyResponse {
4049 #[prost(message, optional, tag="1")]
4052 pub policy: ::core::option::Option<RegionPolicy>,
4053}
4054#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4056pub struct SetRegionPolicyRequest {
4057 #[prost(string, tag="1")]
4058 pub org_id: ::prost::alloc::string::String,
4059 #[prost(enumeration="ChannelName", tag="2")]
4060 pub channel: i32,
4061 #[prost(string, repeated, tag="3")]
4063 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4064}
4065#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4066pub struct SetRegionPolicyResponse {
4067 #[prost(message, optional, tag="1")]
4068 pub policy: ::core::option::Option<RegionPolicy>,
4069}
4070#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4077pub struct GetCostCapPolicyRequest {
4078 #[prost(string, tag="1")]
4079 pub org_id: ::prost::alloc::string::String,
4080 #[prost(enumeration="ChannelName", tag="2")]
4081 pub channel: i32,
4082}
4083#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4084pub struct GetCostCapPolicyResponse {
4085 #[prost(string, tag="1")]
4086 pub org_id: ::prost::alloc::string::String,
4087 #[prost(enumeration="ChannelName", tag="2")]
4088 pub channel: i32,
4089 #[prost(int64, tag="3")]
4091 pub cap_micros: i64,
4092 #[prost(int64, tag="4")]
4094 pub used_micros: i64,
4095 #[prost(int32, tag="5")]
4097 pub period_yyyymm: i32,
4098}
4099#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4102pub struct SetCostCapPolicyRequest {
4103 #[prost(string, tag="1")]
4104 pub org_id: ::prost::alloc::string::String,
4105 #[prost(enumeration="ChannelName", tag="2")]
4106 pub channel: i32,
4107 #[prost(int64, tag="3")]
4108 pub cap_micros: i64,
4109}
4110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4111pub struct SetCostCapPolicyResponse {
4112 #[prost(string, tag="1")]
4113 pub org_id: ::prost::alloc::string::String,
4114 #[prost(enumeration="ChannelName", tag="2")]
4115 pub channel: i32,
4116 #[prost(int64, tag="3")]
4117 pub cap_micros: i64,
4118 #[prost(int64, tag="4")]
4119 pub used_micros: i64,
4120 #[prost(int32, tag="5")]
4121 pub period_yyyymm: i32,
4122}
4123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4128pub struct InviteLink {
4129 #[prost(string, tag="1")]
4131 pub id: ::prost::alloc::string::String,
4132 #[prost(string, tag="2")]
4134 pub token: ::prost::alloc::string::String,
4135 #[prost(string, tag="3")]
4137 pub role_id: ::prost::alloc::string::String,
4138 #[prost(int32, tag="4")]
4141 pub max_uses: i32,
4142 #[prost(int32, tag="5")]
4144 pub use_count: i32,
4145 #[prost(message, optional, tag="6")]
4147 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4148 #[prost(message, optional, tag="7")]
4150 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
4151 #[prost(string, tag="8")]
4153 pub created_by: ::prost::alloc::string::String,
4154 #[prost(message, optional, tag="9")]
4156 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4157 #[prost(string, tag="10")]
4160 pub data_governance_region: ::prost::alloc::string::String,
4161}
4162#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4164pub struct CreateInviteLinkRequest {
4165 #[prost(string, tag="1")]
4167 pub role_id: ::prost::alloc::string::String,
4168 #[prost(int32, tag="2")]
4170 pub max_uses: i32,
4171 #[prost(int32, tag="3")]
4174 pub expires_in_hours: i32,
4175 #[prost(string, tag="4")]
4178 pub data_governance_region: ::prost::alloc::string::String,
4179}
4180#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4182pub struct CreateInviteLinkResponse {
4183 #[prost(message, optional, tag="1")]
4185 pub invite_link: ::core::option::Option<InviteLink>,
4186 #[prost(string, tag="2")]
4188 pub url: ::prost::alloc::string::String,
4189}
4190#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4192pub struct ListInviteLinksRequest {
4193}
4194#[derive(Clone, PartialEq, ::prost::Message)]
4196pub struct ListInviteLinksResponse {
4197 #[prost(message, repeated, tag="1")]
4199 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
4200}
4201#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4203pub struct RevokeInviteLinkRequest {
4204 #[prost(string, tag="1")]
4206 pub invite_link_id: ::prost::alloc::string::String,
4207}
4208#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4210pub struct RevokeInviteLinkResponse {
4211}
4212#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4214pub struct RedeemInviteLinkRequest {
4215 #[prost(string, tag="1")]
4217 pub token: ::prost::alloc::string::String,
4218}
4219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4221pub struct RedeemInviteLinkResponse {
4222 #[prost(string, tag="1")]
4224 pub organization_name: ::prost::alloc::string::String,
4225}
4226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4228pub struct ValidateInviteLinkRequest {
4229 #[prost(string, tag="1")]
4231 pub token: ::prost::alloc::string::String,
4232 #[prost(string, tag="2")]
4235 pub email: ::prost::alloc::string::String,
4236}
4237#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4239pub struct ValidateInviteLinkResponse {
4240 #[prost(string, tag="1")]
4242 pub organization_name: ::prost::alloc::string::String,
4243}
4244#[derive(Clone, PartialEq, ::prost::Message)]
4248pub struct InviteUserRequest {
4249 #[prost(string, tag="1")]
4252 pub email: ::prost::alloc::string::String,
4253 #[prost(string, tag="2")]
4256 pub name: ::prost::alloc::string::String,
4257 #[prost(string, tag="4")]
4259 pub role_id: ::prost::alloc::string::String,
4260 #[prost(message, optional, tag="5")]
4262 pub profile: ::core::option::Option<UserProfile>,
4263 #[prost(string, tag="6")]
4266 pub data_governance_region: ::prost::alloc::string::String,
4267}
4268#[derive(Clone, PartialEq, ::prost::Message)]
4270pub struct InviteUserResponse {
4271 #[prost(message, optional, tag="1")]
4273 pub user: ::core::option::Option<User>,
4274}
4275#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4277pub struct GetUserRequest {
4278 #[prost(string, tag="1")]
4280 pub user_id: ::prost::alloc::string::String,
4281}
4282#[derive(Clone, PartialEq, ::prost::Message)]
4284pub struct GetUserResponse {
4285 #[prost(message, optional, tag="1")]
4287 pub user: ::core::option::Option<User>,
4288}
4289#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4291pub struct ListUsersRequest {
4292 #[prost(message, optional, tag="1")]
4294 pub pagination: ::core::option::Option<Pagination>,
4295}
4296#[derive(Clone, PartialEq, ::prost::Message)]
4298pub struct ListUsersResponse {
4299 #[prost(message, repeated, tag="1")]
4301 pub users: ::prost::alloc::vec::Vec<User>,
4302 #[prost(message, optional, tag="2")]
4304 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4305}
4306#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4308pub struct UpdateUserRoleRequest {
4309 #[prost(string, tag="1")]
4311 pub user_id: ::prost::alloc::string::String,
4312 #[prost(string, tag="2")]
4314 pub role_id: ::prost::alloc::string::String,
4315}
4316#[derive(Clone, PartialEq, ::prost::Message)]
4318pub struct UpdateUserRoleResponse {
4319 #[prost(message, optional, tag="1")]
4321 pub user: ::core::option::Option<User>,
4322}
4323#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4325pub struct DeactivateUserRequest {
4326 #[prost(string, tag="1")]
4328 pub user_id: ::prost::alloc::string::String,
4329}
4330#[derive(Clone, PartialEq, ::prost::Message)]
4332pub struct DeactivateUserResponse {
4333 #[prost(message, optional, tag="1")]
4335 pub user: ::core::option::Option<User>,
4336}
4337#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4339pub struct ReactivateUserRequest {
4340 #[prost(string, tag="1")]
4342 pub user_id: ::prost::alloc::string::String,
4343}
4344#[derive(Clone, PartialEq, ::prost::Message)]
4346pub struct ReactivateUserResponse {
4347 #[prost(message, optional, tag="1")]
4349 pub user: ::core::option::Option<User>,
4350}
4351#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4353pub struct RevokeInviteRequest {
4354 #[prost(string, tag="1")]
4357 pub user_id: ::prost::alloc::string::String,
4358}
4359#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4361pub struct RevokeInviteResponse {
4362}
4363#[derive(Clone, PartialEq, ::prost::Message)]
4365pub struct UpdateUserProfileRequest {
4366 #[prost(string, tag="1")]
4369 pub user_id: ::prost::alloc::string::String,
4370 #[prost(message, optional, tag="2")]
4372 pub profile: ::core::option::Option<UserProfile>,
4373}
4374#[derive(Clone, PartialEq, ::prost::Message)]
4376pub struct UpdateUserProfileResponse {
4377 #[prost(message, optional, tag="1")]
4379 pub user: ::core::option::Option<User>,
4380}
4381#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4383pub struct GetUserSettingsRequest {
4384}
4385#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4387pub struct GetUserSettingsResponse {
4388 #[prost(message, optional, tag="1")]
4390 pub settings: ::core::option::Option<UserSettings>,
4391}
4392#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4394pub struct UpdateUserSettingsRequest {
4395 #[prost(message, optional, tag="1")]
4398 pub settings: ::core::option::Option<UserSettings>,
4399}
4400#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4402pub struct UpdateUserSettingsResponse {
4403 #[prost(message, optional, tag="1")]
4405 pub settings: ::core::option::Option<UserSettings>,
4406}
4407#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4409pub struct BulkInviteUsersRequest {
4410 #[prost(string, repeated, tag="1")]
4413 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4414 #[prost(string, tag="2")]
4416 pub role_id: ::prost::alloc::string::String,
4417}
4418#[derive(Clone, PartialEq, ::prost::Message)]
4420pub struct BulkInviteResult {
4421 #[prost(string, tag="1")]
4423 pub email: ::prost::alloc::string::String,
4424 #[prost(bool, tag="2")]
4426 pub success: bool,
4427 #[prost(string, tag="3")]
4430 pub error: ::prost::alloc::string::String,
4431 #[prost(message, optional, tag="4")]
4433 pub user: ::core::option::Option<User>,
4434}
4435#[derive(Clone, PartialEq, ::prost::Message)]
4437pub struct BulkInviteUsersResponse {
4438 #[prost(message, repeated, tag="1")]
4440 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
4441 #[prost(int32, tag="2")]
4443 pub invited_count: i32,
4444 #[prost(int32, tag="3")]
4446 pub failed_count: i32,
4447}
4448#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4452pub struct ConfirmPasskeyEnrollmentRequest {
4453}
4454#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4456pub struct ConfirmPasskeyEnrollmentResponse {
4457 #[prost(bool, tag="1")]
4459 pub confirmed: bool,
4460}
4461#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4463pub struct UpdateUserRegionRequest {
4464 #[prost(string, tag="1")]
4466 pub user_id: ::prost::alloc::string::String,
4467 #[prost(string, tag="2")]
4470 pub data_governance_region: ::prost::alloc::string::String,
4471}
4472#[derive(Clone, PartialEq, ::prost::Message)]
4474pub struct UpdateUserRegionResponse {
4475 #[prost(message, optional, tag="1")]
4477 pub user: ::core::option::Option<User>,
4478 #[prost(string, tag="2")]
4481 pub migration_workflow_id: ::prost::alloc::string::String,
4482}
4483#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4492pub struct Pepper {
4493 #[prost(int32, tag="1")]
4495 pub version: i32,
4496 #[prost(bytes="vec", tag="2")]
4500 pub key_material: ::prost::alloc::vec::Vec<u8>,
4501}
4502#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4509pub struct GetPeppersRequest {
4510 #[prost(string, tag="1")]
4512 pub org_id: ::prost::alloc::string::String,
4513 #[prost(string, tag="2")]
4516 pub purpose: ::prost::alloc::string::String,
4517}
4518#[derive(Clone, PartialEq, ::prost::Message)]
4519pub struct GetPeppersResponse {
4520 #[prost(message, repeated, tag="1")]
4525 pub peppers: ::prost::alloc::vec::Vec<Pepper>,
4526}
4527#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4532pub struct SsoAttributeMapping {
4533 #[prost(string, tag="1")]
4536 pub idp_claim: ::prost::alloc::string::String,
4537 #[prost(string, tag="2")]
4541 pub profile_field: ::prost::alloc::string::String,
4542}
4543#[derive(Clone, PartialEq, ::prost::Message)]
4545pub struct Organization {
4546 #[prost(string, tag="1")]
4548 pub id: ::prost::alloc::string::String,
4549 #[prost(string, tag="2")]
4552 pub name: ::prost::alloc::string::String,
4553 #[prost(message, optional, tag="3")]
4555 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4556 #[prost(message, optional, tag="4")]
4558 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4559 #[prost(enumeration="Industry", tag="5")]
4561 pub industry: i32,
4562 #[prost(enumeration="CompanySize", tag="6")]
4564 pub company_size: i32,
4565 #[prost(message, repeated, tag="7")]
4568 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4569 #[prost(string, tag="8")]
4573 pub default_locale: ::prost::alloc::string::String,
4574 #[prost(enumeration="OrgType", tag="9")]
4576 pub org_type: i32,
4577 #[prost(message, optional, tag="10")]
4579 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4580 #[prost(string, tag="11")]
4583 pub data_governance_region: ::prost::alloc::string::String,
4584 #[prost(string, tag="12")]
4587 pub data_content_region: ::prost::alloc::string::String,
4588 #[prost(int32, tag="13")]
4593 pub ml_retrain_cold_threshold: i32,
4594 #[prost(bool, tag="14")]
4596 pub ml_cancelled_counts: bool,
4597 #[prost(int32, tag="15")]
4599 pub ml_manual_limit_monthly: i32,
4600 #[prost(int32, tag="16")]
4602 pub ml_manual_retrains_used: i32,
4603 #[prost(bool, tag="17")]
4605 pub ml_needs_retrain: bool,
4606 #[prost(int32, tag="18")]
4608 pub campaigns_since_last_training: i32,
4609 #[prost(int32, tag="19")]
4611 pub total_completed_campaigns: i32,
4612 #[prost(message, optional, tag="20")]
4614 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
4615}
4616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4620pub struct CreateOrganizationRequest {
4621 #[prost(string, tag="1")]
4624 pub name: ::prost::alloc::string::String,
4625 #[prost(enumeration="Industry", tag="2")]
4627 pub industry: i32,
4628 #[prost(enumeration="CompanySize", tag="3")]
4630 pub company_size: i32,
4631 #[prost(string, tag="4")]
4634 pub access_code: ::prost::alloc::string::String,
4635 #[prost(string, tag="5")]
4638 pub data_governance_region: ::prost::alloc::string::String,
4639}
4640#[derive(Clone, PartialEq, ::prost::Message)]
4642pub struct CreateOrganizationResponse {
4643 #[prost(message, optional, tag="1")]
4645 pub organization: ::core::option::Option<Organization>,
4646 #[prost(message, optional, tag="2")]
4648 pub admin_user: ::core::option::Option<User>,
4649}
4650#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4652pub struct GetOrganizationRequest {
4653}
4654#[derive(Clone, PartialEq, ::prost::Message)]
4656pub struct GetOrganizationResponse {
4657 #[prost(message, optional, tag="1")]
4659 pub organization: ::core::option::Option<Organization>,
4660}
4661#[derive(Clone, PartialEq, ::prost::Message)]
4663pub struct UpdateOrganizationRequest {
4664 #[prost(string, tag="1")]
4667 pub name: ::prost::alloc::string::String,
4668 #[prost(message, optional, tag="2")]
4670 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4671 #[prost(enumeration="Industry", tag="3")]
4673 pub industry: i32,
4674 #[prost(enumeration="CompanySize", tag="4")]
4676 pub company_size: i32,
4677 #[prost(string, tag="5")]
4680 pub default_locale: ::prost::alloc::string::String,
4681 #[prost(int32, tag="6")]
4683 pub ml_retrain_cold_threshold: i32,
4684 #[prost(bool, optional, tag="7")]
4687 pub ml_cancelled_counts: ::core::option::Option<bool>,
4688 #[prost(int32, tag="8")]
4691 pub ml_manual_limit_monthly: i32,
4692}
4693#[derive(Clone, PartialEq, ::prost::Message)]
4695pub struct UpdateOrganizationResponse {
4696 #[prost(message, optional, tag="1")]
4698 pub organization: ::core::option::Option<Organization>,
4699}
4700#[derive(Clone, PartialEq, ::prost::Message)]
4702pub struct UpdateSsoAttributeMappingsRequest {
4703 #[prost(message, repeated, tag="1")]
4705 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4706}
4707#[derive(Clone, PartialEq, ::prost::Message)]
4709pub struct UpdateSsoAttributeMappingsResponse {
4710 #[prost(message, optional, tag="1")]
4712 pub organization: ::core::option::Option<Organization>,
4713}
4714#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4716pub struct RotateAnalyticsSaltRequest {
4717 #[prost(int32, tag="1")]
4719 pub new_bucket_count: i32,
4720}
4721#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4723pub struct RotateAnalyticsSaltResponse {
4724 #[prost(int32, tag="1")]
4726 pub bucket_count: i32,
4727}
4728#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4730pub struct UpdateAnalyticsEpsilonRequest {
4731 #[prost(float, tag="1")]
4733 pub epsilon: f32,
4734}
4735#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4737pub struct UpdateAnalyticsEpsilonResponse {
4738 #[prost(float, tag="1")]
4740 pub epsilon: f32,
4741}
4742#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4744pub struct CreateSandboxOrganizationRequest {
4745 #[prost(string, tag="1")]
4748 pub name: ::prost::alloc::string::String,
4749 #[prost(message, optional, tag="2")]
4752 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4753 #[prost(string, tag="3")]
4756 pub data_governance_region: ::prost::alloc::string::String,
4757 #[prost(string, tag="4")]
4761 pub fixture_id: ::prost::alloc::string::String,
4762}
4763#[derive(Clone, PartialEq, ::prost::Message)]
4765pub struct CreateSandboxOrganizationResponse {
4766 #[prost(message, optional, tag="1")]
4768 pub organization: ::core::option::Option<Organization>,
4769 #[prost(message, optional, tag="2")]
4771 pub admin_user: ::core::option::Option<User>,
4772}
4773#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4776pub struct DeleteSandboxOrganizationRequest {
4777 #[prost(string, tag="1")]
4779 pub org_id: ::prost::alloc::string::String,
4780}
4781#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4784pub struct DeleteSandboxOrganizationResponse {
4785 #[prost(string, tag="1")]
4787 pub workflow_id: ::prost::alloc::string::String,
4788}
4789#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4791pub struct SandboxFixture {
4792 #[prost(string, tag="1")]
4794 pub id: ::prost::alloc::string::String,
4795 #[prost(string, tag="2")]
4797 pub name: ::prost::alloc::string::String,
4798 #[prost(string, tag="3")]
4800 pub description: ::prost::alloc::string::String,
4801 #[prost(bool, tag="4")]
4804 pub is_default: bool,
4805}
4806#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4809pub struct ListSandboxFixturesRequest {
4810}
4811#[derive(Clone, PartialEq, ::prost::Message)]
4813pub struct ListSandboxFixturesResponse {
4814 #[prost(message, repeated, tag="1")]
4816 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
4817}
4818#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4821pub struct ListUserOrganizationsRequest {
4822}
4823#[derive(Clone, PartialEq, ::prost::Message)]
4825pub struct ListUserOrganizationsResponse {
4826 #[prost(message, repeated, tag="1")]
4829 pub organizations: ::prost::alloc::vec::Vec<Organization>,
4830}
4831#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4836pub struct ListUserSandboxesRequest {
4837}
4838#[derive(Clone, PartialEq, ::prost::Message)]
4840pub struct ListUserSandboxesResponse {
4841 #[prost(message, repeated, tag="1")]
4846 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
4847}
4848#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4852#[repr(i32)]
4853pub enum Industry {
4854 Unspecified = 0,
4855 Technology = 1,
4856 Finance = 2,
4857 Healthcare = 3,
4858 Education = 4,
4859 Retail = 5,
4860 Manufacturing = 6,
4861 Media = 7,
4862 Other = 8,
4863}
4864impl Industry {
4865 pub fn as_str_name(&self) -> &'static str {
4870 match self {
4871 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
4872 Self::Technology => "INDUSTRY_TECHNOLOGY",
4873 Self::Finance => "INDUSTRY_FINANCE",
4874 Self::Healthcare => "INDUSTRY_HEALTHCARE",
4875 Self::Education => "INDUSTRY_EDUCATION",
4876 Self::Retail => "INDUSTRY_RETAIL",
4877 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
4878 Self::Media => "INDUSTRY_MEDIA",
4879 Self::Other => "INDUSTRY_OTHER",
4880 }
4881 }
4882 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4884 match value {
4885 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
4886 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
4887 "INDUSTRY_FINANCE" => Some(Self::Finance),
4888 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
4889 "INDUSTRY_EDUCATION" => Some(Self::Education),
4890 "INDUSTRY_RETAIL" => Some(Self::Retail),
4891 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
4892 "INDUSTRY_MEDIA" => Some(Self::Media),
4893 "INDUSTRY_OTHER" => Some(Self::Other),
4894 _ => None,
4895 }
4896 }
4897}
4898#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4900#[repr(i32)]
4901pub enum CompanySize {
4902 Unspecified = 0,
4903 CompanySize1200 = 1,
4904 CompanySize200500 = 2,
4905 CompanySize5001000 = 3,
4906 CompanySize10005000 = 4,
4907 CompanySize5000Plus = 5,
4908}
4909impl CompanySize {
4910 pub fn as_str_name(&self) -> &'static str {
4915 match self {
4916 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
4917 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
4918 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
4919 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
4920 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
4921 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
4922 }
4923 }
4924 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4926 match value {
4927 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
4928 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
4929 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
4930 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
4931 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
4932 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
4933 _ => None,
4934 }
4935 }
4936}
4937#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4939#[repr(i32)]
4940pub enum OrgType {
4941 Unspecified = 0,
4942 Standard = 1,
4943 Sandbox = 2,
4944 Staff = 3,
4947}
4948impl OrgType {
4949 pub fn as_str_name(&self) -> &'static str {
4954 match self {
4955 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
4956 Self::Standard => "ORG_TYPE_STANDARD",
4957 Self::Sandbox => "ORG_TYPE_SANDBOX",
4958 Self::Staff => "ORG_TYPE_STAFF",
4959 }
4960 }
4961 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4963 match value {
4964 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4965 "ORG_TYPE_STANDARD" => Some(Self::Standard),
4966 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
4967 "ORG_TYPE_STAFF" => Some(Self::Staff),
4968 _ => None,
4969 }
4970 }
4971}
4972#[derive(Clone, PartialEq, ::prost::Message)]
4976pub struct UserRenderContext {
4977 #[prost(string, tag="1")]
4979 pub user_id: ::prost::alloc::string::String,
4980 #[prost(map="string, string", tag="2")]
4983 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4984}
4985#[derive(Clone, PartialEq, ::prost::Message)]
4987pub struct RenderBatchRequest {
4988 #[prost(string, tag="1")]
4990 pub template_id: ::prost::alloc::string::String,
4991 #[prost(int32, tag="2")]
4993 pub version: i32,
4994 #[prost(message, repeated, tag="3")]
4997 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
4998}
4999#[derive(Clone, PartialEq, ::prost::Message)]
5002pub struct RenderBatchResponse {
5003 #[prost(string, tag="1")]
5005 pub user_id: ::prost::alloc::string::String,
5006 #[prost(message, optional, tag="2")]
5008 pub message: ::core::option::Option<Message>,
5009 #[prost(string, tag="3")]
5011 pub error: ::prost::alloc::string::String,
5012}
5013#[derive(Clone, PartialEq, ::prost::Message)]
5018pub struct SessionRecording {
5019 #[prost(string, tag="1")]
5021 pub id: ::prost::alloc::string::String,
5022 #[prost(message, optional, tag="2")]
5024 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
5025 #[prost(message, optional, tag="3")]
5027 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
5028 #[prost(int32, tag="4")]
5030 pub duration_seconds: i32,
5031 #[prost(float, tag="5")]
5033 pub activity_score: f32,
5034}
5035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5037pub struct ListSessionRecordingsRequest {
5038 #[prost(string, tag="1")]
5041 pub campaign_id: ::prost::alloc::string::String,
5042 #[prost(message, optional, tag="2")]
5044 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
5045 #[prost(message, optional, tag="3")]
5047 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
5048 #[prost(message, optional, tag="4")]
5050 pub pagination: ::core::option::Option<Pagination>,
5051}
5052#[derive(Clone, PartialEq, ::prost::Message)]
5054pub struct ListSessionRecordingsResponse {
5055 #[prost(message, repeated, tag="1")]
5057 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
5058 #[prost(message, optional, tag="2")]
5060 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5061}
5062#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5064pub struct GetSessionSnapshotsRequest {
5065 #[prost(string, tag="1")]
5068 pub recording_id: ::prost::alloc::string::String,
5069}
5070#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5072pub struct GetSessionSnapshotsResponse {
5073 #[prost(string, tag="1")]
5076 pub snapshot_data: ::prost::alloc::string::String,
5077}
5078#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5082pub struct ListRolesRequest {
5083}
5084#[derive(Clone, PartialEq, ::prost::Message)]
5086pub struct ListRolesResponse {
5087 #[prost(message, repeated, tag="1")]
5089 pub roles: ::prost::alloc::vec::Vec<Role>,
5090}
5091#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5093pub struct CreateRoleRequest {
5094 #[prost(string, tag="1")]
5097 pub name: ::prost::alloc::string::String,
5098 #[prost(enumeration="Permission", repeated, tag="2")]
5101 pub permissions: ::prost::alloc::vec::Vec<i32>,
5102}
5103#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5105pub struct CreateRoleResponse {
5106 #[prost(message, optional, tag="1")]
5108 pub role: ::core::option::Option<Role>,
5109}
5110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5112pub struct UpdateRoleRequest {
5113 #[prost(string, tag="1")]
5115 pub role_id: ::prost::alloc::string::String,
5116 #[prost(string, tag="2")]
5118 pub name: ::prost::alloc::string::String,
5119 #[prost(enumeration="Permission", repeated, tag="3")]
5123 pub permissions: ::prost::alloc::vec::Vec<i32>,
5124}
5125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5127pub struct UpdateRoleResponse {
5128 #[prost(message, optional, tag="1")]
5130 pub role: ::core::option::Option<Role>,
5131}
5132#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5134pub struct DeleteRoleRequest {
5135 #[prost(string, tag="1")]
5137 pub role_id: ::prost::alloc::string::String,
5138}
5139#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5141pub struct DeleteRoleResponse {
5142}
5143#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5149pub struct SamlAttributeNames {
5150 #[prost(string, tag="1")]
5152 pub email: ::prost::alloc::string::String,
5153 #[prost(string, tag="2")]
5155 pub given_name: ::prost::alloc::string::String,
5156 #[prost(string, tag="3")]
5158 pub family_name: ::prost::alloc::string::String,
5159}
5160#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5162pub struct SsoProvider {
5163 #[prost(string, tag="1")]
5165 pub id: ::prost::alloc::string::String,
5166 #[prost(string, tag="2")]
5169 pub domain: ::prost::alloc::string::String,
5170 #[prost(enumeration="SsoProviderType", tag="3")]
5172 pub r#type: i32,
5173 #[prost(string, tag="4")]
5176 pub metadata_url: ::prost::alloc::string::String,
5177 #[prost(string, tag="5")]
5180 pub idp_provider_name: ::prost::alloc::string::String,
5181 #[prost(message, optional, tag="6")]
5183 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5184 #[prost(message, optional, tag="7")]
5186 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5187 #[prost(message, optional, tag="8")]
5189 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5190}
5191#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5194pub struct CheckSsoByDomainRequest {
5195 #[prost(string, tag="1")]
5198 pub email: ::prost::alloc::string::String,
5199}
5200#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5202pub struct CheckSsoByDomainResponse {
5203 #[prost(bool, tag="1")]
5205 pub sso_enabled: bool,
5206 #[prost(string, tag="2")]
5209 pub provider_name: ::prost::alloc::string::String,
5210}
5211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5213pub struct CreateSsoProviderRequest {
5214 #[prost(string, tag="1")]
5217 pub domain: ::prost::alloc::string::String,
5218 #[prost(enumeration="SsoProviderType", tag="2")]
5220 pub r#type: i32,
5221 #[prost(string, tag="3")]
5224 pub metadata_url: ::prost::alloc::string::String,
5225 #[prost(message, optional, tag="4")]
5228 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5229}
5230#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5232pub struct CreateSsoProviderResponse {
5233 #[prost(message, optional, tag="1")]
5235 pub provider: ::core::option::Option<SsoProvider>,
5236}
5237#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5240pub struct GetSsoProviderRequest {
5241}
5242#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5244pub struct GetSsoProviderResponse {
5245 #[prost(message, optional, tag="1")]
5247 pub provider: ::core::option::Option<SsoProvider>,
5248}
5249#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5251pub struct DeleteSsoProviderRequest {
5252 #[prost(string, tag="1")]
5254 pub provider_id: ::prost::alloc::string::String,
5255}
5256#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5258pub struct DeleteSsoProviderResponse {
5259}
5260#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5264#[repr(i32)]
5265pub enum SsoProviderType {
5266 Unspecified = 0,
5268 Saml = 1,
5270 Oidc = 2,
5272}
5273impl SsoProviderType {
5274 pub fn as_str_name(&self) -> &'static str {
5279 match self {
5280 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
5281 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
5282 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
5283 }
5284 }
5285 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5287 match value {
5288 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5289 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
5290 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
5291 _ => None,
5292 }
5293 }
5294}
5295#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5301pub struct Team {
5302 #[prost(string, tag="1")]
5304 pub id: ::prost::alloc::string::String,
5305 #[prost(string, tag="2")]
5308 pub name: ::prost::alloc::string::String,
5309 #[prost(string, tag="3")]
5312 pub description: ::prost::alloc::string::String,
5313 #[prost(int32, tag="4")]
5315 pub member_count: i32,
5316 #[prost(message, optional, tag="5")]
5318 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5319 #[prost(message, optional, tag="6")]
5321 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5322 #[prost(bool, tag="7")]
5324 pub is_default: bool,
5325 #[prost(string, tag="8")]
5327 pub created_by: ::prost::alloc::string::String,
5328}
5329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5331pub struct CreateTeamRequest {
5332 #[prost(string, tag="1")]
5335 pub name: ::prost::alloc::string::String,
5336 #[prost(string, tag="2")]
5339 pub description: ::prost::alloc::string::String,
5340}
5341#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5343pub struct CreateTeamResponse {
5344 #[prost(message, optional, tag="1")]
5346 pub team: ::core::option::Option<Team>,
5347}
5348#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5350pub struct GetTeamRequest {
5351 #[prost(string, tag="1")]
5353 pub team_id: ::prost::alloc::string::String,
5354}
5355#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5357pub struct GetTeamResponse {
5358 #[prost(message, optional, tag="1")]
5360 pub team: ::core::option::Option<Team>,
5361}
5362#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5364pub struct ListTeamsRequest {
5365 #[prost(message, optional, tag="1")]
5367 pub pagination: ::core::option::Option<Pagination>,
5368}
5369#[derive(Clone, PartialEq, ::prost::Message)]
5371pub struct ListTeamsResponse {
5372 #[prost(message, repeated, tag="1")]
5374 pub teams: ::prost::alloc::vec::Vec<Team>,
5375 #[prost(message, optional, tag="2")]
5377 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5378}
5379#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5381pub struct UpdateTeamRequest {
5382 #[prost(string, tag="1")]
5384 pub team_id: ::prost::alloc::string::String,
5385 #[prost(string, tag="2")]
5389 pub name: ::prost::alloc::string::String,
5390 #[prost(string, tag="3")]
5393 pub description: ::prost::alloc::string::String,
5394}
5395#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5397pub struct UpdateTeamResponse {
5398 #[prost(message, optional, tag="1")]
5400 pub team: ::core::option::Option<Team>,
5401}
5402#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5404pub struct DeleteTeamRequest {
5405 #[prost(string, tag="1")]
5408 pub team_id: ::prost::alloc::string::String,
5409}
5410#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5412pub struct DeleteTeamResponse {
5413}
5414#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5416pub struct AddTeamMembersRequest {
5417 #[prost(string, tag="1")]
5419 pub team_id: ::prost::alloc::string::String,
5420 #[prost(string, repeated, tag="2")]
5424 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5425}
5426#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5428pub struct AddTeamMembersResponse {
5429 #[prost(message, optional, tag="1")]
5431 pub team: ::core::option::Option<Team>,
5432}
5433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5435pub struct RemoveTeamMembersRequest {
5436 #[prost(string, tag="1")]
5438 pub team_id: ::prost::alloc::string::String,
5439 #[prost(string, repeated, tag="2")]
5442 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5443}
5444#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5446pub struct RemoveTeamMembersResponse {
5447 #[prost(message, optional, tag="1")]
5449 pub team: ::core::option::Option<Team>,
5450}
5451#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5453pub struct ListTeamMembersRequest {
5454 #[prost(string, tag="1")]
5456 pub team_id: ::prost::alloc::string::String,
5457 #[prost(message, optional, tag="2")]
5459 pub pagination: ::core::option::Option<Pagination>,
5460}
5461#[derive(Clone, PartialEq, ::prost::Message)]
5463pub struct ListTeamMembersResponse {
5464 #[prost(message, repeated, tag="1")]
5466 pub users: ::prost::alloc::vec::Vec<User>,
5467 #[prost(message, optional, tag="2")]
5469 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5470}
5471#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5475pub struct TemplateVariable {
5476 #[prost(string, tag="1")]
5479 pub name: ::prost::alloc::string::String,
5480 #[prost(string, tag="2")]
5483 pub description: ::prost::alloc::string::String,
5484 #[prost(bool, tag="3")]
5486 pub required: bool,
5487 #[prost(enumeration="TemplateVariableSource", tag="4")]
5489 pub source: i32,
5490 #[prost(string, tag="5")]
5493 pub default_value: ::prost::alloc::string::String,
5494 #[prost(bool, tag="6")]
5497 pub pii: bool,
5498}
5499#[derive(Clone, PartialEq, ::prost::Message)]
5502pub struct Template {
5503 #[prost(string, tag="1")]
5505 pub id: ::prost::alloc::string::String,
5506 #[prost(string, tag="2")]
5509 pub name: ::prost::alloc::string::String,
5510 #[prost(string, tag="3")]
5513 pub body: ::prost::alloc::string::String,
5514 #[prost(message, repeated, tag="4")]
5516 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5517 #[prost(int32, tag="5")]
5519 pub version: i32,
5520 #[prost(message, optional, tag="6")]
5522 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5523 #[prost(message, optional, tag="7")]
5525 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5526 #[prost(string, tag="8")]
5530 pub title: ::prost::alloc::string::String,
5531 #[prost(enumeration="TemplateType", tag="9")]
5534 pub r#type: i32,
5535 #[prost(string, tag="10")]
5539 pub source_locale: ::prost::alloc::string::String,
5540}
5541#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5544pub struct TemplateTranslation {
5545 #[prost(string, tag="1")]
5547 pub id: ::prost::alloc::string::String,
5548 #[prost(string, tag="2")]
5550 pub template_id: ::prost::alloc::string::String,
5551 #[prost(int32, tag="3")]
5553 pub version: i32,
5554 #[prost(string, tag="4")]
5556 pub locale: ::prost::alloc::string::String,
5557 #[prost(string, tag="5")]
5560 pub title: ::prost::alloc::string::String,
5561 #[prost(string, tag="6")]
5564 pub body: ::prost::alloc::string::String,
5565 #[prost(enumeration="TranslationStatus", tag="7")]
5567 pub status: i32,
5568 #[prost(string, tag="8")]
5570 pub translated_by: ::prost::alloc::string::String,
5571 #[prost(string, tag="9")]
5573 pub reviewed_by: ::prost::alloc::string::String,
5574 #[prost(message, optional, tag="10")]
5576 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
5577 #[prost(message, optional, tag="11")]
5579 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5580}
5581#[derive(Clone, PartialEq, ::prost::Message)]
5583pub struct CreateTemplateRequest {
5584 #[prost(string, tag="1")]
5587 pub name: ::prost::alloc::string::String,
5588 #[prost(string, tag="2")]
5591 pub body: ::prost::alloc::string::String,
5592 #[prost(message, repeated, tag="3")]
5594 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5595 #[prost(string, tag="4")]
5598 pub title: ::prost::alloc::string::String,
5599 #[prost(enumeration="TemplateType", tag="5")]
5601 pub r#type: i32,
5602 #[prost(string, tag="6")]
5605 pub source_locale: ::prost::alloc::string::String,
5606}
5607#[derive(Clone, PartialEq, ::prost::Message)]
5609pub struct CreateTemplateResponse {
5610 #[prost(message, optional, tag="1")]
5612 pub template: ::core::option::Option<Template>,
5613}
5614#[derive(Clone, PartialEq, ::prost::Message)]
5616pub struct UpdateTemplateRequest {
5617 #[prost(string, tag="1")]
5619 pub template_id: ::prost::alloc::string::String,
5620 #[prost(string, tag="2")]
5623 pub body: ::prost::alloc::string::String,
5624 #[prost(message, repeated, tag="3")]
5626 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5627}
5628#[derive(Clone, PartialEq, ::prost::Message)]
5630pub struct UpdateTemplateResponse {
5631 #[prost(message, optional, tag="1")]
5633 pub template: ::core::option::Option<Template>,
5634}
5635#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5637pub struct GetTemplateRequest {
5638 #[prost(string, tag="1")]
5640 pub template_id: ::prost::alloc::string::String,
5641 #[prost(int32, tag="2")]
5643 pub version: i32,
5644}
5645#[derive(Clone, PartialEq, ::prost::Message)]
5647pub struct GetTemplateResponse {
5648 #[prost(message, optional, tag="1")]
5650 pub template: ::core::option::Option<Template>,
5651}
5652#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5654pub struct ListTemplatesRequest {
5655 #[prost(message, optional, tag="1")]
5657 pub pagination: ::core::option::Option<Pagination>,
5658 #[prost(enumeration="TemplateType", tag="2")]
5660 pub r#type: i32,
5661}
5662#[derive(Clone, PartialEq, ::prost::Message)]
5664pub struct ListTemplatesResponse {
5665 #[prost(message, repeated, tag="1")]
5667 pub templates: ::prost::alloc::vec::Vec<Template>,
5668 #[prost(message, optional, tag="2")]
5670 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5671}
5672#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5674pub struct CreateTemplateTranslationRequest {
5675 #[prost(string, tag="1")]
5677 pub template_id: ::prost::alloc::string::String,
5678 #[prost(int32, tag="2")]
5680 pub version: i32,
5681 #[prost(string, tag="3")]
5683 pub locale: ::prost::alloc::string::String,
5684 #[prost(string, tag="4")]
5686 pub title: ::prost::alloc::string::String,
5687 #[prost(string, tag="5")]
5689 pub body: ::prost::alloc::string::String,
5690 #[prost(string, tag="6")]
5692 pub translated_by: ::prost::alloc::string::String,
5693 #[prost(enumeration="TranslationStatus", tag="7")]
5695 pub status: i32,
5696}
5697#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5699pub struct CreateTemplateTranslationResponse {
5700 #[prost(message, optional, tag="1")]
5702 pub translation: ::core::option::Option<TemplateTranslation>,
5703}
5704#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5706pub struct UpdateTemplateTranslationRequest {
5707 #[prost(string, tag="1")]
5709 pub translation_id: ::prost::alloc::string::String,
5710 #[prost(string, tag="2")]
5712 pub title: ::prost::alloc::string::String,
5713 #[prost(string, tag="3")]
5715 pub body: ::prost::alloc::string::String,
5716 #[prost(enumeration="TranslationStatus", tag="4")]
5718 pub status: i32,
5719}
5720#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5722pub struct UpdateTemplateTranslationResponse {
5723 #[prost(message, optional, tag="1")]
5725 pub translation: ::core::option::Option<TemplateTranslation>,
5726}
5727#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5729pub struct ListTemplateTranslationsRequest {
5730 #[prost(string, tag="1")]
5732 pub template_id: ::prost::alloc::string::String,
5733 #[prost(int32, tag="2")]
5735 pub version: i32,
5736}
5737#[derive(Clone, PartialEq, ::prost::Message)]
5739pub struct ListTemplateTranslationsResponse {
5740 #[prost(message, repeated, tag="1")]
5742 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
5743}
5744#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5746pub struct ApproveTemplateTranslationRequest {
5747 #[prost(string, tag="1")]
5749 pub translation_id: ::prost::alloc::string::String,
5750}
5751#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5753pub struct ApproveTemplateTranslationResponse {
5754 #[prost(message, optional, tag="1")]
5756 pub translation: ::core::option::Option<TemplateTranslation>,
5757}
5758#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5762#[repr(i32)]
5763pub enum TemplateType {
5764 Unspecified = 0,
5766 Markdown = 1,
5768 Rich = 2,
5770 Html = 3,
5772}
5773impl TemplateType {
5774 pub fn as_str_name(&self) -> &'static str {
5779 match self {
5780 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
5781 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
5782 Self::Rich => "TEMPLATE_TYPE_RICH",
5783 Self::Html => "TEMPLATE_TYPE_HTML",
5784 }
5785 }
5786 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5788 match value {
5789 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5790 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
5791 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
5792 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
5793 _ => None,
5794 }
5795 }
5796}
5797#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5799#[repr(i32)]
5800pub enum TemplateVariableSource {
5801 Unspecified = 0,
5803 Profile = 1,
5805 Custom = 2,
5807}
5808impl TemplateVariableSource {
5809 pub fn as_str_name(&self) -> &'static str {
5814 match self {
5815 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
5816 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
5817 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
5818 }
5819 }
5820 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5822 match value {
5823 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
5824 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
5825 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
5826 _ => None,
5827 }
5828 }
5829}
5830#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5832#[repr(i32)]
5833pub enum TranslationStatus {
5834 Unspecified = 0,
5835 Draft = 1,
5837 AiTranslated = 2,
5839 InReview = 3,
5841 Approved = 4,
5843}
5844impl TranslationStatus {
5845 pub fn as_str_name(&self) -> &'static str {
5850 match self {
5851 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
5852 Self::Draft => "TRANSLATION_STATUS_DRAFT",
5853 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
5854 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
5855 Self::Approved => "TRANSLATION_STATUS_APPROVED",
5856 }
5857 }
5858 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5860 match value {
5861 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
5862 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
5863 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
5864 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
5865 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
5866 _ => None,
5867 }
5868 }
5869}
5870#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5875pub struct DeeplinkTokenPayload {
5876 #[prost(string, tag="1")]
5879 pub campaign_id: ::prost::alloc::string::String,
5880 #[prost(string, tag="2")]
5886 pub recipient_user_id: ::prost::alloc::string::String,
5887 #[prost(enumeration="ChannelStepKind", tag="3")]
5891 pub step_kind: i32,
5892 #[prost(message, optional, tag="4")]
5895 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5896}
5897#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5898pub struct SignDeeplinkTokenRequest {
5899 #[prost(string, tag="1")]
5902 pub campaign_id: ::prost::alloc::string::String,
5903 #[prost(string, tag="2")]
5906 pub recipient_user_id: ::prost::alloc::string::String,
5907 #[prost(enumeration="ChannelStepKind", tag="3")]
5909 pub step_kind: i32,
5910 #[prost(int64, tag="4")]
5915 pub ttl_seconds: i64,
5916}
5917#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5918pub struct SignDeeplinkTokenResponse {
5919 #[prost(string, tag="1")]
5925 pub token: ::prost::alloc::string::String,
5926 #[prost(message, optional, tag="2")]
5929 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5930 #[prost(int32, tag="3")]
5934 pub key_version: i32,
5935}
5936#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5937pub struct ValidateDeeplinkTokenRequest {
5938 #[prost(string, tag="1")]
5941 pub token: ::prost::alloc::string::String,
5942 #[prost(string, tag="2")]
5949 pub campaign_id: ::prost::alloc::string::String,
5950}
5951#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5952pub struct ValidateDeeplinkTokenResponse {
5953 #[prost(bool, tag="1")]
5956 pub valid: bool,
5957 #[prost(enumeration="ValidationFailureReason", tag="2")]
5961 pub failure_reason: i32,
5962 #[prost(message, optional, tag="3")]
5966 pub payload: ::core::option::Option<DeeplinkTokenPayload>,
5967}
5968#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5972#[repr(i32)]
5973pub enum ValidationFailureReason {
5974 Unspecified = 0,
5975 InvalidSignature = 1,
5978 Expired = 2,
5980 KeyRetired = 3,
5986 Malformed = 4,
5990}
5991impl ValidationFailureReason {
5992 pub fn as_str_name(&self) -> &'static str {
5997 match self {
5998 Self::Unspecified => "VALIDATION_FAILURE_REASON_UNSPECIFIED",
5999 Self::InvalidSignature => "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE",
6000 Self::Expired => "VALIDATION_FAILURE_REASON_EXPIRED",
6001 Self::KeyRetired => "VALIDATION_FAILURE_REASON_KEY_RETIRED",
6002 Self::Malformed => "VALIDATION_FAILURE_REASON_MALFORMED",
6003 }
6004 }
6005 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6007 match value {
6008 "VALIDATION_FAILURE_REASON_UNSPECIFIED" => Some(Self::Unspecified),
6009 "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE" => Some(Self::InvalidSignature),
6010 "VALIDATION_FAILURE_REASON_EXPIRED" => Some(Self::Expired),
6011 "VALIDATION_FAILURE_REASON_KEY_RETIRED" => Some(Self::KeyRetired),
6012 "VALIDATION_FAILURE_REASON_MALFORMED" => Some(Self::Malformed),
6013 _ => None,
6014 }
6015 }
6016}
6017include!("pidgr.v1.tonic.rs");
6018