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 PlatformAbuseResponse = 26,
814 PlatformComplianceWrite = 27,
817}
818impl Permission {
819 pub fn as_str_name(&self) -> &'static str {
824 match self {
825 Self::Unspecified => "PERMISSION_UNSPECIFIED",
826 Self::OrgRead => "PERMISSION_ORG_READ",
827 Self::OrgWrite => "PERMISSION_ORG_WRITE",
828 Self::MembersRead => "PERMISSION_MEMBERS_READ",
829 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
830 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
831 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
832 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
833 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
834 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
835 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
836 Self::InboxRead => "PERMISSION_INBOX_READ",
837 Self::InboxAct => "PERMISSION_INBOX_ACT",
838 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
839 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
840 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
841 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
842 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
843 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
844 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
845 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
846 Self::AuditRead => "PERMISSION_AUDIT_READ",
847 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
848 Self::PlatformSupport => "PERMISSION_PLATFORM_SUPPORT",
849 Self::PlatformAccessCodes => "PERMISSION_PLATFORM_ACCESS_CODES",
850 Self::PlatformProvision => "PERMISSION_PLATFORM_PROVISION",
851 Self::PlatformAbuseResponse => "PERMISSION_PLATFORM_ABUSE_RESPONSE",
852 Self::PlatformComplianceWrite => "PERMISSION_PLATFORM_COMPLIANCE_WRITE",
853 }
854 }
855 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
857 match value {
858 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
859 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
860 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
861 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
862 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
863 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
864 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
865 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
866 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
867 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
868 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
869 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
870 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
871 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
872 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
873 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
874 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
875 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
876 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
877 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
878 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
879 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
880 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
881 "PERMISSION_PLATFORM_SUPPORT" => Some(Self::PlatformSupport),
882 "PERMISSION_PLATFORM_ACCESS_CODES" => Some(Self::PlatformAccessCodes),
883 "PERMISSION_PLATFORM_PROVISION" => Some(Self::PlatformProvision),
884 "PERMISSION_PLATFORM_ABUSE_RESPONSE" => Some(Self::PlatformAbuseResponse),
885 "PERMISSION_PLATFORM_COMPLIANCE_WRITE" => Some(Self::PlatformComplianceWrite),
886 _ => None,
887 }
888 }
889}
890#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
892#[repr(i32)]
893pub enum ActionType {
894 Unspecified = 0,
896 Ack = 1,
898}
899impl ActionType {
900 pub fn as_str_name(&self) -> &'static str {
905 match self {
906 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
907 Self::Ack => "ACTION_TYPE_ACK",
908 }
909 }
910 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
912 match value {
913 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
914 "ACTION_TYPE_ACK" => Some(Self::Ack),
915 _ => None,
916 }
917 }
918}
919#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
921#[repr(i32)]
922pub enum StepType {
923 Unspecified = 0,
925 SendNotification = 1,
927 DeadlineCheck = 2,
929 SendReminder = 3,
931 CallWebhook = 4,
933 MarkMissed = 5,
935 Escalate = 6,
937}
938impl StepType {
939 pub fn as_str_name(&self) -> &'static str {
944 match self {
945 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
946 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
947 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
948 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
949 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
950 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
951 Self::Escalate => "STEP_TYPE_ESCALATE",
952 }
953 }
954 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
956 match value {
957 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
958 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
959 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
960 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
961 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
962 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
963 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
964 _ => None,
965 }
966 }
967}
968#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
970#[repr(i32)]
971pub enum EscalationCondition {
972 Unspecified = 0,
973 IfNotAcked = 1,
975 IfNotClosed = 2,
977}
978impl EscalationCondition {
979 pub fn as_str_name(&self) -> &'static str {
984 match self {
985 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
986 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
987 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
988 }
989 }
990 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
992 match value {
993 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
994 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
995 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
996 _ => None,
997 }
998 }
999}
1000#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1002#[repr(i32)]
1003pub enum EscalationTargetType {
1004 Unspecified = 0,
1005 User = 1,
1007 Group = 2,
1009 Manager = 3,
1011 Role = 4,
1013}
1014impl EscalationTargetType {
1015 pub fn as_str_name(&self) -> &'static str {
1020 match self {
1021 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
1022 Self::User => "ESCALATION_TARGET_TYPE_USER",
1023 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
1024 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
1025 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
1026 }
1027 }
1028 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1030 match value {
1031 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1032 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
1033 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
1034 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
1035 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
1036 _ => None,
1037 }
1038 }
1039}
1040#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1042#[repr(i32)]
1043pub enum EscalateMode {
1044 Unspecified = 0,
1046 Deliver = 1,
1048 AlertOnly = 2,
1050}
1051impl EscalateMode {
1052 pub fn as_str_name(&self) -> &'static str {
1057 match self {
1058 Self::Unspecified => "ESCALATE_MODE_UNSPECIFIED",
1059 Self::Deliver => "ESCALATE_MODE_DELIVER",
1060 Self::AlertOnly => "ESCALATE_MODE_ALERT_ONLY",
1061 }
1062 }
1063 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1065 match value {
1066 "ESCALATE_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1067 "ESCALATE_MODE_DELIVER" => Some(Self::Deliver),
1068 "ESCALATE_MODE_ALERT_ONLY" => Some(Self::AlertOnly),
1069 _ => None,
1070 }
1071 }
1072}
1073#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1077pub struct ApiKey {
1078 #[prost(string, tag="1")]
1080 pub id: ::prost::alloc::string::String,
1081 #[prost(string, tag="2")]
1083 pub name: ::prost::alloc::string::String,
1084 #[prost(string, tag="3")]
1087 pub key_prefix: ::prost::alloc::string::String,
1088 #[prost(enumeration="Permission", repeated, tag="4")]
1090 pub permissions: ::prost::alloc::vec::Vec<i32>,
1091 #[prost(message, optional, tag="5")]
1093 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1094 #[prost(message, optional, tag="6")]
1096 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
1097 #[prost(message, optional, tag="7")]
1099 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1100 #[prost(enumeration="KeyType", tag="8")]
1103 pub key_type: i32,
1104}
1105#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1107pub struct CreateApiKeyRequest {
1108 #[prost(string, tag="1")]
1110 pub name: ::prost::alloc::string::String,
1111 #[prost(enumeration="Permission", repeated, tag="2")]
1114 pub permissions: ::prost::alloc::vec::Vec<i32>,
1115 #[prost(message, optional, tag="3")]
1117 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
1118 #[prost(enumeration="KeyType", tag="4")]
1121 pub key_type: i32,
1122}
1123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1126pub struct CreateApiKeyResponse {
1127 #[prost(message, optional, tag="1")]
1129 pub api_key: ::core::option::Option<ApiKey>,
1130 #[prost(string, tag="2")]
1133 pub key: ::prost::alloc::string::String,
1134}
1135#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1137pub struct ListApiKeysRequest {
1138 #[prost(enumeration="KeyType", tag="1")]
1140 pub key_type: i32,
1141}
1142#[derive(Clone, PartialEq, ::prost::Message)]
1144pub struct ListApiKeysResponse {
1145 #[prost(message, repeated, tag="1")]
1147 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
1148}
1149#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1151pub struct RevokeApiKeyRequest {
1152 #[prost(string, tag="1")]
1154 pub api_key_id: ::prost::alloc::string::String,
1155}
1156#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1158pub struct RevokeApiKeyResponse {
1159}
1160#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1164#[repr(i32)]
1165pub enum KeyType {
1166 Unspecified = 0,
1167 ApiKey = 1,
1168 ScimToken = 2,
1169}
1170impl KeyType {
1171 pub fn as_str_name(&self) -> &'static str {
1176 match self {
1177 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
1178 Self::ApiKey => "KEY_TYPE_API_KEY",
1179 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
1180 }
1181 }
1182 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1184 match value {
1185 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1186 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
1187 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
1188 _ => None,
1189 }
1190 }
1191}
1192#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1197pub struct ExportUserDataRequest {
1198 #[prost(string, tag="1")]
1201 pub user_id: ::prost::alloc::string::String,
1202}
1203#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1205pub struct ExportUserDataResponse {
1206 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1208 pub status: i32,
1209 #[prost(string, tag="2")]
1212 pub result_url: ::prost::alloc::string::String,
1213 #[prost(string, tag="3")]
1216 pub export_id: ::prost::alloc::string::String,
1217}
1218#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1221pub struct DeleteUserDataRequest {
1222 #[prost(string, tag="1")]
1225 pub user_id: ::prost::alloc::string::String,
1226 #[prost(bool, tag="2")]
1229 pub anonymize: bool,
1230}
1231#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1233pub struct DeleteUserDataResponse {
1234 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1236 pub status: i32,
1237 #[prost(message, optional, tag="2")]
1240 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
1241 #[prost(string, tag="3")]
1243 pub request_id: ::prost::alloc::string::String,
1244}
1245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1248pub struct ListPrivacyRequestsRequest {
1249 #[prost(int32, tag="1")]
1252 pub page_size: i32,
1253 #[prost(string, tag="2")]
1255 pub page_token: ::prost::alloc::string::String,
1256 #[prost(string, tag="3")]
1258 pub request_type: ::prost::alloc::string::String,
1259 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1261 pub status: i32,
1262}
1263#[derive(Clone, PartialEq, ::prost::Message)]
1265pub struct ListPrivacyRequestsResponse {
1266 #[prost(message, repeated, tag="1")]
1268 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1269 #[prost(string, tag="2")]
1271 pub next_page_token: ::prost::alloc::string::String,
1272}
1273#[derive(Clone, PartialEq, ::prost::Message)]
1275pub struct PrivacyRequest {
1276 #[prost(string, tag="1")]
1278 pub id: ::prost::alloc::string::String,
1279 #[prost(string, tag="2")]
1281 pub user_id: ::prost::alloc::string::String,
1282 #[prost(string, tag="3")]
1284 pub user_email: ::prost::alloc::string::String,
1285 #[prost(string, tag="4")]
1287 pub request_type: ::prost::alloc::string::String,
1288 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
1290 pub status: i32,
1291 #[prost(bool, tag="6")]
1293 pub anonymize: bool,
1294 #[prost(string, tag="7")]
1296 pub requested_by_email: ::prost::alloc::string::String,
1297 #[prost(message, optional, tag="8")]
1299 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1300 #[prost(message, optional, tag="9")]
1302 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1303 #[prost(map="string, string", tag="10")]
1305 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1306}
1307#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1310pub struct CancelDeletionRequest {
1311 #[prost(string, tag="1")]
1313 pub request_id: ::prost::alloc::string::String,
1314 #[prost(string, tag="2")]
1316 pub confirmation_email: ::prost::alloc::string::String,
1317}
1318#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1320pub struct CancelDeletionResponse {
1321 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1323 pub status: i32,
1324}
1325#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1328pub struct ImmediateDeleteRequest {
1329 #[prost(string, tag="1")]
1331 pub request_id: ::prost::alloc::string::String,
1332 #[prost(string, tag="2")]
1334 pub confirmation_email: ::prost::alloc::string::String,
1335}
1336#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1338pub struct ImmediateDeleteResponse {
1339 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1341 pub status: i32,
1342}
1343#[derive(Clone, PartialEq, ::prost::Message)]
1346pub struct RectifyUserDataRequest {
1347 #[prost(string, tag="1")]
1350 pub user_id: ::prost::alloc::string::String,
1351 #[prost(map="string, string", tag="2")]
1355 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1356}
1357#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1359pub struct RectifyUserDataResponse {
1360 #[prost(string, repeated, tag="1")]
1362 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1363}
1364#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1367pub struct RestrictProcessingRequest {
1368 #[prost(string, tag="1")]
1371 pub user_id: ::prost::alloc::string::String,
1372 #[prost(bool, tag="2")]
1374 pub restricted: bool,
1375}
1376#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1378pub struct RestrictProcessingResponse {
1379 #[prost(bool, tag="1")]
1381 pub restricted: bool,
1382 #[prost(message, optional, tag="2")]
1384 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1385}
1386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1390pub struct GetDataExistenceConfirmationRequest {
1391 #[prost(string, tag="1")]
1394 pub user_id: ::prost::alloc::string::String,
1395}
1396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1398pub struct GetDataExistenceConfirmationResponse {
1399 #[prost(bool, tag="1")]
1401 pub exists: bool,
1402 #[prost(string, repeated, tag="2")]
1404 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1405}
1406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1409pub struct ListMyPrivacyRequestsRequest {
1410 #[prost(int32, tag="1")]
1413 pub page_size: i32,
1414 #[prost(string, tag="2")]
1416 pub page_token: ::prost::alloc::string::String,
1417 #[prost(string, tag="3")]
1419 pub request_type: ::prost::alloc::string::String,
1420 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1422 pub status: i32,
1423}
1424#[derive(Clone, PartialEq, ::prost::Message)]
1426pub struct ListMyPrivacyRequestsResponse {
1427 #[prost(message, repeated, tag="1")]
1429 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1430 #[prost(string, tag="2")]
1432 pub next_page_token: ::prost::alloc::string::String,
1433}
1434#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1438#[repr(i32)]
1439pub enum PrivacyRequestStatus {
1440 Unspecified = 0,
1442 Pending = 1,
1444 Processing = 2,
1446 Completed = 3,
1448 Failed = 4,
1450}
1451impl PrivacyRequestStatus {
1452 pub fn as_str_name(&self) -> &'static str {
1457 match self {
1458 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1459 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1460 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1461 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1462 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1463 }
1464 }
1465 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1467 match value {
1468 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1469 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1470 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1471 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1472 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1473 _ => None,
1474 }
1475 }
1476}
1477#[derive(Clone, PartialEq, ::prost::Message)]
1482pub struct AuditEvent {
1483 #[prost(string, tag="1")]
1486 pub id: ::prost::alloc::string::String,
1487 #[prost(string, tag="2")]
1490 pub org_id: ::prost::alloc::string::String,
1491 #[prost(string, tag="3")]
1494 pub actor_id: ::prost::alloc::string::String,
1495 #[prost(enumeration="AuditEventType", tag="4")]
1497 pub event_type: i32,
1498 #[prost(string, tag="5")]
1501 pub entity_type: ::prost::alloc::string::String,
1502 #[prost(string, tag="6")]
1505 pub entity_id: ::prost::alloc::string::String,
1506 #[prost(map="string, string", tag="7")]
1509 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1510 #[prost(message, optional, tag="10")]
1512 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1513}
1514#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1517pub struct ListAuditEventsRequest {
1518 #[prost(string, tag="1")]
1520 pub page_token: ::prost::alloc::string::String,
1521 #[prost(int32, tag="2")]
1524 pub page_size: i32,
1525 #[prost(enumeration="AuditEventType", tag="3")]
1527 pub event_type: i32,
1528 #[prost(string, tag="4")]
1531 pub actor_id: ::prost::alloc::string::String,
1532 #[prost(message, optional, tag="5")]
1534 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1535 #[prost(message, optional, tag="6")]
1537 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1538}
1539#[derive(Clone, PartialEq, ::prost::Message)]
1541pub struct ListAuditEventsResponse {
1542 #[prost(message, repeated, tag="1")]
1544 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1545 #[prost(string, tag="2")]
1547 pub next_page_token: ::prost::alloc::string::String,
1548}
1549#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1552pub struct ExportAuditTrailRequest {
1553 #[prost(enumeration="AuditExportFormat", tag="1")]
1555 pub format: i32,
1556 #[prost(message, optional, tag="2")]
1558 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1559 #[prost(message, optional, tag="3")]
1561 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1562}
1563#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1565pub struct ExportAuditTrailResponse {
1566 #[prost(string, tag="1")]
1569 pub export_url: ::prost::alloc::string::String,
1570 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1572 pub status: i32,
1573}
1574#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1576pub struct AuditExport {
1577 #[prost(string, tag="1")]
1579 pub id: ::prost::alloc::string::String,
1580 #[prost(string, tag="2")]
1582 pub format: ::prost::alloc::string::String,
1583 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1585 pub status: i32,
1586 #[prost(string, tag="4")]
1588 pub result_url: ::prost::alloc::string::String,
1589 #[prost(string, tag="5")]
1591 pub error_message: ::prost::alloc::string::String,
1592 #[prost(string, tag="6")]
1594 pub requested_by_email: ::prost::alloc::string::String,
1595 #[prost(message, optional, tag="7")]
1597 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1598 #[prost(message, optional, tag="8")]
1600 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1601}
1602#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1605pub struct ListAuditExportsRequest {
1606}
1607#[derive(Clone, PartialEq, ::prost::Message)]
1609pub struct ListAuditExportsResponse {
1610 #[prost(message, repeated, tag="1")]
1612 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1613}
1614#[derive(Clone, PartialEq, ::prost::Message)]
1622pub struct AppendRequest {
1623 #[prost(string, tag="1")]
1629 pub event_type: ::prost::alloc::string::String,
1630 #[prost(string, tag="2")]
1632 pub org_id: ::prost::alloc::string::String,
1633 #[prost(string, optional, tag="3")]
1636 pub subject_user_id: ::core::option::Option<::prost::alloc::string::String>,
1637 #[prost(string, optional, tag="4")]
1640 pub actor_id: ::core::option::Option<::prost::alloc::string::String>,
1641 #[prost(message, optional, tag="5")]
1649 pub details: ::core::option::Option<::prost_types::Struct>,
1650}
1651#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1652pub struct AppendResponse {
1653 #[prost(string, tag="1")]
1655 pub event_id: ::prost::alloc::string::String,
1656}
1657#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1661#[repr(i32)]
1662pub enum AuditEventType {
1663 Unspecified = 0,
1665 CampaignCreated = 1,
1668 MessageSent = 2,
1670 MessageOpened = 3,
1672 AckRegistered = 4,
1674 EscalationExecuted = 5,
1676 CampaignStarted = 12,
1678 CampaignCancelled = 13,
1680 CampaignUpdated = 14,
1682 UserInvited = 6,
1685 UserDeactivated = 7,
1687 UserReactivated = 15,
1689 RoleChanged = 10,
1691 InviteRevoked = 16,
1693 ProfileUpdated = 17,
1695 SettingsUpdated = 18,
1697 PasskeyEnrolled = 19,
1699 DataExportRequested = 8,
1702 DataDeletionRequested = 9,
1704 DataRectified = 20,
1706 ProcessingRestricted = 21,
1708 DeletionCancelled = 22,
1710 DeletionImmediate = 23,
1712 SsoConfigured = 11,
1715 SsoProviderCreated = 24,
1717 SsoProviderDeleted = 25,
1719 OrgUpdated = 26,
1721 RoleCreated = 27,
1724 RoleUpdated = 28,
1726 RoleDeleted = 29,
1728 TemplateCreated = 30,
1731 TemplateUpdated = 31,
1733 ApiKeyCreated = 32,
1736 ApiKeyRevoked = 33,
1738 InviteLinkCreated = 34,
1741 InviteLinkRevoked = 35,
1743 GroupCreated = 36,
1746 GroupUpdated = 37,
1748 GroupDeleted = 38,
1750 GroupMembersAdded = 39,
1752 GroupMembersRemoved = 40,
1754 TeamCreated = 41,
1757 TeamUpdated = 42,
1759 TeamDeleted = 43,
1761 TeamMembersAdded = 44,
1763 TeamMembersRemoved = 45,
1765 ScimUserProvisioned = 46,
1768 ScimUserDeprovisioned = 47,
1770 ScimUserUpdated = 48,
1772 TranslationCreated = 49,
1775 TranslationApproved = 50,
1777 SandboxCreated = 51,
1780 SandboxExpired = 52,
1782 AiPredictionLogged = 53,
1785 MlPipelineTriggered = 54,
1787 ArchetypeClusteringTriggered = 55,
1789 OrgCreated = 56,
1792 OrgDeleted = 57,
1794 ReachabilityUpsert = 58,
1798 ReachabilityRemove = 59,
1801}
1802impl AuditEventType {
1803 pub fn as_str_name(&self) -> &'static str {
1808 match self {
1809 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1810 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1811 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1812 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1813 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1814 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1815 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1816 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1817 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1818 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1819 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1820 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1821 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1822 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1823 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1824 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1825 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1826 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1827 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1828 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1829 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1830 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1831 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1832 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1833 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1834 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1835 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1836 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1837 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1838 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1839 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1840 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1841 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1842 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1843 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1844 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1845 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1846 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1847 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1848 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1849 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1850 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1851 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1852 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1853 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1854 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1855 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1856 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1857 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1858 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1859 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1860 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1861 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1862 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1863 Self::MlPipelineTriggered => "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED",
1864 Self::ArchetypeClusteringTriggered => "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED",
1865 Self::OrgCreated => "AUDIT_EVENT_TYPE_ORG_CREATED",
1866 Self::OrgDeleted => "AUDIT_EVENT_TYPE_ORG_DELETED",
1867 Self::ReachabilityUpsert => "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT",
1868 Self::ReachabilityRemove => "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE",
1869 }
1870 }
1871 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1873 match value {
1874 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1875 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1876 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1877 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1878 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1879 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1880 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1881 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1882 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1883 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1884 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1885 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1886 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1887 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1888 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1889 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1890 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1891 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1892 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1893 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1894 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1895 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1896 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1897 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1898 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1899 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1900 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1901 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1902 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1903 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1904 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1905 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1906 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1907 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1908 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1909 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1910 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1911 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1912 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1913 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1914 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1915 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1916 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1917 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1918 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1919 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1920 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1921 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1922 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1923 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1924 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1925 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1926 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1927 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1928 "AUDIT_EVENT_TYPE_ML_PIPELINE_TRIGGERED" => Some(Self::MlPipelineTriggered),
1929 "AUDIT_EVENT_TYPE_ARCHETYPE_CLUSTERING_TRIGGERED" => Some(Self::ArchetypeClusteringTriggered),
1930 "AUDIT_EVENT_TYPE_ORG_CREATED" => Some(Self::OrgCreated),
1931 "AUDIT_EVENT_TYPE_ORG_DELETED" => Some(Self::OrgDeleted),
1932 "AUDIT_EVENT_TYPE_REACHABILITY_UPSERT" => Some(Self::ReachabilityUpsert),
1933 "AUDIT_EVENT_TYPE_REACHABILITY_REMOVE" => Some(Self::ReachabilityRemove),
1934 _ => None,
1935 }
1936 }
1937}
1938#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1940#[repr(i32)]
1941pub enum AuditExportFormat {
1942 Unspecified = 0,
1944 Csv = 1,
1946 Json = 2,
1948 Parquet = 3,
1950}
1951impl AuditExportFormat {
1952 pub fn as_str_name(&self) -> &'static str {
1957 match self {
1958 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1959 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1960 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1961 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1962 }
1963 }
1964 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1966 match value {
1967 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1968 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1969 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1970 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1971 _ => None,
1972 }
1973 }
1974}
1975#[derive(Clone, PartialEq, ::prost::Message)]
1980pub struct Campaign {
1981 #[prost(string, tag="1")]
1984 pub id: ::prost::alloc::string::String,
1985 #[prost(string, tag="2")]
1988 pub name: ::prost::alloc::string::String,
1989 #[prost(string, tag="3")]
1992 pub template_id: ::prost::alloc::string::String,
1993 #[prost(int32, tag="4")]
1995 pub template_version: i32,
1996 #[prost(string, tag="5")]
1998 pub audience_snapshot_ref: ::prost::alloc::string::String,
1999 #[prost(enumeration="CampaignStatus", tag="6")]
2001 pub status: i32,
2002 #[prost(message, optional, tag="7")]
2004 pub workflow: ::core::option::Option<WorkflowDefinition>,
2005 #[prost(int32, tag="8")]
2007 pub total_recipients: i32,
2008 #[prost(int32, tag="9")]
2010 pub action_completed_count: i32,
2011 #[prost(int32, tag="10")]
2013 pub missed_count: i32,
2014 #[prost(message, optional, tag="11")]
2016 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2017 #[prost(message, optional, tag="12")]
2019 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
2020 #[prost(message, optional, tag="13")]
2022 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
2023 #[prost(string, tag="14")]
2026 pub sender_name: ::prost::alloc::string::String,
2027 #[prost(string, tag="15")]
2030 pub title: ::prost::alloc::string::String,
2031 #[prost(bool, tag="16")]
2033 pub critical: bool,
2034 #[prost(string, tag="17")]
2039 pub default_locale: ::prost::alloc::string::String,
2040 #[prost(bool, tag="18")]
2044 pub wait_for_enrollment: bool,
2045 #[prost(message, optional, tag="19")]
2048 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2049}
2050#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2055pub struct CampaignOriginatingArchetype {
2056 #[prost(string, tag="1")]
2058 pub group_id: ::prost::alloc::string::String,
2059 #[prost(string, tag="2")]
2062 pub archetype_label: ::prost::alloc::string::String,
2063}
2064#[derive(Clone, PartialEq, ::prost::Message)]
2066pub struct AudienceMember {
2067 #[prost(string, tag="1")]
2069 pub user_id: ::prost::alloc::string::String,
2070 #[prost(map="string, string", tag="2")]
2072 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2073}
2074#[derive(Clone, PartialEq, ::prost::Message)]
2076pub struct CreateCampaignRequest {
2077 #[prost(string, tag="1")]
2080 pub name: ::prost::alloc::string::String,
2081 #[prost(string, tag="2")]
2084 pub template_id: ::prost::alloc::string::String,
2085 #[prost(int32, tag="3")]
2087 pub template_version: i32,
2088 #[prost(string, repeated, tag="4")]
2091 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2092 #[prost(message, optional, tag="5")]
2094 pub workflow: ::core::option::Option<WorkflowDefinition>,
2095 #[prost(string, tag="6")]
2098 pub sender_name: ::prost::alloc::string::String,
2099 #[prost(string, tag="7")]
2102 pub title: ::prost::alloc::string::String,
2103 #[prost(message, repeated, tag="8")]
2107 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
2108 #[prost(bool, tag="9")]
2111 pub include_restricted: bool,
2112 #[prost(bool, tag="10")]
2114 pub critical: bool,
2115 #[prost(string, tag="11")]
2117 pub default_locale: ::prost::alloc::string::String,
2118 #[prost(bool, tag="12")]
2122 pub wait_for_enrollment: bool,
2123 #[prost(message, optional, tag="13")]
2128 pub originating_archetype: ::core::option::Option<CampaignOriginatingArchetype>,
2129}
2130#[derive(Clone, PartialEq, ::prost::Message)]
2132pub struct CreateCampaignResponse {
2133 #[prost(message, optional, tag="1")]
2135 pub campaign: ::core::option::Option<Campaign>,
2136}
2137#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2139pub struct StartCampaignRequest {
2140 #[prost(string, tag="1")]
2143 pub campaign_id: ::prost::alloc::string::String,
2144}
2145#[derive(Clone, PartialEq, ::prost::Message)]
2147pub struct StartCampaignResponse {
2148 #[prost(message, optional, tag="1")]
2150 pub campaign: ::core::option::Option<Campaign>,
2151}
2152#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2154pub struct GetCampaignRequest {
2155 #[prost(string, tag="1")]
2158 pub campaign_id: ::prost::alloc::string::String,
2159}
2160#[derive(Clone, PartialEq, ::prost::Message)]
2162pub struct GetCampaignResponse {
2163 #[prost(message, optional, tag="1")]
2165 pub campaign: ::core::option::Option<Campaign>,
2166}
2167#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2169pub struct ListCampaignsRequest {
2170 #[prost(message, optional, tag="1")]
2172 pub pagination: ::core::option::Option<Pagination>,
2173}
2174#[derive(Clone, PartialEq, ::prost::Message)]
2176pub struct ListCampaignsResponse {
2177 #[prost(message, repeated, tag="1")]
2179 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
2180 #[prost(message, optional, tag="2")]
2182 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2183}
2184#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2186pub struct CancelCampaignRequest {
2187 #[prost(string, tag="1")]
2190 pub campaign_id: ::prost::alloc::string::String,
2191}
2192#[derive(Clone, PartialEq, ::prost::Message)]
2194pub struct CancelCampaignResponse {
2195 #[prost(message, optional, tag="1")]
2197 pub campaign: ::core::option::Option<Campaign>,
2198}
2199#[derive(Clone, PartialEq, ::prost::Message)]
2202pub struct UpdateCampaignRequest {
2203 #[prost(string, tag="1")]
2206 pub campaign_id: ::prost::alloc::string::String,
2207 #[prost(string, tag="2")]
2210 pub name: ::prost::alloc::string::String,
2211 #[prost(string, tag="3")]
2214 pub sender_name: ::prost::alloc::string::String,
2215 #[prost(string, tag="4")]
2218 pub title: ::prost::alloc::string::String,
2219 #[prost(string, tag="5")]
2222 pub template_id: ::prost::alloc::string::String,
2223 #[prost(int32, tag="6")]
2225 pub template_version: i32,
2226 #[prost(message, optional, tag="7")]
2228 pub workflow: ::core::option::Option<WorkflowDefinition>,
2229}
2230#[derive(Clone, PartialEq, ::prost::Message)]
2232pub struct UpdateCampaignResponse {
2233 #[prost(message, optional, tag="1")]
2235 pub campaign: ::core::option::Option<Campaign>,
2236}
2237#[derive(Clone, PartialEq, ::prost::Message)]
2244pub struct DeliveryMetadata {
2245 #[prost(message, optional, tag="1")]
2249 pub original_message: ::core::option::Option<Message>,
2250 #[prost(string, tag="2")]
2253 pub original_recipient_name: ::prost::alloc::string::String,
2254 #[prost(string, tag="3")]
2257 pub campaign_title: ::prost::alloc::string::String,
2258 #[prost(message, optional, tag="4")]
2261 pub reminder_fired_at: ::core::option::Option<::prost_types::Timestamp>,
2262}
2263#[derive(Clone, PartialEq, ::prost::Message)]
2264pub struct Delivery {
2265 #[prost(string, tag="1")]
2268 pub id: ::prost::alloc::string::String,
2269 #[prost(string, tag="2")]
2272 pub user_id: ::prost::alloc::string::String,
2273 #[prost(string, tag="3")]
2276 pub campaign_id: ::prost::alloc::string::String,
2277 #[prost(enumeration="DeliveryStatus", tag="4")]
2279 pub status: i32,
2280 #[prost(message, optional, tag="5")]
2282 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
2283 #[prost(message, optional, tag="6")]
2285 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
2286 #[prost(message, optional, tag="7")]
2288 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
2289 #[prost(string, tag="8")]
2291 pub recipient_email: ::prost::alloc::string::String,
2292 #[prost(enumeration="delivery::Kind", tag="12")]
2295 pub kind: i32,
2296 #[prost(string, tag="13")]
2300 pub parent_delivery_id: ::prost::alloc::string::String,
2301 #[prost(string, tag="14")]
2305 pub rendered_locale: ::prost::alloc::string::String,
2306 #[prost(message, optional, tag="15")]
2310 pub metadata: ::core::option::Option<DeliveryMetadata>,
2311}
2312pub mod delivery {
2314 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2316 #[repr(i32)]
2317 pub enum Kind {
2318 Unspecified = 0,
2320 Primary = 1,
2322 Escalation = 2,
2324 ReminderFyi = 3,
2329 }
2330 impl Kind {
2331 pub fn as_str_name(&self) -> &'static str {
2336 match self {
2337 Self::Unspecified => "KIND_UNSPECIFIED",
2338 Self::Primary => "KIND_PRIMARY",
2339 Self::Escalation => "KIND_ESCALATION",
2340 Self::ReminderFyi => "KIND_REMINDER_FYI",
2341 }
2342 }
2343 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2345 match value {
2346 "KIND_UNSPECIFIED" => Some(Self::Unspecified),
2347 "KIND_PRIMARY" => Some(Self::Primary),
2348 "KIND_ESCALATION" => Some(Self::Escalation),
2349 "KIND_REMINDER_FYI" => Some(Self::ReminderFyi),
2350 _ => None,
2351 }
2352 }
2353 }
2354}
2355#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2357pub struct ListDeliveriesRequest {
2358 #[prost(string, tag="1")]
2361 pub campaign_id: ::prost::alloc::string::String,
2362 #[prost(enumeration="DeliveryStatus", tag="2")]
2364 pub status_filter: i32,
2365 #[prost(message, optional, tag="3")]
2367 pub pagination: ::core::option::Option<Pagination>,
2368}
2369#[derive(Clone, PartialEq, ::prost::Message)]
2371pub struct ListDeliveriesResponse {
2372 #[prost(message, repeated, tag="1")]
2374 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
2375 #[prost(message, optional, tag="2")]
2377 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2378}
2379#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2384pub struct GetCampaignArchetypeBreakdownRequest {
2385 #[prost(string, tag="1")]
2388 pub campaign_id: ::prost::alloc::string::String,
2389}
2390#[derive(Clone, PartialEq, ::prost::Message)]
2395pub struct ArchetypeShareShift {
2396 #[prost(string, tag="1")]
2398 pub label: ::prost::alloc::string::String,
2399 #[prost(double, tag="2")]
2402 pub share_before: f64,
2403 #[prost(double, tag="3")]
2406 pub share_after: f64,
2407 #[prost(bool, tag="4")]
2410 pub is_origin: bool,
2411 #[prost(uint64, tag="5")]
2414 pub email_delivered_count: u64,
2415 #[prost(double, tag="6")]
2418 pub email_open_rate_real: f64,
2419 #[prost(double, tag="7")]
2422 pub email_open_rate_raw: f64,
2423}
2424#[derive(Clone, PartialEq, ::prost::Message)]
2429pub struct GetCampaignArchetypeBreakdownResponse {
2430 #[prost(message, repeated, tag="1")]
2433 pub shifts: ::prost::alloc::vec::Vec<ArchetypeShareShift>,
2434 #[prost(message, optional, tag="2")]
2437 pub before_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2438 #[prost(message, optional, tag="3")]
2440 pub after_snapshot_at: ::core::option::Option<::prost_types::Timestamp>,
2441 #[prost(bool, tag="4")]
2445 pub insufficient_history: bool,
2446}
2447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2454pub struct ResolveOrCreateShortCodeRequest {
2455 #[prost(string, tag="1")]
2458 pub campaign_id: ::prost::alloc::string::String,
2459}
2460#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2464pub struct ResolveOrCreateShortCodeResponse {
2465 #[prost(string, tag="1")]
2467 pub short_code: ::prost::alloc::string::String,
2468}
2469#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2476pub struct GetCampaignByShortCodeRequest {
2477 #[prost(string, tag="1")]
2480 pub short_code: ::prost::alloc::string::String,
2481}
2482#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2489pub struct GetCampaignByShortCodeResponse {
2490 #[prost(string, tag="1")]
2493 pub campaign_id: ::prost::alloc::string::String,
2494 #[prost(string, tag="2")]
2497 pub org_id: ::prost::alloc::string::String,
2498 #[prost(string, tag="3")]
2502 pub organization_name: ::prost::alloc::string::String,
2503 #[prost(string, tag="4")]
2507 pub subject: ::prost::alloc::string::String,
2508}
2509#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2514pub struct Device {
2515 #[prost(string, tag="1")]
2518 pub device_id: ::prost::alloc::string::String,
2519 #[prost(string, tag="2")]
2522 pub user_id: ::prost::alloc::string::String,
2523 #[prost(enumeration="Platform", tag="3")]
2525 pub platform: i32,
2526 #[prost(string, tag="4")]
2528 pub push_token: ::prost::alloc::string::String,
2529 #[prost(bool, tag="5")]
2531 pub active: bool,
2532 #[prost(message, optional, tag="6")]
2534 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2535 #[prost(message, optional, tag="7")]
2537 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2538}
2539#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2541pub struct DeviceSummary {
2542 #[prost(string, tag="1")]
2544 pub device_id: ::prost::alloc::string::String,
2545 #[prost(string, tag="2")]
2547 pub user_id: ::prost::alloc::string::String,
2548 #[prost(enumeration="Platform", tag="3")]
2550 pub platform: i32,
2551 #[prost(bool, tag="4")]
2553 pub active: bool,
2554 #[prost(message, optional, tag="5")]
2556 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2557 #[prost(message, optional, tag="6")]
2559 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2560}
2561#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2563pub struct RegisterRequest {
2564 #[prost(string, tag="1")]
2567 pub device_id: ::prost::alloc::string::String,
2568 #[prost(enumeration="Platform", tag="2")]
2570 pub platform: i32,
2571 #[prost(string, tag="3")]
2574 pub push_token: ::prost::alloc::string::String,
2575}
2576#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2578pub struct RegisterResponse {
2579 #[prost(message, optional, tag="1")]
2581 pub device: ::core::option::Option<DeviceSummary>,
2582}
2583#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2585pub struct DeactivateRequest {
2586 #[prost(string, tag="1")]
2589 pub device_id: ::prost::alloc::string::String,
2590}
2591#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2593pub struct DeactivateResponse {
2594 #[prost(bool, tag="1")]
2596 pub success: bool,
2597}
2598#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2600pub struct ListDevicesRequest {
2601}
2602#[derive(Clone, PartialEq, ::prost::Message)]
2604pub struct ListDevicesResponse {
2605 #[prost(message, repeated, tag="1")]
2607 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2608}
2609#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2611pub struct ListMemberDevicesRequest {
2612 #[prost(string, tag="1")]
2615 pub user_id: ::prost::alloc::string::String,
2616}
2617#[derive(Clone, PartialEq, ::prost::Message)]
2619pub struct ListMemberDevicesResponse {
2620 #[prost(message, repeated, tag="1")]
2622 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2623}
2624#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2629pub struct UserSettings {
2630 #[prost(enumeration="ThemePreference", tag="1")]
2632 pub theme_preference: i32,
2633 #[prost(string, tag="2")]
2637 pub preferred_locale: ::prost::alloc::string::String,
2638}
2639#[derive(Clone, PartialEq, ::prost::Message)]
2642pub struct UserProfile {
2643 #[prost(string, tag="1")]
2646 pub first_name: ::prost::alloc::string::String,
2647 #[prost(string, tag="2")]
2650 pub last_name: ::prost::alloc::string::String,
2651 #[prost(string, tag="3")]
2654 pub department: ::prost::alloc::string::String,
2655 #[prost(string, tag="4")]
2658 pub title: ::prost::alloc::string::String,
2659 #[prost(string, tag="5")]
2662 pub phone: ::prost::alloc::string::String,
2663 #[prost(string, tag="6")]
2666 pub location: ::prost::alloc::string::String,
2667 #[prost(string, tag="7")]
2670 pub employee_id: ::prost::alloc::string::String,
2671 #[prost(string, tag="8")]
2674 pub manager_name: ::prost::alloc::string::String,
2675 #[prost(string, tag="9")]
2678 pub start_date: ::prost::alloc::string::String,
2679 #[prost(map="string, string", tag="10")]
2682 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2683 #[prost(string, tag="11")]
2687 pub manager_id: ::prost::alloc::string::String,
2688}
2689#[derive(Clone, PartialEq, ::prost::Message)]
2691pub struct User {
2692 #[prost(string, tag="1")]
2694 pub id: ::prost::alloc::string::String,
2695 #[prost(string, tag="2")]
2698 pub email: ::prost::alloc::string::String,
2699 #[prost(string, tag="3")]
2702 pub name: ::prost::alloc::string::String,
2703 #[prost(enumeration="UserStatus", tag="5")]
2705 pub status: i32,
2706 #[prost(message, optional, tag="6")]
2708 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2709 #[prost(message, optional, tag="7")]
2711 pub role: ::core::option::Option<Role>,
2712 #[prost(string, tag="8")]
2714 pub role_id: ::prost::alloc::string::String,
2715 #[prost(message, optional, tag="9")]
2718 pub profile: ::core::option::Option<UserProfile>,
2719 #[prost(bool, tag="10")]
2722 pub processing_restricted: bool,
2723 #[prost(string, tag="11")]
2726 pub data_governance_region: ::prost::alloc::string::String,
2727}
2728#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2732#[repr(i32)]
2733pub enum UserStatus {
2734 Unspecified = 0,
2736 Invited = 1,
2738 Active = 2,
2740 Deactivated = 3,
2742}
2743impl UserStatus {
2744 pub fn as_str_name(&self) -> &'static str {
2749 match self {
2750 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2751 Self::Invited => "USER_STATUS_INVITED",
2752 Self::Active => "USER_STATUS_ACTIVE",
2753 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2754 }
2755 }
2756 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2758 match value {
2759 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2760 "USER_STATUS_INVITED" => Some(Self::Invited),
2761 "USER_STATUS_ACTIVE" => Some(Self::Active),
2762 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2763 _ => None,
2764 }
2765 }
2766}
2767#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2769#[repr(i32)]
2770pub enum ThemePreference {
2771 Unspecified = 0,
2773 Light = 1,
2775 Dark = 2,
2777 System = 3,
2779}
2780impl ThemePreference {
2781 pub fn as_str_name(&self) -> &'static str {
2786 match self {
2787 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2788 Self::Light => "THEME_PREFERENCE_LIGHT",
2789 Self::Dark => "THEME_PREFERENCE_DARK",
2790 Self::System => "THEME_PREFERENCE_SYSTEM",
2791 }
2792 }
2793 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2795 match value {
2796 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2797 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2798 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2799 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2800 _ => None,
2801 }
2802 }
2803}
2804#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2809pub struct Group {
2810 #[prost(string, tag="1")]
2812 pub id: ::prost::alloc::string::String,
2813 #[prost(string, tag="2")]
2816 pub name: ::prost::alloc::string::String,
2817 #[prost(string, tag="3")]
2820 pub description: ::prost::alloc::string::String,
2821 #[prost(int32, tag="4")]
2823 pub member_count: i32,
2824 #[prost(message, optional, tag="5")]
2826 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2827 #[prost(message, optional, tag="6")]
2829 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2830 #[prost(bool, tag="7")]
2832 pub is_default: bool,
2833 #[prost(string, tag="8")]
2835 pub created_by: ::prost::alloc::string::String,
2836}
2837#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2839pub struct CreateGroupRequest {
2840 #[prost(string, tag="1")]
2843 pub name: ::prost::alloc::string::String,
2844 #[prost(string, tag="2")]
2847 pub description: ::prost::alloc::string::String,
2848}
2849#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2851pub struct CreateGroupResponse {
2852 #[prost(message, optional, tag="1")]
2854 pub group: ::core::option::Option<Group>,
2855}
2856#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2858pub struct GetGroupRequest {
2859 #[prost(string, tag="1")]
2861 pub group_id: ::prost::alloc::string::String,
2862}
2863#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2865pub struct GetGroupResponse {
2866 #[prost(message, optional, tag="1")]
2868 pub group: ::core::option::Option<Group>,
2869}
2870#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2872pub struct ListGroupsRequest {
2873 #[prost(message, optional, tag="1")]
2875 pub pagination: ::core::option::Option<Pagination>,
2876}
2877#[derive(Clone, PartialEq, ::prost::Message)]
2879pub struct ListGroupsResponse {
2880 #[prost(message, repeated, tag="1")]
2882 pub groups: ::prost::alloc::vec::Vec<Group>,
2883 #[prost(message, optional, tag="2")]
2885 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2886}
2887#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2889pub struct UpdateGroupRequest {
2890 #[prost(string, tag="1")]
2892 pub group_id: ::prost::alloc::string::String,
2893 #[prost(string, tag="2")]
2897 pub name: ::prost::alloc::string::String,
2898 #[prost(string, tag="3")]
2901 pub description: ::prost::alloc::string::String,
2902}
2903#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2905pub struct UpdateGroupResponse {
2906 #[prost(message, optional, tag="1")]
2908 pub group: ::core::option::Option<Group>,
2909}
2910#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2912pub struct DeleteGroupRequest {
2913 #[prost(string, tag="1")]
2916 pub group_id: ::prost::alloc::string::String,
2917}
2918#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2920pub struct DeleteGroupResponse {
2921}
2922#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2924pub struct AddGroupMembersRequest {
2925 #[prost(string, tag="1")]
2927 pub group_id: ::prost::alloc::string::String,
2928 #[prost(string, repeated, tag="2")]
2932 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2933}
2934#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2936pub struct AddGroupMembersResponse {
2937 #[prost(message, optional, tag="1")]
2939 pub group: ::core::option::Option<Group>,
2940}
2941#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2943pub struct RemoveGroupMembersRequest {
2944 #[prost(string, tag="1")]
2946 pub group_id: ::prost::alloc::string::String,
2947 #[prost(string, repeated, tag="2")]
2950 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2951}
2952#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2954pub struct RemoveGroupMembersResponse {
2955 #[prost(message, optional, tag="1")]
2957 pub group: ::core::option::Option<Group>,
2958}
2959#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2961pub struct ListGroupMembersRequest {
2962 #[prost(string, tag="1")]
2964 pub group_id: ::prost::alloc::string::String,
2965 #[prost(message, optional, tag="2")]
2967 pub pagination: ::core::option::Option<Pagination>,
2968}
2969#[derive(Clone, PartialEq, ::prost::Message)]
2971pub struct ListGroupMembersResponse {
2972 #[prost(message, repeated, tag="1")]
2974 pub users: ::prost::alloc::vec::Vec<User>,
2975 #[prost(message, optional, tag="2")]
2977 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2978}
2979#[derive(Clone, PartialEq, ::prost::Message)]
2981pub struct UserGroupMembership {
2982 #[prost(string, tag="1")]
2984 pub user_id: ::prost::alloc::string::String,
2985 #[prost(message, repeated, tag="2")]
2987 pub groups: ::prost::alloc::vec::Vec<Group>,
2988}
2989#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2991pub struct GetUserGroupMembershipsRequest {
2992 #[prost(string, repeated, tag="1")]
2995 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2996}
2997#[derive(Clone, PartialEq, ::prost::Message)]
2999pub struct GetUserGroupMembershipsResponse {
3000 #[prost(message, repeated, tag="1")]
3002 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
3003}
3004#[derive(Clone, PartialEq, ::prost::Message)]
3008pub struct TouchEvent {
3009 #[prost(string, tag="1")]
3012 pub screen_name: ::prost::alloc::string::String,
3013 #[prost(float, tag="2")]
3016 pub x_pct: f32,
3017 #[prost(float, tag="3")]
3020 pub y_pct: f32,
3021 #[prost(enumeration="TouchEventType", tag="4")]
3023 pub event_type: i32,
3024 #[prost(int32, tag="5")]
3026 pub screen_width: i32,
3027 #[prost(int32, tag="6")]
3029 pub screen_height: i32,
3030 #[prost(message, optional, tag="7")]
3032 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
3033 #[prost(string, tag="8")]
3036 pub campaign_id: ::prost::alloc::string::String,
3037}
3038#[derive(Clone, PartialEq, ::prost::Message)]
3040pub struct IngestTouchEventsRequest {
3041 #[prost(message, repeated, tag="1")]
3044 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
3045}
3046#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3048pub struct IngestTouchEventsResponse {
3049 #[prost(int32, tag="1")]
3051 pub ingested_count: i32,
3052}
3053#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3055pub struct HeatmapDataPoint {
3056 #[prost(float, tag="1")]
3058 pub x_pct: f32,
3059 #[prost(float, tag="2")]
3061 pub y_pct: f32,
3062 #[prost(float, tag="3")]
3064 pub value: f32,
3065}
3066#[derive(Clone, PartialEq, ::prost::Message)]
3068pub struct QueryHeatmapDataRequest {
3069 #[prost(string, tag="1")]
3072 pub screen_name: ::prost::alloc::string::String,
3073 #[prost(message, optional, tag="2")]
3075 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3076 #[prost(message, optional, tag="3")]
3078 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3079 #[prost(string, tag="4")]
3082 pub campaign_id: ::prost::alloc::string::String,
3083 #[prost(float, tag="6")]
3086 pub grid_resolution: f32,
3087 #[prost(enumeration="HeatmapMode", tag="7")]
3089 pub mode: i32,
3090 #[prost(enumeration="TouchEventType", repeated, tag="8")]
3092 pub event_types: ::prost::alloc::vec::Vec<i32>,
3093}
3094#[derive(Clone, PartialEq, ::prost::Message)]
3096pub struct QueryHeatmapDataResponse {
3097 #[prost(message, repeated, tag="1")]
3099 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
3100 #[prost(string, tag="3")]
3103 pub screenshot_url: ::prost::alloc::string::String,
3104 #[prost(bool, tag="4")]
3106 pub cohort_enabled: bool,
3107}
3108#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3110pub struct UploadScreenshotRequest {
3111 #[prost(string, tag="1")]
3114 pub screen_name: ::prost::alloc::string::String,
3115 #[prost(string, tag="2")]
3117 pub app_version: ::prost::alloc::string::String,
3118 #[prost(bytes="vec", tag="3")]
3121 pub image_data: ::prost::alloc::vec::Vec<u8>,
3122}
3123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3125pub struct UploadScreenshotResponse {
3126 #[prost(string, tag="1")]
3128 pub url: ::prost::alloc::string::String,
3129}
3130#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3132pub struct ScreenScreenshot {
3133 #[prost(string, tag="1")]
3135 pub screen_name: ::prost::alloc::string::String,
3136 #[prost(string, tag="2")]
3138 pub url: ::prost::alloc::string::String,
3139 #[prost(string, tag="3")]
3141 pub app_version: ::prost::alloc::string::String,
3142}
3143#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3145pub struct ListScreenshotsRequest {
3146}
3147#[derive(Clone, PartialEq, ::prost::Message)]
3149pub struct ListScreenshotsResponse {
3150 #[prost(message, repeated, tag="1")]
3152 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
3153}
3154#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3158#[repr(i32)]
3159pub enum TouchEventType {
3160 Unspecified = 0,
3162 Tap = 1,
3164 LongPress = 2,
3166 Scroll = 3,
3168 ActionClick = 4,
3170}
3171impl TouchEventType {
3172 pub fn as_str_name(&self) -> &'static str {
3177 match self {
3178 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
3179 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
3180 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
3181 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
3182 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
3183 }
3184 }
3185 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3187 match value {
3188 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3189 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
3190 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
3191 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
3192 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
3193 _ => None,
3194 }
3195 }
3196}
3197#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3199#[repr(i32)]
3200pub enum HeatmapMode {
3201 Unspecified = 0,
3203 Total = 1,
3205 Median = 2,
3207}
3208impl HeatmapMode {
3209 pub fn as_str_name(&self) -> &'static str {
3214 match self {
3215 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
3216 Self::Total => "HEATMAP_MODE_TOTAL",
3217 Self::Median => "HEATMAP_MODE_MEDIAN",
3218 }
3219 }
3220 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3222 match value {
3223 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
3224 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
3225 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
3226 _ => None,
3227 }
3228 }
3229}
3230#[derive(Clone, PartialEq, ::prost::Message)]
3234pub struct InboxEntry {
3235 #[prost(string, tag="1")]
3238 pub delivery_id: ::prost::alloc::string::String,
3239 #[prost(message, optional, tag="2")]
3241 pub message: ::core::option::Option<Message>,
3242 #[prost(enumeration="DeliveryStatus", tag="3")]
3244 pub status: i32,
3245 #[prost(bool, tag="4")]
3247 pub read: bool,
3248 #[prost(message, optional, tag="5")]
3250 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
3251 #[prost(enumeration="delivery::Kind", tag="6")]
3255 pub kind: i32,
3256 #[prost(string, tag="7")]
3259 pub parent_delivery_id: ::prost::alloc::string::String,
3260 #[prost(string, tag="8")]
3263 pub rendered_locale: ::prost::alloc::string::String,
3264 #[prost(message, optional, tag="9")]
3268 pub metadata: ::core::option::Option<DeliveryMetadata>,
3269}
3270#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3272pub struct SyncRequest {
3273 #[prost(message, optional, tag="1")]
3275 pub since: ::core::option::Option<::prost_types::Timestamp>,
3276 #[prost(int32, tag="2")]
3279 pub limit: i32,
3280}
3281#[derive(Clone, PartialEq, ::prost::Message)]
3283pub struct SyncResponse {
3284 #[prost(message, repeated, tag="1")]
3286 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
3287 #[prost(message, optional, tag="2")]
3289 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
3290}
3291#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3293pub struct MarkReadRequest {
3294 #[prost(string, tag="1")]
3297 pub delivery_id: ::prost::alloc::string::String,
3298}
3299#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3301pub struct MarkReadResponse {
3302 #[prost(bool, tag="1")]
3304 pub success: bool,
3305}
3306#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3308pub struct GetMessageRequest {
3309 #[prost(string, tag="1")]
3312 pub delivery_id: ::prost::alloc::string::String,
3313}
3314#[derive(Clone, PartialEq, ::prost::Message)]
3316pub struct GetMessageResponse {
3317 #[prost(message, optional, tag="1")]
3319 pub entry: ::core::option::Option<InboxEntry>,
3320}
3321#[derive(Clone, PartialEq, ::prost::Message)]
3326pub struct Archetype {
3327 #[prost(string, tag="1")]
3329 pub label: ::prost::alloc::string::String,
3330 #[prost(string, tag="2")]
3332 pub description: ::prost::alloc::string::String,
3333 #[prost(float, tag="3")]
3335 pub percentage: f32,
3336 #[prost(map="string, double", tag="4")]
3343 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
3344 #[prost(map="string, message", tag="5")]
3349 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
3350 #[prost(message, optional, tag="6")]
3354 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
3355 #[prost(message, optional, tag="7")]
3359 pub forecast: ::core::option::Option<ArchetypeForecast>,
3360 #[prost(message, repeated, tag="8")]
3366 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
3367 #[prost(message, optional, tag="9")]
3370 pub screen_dwell: ::core::option::Option<ScreenDwell>,
3371 #[prost(message, optional, tag="10")]
3375 pub response_timeline: ::core::option::Option<ResponseTimeline>,
3376}
3377#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3382pub struct DimensionStats {
3383 #[prost(double, tag="1")]
3385 pub centroid: f64,
3386 #[prost(double, tag="2")]
3388 pub p25: f64,
3389 #[prost(double, tag="3")]
3391 pub p50: f64,
3392 #[prost(double, tag="4")]
3394 pub p75: f64,
3395 #[prost(double, tag="5")]
3398 pub group_p50: f64,
3399}
3400#[derive(Clone, PartialEq, ::prost::Message)]
3404pub struct TapHeatmap {
3405 #[prost(int32, tag="1")]
3407 pub width: i32,
3408 #[prost(int32, tag="2")]
3410 pub height: i32,
3411 #[prost(double, repeated, tag="3")]
3414 pub values: ::prost::alloc::vec::Vec<f64>,
3415 #[prost(int32, tag="4")]
3418 pub session_count: i32,
3419 #[prost(message, repeated, tag="5")]
3423 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
3424}
3425#[derive(Clone, PartialEq, ::prost::Message)]
3427pub struct TapHeatmapLayer {
3428 #[prost(string, tag="1")]
3431 pub event_type: ::prost::alloc::string::String,
3432 #[prost(double, repeated, tag="2")]
3435 pub values: ::prost::alloc::vec::Vec<f64>,
3436}
3437#[derive(Clone, PartialEq, ::prost::Message)]
3439pub struct ArchetypeForecast {
3440 #[prost(message, repeated, tag="1")]
3443 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
3444}
3445#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3447pub struct ForecastHorizon {
3448 #[prost(int32, tag="1")]
3450 pub days: i32,
3451 #[prost(double, tag="2")]
3454 pub predicted_share: f64,
3455 #[prost(double, tag="3")]
3457 pub lower: f64,
3458 #[prost(double, tag="4")]
3460 pub upper: f64,
3461 #[prost(enumeration="ConfidenceLevel", tag="5")]
3463 pub confidence: i32,
3464}
3465#[derive(Clone, PartialEq, ::prost::Message)]
3468pub struct ExemplarSession {
3469 #[prost(string, tag="1")]
3472 pub session_id: ::prost::alloc::string::String,
3473 #[prost(int32, tag="2")]
3476 pub rank: i32,
3477 #[prost(double, tag="3")]
3479 pub distance: f64,
3480 #[prost(int32, tag="4")]
3482 pub duration_seconds: i32,
3483 #[prost(string, tag="5")]
3487 pub platform: ::prost::alloc::string::String,
3488}
3489#[derive(Clone, PartialEq, ::prost::Message)]
3493pub struct ScreenDwell {
3494 #[prost(message, repeated, tag="1")]
3497 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
3498}
3499#[derive(Clone, PartialEq, ::prost::Message)]
3500pub struct ScreenDwellEntry {
3501 #[prost(string, tag="1")]
3505 pub screen_name: ::prost::alloc::string::String,
3506 #[prost(double, tag="2")]
3508 pub median_seconds: f64,
3509 #[prost(double, tag="3")]
3511 pub p75_seconds: f64,
3512 #[prost(int32, tag="4")]
3514 pub session_count: i32,
3515}
3516#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3520pub struct ResponseTimeline {
3521 #[prost(message, optional, tag="1")]
3523 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
3524 #[prost(message, optional, tag="2")]
3527 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
3528 #[prost(message, optional, tag="3")]
3531 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
3532 #[prost(int32, tag="4")]
3534 pub delivery_count: i32,
3535}
3536#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3538pub struct LatencyPercentiles {
3539 #[prost(double, tag="1")]
3540 pub p50: f64,
3541 #[prost(double, tag="2")]
3542 pub p75: f64,
3543 #[prost(double, tag="3")]
3544 pub p95: f64,
3545}
3546#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3549pub struct CohortPrediction {
3550 #[prost(float, tag="1")]
3552 pub predicted_ack_rate: f32,
3553 #[prost(float, tag="2")]
3555 pub confidence_low: f32,
3556 #[prost(float, tag="3")]
3558 pub confidence_high: f32,
3559 #[prost(enumeration="ConfidenceLevel", tag="4")]
3561 pub confidence_level: i32,
3562 #[prost(int32, tag="5")]
3564 pub data_point_count: i32,
3565}
3566#[derive(Clone, PartialEq, ::prost::Message)]
3568pub struct CampaignAdvisory {
3569 #[prost(message, optional, tag="1")]
3571 pub predicted_ack: ::core::option::Option<CohortPrediction>,
3572 #[prost(int32, tag="2")]
3575 pub suggested_escalation_delay_minutes: i32,
3576 #[prost(message, repeated, tag="3")]
3578 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3579}
3580#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3582pub struct GetGroupArchetypesRequest {
3583 #[prost(string, tag="1")]
3585 pub group_id: ::prost::alloc::string::String,
3586}
3587#[derive(Clone, PartialEq, ::prost::Message)]
3589pub struct GetGroupArchetypesResponse {
3590 #[prost(message, repeated, tag="1")]
3592 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3593 #[prost(int32, tag="2")]
3595 pub data_point_count: i32,
3596 #[prost(enumeration="PipelineState", tag="3")]
3600 pub pipeline_state: i32,
3601}
3602#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3604pub struct PredictCampaignAckRequest {
3605 #[prost(string, tag="1")]
3607 pub group_id: ::prost::alloc::string::String,
3608 #[prost(string, tag="2")]
3610 pub template_type: ::prost::alloc::string::String,
3611 #[prost(int32, tag="3")]
3613 pub workflow_step_count: i32,
3614}
3615#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3617pub struct PredictCampaignAckResponse {
3618 #[prost(message, optional, tag="1")]
3620 pub prediction: ::core::option::Option<CohortPrediction>,
3621}
3622#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3624pub struct GetCampaignAdvisoryRequest {
3625 #[prost(string, tag="1")]
3627 pub group_id: ::prost::alloc::string::String,
3628 #[prost(string, tag="2")]
3630 pub template_id: ::prost::alloc::string::String,
3631 #[prost(int32, tag="3")]
3633 pub template_version: i32,
3634 #[prost(int32, tag="4")]
3636 pub workflow_step_count: i32,
3637}
3638#[derive(Clone, PartialEq, ::prost::Message)]
3640pub struct GetCampaignAdvisoryResponse {
3641 #[prost(message, optional, tag="1")]
3643 pub advisory: ::core::option::Option<CampaignAdvisory>,
3644}
3645#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3647pub struct GetInsightNarrativeRequest {
3648 #[prost(string, tag="1")]
3650 pub group_id: ::prost::alloc::string::String,
3651 #[prost(string, tag="2")]
3653 pub prompt_name: ::prost::alloc::string::String,
3654}
3655#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3657pub struct GetInsightNarrativeResponse {
3658 #[prost(string, tag="1")]
3660 pub narrative: ::prost::alloc::string::String,
3661 #[prost(message, optional, tag="2")]
3663 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3664 #[prost(string, tag="3")]
3666 pub model_id: ::prost::alloc::string::String,
3667}
3668#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3671pub struct TriggerMlPipelineRequest {
3672}
3673#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3675pub struct TriggerMlPipelineResponse {
3676 #[prost(int32, tag="1")]
3678 pub remaining_this_month: i32,
3679 #[prost(message, optional, tag="2")]
3681 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3682}
3683#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3687pub struct TriggerArchetypeClusteringRequest {
3688 #[prost(string, tag="1")]
3690 pub group_id: ::prost::alloc::string::String,
3691}
3692#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3694pub struct TriggerArchetypeClusteringResponse {
3695 #[prost(string, tag="1")]
3698 pub workflow_id: ::prost::alloc::string::String,
3699 #[prost(int32, tag="2")]
3702 pub remaining_this_month: i32,
3703 #[prost(message, optional, tag="3")]
3706 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3707}
3708#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3712pub struct GenerateCampaignBodyDraftRequest {
3713 #[prost(string, tag="1")]
3715 pub group_id: ::prost::alloc::string::String,
3716 #[prost(string, tag="2")]
3718 pub archetype_label: ::prost::alloc::string::String,
3719 #[prost(string, tag="3")]
3722 pub lane_action: ::prost::alloc::string::String,
3723}
3724#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3726pub struct GenerateCampaignBodyDraftResponse {
3727 #[prost(string, tag="1")]
3730 pub body_markdown: ::prost::alloc::string::String,
3731}
3732#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3736#[repr(i32)]
3737pub enum ConfidenceLevel {
3738 Unspecified = 0,
3739 Low = 1,
3741 Medium = 2,
3743 High = 3,
3745}
3746impl ConfidenceLevel {
3747 pub fn as_str_name(&self) -> &'static str {
3752 match self {
3753 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3754 Self::Low => "CONFIDENCE_LEVEL_LOW",
3755 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3756 Self::High => "CONFIDENCE_LEVEL_HIGH",
3757 }
3758 }
3759 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3761 match value {
3762 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3763 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3764 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3765 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3766 _ => None,
3767 }
3768 }
3769}
3770#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3776#[repr(i32)]
3777pub enum PipelineState {
3778 Unspecified = 0,
3779 NeverRun = 1,
3782 BelowThreshold = 2,
3786 NoClusters = 3,
3790 Ready = 4,
3792}
3793impl PipelineState {
3794 pub fn as_str_name(&self) -> &'static str {
3799 match self {
3800 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3801 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3802 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3803 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3804 Self::Ready => "PIPELINE_STATE_READY",
3805 }
3806 }
3807 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3809 match value {
3810 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3811 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3812 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3813 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3814 "PIPELINE_STATE_READY" => Some(Self::Ready),
3815 _ => None,
3816 }
3817 }
3818}
3819#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3826pub struct Reachability {
3827 #[prost(string, tag="1")]
3829 pub id: ::prost::alloc::string::String,
3830 #[prost(string, tag="2")]
3832 pub org_id: ::prost::alloc::string::String,
3833 #[prost(string, tag="3")]
3835 pub user_id: ::prost::alloc::string::String,
3836 #[prost(enumeration="ChannelName", tag="4")]
3838 pub channel: i32,
3839 #[prost(message, optional, tag="5")]
3841 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3842 #[prost(message, optional, tag="6")]
3844 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3845 #[prost(string, optional, tag="7")]
3849 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3850}
3851#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3855pub struct RegionPolicy {
3856 #[prost(string, tag="1")]
3857 pub org_id: ::prost::alloc::string::String,
3858 #[prost(enumeration="ChannelName", tag="2")]
3859 pub channel: i32,
3860 #[prost(string, repeated, tag="3")]
3863 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3864 #[prost(message, optional, tag="4")]
3865 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3866}
3867#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3875#[repr(i32)]
3876pub enum DispatchStatus {
3877 Unspecified = 0,
3879 Sent = 1,
3881 Failed = 2,
3884 Deduped = 3,
3888}
3889impl DispatchStatus {
3890 pub fn as_str_name(&self) -> &'static str {
3895 match self {
3896 Self::Unspecified => "DISPATCH_STATUS_UNSPECIFIED",
3897 Self::Sent => "DISPATCH_STATUS_SENT",
3898 Self::Failed => "DISPATCH_STATUS_FAILED",
3899 Self::Deduped => "DISPATCH_STATUS_DEDUPED",
3900 }
3901 }
3902 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3904 match value {
3905 "DISPATCH_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
3906 "DISPATCH_STATUS_SENT" => Some(Self::Sent),
3907 "DISPATCH_STATUS_FAILED" => Some(Self::Failed),
3908 "DISPATCH_STATUS_DEDUPED" => Some(Self::Deduped),
3909 _ => None,
3910 }
3911 }
3912}
3913#[derive(Clone, PartialEq, ::prost::Message)]
3920pub struct DispatchToChannelRequest {
3921 #[prost(string, tag="1")]
3923 pub dispatch_id: ::prost::alloc::string::String,
3924 #[prost(string, tag="2")]
3925 pub org_id: ::prost::alloc::string::String,
3926 #[prost(string, tag="3")]
3927 pub user_id: ::prost::alloc::string::String,
3928 #[prost(enumeration="ChannelName", tag="4")]
3930 pub channel: i32,
3931 #[prost(string, tag="5")]
3933 pub template_id: ::prost::alloc::string::String,
3934 #[prost(map="string, string", tag="6")]
3936 pub template_vars: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3937 #[prost(string, tag="7")]
3939 pub locale: ::prost::alloc::string::String,
3940 #[prost(string, optional, tag="8")]
3943 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3944}
3945#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3946pub struct DispatchToChannelResponse {
3947 #[prost(string, tag="1")]
3949 pub dispatch_id: ::prost::alloc::string::String,
3950 #[prost(enumeration="DispatchStatus", tag="2")]
3952 pub status: i32,
3953 #[prost(string, optional, tag="3")]
3956 pub failure_reason: ::core::option::Option<::prost::alloc::string::String>,
3957}
3958#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3965pub struct UpsertReachabilityRequest {
3966 #[prost(string, tag="1")]
3967 pub org_id: ::prost::alloc::string::String,
3968 #[prost(string, tag="2")]
3969 pub user_id: ::prost::alloc::string::String,
3970 #[prost(enumeration="ChannelName", tag="3")]
3971 pub channel: i32,
3972 #[prost(string, tag="4")]
3976 pub identifier_plaintext: ::prost::alloc::string::String,
3977 #[prost(string, optional, tag="5")]
3980 pub region_constraint: ::core::option::Option<::prost::alloc::string::String>,
3981}
3982#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3983pub struct UpsertReachabilityResponse {
3984 #[prost(message, optional, tag="1")]
3987 pub reachability: ::core::option::Option<Reachability>,
3988}
3989#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3995pub struct RemoveReachabilityRequest {
3996 #[prost(string, tag="1")]
3997 pub org_id: ::prost::alloc::string::String,
3998 #[prost(string, tag="2")]
3999 pub user_id: ::prost::alloc::string::String,
4000 #[prost(enumeration="ChannelName", tag="3")]
4001 pub channel: i32,
4002}
4003#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4004pub struct RemoveReachabilityResponse {
4005 #[prost(bool, tag="1")]
4008 pub removed: bool,
4009}
4010#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4015pub struct GetReachabilityRequest {
4016 #[prost(string, tag="1")]
4017 pub org_id: ::prost::alloc::string::String,
4018 #[prost(string, tag="2")]
4019 pub user_id: ::prost::alloc::string::String,
4020 #[prost(enumeration="ChannelName", tag="3")]
4021 pub channel: i32,
4022}
4023#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4024pub struct GetReachabilityResponse {
4025 #[prost(message, optional, tag="1")]
4027 pub reachability: ::core::option::Option<Reachability>,
4028}
4029#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4036pub struct ListReachabilityForUserRequest {
4037 #[prost(string, tag="1")]
4038 pub org_id: ::prost::alloc::string::String,
4039 #[prost(string, tag="2")]
4040 pub user_id: ::prost::alloc::string::String,
4041}
4042#[derive(Clone, PartialEq, ::prost::Message)]
4043pub struct ListReachabilityForUserResponse {
4044 #[prost(message, repeated, tag="1")]
4046 pub reachabilities: ::prost::alloc::vec::Vec<Reachability>,
4047}
4048#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4051pub struct GetRegionPolicyRequest {
4052 #[prost(string, tag="1")]
4053 pub org_id: ::prost::alloc::string::String,
4054 #[prost(enumeration="ChannelName", tag="2")]
4055 pub channel: i32,
4056}
4057#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4058pub struct GetRegionPolicyResponse {
4059 #[prost(message, optional, tag="1")]
4062 pub policy: ::core::option::Option<RegionPolicy>,
4063}
4064#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4066pub struct SetRegionPolicyRequest {
4067 #[prost(string, tag="1")]
4068 pub org_id: ::prost::alloc::string::String,
4069 #[prost(enumeration="ChannelName", tag="2")]
4070 pub channel: i32,
4071 #[prost(string, repeated, tag="3")]
4073 pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4074}
4075#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4076pub struct SetRegionPolicyResponse {
4077 #[prost(message, optional, tag="1")]
4078 pub policy: ::core::option::Option<RegionPolicy>,
4079}
4080#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4087pub struct GetCostCapPolicyRequest {
4088 #[prost(string, tag="1")]
4089 pub org_id: ::prost::alloc::string::String,
4090 #[prost(enumeration="ChannelName", tag="2")]
4091 pub channel: i32,
4092}
4093#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4094pub struct GetCostCapPolicyResponse {
4095 #[prost(string, tag="1")]
4096 pub org_id: ::prost::alloc::string::String,
4097 #[prost(enumeration="ChannelName", tag="2")]
4098 pub channel: i32,
4099 #[prost(int64, tag="3")]
4101 pub cap_micros: i64,
4102 #[prost(int64, tag="4")]
4104 pub used_micros: i64,
4105 #[prost(int32, tag="5")]
4107 pub period_yyyymm: i32,
4108}
4109#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4112pub struct SetCostCapPolicyRequest {
4113 #[prost(string, tag="1")]
4114 pub org_id: ::prost::alloc::string::String,
4115 #[prost(enumeration="ChannelName", tag="2")]
4116 pub channel: i32,
4117 #[prost(int64, tag="3")]
4118 pub cap_micros: i64,
4119}
4120#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4121pub struct SetCostCapPolicyResponse {
4122 #[prost(string, tag="1")]
4123 pub org_id: ::prost::alloc::string::String,
4124 #[prost(enumeration="ChannelName", tag="2")]
4125 pub channel: i32,
4126 #[prost(int64, tag="3")]
4127 pub cap_micros: i64,
4128 #[prost(int64, tag="4")]
4129 pub used_micros: i64,
4130 #[prost(int32, tag="5")]
4131 pub period_yyyymm: i32,
4132}
4133#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4138pub struct InviteLink {
4139 #[prost(string, tag="1")]
4141 pub id: ::prost::alloc::string::String,
4142 #[prost(string, tag="2")]
4144 pub token: ::prost::alloc::string::String,
4145 #[prost(string, tag="3")]
4147 pub role_id: ::prost::alloc::string::String,
4148 #[prost(int32, tag="4")]
4151 pub max_uses: i32,
4152 #[prost(int32, tag="5")]
4154 pub use_count: i32,
4155 #[prost(message, optional, tag="6")]
4157 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4158 #[prost(message, optional, tag="7")]
4160 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
4161 #[prost(string, tag="8")]
4163 pub created_by: ::prost::alloc::string::String,
4164 #[prost(message, optional, tag="9")]
4166 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4167 #[prost(string, tag="10")]
4170 pub data_governance_region: ::prost::alloc::string::String,
4171}
4172#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4174pub struct CreateInviteLinkRequest {
4175 #[prost(string, tag="1")]
4177 pub role_id: ::prost::alloc::string::String,
4178 #[prost(int32, tag="2")]
4180 pub max_uses: i32,
4181 #[prost(int32, tag="3")]
4184 pub expires_in_hours: i32,
4185 #[prost(string, tag="4")]
4188 pub data_governance_region: ::prost::alloc::string::String,
4189}
4190#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4192pub struct CreateInviteLinkResponse {
4193 #[prost(message, optional, tag="1")]
4195 pub invite_link: ::core::option::Option<InviteLink>,
4196 #[prost(string, tag="2")]
4198 pub url: ::prost::alloc::string::String,
4199}
4200#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4202pub struct ListInviteLinksRequest {
4203}
4204#[derive(Clone, PartialEq, ::prost::Message)]
4206pub struct ListInviteLinksResponse {
4207 #[prost(message, repeated, tag="1")]
4209 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
4210}
4211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4213pub struct RevokeInviteLinkRequest {
4214 #[prost(string, tag="1")]
4216 pub invite_link_id: ::prost::alloc::string::String,
4217}
4218#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4220pub struct RevokeInviteLinkResponse {
4221}
4222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4224pub struct RedeemInviteLinkRequest {
4225 #[prost(string, tag="1")]
4227 pub token: ::prost::alloc::string::String,
4228}
4229#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4231pub struct RedeemInviteLinkResponse {
4232 #[prost(string, tag="1")]
4234 pub organization_name: ::prost::alloc::string::String,
4235}
4236#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4238pub struct ValidateInviteLinkRequest {
4239 #[prost(string, tag="1")]
4241 pub token: ::prost::alloc::string::String,
4242 #[prost(string, tag="2")]
4245 pub email: ::prost::alloc::string::String,
4246}
4247#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4249pub struct ValidateInviteLinkResponse {
4250 #[prost(string, tag="1")]
4252 pub organization_name: ::prost::alloc::string::String,
4253}
4254#[derive(Clone, PartialEq, ::prost::Message)]
4258pub struct InviteUserRequest {
4259 #[prost(string, tag="1")]
4262 pub email: ::prost::alloc::string::String,
4263 #[prost(string, tag="2")]
4266 pub name: ::prost::alloc::string::String,
4267 #[prost(string, tag="4")]
4269 pub role_id: ::prost::alloc::string::String,
4270 #[prost(message, optional, tag="5")]
4272 pub profile: ::core::option::Option<UserProfile>,
4273 #[prost(string, tag="6")]
4276 pub data_governance_region: ::prost::alloc::string::String,
4277}
4278#[derive(Clone, PartialEq, ::prost::Message)]
4280pub struct InviteUserResponse {
4281 #[prost(message, optional, tag="1")]
4283 pub user: ::core::option::Option<User>,
4284}
4285#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4287pub struct GetUserRequest {
4288 #[prost(string, tag="1")]
4290 pub user_id: ::prost::alloc::string::String,
4291}
4292#[derive(Clone, PartialEq, ::prost::Message)]
4294pub struct GetUserResponse {
4295 #[prost(message, optional, tag="1")]
4297 pub user: ::core::option::Option<User>,
4298}
4299#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4301pub struct ListUsersRequest {
4302 #[prost(message, optional, tag="1")]
4304 pub pagination: ::core::option::Option<Pagination>,
4305}
4306#[derive(Clone, PartialEq, ::prost::Message)]
4308pub struct ListUsersResponse {
4309 #[prost(message, repeated, tag="1")]
4311 pub users: ::prost::alloc::vec::Vec<User>,
4312 #[prost(message, optional, tag="2")]
4314 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4315}
4316#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4318pub struct UpdateUserRoleRequest {
4319 #[prost(string, tag="1")]
4321 pub user_id: ::prost::alloc::string::String,
4322 #[prost(string, tag="2")]
4324 pub role_id: ::prost::alloc::string::String,
4325}
4326#[derive(Clone, PartialEq, ::prost::Message)]
4328pub struct UpdateUserRoleResponse {
4329 #[prost(message, optional, tag="1")]
4331 pub user: ::core::option::Option<User>,
4332}
4333#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4335pub struct DeactivateUserRequest {
4336 #[prost(string, tag="1")]
4338 pub user_id: ::prost::alloc::string::String,
4339}
4340#[derive(Clone, PartialEq, ::prost::Message)]
4342pub struct DeactivateUserResponse {
4343 #[prost(message, optional, tag="1")]
4345 pub user: ::core::option::Option<User>,
4346}
4347#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4349pub struct ReactivateUserRequest {
4350 #[prost(string, tag="1")]
4352 pub user_id: ::prost::alloc::string::String,
4353}
4354#[derive(Clone, PartialEq, ::prost::Message)]
4356pub struct ReactivateUserResponse {
4357 #[prost(message, optional, tag="1")]
4359 pub user: ::core::option::Option<User>,
4360}
4361#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4363pub struct RevokeInviteRequest {
4364 #[prost(string, tag="1")]
4367 pub user_id: ::prost::alloc::string::String,
4368}
4369#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4371pub struct RevokeInviteResponse {
4372}
4373#[derive(Clone, PartialEq, ::prost::Message)]
4375pub struct UpdateUserProfileRequest {
4376 #[prost(string, tag="1")]
4379 pub user_id: ::prost::alloc::string::String,
4380 #[prost(message, optional, tag="2")]
4382 pub profile: ::core::option::Option<UserProfile>,
4383}
4384#[derive(Clone, PartialEq, ::prost::Message)]
4386pub struct UpdateUserProfileResponse {
4387 #[prost(message, optional, tag="1")]
4389 pub user: ::core::option::Option<User>,
4390}
4391#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4393pub struct GetUserSettingsRequest {
4394}
4395#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4397pub struct GetUserSettingsResponse {
4398 #[prost(message, optional, tag="1")]
4400 pub settings: ::core::option::Option<UserSettings>,
4401}
4402#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4404pub struct UpdateUserSettingsRequest {
4405 #[prost(message, optional, tag="1")]
4408 pub settings: ::core::option::Option<UserSettings>,
4409}
4410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4412pub struct UpdateUserSettingsResponse {
4413 #[prost(message, optional, tag="1")]
4415 pub settings: ::core::option::Option<UserSettings>,
4416}
4417#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4419pub struct BulkInviteUsersRequest {
4420 #[prost(string, repeated, tag="1")]
4423 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4424 #[prost(string, tag="2")]
4426 pub role_id: ::prost::alloc::string::String,
4427}
4428#[derive(Clone, PartialEq, ::prost::Message)]
4430pub struct BulkInviteResult {
4431 #[prost(string, tag="1")]
4433 pub email: ::prost::alloc::string::String,
4434 #[prost(bool, tag="2")]
4436 pub success: bool,
4437 #[prost(string, tag="3")]
4440 pub error: ::prost::alloc::string::String,
4441 #[prost(message, optional, tag="4")]
4443 pub user: ::core::option::Option<User>,
4444}
4445#[derive(Clone, PartialEq, ::prost::Message)]
4447pub struct BulkInviteUsersResponse {
4448 #[prost(message, repeated, tag="1")]
4450 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
4451 #[prost(int32, tag="2")]
4453 pub invited_count: i32,
4454 #[prost(int32, tag="3")]
4456 pub failed_count: i32,
4457}
4458#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4462pub struct ConfirmPasskeyEnrollmentRequest {
4463}
4464#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4466pub struct ConfirmPasskeyEnrollmentResponse {
4467 #[prost(bool, tag="1")]
4469 pub confirmed: bool,
4470}
4471#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4473pub struct UpdateUserRegionRequest {
4474 #[prost(string, tag="1")]
4476 pub user_id: ::prost::alloc::string::String,
4477 #[prost(string, tag="2")]
4480 pub data_governance_region: ::prost::alloc::string::String,
4481}
4482#[derive(Clone, PartialEq, ::prost::Message)]
4484pub struct UpdateUserRegionResponse {
4485 #[prost(message, optional, tag="1")]
4487 pub user: ::core::option::Option<User>,
4488 #[prost(string, tag="2")]
4491 pub migration_workflow_id: ::prost::alloc::string::String,
4492}
4493#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4502pub struct Pepper {
4503 #[prost(int32, tag="1")]
4505 pub version: i32,
4506 #[prost(bytes="vec", tag="2")]
4510 pub key_material: ::prost::alloc::vec::Vec<u8>,
4511}
4512#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4519pub struct GetPeppersRequest {
4520 #[prost(string, tag="1")]
4522 pub org_id: ::prost::alloc::string::String,
4523 #[prost(string, tag="2")]
4526 pub purpose: ::prost::alloc::string::String,
4527}
4528#[derive(Clone, PartialEq, ::prost::Message)]
4529pub struct GetPeppersResponse {
4530 #[prost(message, repeated, tag="1")]
4535 pub peppers: ::prost::alloc::vec::Vec<Pepper>,
4536}
4537#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4542pub struct SsoAttributeMapping {
4543 #[prost(string, tag="1")]
4546 pub idp_claim: ::prost::alloc::string::String,
4547 #[prost(string, tag="2")]
4551 pub profile_field: ::prost::alloc::string::String,
4552}
4553#[derive(Clone, PartialEq, ::prost::Message)]
4555pub struct Organization {
4556 #[prost(string, tag="1")]
4558 pub id: ::prost::alloc::string::String,
4559 #[prost(string, tag="2")]
4562 pub name: ::prost::alloc::string::String,
4563 #[prost(message, optional, tag="3")]
4565 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4566 #[prost(message, optional, tag="4")]
4568 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4569 #[prost(enumeration="Industry", tag="5")]
4571 pub industry: i32,
4572 #[prost(enumeration="CompanySize", tag="6")]
4574 pub company_size: i32,
4575 #[prost(message, repeated, tag="7")]
4578 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4579 #[prost(string, tag="8")]
4583 pub default_locale: ::prost::alloc::string::String,
4584 #[prost(enumeration="OrgType", tag="9")]
4586 pub org_type: i32,
4587 #[prost(message, optional, tag="10")]
4589 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4590 #[prost(string, tag="11")]
4593 pub data_governance_region: ::prost::alloc::string::String,
4594 #[prost(string, tag="12")]
4597 pub data_content_region: ::prost::alloc::string::String,
4598 #[prost(int32, tag="13")]
4603 pub ml_retrain_cold_threshold: i32,
4604 #[prost(bool, tag="14")]
4606 pub ml_cancelled_counts: bool,
4607 #[prost(int32, tag="15")]
4609 pub ml_manual_limit_monthly: i32,
4610 #[prost(int32, tag="16")]
4612 pub ml_manual_retrains_used: i32,
4613 #[prost(bool, tag="17")]
4615 pub ml_needs_retrain: bool,
4616 #[prost(int32, tag="18")]
4618 pub campaigns_since_last_training: i32,
4619 #[prost(int32, tag="19")]
4621 pub total_completed_campaigns: i32,
4622 #[prost(message, optional, tag="20")]
4624 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
4625}
4626#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4630pub struct CreateOrganizationRequest {
4631 #[prost(string, tag="1")]
4634 pub name: ::prost::alloc::string::String,
4635 #[prost(enumeration="Industry", tag="2")]
4637 pub industry: i32,
4638 #[prost(enumeration="CompanySize", tag="3")]
4640 pub company_size: i32,
4641 #[prost(string, tag="4")]
4644 pub access_code: ::prost::alloc::string::String,
4645 #[prost(string, tag="5")]
4648 pub data_governance_region: ::prost::alloc::string::String,
4649}
4650#[derive(Clone, PartialEq, ::prost::Message)]
4652pub struct CreateOrganizationResponse {
4653 #[prost(message, optional, tag="1")]
4655 pub organization: ::core::option::Option<Organization>,
4656 #[prost(message, optional, tag="2")]
4658 pub admin_user: ::core::option::Option<User>,
4659}
4660#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4662pub struct GetOrganizationRequest {
4663}
4664#[derive(Clone, PartialEq, ::prost::Message)]
4666pub struct GetOrganizationResponse {
4667 #[prost(message, optional, tag="1")]
4669 pub organization: ::core::option::Option<Organization>,
4670}
4671#[derive(Clone, PartialEq, ::prost::Message)]
4673pub struct UpdateOrganizationRequest {
4674 #[prost(string, tag="1")]
4677 pub name: ::prost::alloc::string::String,
4678 #[prost(message, optional, tag="2")]
4680 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
4681 #[prost(enumeration="Industry", tag="3")]
4683 pub industry: i32,
4684 #[prost(enumeration="CompanySize", tag="4")]
4686 pub company_size: i32,
4687 #[prost(string, tag="5")]
4690 pub default_locale: ::prost::alloc::string::String,
4691 #[prost(int32, tag="6")]
4693 pub ml_retrain_cold_threshold: i32,
4694 #[prost(bool, optional, tag="7")]
4697 pub ml_cancelled_counts: ::core::option::Option<bool>,
4698 #[prost(int32, tag="8")]
4701 pub ml_manual_limit_monthly: i32,
4702}
4703#[derive(Clone, PartialEq, ::prost::Message)]
4705pub struct UpdateOrganizationResponse {
4706 #[prost(message, optional, tag="1")]
4708 pub organization: ::core::option::Option<Organization>,
4709}
4710#[derive(Clone, PartialEq, ::prost::Message)]
4712pub struct UpdateSsoAttributeMappingsRequest {
4713 #[prost(message, repeated, tag="1")]
4715 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
4716}
4717#[derive(Clone, PartialEq, ::prost::Message)]
4719pub struct UpdateSsoAttributeMappingsResponse {
4720 #[prost(message, optional, tag="1")]
4722 pub organization: ::core::option::Option<Organization>,
4723}
4724#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4726pub struct RotateAnalyticsSaltRequest {
4727 #[prost(int32, tag="1")]
4729 pub new_bucket_count: i32,
4730}
4731#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4733pub struct RotateAnalyticsSaltResponse {
4734 #[prost(int32, tag="1")]
4736 pub bucket_count: i32,
4737}
4738#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4740pub struct UpdateAnalyticsEpsilonRequest {
4741 #[prost(float, tag="1")]
4743 pub epsilon: f32,
4744}
4745#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4747pub struct UpdateAnalyticsEpsilonResponse {
4748 #[prost(float, tag="1")]
4750 pub epsilon: f32,
4751}
4752#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4754pub struct CreateSandboxOrganizationRequest {
4755 #[prost(string, tag="1")]
4758 pub name: ::prost::alloc::string::String,
4759 #[prost(message, optional, tag="2")]
4762 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
4763 #[prost(string, tag="3")]
4766 pub data_governance_region: ::prost::alloc::string::String,
4767 #[prost(string, tag="4")]
4771 pub fixture_id: ::prost::alloc::string::String,
4772}
4773#[derive(Clone, PartialEq, ::prost::Message)]
4775pub struct CreateSandboxOrganizationResponse {
4776 #[prost(message, optional, tag="1")]
4778 pub organization: ::core::option::Option<Organization>,
4779 #[prost(message, optional, tag="2")]
4781 pub admin_user: ::core::option::Option<User>,
4782}
4783#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4786pub struct DeleteSandboxOrganizationRequest {
4787 #[prost(string, tag="1")]
4789 pub org_id: ::prost::alloc::string::String,
4790}
4791#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4794pub struct DeleteSandboxOrganizationResponse {
4795 #[prost(string, tag="1")]
4797 pub workflow_id: ::prost::alloc::string::String,
4798}
4799#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4801pub struct SandboxFixture {
4802 #[prost(string, tag="1")]
4804 pub id: ::prost::alloc::string::String,
4805 #[prost(string, tag="2")]
4807 pub name: ::prost::alloc::string::String,
4808 #[prost(string, tag="3")]
4810 pub description: ::prost::alloc::string::String,
4811 #[prost(bool, tag="4")]
4814 pub is_default: bool,
4815}
4816#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4819pub struct ListSandboxFixturesRequest {
4820}
4821#[derive(Clone, PartialEq, ::prost::Message)]
4823pub struct ListSandboxFixturesResponse {
4824 #[prost(message, repeated, tag="1")]
4826 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
4827}
4828#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4831pub struct ListUserOrganizationsRequest {
4832}
4833#[derive(Clone, PartialEq, ::prost::Message)]
4835pub struct ListUserOrganizationsResponse {
4836 #[prost(message, repeated, tag="1")]
4839 pub organizations: ::prost::alloc::vec::Vec<Organization>,
4840}
4841#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4846pub struct ListUserSandboxesRequest {
4847}
4848#[derive(Clone, PartialEq, ::prost::Message)]
4850pub struct ListUserSandboxesResponse {
4851 #[prost(message, repeated, tag="1")]
4856 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
4857}
4858#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4862#[repr(i32)]
4863pub enum Industry {
4864 Unspecified = 0,
4865 Technology = 1,
4866 Finance = 2,
4867 Healthcare = 3,
4868 Education = 4,
4869 Retail = 5,
4870 Manufacturing = 6,
4871 Media = 7,
4872 Other = 8,
4873}
4874impl Industry {
4875 pub fn as_str_name(&self) -> &'static str {
4880 match self {
4881 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
4882 Self::Technology => "INDUSTRY_TECHNOLOGY",
4883 Self::Finance => "INDUSTRY_FINANCE",
4884 Self::Healthcare => "INDUSTRY_HEALTHCARE",
4885 Self::Education => "INDUSTRY_EDUCATION",
4886 Self::Retail => "INDUSTRY_RETAIL",
4887 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
4888 Self::Media => "INDUSTRY_MEDIA",
4889 Self::Other => "INDUSTRY_OTHER",
4890 }
4891 }
4892 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4894 match value {
4895 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
4896 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
4897 "INDUSTRY_FINANCE" => Some(Self::Finance),
4898 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
4899 "INDUSTRY_EDUCATION" => Some(Self::Education),
4900 "INDUSTRY_RETAIL" => Some(Self::Retail),
4901 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
4902 "INDUSTRY_MEDIA" => Some(Self::Media),
4903 "INDUSTRY_OTHER" => Some(Self::Other),
4904 _ => None,
4905 }
4906 }
4907}
4908#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4910#[repr(i32)]
4911pub enum CompanySize {
4912 Unspecified = 0,
4913 CompanySize1200 = 1,
4914 CompanySize200500 = 2,
4915 CompanySize5001000 = 3,
4916 CompanySize10005000 = 4,
4917 CompanySize5000Plus = 5,
4918}
4919impl CompanySize {
4920 pub fn as_str_name(&self) -> &'static str {
4925 match self {
4926 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
4927 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
4928 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
4929 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
4930 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
4931 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
4932 }
4933 }
4934 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4936 match value {
4937 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
4938 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
4939 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
4940 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
4941 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
4942 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
4943 _ => None,
4944 }
4945 }
4946}
4947#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4949#[repr(i32)]
4950pub enum OrgType {
4951 Unspecified = 0,
4952 Standard = 1,
4953 Sandbox = 2,
4954 Staff = 3,
4957}
4958impl OrgType {
4959 pub fn as_str_name(&self) -> &'static str {
4964 match self {
4965 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
4966 Self::Standard => "ORG_TYPE_STANDARD",
4967 Self::Sandbox => "ORG_TYPE_SANDBOX",
4968 Self::Staff => "ORG_TYPE_STAFF",
4969 }
4970 }
4971 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4973 match value {
4974 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4975 "ORG_TYPE_STANDARD" => Some(Self::Standard),
4976 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
4977 "ORG_TYPE_STAFF" => Some(Self::Staff),
4978 _ => None,
4979 }
4980 }
4981}
4982#[derive(Clone, PartialEq, ::prost::Message)]
4986pub struct UserRenderContext {
4987 #[prost(string, tag="1")]
4989 pub user_id: ::prost::alloc::string::String,
4990 #[prost(map="string, string", tag="2")]
4993 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4994}
4995#[derive(Clone, PartialEq, ::prost::Message)]
4997pub struct RenderBatchRequest {
4998 #[prost(string, tag="1")]
5000 pub template_id: ::prost::alloc::string::String,
5001 #[prost(int32, tag="2")]
5003 pub version: i32,
5004 #[prost(message, repeated, tag="3")]
5007 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
5008}
5009#[derive(Clone, PartialEq, ::prost::Message)]
5012pub struct RenderBatchResponse {
5013 #[prost(string, tag="1")]
5015 pub user_id: ::prost::alloc::string::String,
5016 #[prost(message, optional, tag="2")]
5018 pub message: ::core::option::Option<Message>,
5019 #[prost(string, tag="3")]
5021 pub error: ::prost::alloc::string::String,
5022}
5023#[derive(Clone, PartialEq, ::prost::Message)]
5028pub struct SessionRecording {
5029 #[prost(string, tag="1")]
5031 pub id: ::prost::alloc::string::String,
5032 #[prost(message, optional, tag="2")]
5034 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
5035 #[prost(message, optional, tag="3")]
5037 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
5038 #[prost(int32, tag="4")]
5040 pub duration_seconds: i32,
5041 #[prost(float, tag="5")]
5043 pub activity_score: f32,
5044}
5045#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5047pub struct ListSessionRecordingsRequest {
5048 #[prost(string, tag="1")]
5051 pub campaign_id: ::prost::alloc::string::String,
5052 #[prost(message, optional, tag="2")]
5054 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
5055 #[prost(message, optional, tag="3")]
5057 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
5058 #[prost(message, optional, tag="4")]
5060 pub pagination: ::core::option::Option<Pagination>,
5061}
5062#[derive(Clone, PartialEq, ::prost::Message)]
5064pub struct ListSessionRecordingsResponse {
5065 #[prost(message, repeated, tag="1")]
5067 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
5068 #[prost(message, optional, tag="2")]
5070 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5071}
5072#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5074pub struct GetSessionSnapshotsRequest {
5075 #[prost(string, tag="1")]
5078 pub recording_id: ::prost::alloc::string::String,
5079}
5080#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5082pub struct GetSessionSnapshotsResponse {
5083 #[prost(string, tag="1")]
5086 pub snapshot_data: ::prost::alloc::string::String,
5087}
5088#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5092pub struct ListRolesRequest {
5093}
5094#[derive(Clone, PartialEq, ::prost::Message)]
5096pub struct ListRolesResponse {
5097 #[prost(message, repeated, tag="1")]
5099 pub roles: ::prost::alloc::vec::Vec<Role>,
5100}
5101#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5103pub struct CreateRoleRequest {
5104 #[prost(string, tag="1")]
5107 pub name: ::prost::alloc::string::String,
5108 #[prost(enumeration="Permission", repeated, tag="2")]
5111 pub permissions: ::prost::alloc::vec::Vec<i32>,
5112}
5113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5115pub struct CreateRoleResponse {
5116 #[prost(message, optional, tag="1")]
5118 pub role: ::core::option::Option<Role>,
5119}
5120#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5122pub struct UpdateRoleRequest {
5123 #[prost(string, tag="1")]
5125 pub role_id: ::prost::alloc::string::String,
5126 #[prost(string, tag="2")]
5128 pub name: ::prost::alloc::string::String,
5129 #[prost(enumeration="Permission", repeated, tag="3")]
5133 pub permissions: ::prost::alloc::vec::Vec<i32>,
5134}
5135#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5137pub struct UpdateRoleResponse {
5138 #[prost(message, optional, tag="1")]
5140 pub role: ::core::option::Option<Role>,
5141}
5142#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5144pub struct DeleteRoleRequest {
5145 #[prost(string, tag="1")]
5147 pub role_id: ::prost::alloc::string::String,
5148}
5149#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5151pub struct DeleteRoleResponse {
5152}
5153#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5159pub struct SamlAttributeNames {
5160 #[prost(string, tag="1")]
5162 pub email: ::prost::alloc::string::String,
5163 #[prost(string, tag="2")]
5165 pub given_name: ::prost::alloc::string::String,
5166 #[prost(string, tag="3")]
5168 pub family_name: ::prost::alloc::string::String,
5169}
5170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5172pub struct SsoProvider {
5173 #[prost(string, tag="1")]
5175 pub id: ::prost::alloc::string::String,
5176 #[prost(string, tag="2")]
5179 pub domain: ::prost::alloc::string::String,
5180 #[prost(enumeration="SsoProviderType", tag="3")]
5182 pub r#type: i32,
5183 #[prost(string, tag="4")]
5186 pub metadata_url: ::prost::alloc::string::String,
5187 #[prost(string, tag="5")]
5190 pub idp_provider_name: ::prost::alloc::string::String,
5191 #[prost(message, optional, tag="6")]
5193 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5194 #[prost(message, optional, tag="7")]
5196 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5197 #[prost(message, optional, tag="8")]
5199 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5200}
5201#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5204pub struct CheckSsoByDomainRequest {
5205 #[prost(string, tag="1")]
5208 pub email: ::prost::alloc::string::String,
5209}
5210#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5212pub struct CheckSsoByDomainResponse {
5213 #[prost(bool, tag="1")]
5215 pub sso_enabled: bool,
5216 #[prost(string, tag="2")]
5219 pub provider_name: ::prost::alloc::string::String,
5220}
5221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5223pub struct CreateSsoProviderRequest {
5224 #[prost(string, tag="1")]
5227 pub domain: ::prost::alloc::string::String,
5228 #[prost(enumeration="SsoProviderType", tag="2")]
5230 pub r#type: i32,
5231 #[prost(string, tag="3")]
5234 pub metadata_url: ::prost::alloc::string::String,
5235 #[prost(message, optional, tag="4")]
5238 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
5239}
5240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5242pub struct CreateSsoProviderResponse {
5243 #[prost(message, optional, tag="1")]
5245 pub provider: ::core::option::Option<SsoProvider>,
5246}
5247#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5250pub struct GetSsoProviderRequest {
5251}
5252#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5254pub struct GetSsoProviderResponse {
5255 #[prost(message, optional, tag="1")]
5257 pub provider: ::core::option::Option<SsoProvider>,
5258}
5259#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5261pub struct DeleteSsoProviderRequest {
5262 #[prost(string, tag="1")]
5264 pub provider_id: ::prost::alloc::string::String,
5265}
5266#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5268pub struct DeleteSsoProviderResponse {
5269}
5270#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5274#[repr(i32)]
5275pub enum SsoProviderType {
5276 Unspecified = 0,
5278 Saml = 1,
5280 Oidc = 2,
5282}
5283impl SsoProviderType {
5284 pub fn as_str_name(&self) -> &'static str {
5289 match self {
5290 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
5291 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
5292 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
5293 }
5294 }
5295 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5297 match value {
5298 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5299 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
5300 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
5301 _ => None,
5302 }
5303 }
5304}
5305#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5311pub struct Team {
5312 #[prost(string, tag="1")]
5314 pub id: ::prost::alloc::string::String,
5315 #[prost(string, tag="2")]
5318 pub name: ::prost::alloc::string::String,
5319 #[prost(string, tag="3")]
5322 pub description: ::prost::alloc::string::String,
5323 #[prost(int32, tag="4")]
5325 pub member_count: i32,
5326 #[prost(message, optional, tag="5")]
5328 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5329 #[prost(message, optional, tag="6")]
5331 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5332 #[prost(bool, tag="7")]
5334 pub is_default: bool,
5335 #[prost(string, tag="8")]
5337 pub created_by: ::prost::alloc::string::String,
5338}
5339#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5341pub struct CreateTeamRequest {
5342 #[prost(string, tag="1")]
5345 pub name: ::prost::alloc::string::String,
5346 #[prost(string, tag="2")]
5349 pub description: ::prost::alloc::string::String,
5350}
5351#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5353pub struct CreateTeamResponse {
5354 #[prost(message, optional, tag="1")]
5356 pub team: ::core::option::Option<Team>,
5357}
5358#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5360pub struct GetTeamRequest {
5361 #[prost(string, tag="1")]
5363 pub team_id: ::prost::alloc::string::String,
5364}
5365#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5367pub struct GetTeamResponse {
5368 #[prost(message, optional, tag="1")]
5370 pub team: ::core::option::Option<Team>,
5371}
5372#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5374pub struct ListTeamsRequest {
5375 #[prost(message, optional, tag="1")]
5377 pub pagination: ::core::option::Option<Pagination>,
5378}
5379#[derive(Clone, PartialEq, ::prost::Message)]
5381pub struct ListTeamsResponse {
5382 #[prost(message, repeated, tag="1")]
5384 pub teams: ::prost::alloc::vec::Vec<Team>,
5385 #[prost(message, optional, tag="2")]
5387 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5388}
5389#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5391pub struct UpdateTeamRequest {
5392 #[prost(string, tag="1")]
5394 pub team_id: ::prost::alloc::string::String,
5395 #[prost(string, tag="2")]
5399 pub name: ::prost::alloc::string::String,
5400 #[prost(string, tag="3")]
5403 pub description: ::prost::alloc::string::String,
5404}
5405#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5407pub struct UpdateTeamResponse {
5408 #[prost(message, optional, tag="1")]
5410 pub team: ::core::option::Option<Team>,
5411}
5412#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5414pub struct DeleteTeamRequest {
5415 #[prost(string, tag="1")]
5418 pub team_id: ::prost::alloc::string::String,
5419}
5420#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5422pub struct DeleteTeamResponse {
5423}
5424#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5426pub struct AddTeamMembersRequest {
5427 #[prost(string, tag="1")]
5429 pub team_id: ::prost::alloc::string::String,
5430 #[prost(string, repeated, tag="2")]
5434 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5435}
5436#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5438pub struct AddTeamMembersResponse {
5439 #[prost(message, optional, tag="1")]
5441 pub team: ::core::option::Option<Team>,
5442}
5443#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5445pub struct RemoveTeamMembersRequest {
5446 #[prost(string, tag="1")]
5448 pub team_id: ::prost::alloc::string::String,
5449 #[prost(string, repeated, tag="2")]
5452 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5453}
5454#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5456pub struct RemoveTeamMembersResponse {
5457 #[prost(message, optional, tag="1")]
5459 pub team: ::core::option::Option<Team>,
5460}
5461#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5463pub struct ListTeamMembersRequest {
5464 #[prost(string, tag="1")]
5466 pub team_id: ::prost::alloc::string::String,
5467 #[prost(message, optional, tag="2")]
5469 pub pagination: ::core::option::Option<Pagination>,
5470}
5471#[derive(Clone, PartialEq, ::prost::Message)]
5473pub struct ListTeamMembersResponse {
5474 #[prost(message, repeated, tag="1")]
5476 pub users: ::prost::alloc::vec::Vec<User>,
5477 #[prost(message, optional, tag="2")]
5479 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5480}
5481#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5485pub struct TemplateVariable {
5486 #[prost(string, tag="1")]
5489 pub name: ::prost::alloc::string::String,
5490 #[prost(string, tag="2")]
5493 pub description: ::prost::alloc::string::String,
5494 #[prost(bool, tag="3")]
5496 pub required: bool,
5497 #[prost(enumeration="TemplateVariableSource", tag="4")]
5499 pub source: i32,
5500 #[prost(string, tag="5")]
5503 pub default_value: ::prost::alloc::string::String,
5504 #[prost(bool, tag="6")]
5507 pub pii: bool,
5508}
5509#[derive(Clone, PartialEq, ::prost::Message)]
5512pub struct Template {
5513 #[prost(string, tag="1")]
5515 pub id: ::prost::alloc::string::String,
5516 #[prost(string, tag="2")]
5519 pub name: ::prost::alloc::string::String,
5520 #[prost(string, tag="3")]
5523 pub body: ::prost::alloc::string::String,
5524 #[prost(message, repeated, tag="4")]
5526 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5527 #[prost(int32, tag="5")]
5529 pub version: i32,
5530 #[prost(message, optional, tag="6")]
5532 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5533 #[prost(message, optional, tag="7")]
5535 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
5536 #[prost(string, tag="8")]
5540 pub title: ::prost::alloc::string::String,
5541 #[prost(enumeration="TemplateType", tag="9")]
5544 pub r#type: i32,
5545 #[prost(string, tag="10")]
5549 pub source_locale: ::prost::alloc::string::String,
5550}
5551#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5554pub struct TemplateTranslation {
5555 #[prost(string, tag="1")]
5557 pub id: ::prost::alloc::string::String,
5558 #[prost(string, tag="2")]
5560 pub template_id: ::prost::alloc::string::String,
5561 #[prost(int32, tag="3")]
5563 pub version: i32,
5564 #[prost(string, tag="4")]
5566 pub locale: ::prost::alloc::string::String,
5567 #[prost(string, tag="5")]
5570 pub title: ::prost::alloc::string::String,
5571 #[prost(string, tag="6")]
5574 pub body: ::prost::alloc::string::String,
5575 #[prost(enumeration="TranslationStatus", tag="7")]
5577 pub status: i32,
5578 #[prost(string, tag="8")]
5580 pub translated_by: ::prost::alloc::string::String,
5581 #[prost(string, tag="9")]
5583 pub reviewed_by: ::prost::alloc::string::String,
5584 #[prost(message, optional, tag="10")]
5586 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
5587 #[prost(message, optional, tag="11")]
5589 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
5590}
5591#[derive(Clone, PartialEq, ::prost::Message)]
5593pub struct CreateTemplateRequest {
5594 #[prost(string, tag="1")]
5597 pub name: ::prost::alloc::string::String,
5598 #[prost(string, tag="2")]
5601 pub body: ::prost::alloc::string::String,
5602 #[prost(message, repeated, tag="3")]
5604 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5605 #[prost(string, tag="4")]
5608 pub title: ::prost::alloc::string::String,
5609 #[prost(enumeration="TemplateType", tag="5")]
5611 pub r#type: i32,
5612 #[prost(string, tag="6")]
5615 pub source_locale: ::prost::alloc::string::String,
5616}
5617#[derive(Clone, PartialEq, ::prost::Message)]
5619pub struct CreateTemplateResponse {
5620 #[prost(message, optional, tag="1")]
5622 pub template: ::core::option::Option<Template>,
5623}
5624#[derive(Clone, PartialEq, ::prost::Message)]
5626pub struct UpdateTemplateRequest {
5627 #[prost(string, tag="1")]
5629 pub template_id: ::prost::alloc::string::String,
5630 #[prost(string, tag="2")]
5633 pub body: ::prost::alloc::string::String,
5634 #[prost(message, repeated, tag="3")]
5636 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
5637}
5638#[derive(Clone, PartialEq, ::prost::Message)]
5640pub struct UpdateTemplateResponse {
5641 #[prost(message, optional, tag="1")]
5643 pub template: ::core::option::Option<Template>,
5644}
5645#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5647pub struct GetTemplateRequest {
5648 #[prost(string, tag="1")]
5650 pub template_id: ::prost::alloc::string::String,
5651 #[prost(int32, tag="2")]
5653 pub version: i32,
5654}
5655#[derive(Clone, PartialEq, ::prost::Message)]
5657pub struct GetTemplateResponse {
5658 #[prost(message, optional, tag="1")]
5660 pub template: ::core::option::Option<Template>,
5661}
5662#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5664pub struct ListTemplatesRequest {
5665 #[prost(message, optional, tag="1")]
5667 pub pagination: ::core::option::Option<Pagination>,
5668 #[prost(enumeration="TemplateType", tag="2")]
5670 pub r#type: i32,
5671}
5672#[derive(Clone, PartialEq, ::prost::Message)]
5674pub struct ListTemplatesResponse {
5675 #[prost(message, repeated, tag="1")]
5677 pub templates: ::prost::alloc::vec::Vec<Template>,
5678 #[prost(message, optional, tag="2")]
5680 pub pagination_meta: ::core::option::Option<PaginationMeta>,
5681}
5682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5684pub struct CreateTemplateTranslationRequest {
5685 #[prost(string, tag="1")]
5687 pub template_id: ::prost::alloc::string::String,
5688 #[prost(int32, tag="2")]
5690 pub version: i32,
5691 #[prost(string, tag="3")]
5693 pub locale: ::prost::alloc::string::String,
5694 #[prost(string, tag="4")]
5696 pub title: ::prost::alloc::string::String,
5697 #[prost(string, tag="5")]
5699 pub body: ::prost::alloc::string::String,
5700 #[prost(string, tag="6")]
5702 pub translated_by: ::prost::alloc::string::String,
5703 #[prost(enumeration="TranslationStatus", tag="7")]
5705 pub status: i32,
5706}
5707#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5709pub struct CreateTemplateTranslationResponse {
5710 #[prost(message, optional, tag="1")]
5712 pub translation: ::core::option::Option<TemplateTranslation>,
5713}
5714#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5716pub struct UpdateTemplateTranslationRequest {
5717 #[prost(string, tag="1")]
5719 pub translation_id: ::prost::alloc::string::String,
5720 #[prost(string, tag="2")]
5722 pub title: ::prost::alloc::string::String,
5723 #[prost(string, tag="3")]
5725 pub body: ::prost::alloc::string::String,
5726 #[prost(enumeration="TranslationStatus", tag="4")]
5728 pub status: i32,
5729}
5730#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5732pub struct UpdateTemplateTranslationResponse {
5733 #[prost(message, optional, tag="1")]
5735 pub translation: ::core::option::Option<TemplateTranslation>,
5736}
5737#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5739pub struct ListTemplateTranslationsRequest {
5740 #[prost(string, tag="1")]
5742 pub template_id: ::prost::alloc::string::String,
5743 #[prost(int32, tag="2")]
5745 pub version: i32,
5746}
5747#[derive(Clone, PartialEq, ::prost::Message)]
5749pub struct ListTemplateTranslationsResponse {
5750 #[prost(message, repeated, tag="1")]
5752 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
5753}
5754#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5756pub struct ApproveTemplateTranslationRequest {
5757 #[prost(string, tag="1")]
5759 pub translation_id: ::prost::alloc::string::String,
5760}
5761#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5763pub struct ApproveTemplateTranslationResponse {
5764 #[prost(message, optional, tag="1")]
5766 pub translation: ::core::option::Option<TemplateTranslation>,
5767}
5768#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5772#[repr(i32)]
5773pub enum TemplateType {
5774 Unspecified = 0,
5776 Markdown = 1,
5778 Rich = 2,
5780 Html = 3,
5782}
5783impl TemplateType {
5784 pub fn as_str_name(&self) -> &'static str {
5789 match self {
5790 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
5791 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
5792 Self::Rich => "TEMPLATE_TYPE_RICH",
5793 Self::Html => "TEMPLATE_TYPE_HTML",
5794 }
5795 }
5796 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5798 match value {
5799 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
5800 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
5801 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
5802 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
5803 _ => None,
5804 }
5805 }
5806}
5807#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5809#[repr(i32)]
5810pub enum TemplateVariableSource {
5811 Unspecified = 0,
5813 Profile = 1,
5815 Custom = 2,
5817}
5818impl TemplateVariableSource {
5819 pub fn as_str_name(&self) -> &'static str {
5824 match self {
5825 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
5826 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
5827 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
5828 }
5829 }
5830 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5832 match value {
5833 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
5834 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
5835 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
5836 _ => None,
5837 }
5838 }
5839}
5840#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5842#[repr(i32)]
5843pub enum TranslationStatus {
5844 Unspecified = 0,
5845 Draft = 1,
5847 AiTranslated = 2,
5849 InReview = 3,
5851 Approved = 4,
5853}
5854impl TranslationStatus {
5855 pub fn as_str_name(&self) -> &'static str {
5860 match self {
5861 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
5862 Self::Draft => "TRANSLATION_STATUS_DRAFT",
5863 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
5864 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
5865 Self::Approved => "TRANSLATION_STATUS_APPROVED",
5866 }
5867 }
5868 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5870 match value {
5871 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
5872 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
5873 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
5874 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
5875 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
5876 _ => None,
5877 }
5878 }
5879}
5880#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5885pub struct DeeplinkTokenPayload {
5886 #[prost(string, tag="1")]
5889 pub campaign_id: ::prost::alloc::string::String,
5890 #[prost(string, tag="2")]
5896 pub recipient_user_id: ::prost::alloc::string::String,
5897 #[prost(enumeration="ChannelStepKind", tag="3")]
5901 pub step_kind: i32,
5902 #[prost(message, optional, tag="4")]
5905 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5906}
5907#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5908pub struct SignDeeplinkTokenRequest {
5909 #[prost(string, tag="1")]
5912 pub campaign_id: ::prost::alloc::string::String,
5913 #[prost(string, tag="2")]
5916 pub recipient_user_id: ::prost::alloc::string::String,
5917 #[prost(enumeration="ChannelStepKind", tag="3")]
5919 pub step_kind: i32,
5920 #[prost(int64, tag="4")]
5925 pub ttl_seconds: i64,
5926}
5927#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5928pub struct SignDeeplinkTokenResponse {
5929 #[prost(string, tag="1")]
5935 pub token: ::prost::alloc::string::String,
5936 #[prost(message, optional, tag="2")]
5939 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
5940 #[prost(int32, tag="3")]
5944 pub key_version: i32,
5945}
5946#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5947pub struct ValidateDeeplinkTokenRequest {
5948 #[prost(string, tag="1")]
5951 pub token: ::prost::alloc::string::String,
5952 #[prost(string, tag="2")]
5959 pub campaign_id: ::prost::alloc::string::String,
5960}
5961#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5962pub struct ValidateDeeplinkTokenResponse {
5963 #[prost(bool, tag="1")]
5966 pub valid: bool,
5967 #[prost(enumeration="ValidationFailureReason", tag="2")]
5971 pub failure_reason: i32,
5972 #[prost(message, optional, tag="3")]
5976 pub payload: ::core::option::Option<DeeplinkTokenPayload>,
5977}
5978#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5982#[repr(i32)]
5983pub enum ValidationFailureReason {
5984 Unspecified = 0,
5985 InvalidSignature = 1,
5988 Expired = 2,
5990 KeyRetired = 3,
5996 Malformed = 4,
6000}
6001impl ValidationFailureReason {
6002 pub fn as_str_name(&self) -> &'static str {
6007 match self {
6008 Self::Unspecified => "VALIDATION_FAILURE_REASON_UNSPECIFIED",
6009 Self::InvalidSignature => "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE",
6010 Self::Expired => "VALIDATION_FAILURE_REASON_EXPIRED",
6011 Self::KeyRetired => "VALIDATION_FAILURE_REASON_KEY_RETIRED",
6012 Self::Malformed => "VALIDATION_FAILURE_REASON_MALFORMED",
6013 }
6014 }
6015 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6017 match value {
6018 "VALIDATION_FAILURE_REASON_UNSPECIFIED" => Some(Self::Unspecified),
6019 "VALIDATION_FAILURE_REASON_INVALID_SIGNATURE" => Some(Self::InvalidSignature),
6020 "VALIDATION_FAILURE_REASON_EXPIRED" => Some(Self::Expired),
6021 "VALIDATION_FAILURE_REASON_KEY_RETIRED" => Some(Self::KeyRetired),
6022 "VALIDATION_FAILURE_REASON_MALFORMED" => Some(Self::Malformed),
6023 _ => None,
6024 }
6025 }
6026}
6027include!("pidgr.v1.tonic.rs");
6028