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)]
100pub struct Role {
101 #[prost(string, tag="1")]
103 pub id: ::prost::alloc::string::String,
104 #[prost(string, tag="2")]
106 pub slug: ::prost::alloc::string::String,
107 #[prost(string, tag="3")]
109 pub name: ::prost::alloc::string::String,
110 #[prost(bool, tag="4")]
112 pub is_default: bool,
113 #[prost(enumeration="Permission", repeated, tag="5")]
115 pub permissions: ::prost::alloc::vec::Vec<i32>,
116 #[prost(bool, tag="6")]
118 pub is_system: bool,
119}
120#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
124pub struct Pagination {
125 #[prost(int32, tag="1")]
127 pub page_size: i32,
128 #[prost(string, tag="2")]
130 pub page_token: ::prost::alloc::string::String,
131}
132#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
134pub struct PaginationMeta {
135 #[prost(string, tag="1")]
137 pub next_page_token: ::prost::alloc::string::String,
138 #[prost(int32, tag="2")]
140 pub total_count: i32,
141}
142#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
146pub struct MessageAction {
147 #[prost(string, tag="1")]
149 pub id: ::prost::alloc::string::String,
150 #[prost(enumeration="ActionType", tag="2")]
152 pub r#type: i32,
153 #[prost(string, tag="3")]
156 pub label: ::prost::alloc::string::String,
157}
158#[derive(Clone, PartialEq, ::prost::Message)]
161pub struct Message {
162 #[prost(string, tag="1")]
164 pub content_id: ::prost::alloc::string::String,
165 #[prost(string, tag="2")]
167 pub campaign_id: ::prost::alloc::string::String,
168 #[prost(string, tag="3")]
171 pub sender_name: ::prost::alloc::string::String,
172 #[prost(string, tag="4")]
175 pub summary: ::prost::alloc::string::String,
176 #[prost(string, tag="5")]
179 pub preview: ::prost::alloc::string::String,
180 #[prost(string, tag="6")]
183 pub body: ::prost::alloc::string::String,
184 #[prost(bool, tag="7")]
186 pub critical: bool,
187 #[prost(message, repeated, tag="8")]
189 pub actions: ::prost::alloc::vec::Vec<MessageAction>,
190 #[prost(message, optional, tag="9")]
192 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
193 #[prost(string, tag="10")]
196 pub title: ::prost::alloc::string::String,
197}
198#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct WorkflowDefinition {
205 #[prost(message, repeated, tag="1")]
208 pub steps: ::prost::alloc::vec::Vec<WorkflowStep>,
209}
210#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct WorkflowStep {
213 #[prost(string, tag="1")]
215 pub id: ::prost::alloc::string::String,
216 #[prost(enumeration="StepType", tag="2")]
218 pub r#type: i32,
219 #[prost(map="string, string", tag="7")]
222 pub transitions: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
223 #[prost(oneof="workflow_step::Config", tags="3, 4, 5, 6, 8")]
225 pub config: ::core::option::Option<workflow_step::Config>,
226}
227pub mod workflow_step {
229 #[derive(Clone, PartialEq, ::prost::Oneof)]
231 pub enum Config {
232 #[prost(message, tag="3")]
234 SendNotification(super::SendNotificationConfig),
235 #[prost(message, tag="4")]
237 DeadlineCheck(super::DeadlineCheckConfig),
238 #[prost(message, tag="5")]
240 SendReminder(super::SendReminderConfig),
241 #[prost(message, tag="6")]
243 CallWebhook(super::CallWebhookConfig),
244 #[prost(message, tag="8")]
246 EscalateConfig(super::EscalateConfig),
247 }
248}
249#[derive(Clone, PartialEq, ::prost::Message)]
251pub struct SendNotificationConfig {
252 #[prost(string, tag="1")]
255 pub r#type: ::prost::alloc::string::String,
256 #[prost(string, tag="2")]
260 pub template_id: ::prost::alloc::string::String,
261 #[prost(int32, tag="3")]
264 pub template_version: i32,
265 #[prost(string, tag="4")]
268 pub action_label: ::prost::alloc::string::String,
269 #[prost(enumeration="ActionType", tag="5")]
271 pub action_type: i32,
272 #[prost(map="string, string", tag="6")]
275 pub custom_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
276}
277#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
281pub struct DeadlineCheckConfig {
282 #[prost(string, tag="1")]
285 pub delay: ::prost::alloc::string::String,
286}
287#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
289pub struct SendReminderConfig {
290 #[prost(string, tag="1")]
293 pub r#type: ::prost::alloc::string::String,
294}
295#[derive(Clone, PartialEq, ::prost::Message)]
297pub struct CallWebhookConfig {
298 #[prost(string, tag="1")]
301 pub name: ::prost::alloc::string::String,
302 #[prost(string, tag="2")]
307 pub url: ::prost::alloc::string::String,
308 #[prost(map="string, string", tag="3")]
311 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
312}
313#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
315pub struct EscalationTarget {
316 #[prost(enumeration="EscalationTargetType", tag="1")]
318 pub r#type: i32,
319 #[prost(string, tag="2")]
322 pub target_id: ::prost::alloc::string::String,
323}
324#[derive(Clone, PartialEq, ::prost::Message)]
326pub struct EscalateConfig {
327 #[prost(enumeration="EscalationCondition", tag="1")]
329 pub condition: i32,
330 #[prost(message, repeated, tag="2")]
332 pub targets: ::prost::alloc::vec::Vec<EscalationTarget>,
333 #[prost(int32, tag="3")]
336 pub repeat_count: i32,
337 #[prost(int32, tag="4")]
339 pub repeat_interval_minutes: i32,
340 #[prost(enumeration="EscalateMode", tag="5")]
342 pub mode: i32,
343}
344#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
348#[repr(i32)]
349pub enum CampaignStatus {
350 Unspecified = 0,
352 Created = 1,
354 Running = 2,
356 Completed = 3,
358 Failed = 4,
360 Cancelled = 5,
362}
363impl CampaignStatus {
364 pub fn as_str_name(&self) -> &'static str {
369 match self {
370 Self::Unspecified => "CAMPAIGN_STATUS_UNSPECIFIED",
371 Self::Created => "CAMPAIGN_STATUS_CREATED",
372 Self::Running => "CAMPAIGN_STATUS_RUNNING",
373 Self::Completed => "CAMPAIGN_STATUS_COMPLETED",
374 Self::Failed => "CAMPAIGN_STATUS_FAILED",
375 Self::Cancelled => "CAMPAIGN_STATUS_CANCELLED",
376 }
377 }
378 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
380 match value {
381 "CAMPAIGN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
382 "CAMPAIGN_STATUS_CREATED" => Some(Self::Created),
383 "CAMPAIGN_STATUS_RUNNING" => Some(Self::Running),
384 "CAMPAIGN_STATUS_COMPLETED" => Some(Self::Completed),
385 "CAMPAIGN_STATUS_FAILED" => Some(Self::Failed),
386 "CAMPAIGN_STATUS_CANCELLED" => Some(Self::Cancelled),
387 _ => None,
388 }
389 }
390}
391#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
393#[repr(i32)]
394pub enum DeliveryStatus {
395 Unspecified = 0,
397 Pending = 1,
399 Sent = 2,
401 Delivered = 3,
403 Acknowledged = 4,
405 Missed = 5,
407 NoDevice = 6,
409 Failed = 7,
411}
412impl DeliveryStatus {
413 pub fn as_str_name(&self) -> &'static str {
418 match self {
419 Self::Unspecified => "DELIVERY_STATUS_UNSPECIFIED",
420 Self::Pending => "DELIVERY_STATUS_PENDING",
421 Self::Sent => "DELIVERY_STATUS_SENT",
422 Self::Delivered => "DELIVERY_STATUS_DELIVERED",
423 Self::Acknowledged => "DELIVERY_STATUS_ACKNOWLEDGED",
424 Self::Missed => "DELIVERY_STATUS_MISSED",
425 Self::NoDevice => "DELIVERY_STATUS_NO_DEVICE",
426 Self::Failed => "DELIVERY_STATUS_FAILED",
427 }
428 }
429 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
431 match value {
432 "DELIVERY_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
433 "DELIVERY_STATUS_PENDING" => Some(Self::Pending),
434 "DELIVERY_STATUS_SENT" => Some(Self::Sent),
435 "DELIVERY_STATUS_DELIVERED" => Some(Self::Delivered),
436 "DELIVERY_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
437 "DELIVERY_STATUS_MISSED" => Some(Self::Missed),
438 "DELIVERY_STATUS_NO_DEVICE" => Some(Self::NoDevice),
439 "DELIVERY_STATUS_FAILED" => Some(Self::Failed),
440 _ => None,
441 }
442 }
443}
444#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
446#[repr(i32)]
447pub enum Platform {
448 Unspecified = 0,
450 Ios = 1,
452 Android = 2,
454}
455impl Platform {
456 pub fn as_str_name(&self) -> &'static str {
461 match self {
462 Self::Unspecified => "PLATFORM_UNSPECIFIED",
463 Self::Ios => "PLATFORM_IOS",
464 Self::Android => "PLATFORM_ANDROID",
465 }
466 }
467 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
469 match value {
470 "PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
471 "PLATFORM_IOS" => Some(Self::Ios),
472 "PLATFORM_ANDROID" => Some(Self::Android),
473 _ => None,
474 }
475 }
476}
477#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
482#[repr(i32)]
483pub enum Permission {
484 Unspecified = 0,
486 OrgRead = 1,
488 OrgWrite = 2,
490 MembersRead = 3,
492 MembersInvite = 4,
494 MembersManage = 5,
496 CampaignsRead = 6,
498 CampaignsWrite = 7,
500 CampaignsStart = 8,
502 TemplatesRead = 9,
504 TemplatesWrite = 10,
506 InboxRead = 11,
508 InboxAct = 12,
510 GroupsAllRead = 13,
512 GroupsWrite = 14,
514 GroupsAllWrite = 15,
516 TeamsAllRead = 16,
518 TeamsWrite = 17,
520 TeamsAllWrite = 18,
522 PrivacyRead = 19,
524 PrivacyWrite = 20,
526 AuditRead = 21,
528 TemplatesReview = 22,
530 PlatformSupport = 23,
533 PlatformAccessCodes = 24,
536 PlatformProvision = 25,
539}
540impl Permission {
541 pub fn as_str_name(&self) -> &'static str {
546 match self {
547 Self::Unspecified => "PERMISSION_UNSPECIFIED",
548 Self::OrgRead => "PERMISSION_ORG_READ",
549 Self::OrgWrite => "PERMISSION_ORG_WRITE",
550 Self::MembersRead => "PERMISSION_MEMBERS_READ",
551 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
552 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
553 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
554 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
555 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
556 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
557 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
558 Self::InboxRead => "PERMISSION_INBOX_READ",
559 Self::InboxAct => "PERMISSION_INBOX_ACT",
560 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
561 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
562 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
563 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
564 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
565 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
566 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
567 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
568 Self::AuditRead => "PERMISSION_AUDIT_READ",
569 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
570 Self::PlatformSupport => "PERMISSION_PLATFORM_SUPPORT",
571 Self::PlatformAccessCodes => "PERMISSION_PLATFORM_ACCESS_CODES",
572 Self::PlatformProvision => "PERMISSION_PLATFORM_PROVISION",
573 }
574 }
575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
577 match value {
578 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
579 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
580 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
581 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
582 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
583 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
584 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
585 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
586 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
587 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
588 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
589 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
590 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
591 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
592 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
593 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
594 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
595 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
596 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
597 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
598 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
599 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
600 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
601 "PERMISSION_PLATFORM_SUPPORT" => Some(Self::PlatformSupport),
602 "PERMISSION_PLATFORM_ACCESS_CODES" => Some(Self::PlatformAccessCodes),
603 "PERMISSION_PLATFORM_PROVISION" => Some(Self::PlatformProvision),
604 _ => None,
605 }
606 }
607}
608#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
610#[repr(i32)]
611pub enum ActionType {
612 Unspecified = 0,
614 Ack = 1,
616}
617impl ActionType {
618 pub fn as_str_name(&self) -> &'static str {
623 match self {
624 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
625 Self::Ack => "ACTION_TYPE_ACK",
626 }
627 }
628 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
630 match value {
631 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
632 "ACTION_TYPE_ACK" => Some(Self::Ack),
633 _ => None,
634 }
635 }
636}
637#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
639#[repr(i32)]
640pub enum StepType {
641 Unspecified = 0,
643 SendNotification = 1,
645 DeadlineCheck = 2,
647 SendReminder = 3,
649 CallWebhook = 4,
651 MarkMissed = 5,
653 Escalate = 6,
655}
656impl StepType {
657 pub fn as_str_name(&self) -> &'static str {
662 match self {
663 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
664 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
665 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
666 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
667 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
668 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
669 Self::Escalate => "STEP_TYPE_ESCALATE",
670 }
671 }
672 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
674 match value {
675 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
676 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
677 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
678 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
679 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
680 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
681 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
682 _ => None,
683 }
684 }
685}
686#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
688#[repr(i32)]
689pub enum EscalationCondition {
690 Unspecified = 0,
691 IfNotAcked = 1,
693 IfNotClosed = 2,
695}
696impl EscalationCondition {
697 pub fn as_str_name(&self) -> &'static str {
702 match self {
703 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
704 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
705 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
706 }
707 }
708 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
710 match value {
711 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
712 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
713 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
714 _ => None,
715 }
716 }
717}
718#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
720#[repr(i32)]
721pub enum EscalationTargetType {
722 Unspecified = 0,
723 User = 1,
725 Group = 2,
727 Manager = 3,
729 Role = 4,
731}
732impl EscalationTargetType {
733 pub fn as_str_name(&self) -> &'static str {
738 match self {
739 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
740 Self::User => "ESCALATION_TARGET_TYPE_USER",
741 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
742 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
743 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
744 }
745 }
746 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
748 match value {
749 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
750 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
751 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
752 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
753 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
754 _ => None,
755 }
756 }
757}
758#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
760#[repr(i32)]
761pub enum EscalateMode {
762 Unspecified = 0,
764 Deliver = 1,
766 AlertOnly = 2,
768}
769impl EscalateMode {
770 pub fn as_str_name(&self) -> &'static str {
775 match self {
776 Self::Unspecified => "ESCALATE_MODE_UNSPECIFIED",
777 Self::Deliver => "ESCALATE_MODE_DELIVER",
778 Self::AlertOnly => "ESCALATE_MODE_ALERT_ONLY",
779 }
780 }
781 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
783 match value {
784 "ESCALATE_MODE_UNSPECIFIED" => Some(Self::Unspecified),
785 "ESCALATE_MODE_DELIVER" => Some(Self::Deliver),
786 "ESCALATE_MODE_ALERT_ONLY" => Some(Self::AlertOnly),
787 _ => None,
788 }
789 }
790}
791#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
795pub struct ApiKey {
796 #[prost(string, tag="1")]
798 pub id: ::prost::alloc::string::String,
799 #[prost(string, tag="2")]
801 pub name: ::prost::alloc::string::String,
802 #[prost(string, tag="3")]
805 pub key_prefix: ::prost::alloc::string::String,
806 #[prost(enumeration="Permission", repeated, tag="4")]
808 pub permissions: ::prost::alloc::vec::Vec<i32>,
809 #[prost(message, optional, tag="5")]
811 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
812 #[prost(message, optional, tag="6")]
814 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
815 #[prost(message, optional, tag="7")]
817 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
818 #[prost(enumeration="KeyType", tag="8")]
821 pub key_type: i32,
822}
823#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
825pub struct CreateApiKeyRequest {
826 #[prost(string, tag="1")]
828 pub name: ::prost::alloc::string::String,
829 #[prost(enumeration="Permission", repeated, tag="2")]
832 pub permissions: ::prost::alloc::vec::Vec<i32>,
833 #[prost(message, optional, tag="3")]
835 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
836 #[prost(enumeration="KeyType", tag="4")]
839 pub key_type: i32,
840}
841#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
844pub struct CreateApiKeyResponse {
845 #[prost(message, optional, tag="1")]
847 pub api_key: ::core::option::Option<ApiKey>,
848 #[prost(string, tag="2")]
851 pub key: ::prost::alloc::string::String,
852}
853#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
855pub struct ListApiKeysRequest {
856 #[prost(enumeration="KeyType", tag="1")]
858 pub key_type: i32,
859}
860#[derive(Clone, PartialEq, ::prost::Message)]
862pub struct ListApiKeysResponse {
863 #[prost(message, repeated, tag="1")]
865 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
866}
867#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
869pub struct RevokeApiKeyRequest {
870 #[prost(string, tag="1")]
872 pub api_key_id: ::prost::alloc::string::String,
873}
874#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
876pub struct RevokeApiKeyResponse {
877}
878#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
882#[repr(i32)]
883pub enum KeyType {
884 Unspecified = 0,
885 ApiKey = 1,
886 ScimToken = 2,
887}
888impl KeyType {
889 pub fn as_str_name(&self) -> &'static str {
894 match self {
895 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
896 Self::ApiKey => "KEY_TYPE_API_KEY",
897 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
898 }
899 }
900 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
902 match value {
903 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
904 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
905 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
906 _ => None,
907 }
908 }
909}
910#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
915pub struct ExportUserDataRequest {
916 #[prost(string, tag="1")]
919 pub user_id: ::prost::alloc::string::String,
920}
921#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
923pub struct ExportUserDataResponse {
924 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
926 pub status: i32,
927 #[prost(string, tag="2")]
930 pub result_url: ::prost::alloc::string::String,
931 #[prost(string, tag="3")]
934 pub export_id: ::prost::alloc::string::String,
935}
936#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
939pub struct DeleteUserDataRequest {
940 #[prost(string, tag="1")]
943 pub user_id: ::prost::alloc::string::String,
944 #[prost(bool, tag="2")]
947 pub anonymize: bool,
948}
949#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
951pub struct DeleteUserDataResponse {
952 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
954 pub status: i32,
955 #[prost(message, optional, tag="2")]
958 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
959 #[prost(string, tag="3")]
961 pub request_id: ::prost::alloc::string::String,
962}
963#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
966pub struct ListPrivacyRequestsRequest {
967 #[prost(int32, tag="1")]
970 pub page_size: i32,
971 #[prost(string, tag="2")]
973 pub page_token: ::prost::alloc::string::String,
974 #[prost(string, tag="3")]
976 pub request_type: ::prost::alloc::string::String,
977 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
979 pub status: i32,
980}
981#[derive(Clone, PartialEq, ::prost::Message)]
983pub struct ListPrivacyRequestsResponse {
984 #[prost(message, repeated, tag="1")]
986 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
987 #[prost(string, tag="2")]
989 pub next_page_token: ::prost::alloc::string::String,
990}
991#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct PrivacyRequest {
994 #[prost(string, tag="1")]
996 pub id: ::prost::alloc::string::String,
997 #[prost(string, tag="2")]
999 pub user_id: ::prost::alloc::string::String,
1000 #[prost(string, tag="3")]
1002 pub user_email: ::prost::alloc::string::String,
1003 #[prost(string, tag="4")]
1005 pub request_type: ::prost::alloc::string::String,
1006 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
1008 pub status: i32,
1009 #[prost(bool, tag="6")]
1011 pub anonymize: bool,
1012 #[prost(string, tag="7")]
1014 pub requested_by_email: ::prost::alloc::string::String,
1015 #[prost(message, optional, tag="8")]
1017 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1018 #[prost(message, optional, tag="9")]
1020 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1021 #[prost(map="string, string", tag="10")]
1023 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1024}
1025#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1028pub struct CancelDeletionRequest {
1029 #[prost(string, tag="1")]
1031 pub request_id: ::prost::alloc::string::String,
1032 #[prost(string, tag="2")]
1034 pub confirmation_email: ::prost::alloc::string::String,
1035}
1036#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1038pub struct CancelDeletionResponse {
1039 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1041 pub status: i32,
1042}
1043#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1046pub struct ImmediateDeleteRequest {
1047 #[prost(string, tag="1")]
1049 pub request_id: ::prost::alloc::string::String,
1050 #[prost(string, tag="2")]
1052 pub confirmation_email: ::prost::alloc::string::String,
1053}
1054#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1056pub struct ImmediateDeleteResponse {
1057 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1059 pub status: i32,
1060}
1061#[derive(Clone, PartialEq, ::prost::Message)]
1064pub struct RectifyUserDataRequest {
1065 #[prost(string, tag="1")]
1068 pub user_id: ::prost::alloc::string::String,
1069 #[prost(map="string, string", tag="2")]
1073 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1074}
1075#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1077pub struct RectifyUserDataResponse {
1078 #[prost(string, repeated, tag="1")]
1080 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1081}
1082#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1085pub struct RestrictProcessingRequest {
1086 #[prost(string, tag="1")]
1089 pub user_id: ::prost::alloc::string::String,
1090 #[prost(bool, tag="2")]
1092 pub restricted: bool,
1093}
1094#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1096pub struct RestrictProcessingResponse {
1097 #[prost(bool, tag="1")]
1099 pub restricted: bool,
1100 #[prost(message, optional, tag="2")]
1102 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1103}
1104#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1108pub struct GetDataExistenceConfirmationRequest {
1109 #[prost(string, tag="1")]
1112 pub user_id: ::prost::alloc::string::String,
1113}
1114#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1116pub struct GetDataExistenceConfirmationResponse {
1117 #[prost(bool, tag="1")]
1119 pub exists: bool,
1120 #[prost(string, repeated, tag="2")]
1122 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1123}
1124#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1127pub struct ListMyPrivacyRequestsRequest {
1128 #[prost(int32, tag="1")]
1131 pub page_size: i32,
1132 #[prost(string, tag="2")]
1134 pub page_token: ::prost::alloc::string::String,
1135 #[prost(string, tag="3")]
1137 pub request_type: ::prost::alloc::string::String,
1138 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1140 pub status: i32,
1141}
1142#[derive(Clone, PartialEq, ::prost::Message)]
1144pub struct ListMyPrivacyRequestsResponse {
1145 #[prost(message, repeated, tag="1")]
1147 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1148 #[prost(string, tag="2")]
1150 pub next_page_token: ::prost::alloc::string::String,
1151}
1152#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1156#[repr(i32)]
1157pub enum PrivacyRequestStatus {
1158 Unspecified = 0,
1160 Pending = 1,
1162 Processing = 2,
1164 Completed = 3,
1166 Failed = 4,
1168}
1169impl PrivacyRequestStatus {
1170 pub fn as_str_name(&self) -> &'static str {
1175 match self {
1176 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1177 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1178 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1179 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1180 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1181 }
1182 }
1183 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1185 match value {
1186 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1187 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1188 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1189 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1190 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1191 _ => None,
1192 }
1193 }
1194}
1195#[derive(Clone, PartialEq, ::prost::Message)]
1200pub struct AuditEvent {
1201 #[prost(string, tag="1")]
1204 pub id: ::prost::alloc::string::String,
1205 #[prost(string, tag="2")]
1208 pub org_id: ::prost::alloc::string::String,
1209 #[prost(string, tag="3")]
1212 pub actor_id: ::prost::alloc::string::String,
1213 #[prost(enumeration="AuditEventType", tag="4")]
1215 pub event_type: i32,
1216 #[prost(string, tag="5")]
1219 pub entity_type: ::prost::alloc::string::String,
1220 #[prost(string, tag="6")]
1223 pub entity_id: ::prost::alloc::string::String,
1224 #[prost(map="string, string", tag="7")]
1227 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1228 #[prost(message, optional, tag="10")]
1230 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1231}
1232#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1235pub struct ListAuditEventsRequest {
1236 #[prost(string, tag="1")]
1238 pub page_token: ::prost::alloc::string::String,
1239 #[prost(int32, tag="2")]
1242 pub page_size: i32,
1243 #[prost(enumeration="AuditEventType", tag="3")]
1245 pub event_type: i32,
1246 #[prost(string, tag="4")]
1249 pub actor_id: ::prost::alloc::string::String,
1250 #[prost(message, optional, tag="5")]
1252 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1253 #[prost(message, optional, tag="6")]
1255 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1256}
1257#[derive(Clone, PartialEq, ::prost::Message)]
1259pub struct ListAuditEventsResponse {
1260 #[prost(message, repeated, tag="1")]
1262 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1263 #[prost(string, tag="2")]
1265 pub next_page_token: ::prost::alloc::string::String,
1266}
1267#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1270pub struct ExportAuditTrailRequest {
1271 #[prost(enumeration="AuditExportFormat", tag="1")]
1273 pub format: i32,
1274 #[prost(message, optional, tag="2")]
1276 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1277 #[prost(message, optional, tag="3")]
1279 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1280}
1281#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1283pub struct ExportAuditTrailResponse {
1284 #[prost(string, tag="1")]
1287 pub export_url: ::prost::alloc::string::String,
1288 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1290 pub status: i32,
1291}
1292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1294pub struct AuditExport {
1295 #[prost(string, tag="1")]
1297 pub id: ::prost::alloc::string::String,
1298 #[prost(string, tag="2")]
1300 pub format: ::prost::alloc::string::String,
1301 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1303 pub status: i32,
1304 #[prost(string, tag="4")]
1306 pub result_url: ::prost::alloc::string::String,
1307 #[prost(string, tag="5")]
1309 pub error_message: ::prost::alloc::string::String,
1310 #[prost(string, tag="6")]
1312 pub requested_by_email: ::prost::alloc::string::String,
1313 #[prost(message, optional, tag="7")]
1315 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1316 #[prost(message, optional, tag="8")]
1318 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1319}
1320#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1323pub struct ListAuditExportsRequest {
1324}
1325#[derive(Clone, PartialEq, ::prost::Message)]
1327pub struct ListAuditExportsResponse {
1328 #[prost(message, repeated, tag="1")]
1330 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1331}
1332#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1336#[repr(i32)]
1337pub enum AuditEventType {
1338 Unspecified = 0,
1340 CampaignCreated = 1,
1343 MessageSent = 2,
1345 MessageOpened = 3,
1347 AckRegistered = 4,
1349 EscalationExecuted = 5,
1351 CampaignStarted = 12,
1353 CampaignCancelled = 13,
1355 CampaignUpdated = 14,
1357 UserInvited = 6,
1360 UserDeactivated = 7,
1362 UserReactivated = 15,
1364 RoleChanged = 10,
1366 InviteRevoked = 16,
1368 ProfileUpdated = 17,
1370 SettingsUpdated = 18,
1372 PasskeyEnrolled = 19,
1374 DataExportRequested = 8,
1377 DataDeletionRequested = 9,
1379 DataRectified = 20,
1381 ProcessingRestricted = 21,
1383 DeletionCancelled = 22,
1385 DeletionImmediate = 23,
1387 SsoConfigured = 11,
1390 SsoProviderCreated = 24,
1392 SsoProviderDeleted = 25,
1394 OrgUpdated = 26,
1396 RoleCreated = 27,
1399 RoleUpdated = 28,
1401 RoleDeleted = 29,
1403 TemplateCreated = 30,
1406 TemplateUpdated = 31,
1408 ApiKeyCreated = 32,
1411 ApiKeyRevoked = 33,
1413 InviteLinkCreated = 34,
1416 InviteLinkRevoked = 35,
1418 GroupCreated = 36,
1421 GroupUpdated = 37,
1423 GroupDeleted = 38,
1425 GroupMembersAdded = 39,
1427 GroupMembersRemoved = 40,
1429 TeamCreated = 41,
1432 TeamUpdated = 42,
1434 TeamDeleted = 43,
1436 TeamMembersAdded = 44,
1438 TeamMembersRemoved = 45,
1440 ScimUserProvisioned = 46,
1443 ScimUserDeprovisioned = 47,
1445 ScimUserUpdated = 48,
1447 TranslationCreated = 49,
1450 TranslationApproved = 50,
1452 SandboxCreated = 51,
1455 SandboxExpired = 52,
1457 AiPredictionLogged = 53,
1460}
1461impl AuditEventType {
1462 pub fn as_str_name(&self) -> &'static str {
1467 match self {
1468 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1469 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1470 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1471 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1472 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1473 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1474 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1475 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1476 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1477 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1478 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1479 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1480 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1481 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1482 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1483 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1484 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1485 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1486 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1487 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1488 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1489 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1490 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1491 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1492 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1493 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1494 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1495 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1496 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1497 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1498 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1499 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1500 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1501 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1502 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1503 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1504 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1505 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1506 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1507 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1508 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1509 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1510 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1511 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1512 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1513 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1514 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1515 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1516 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1517 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1518 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1519 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1520 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1521 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1522 }
1523 }
1524 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1526 match value {
1527 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1528 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1529 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1530 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1531 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1532 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1533 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1534 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1535 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1536 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1537 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1538 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1539 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1540 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1541 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1542 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1543 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1544 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1545 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1546 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1547 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1548 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1549 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1550 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1551 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1552 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1553 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1554 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1555 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1556 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1557 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1558 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1559 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1560 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1561 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1562 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1563 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1564 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1565 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1566 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1567 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1568 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1569 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1570 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1571 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1572 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1573 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1574 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1575 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1576 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1577 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1578 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1579 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1580 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1581 _ => None,
1582 }
1583 }
1584}
1585#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1587#[repr(i32)]
1588pub enum AuditExportFormat {
1589 Unspecified = 0,
1591 Csv = 1,
1593 Json = 2,
1595 Parquet = 3,
1597}
1598impl AuditExportFormat {
1599 pub fn as_str_name(&self) -> &'static str {
1604 match self {
1605 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1606 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1607 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1608 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1609 }
1610 }
1611 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1613 match value {
1614 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1615 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1616 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1617 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1618 _ => None,
1619 }
1620 }
1621}
1622#[derive(Clone, PartialEq, ::prost::Message)]
1627pub struct Campaign {
1628 #[prost(string, tag="1")]
1631 pub id: ::prost::alloc::string::String,
1632 #[prost(string, tag="2")]
1635 pub name: ::prost::alloc::string::String,
1636 #[prost(string, tag="3")]
1639 pub template_id: ::prost::alloc::string::String,
1640 #[prost(int32, tag="4")]
1642 pub template_version: i32,
1643 #[prost(string, tag="5")]
1645 pub audience_snapshot_ref: ::prost::alloc::string::String,
1646 #[prost(enumeration="CampaignStatus", tag="6")]
1648 pub status: i32,
1649 #[prost(message, optional, tag="7")]
1651 pub workflow: ::core::option::Option<WorkflowDefinition>,
1652 #[prost(int32, tag="8")]
1654 pub total_recipients: i32,
1655 #[prost(int32, tag="9")]
1657 pub action_completed_count: i32,
1658 #[prost(int32, tag="10")]
1660 pub missed_count: i32,
1661 #[prost(message, optional, tag="11")]
1663 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1664 #[prost(message, optional, tag="12")]
1666 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1667 #[prost(message, optional, tag="13")]
1669 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1670 #[prost(string, tag="14")]
1673 pub sender_name: ::prost::alloc::string::String,
1674 #[prost(string, tag="15")]
1677 pub title: ::prost::alloc::string::String,
1678 #[prost(bool, tag="16")]
1680 pub critical: bool,
1681 #[prost(string, tag="17")]
1686 pub default_locale: ::prost::alloc::string::String,
1687 #[prost(bool, tag="18")]
1691 pub wait_for_enrollment: bool,
1692}
1693#[derive(Clone, PartialEq, ::prost::Message)]
1695pub struct AudienceMember {
1696 #[prost(string, tag="1")]
1698 pub user_id: ::prost::alloc::string::String,
1699 #[prost(map="string, string", tag="2")]
1701 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1702}
1703#[derive(Clone, PartialEq, ::prost::Message)]
1705pub struct CreateCampaignRequest {
1706 #[prost(string, tag="1")]
1709 pub name: ::prost::alloc::string::String,
1710 #[prost(string, tag="2")]
1713 pub template_id: ::prost::alloc::string::String,
1714 #[prost(int32, tag="3")]
1716 pub template_version: i32,
1717 #[prost(string, repeated, tag="4")]
1720 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1721 #[prost(message, optional, tag="5")]
1723 pub workflow: ::core::option::Option<WorkflowDefinition>,
1724 #[prost(string, tag="6")]
1727 pub sender_name: ::prost::alloc::string::String,
1728 #[prost(string, tag="7")]
1731 pub title: ::prost::alloc::string::String,
1732 #[prost(message, repeated, tag="8")]
1736 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
1737 #[prost(bool, tag="9")]
1740 pub include_restricted: bool,
1741 #[prost(bool, tag="10")]
1743 pub critical: bool,
1744 #[prost(string, tag="11")]
1746 pub default_locale: ::prost::alloc::string::String,
1747 #[prost(bool, tag="12")]
1751 pub wait_for_enrollment: bool,
1752}
1753#[derive(Clone, PartialEq, ::prost::Message)]
1755pub struct CreateCampaignResponse {
1756 #[prost(message, optional, tag="1")]
1758 pub campaign: ::core::option::Option<Campaign>,
1759}
1760#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1762pub struct StartCampaignRequest {
1763 #[prost(string, tag="1")]
1766 pub campaign_id: ::prost::alloc::string::String,
1767}
1768#[derive(Clone, PartialEq, ::prost::Message)]
1770pub struct StartCampaignResponse {
1771 #[prost(message, optional, tag="1")]
1773 pub campaign: ::core::option::Option<Campaign>,
1774}
1775#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1777pub struct GetCampaignRequest {
1778 #[prost(string, tag="1")]
1781 pub campaign_id: ::prost::alloc::string::String,
1782}
1783#[derive(Clone, PartialEq, ::prost::Message)]
1785pub struct GetCampaignResponse {
1786 #[prost(message, optional, tag="1")]
1788 pub campaign: ::core::option::Option<Campaign>,
1789}
1790#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1792pub struct ListCampaignsRequest {
1793 #[prost(message, optional, tag="1")]
1795 pub pagination: ::core::option::Option<Pagination>,
1796}
1797#[derive(Clone, PartialEq, ::prost::Message)]
1799pub struct ListCampaignsResponse {
1800 #[prost(message, repeated, tag="1")]
1802 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
1803 #[prost(message, optional, tag="2")]
1805 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1806}
1807#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1809pub struct CancelCampaignRequest {
1810 #[prost(string, tag="1")]
1813 pub campaign_id: ::prost::alloc::string::String,
1814}
1815#[derive(Clone, PartialEq, ::prost::Message)]
1817pub struct CancelCampaignResponse {
1818 #[prost(message, optional, tag="1")]
1820 pub campaign: ::core::option::Option<Campaign>,
1821}
1822#[derive(Clone, PartialEq, ::prost::Message)]
1825pub struct UpdateCampaignRequest {
1826 #[prost(string, tag="1")]
1829 pub campaign_id: ::prost::alloc::string::String,
1830 #[prost(string, tag="2")]
1833 pub name: ::prost::alloc::string::String,
1834 #[prost(string, tag="3")]
1837 pub sender_name: ::prost::alloc::string::String,
1838 #[prost(string, tag="4")]
1841 pub title: ::prost::alloc::string::String,
1842 #[prost(string, tag="5")]
1845 pub template_id: ::prost::alloc::string::String,
1846 #[prost(int32, tag="6")]
1848 pub template_version: i32,
1849 #[prost(message, optional, tag="7")]
1851 pub workflow: ::core::option::Option<WorkflowDefinition>,
1852}
1853#[derive(Clone, PartialEq, ::prost::Message)]
1855pub struct UpdateCampaignResponse {
1856 #[prost(message, optional, tag="1")]
1858 pub campaign: ::core::option::Option<Campaign>,
1859}
1860#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1862pub struct Delivery {
1863 #[prost(string, tag="1")]
1866 pub id: ::prost::alloc::string::String,
1867 #[prost(string, tag="2")]
1870 pub user_id: ::prost::alloc::string::String,
1871 #[prost(string, tag="3")]
1874 pub campaign_id: ::prost::alloc::string::String,
1875 #[prost(enumeration="DeliveryStatus", tag="4")]
1877 pub status: i32,
1878 #[prost(message, optional, tag="5")]
1880 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
1881 #[prost(message, optional, tag="6")]
1883 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
1884 #[prost(message, optional, tag="7")]
1886 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
1887 #[prost(string, tag="8")]
1889 pub recipient_email: ::prost::alloc::string::String,
1890 #[prost(enumeration="delivery::Kind", tag="12")]
1893 pub kind: i32,
1894 #[prost(string, tag="13")]
1898 pub parent_delivery_id: ::prost::alloc::string::String,
1899 #[prost(string, tag="14")]
1903 pub rendered_locale: ::prost::alloc::string::String,
1904}
1905pub mod delivery {
1907 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1909 #[repr(i32)]
1910 pub enum Kind {
1911 Unspecified = 0,
1913 Primary = 1,
1915 Escalation = 2,
1917 }
1918 impl Kind {
1919 pub fn as_str_name(&self) -> &'static str {
1924 match self {
1925 Self::Unspecified => "KIND_UNSPECIFIED",
1926 Self::Primary => "KIND_PRIMARY",
1927 Self::Escalation => "KIND_ESCALATION",
1928 }
1929 }
1930 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1932 match value {
1933 "KIND_UNSPECIFIED" => Some(Self::Unspecified),
1934 "KIND_PRIMARY" => Some(Self::Primary),
1935 "KIND_ESCALATION" => Some(Self::Escalation),
1936 _ => None,
1937 }
1938 }
1939 }
1940}
1941#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1943pub struct ListDeliveriesRequest {
1944 #[prost(string, tag="1")]
1947 pub campaign_id: ::prost::alloc::string::String,
1948 #[prost(enumeration="DeliveryStatus", tag="2")]
1950 pub status_filter: i32,
1951 #[prost(message, optional, tag="3")]
1953 pub pagination: ::core::option::Option<Pagination>,
1954}
1955#[derive(Clone, PartialEq, ::prost::Message)]
1957pub struct ListDeliveriesResponse {
1958 #[prost(message, repeated, tag="1")]
1960 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
1961 #[prost(message, optional, tag="2")]
1963 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1964}
1965#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1970pub struct Device {
1971 #[prost(string, tag="1")]
1974 pub device_id: ::prost::alloc::string::String,
1975 #[prost(string, tag="2")]
1978 pub user_id: ::prost::alloc::string::String,
1979 #[prost(enumeration="Platform", tag="3")]
1981 pub platform: i32,
1982 #[prost(string, tag="4")]
1984 pub push_token: ::prost::alloc::string::String,
1985 #[prost(bool, tag="5")]
1987 pub active: bool,
1988 #[prost(message, optional, tag="6")]
1990 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1991 #[prost(message, optional, tag="7")]
1993 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1994}
1995#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1997pub struct DeviceSummary {
1998 #[prost(string, tag="1")]
2000 pub device_id: ::prost::alloc::string::String,
2001 #[prost(string, tag="2")]
2003 pub user_id: ::prost::alloc::string::String,
2004 #[prost(enumeration="Platform", tag="3")]
2006 pub platform: i32,
2007 #[prost(bool, tag="4")]
2009 pub active: bool,
2010 #[prost(message, optional, tag="5")]
2012 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
2013 #[prost(message, optional, tag="6")]
2015 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2016}
2017#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2019pub struct RegisterRequest {
2020 #[prost(string, tag="1")]
2023 pub device_id: ::prost::alloc::string::String,
2024 #[prost(enumeration="Platform", tag="2")]
2026 pub platform: i32,
2027 #[prost(string, tag="3")]
2030 pub push_token: ::prost::alloc::string::String,
2031}
2032#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2034pub struct RegisterResponse {
2035 #[prost(message, optional, tag="1")]
2037 pub device: ::core::option::Option<DeviceSummary>,
2038}
2039#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2041pub struct DeactivateRequest {
2042 #[prost(string, tag="1")]
2045 pub device_id: ::prost::alloc::string::String,
2046}
2047#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2049pub struct DeactivateResponse {
2050 #[prost(bool, tag="1")]
2052 pub success: bool,
2053}
2054#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2056pub struct ListDevicesRequest {
2057}
2058#[derive(Clone, PartialEq, ::prost::Message)]
2060pub struct ListDevicesResponse {
2061 #[prost(message, repeated, tag="1")]
2063 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2064}
2065#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2067pub struct ListMemberDevicesRequest {
2068 #[prost(string, tag="1")]
2071 pub user_id: ::prost::alloc::string::String,
2072}
2073#[derive(Clone, PartialEq, ::prost::Message)]
2075pub struct ListMemberDevicesResponse {
2076 #[prost(message, repeated, tag="1")]
2078 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
2079}
2080#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2085pub struct UserSettings {
2086 #[prost(enumeration="ThemePreference", tag="1")]
2088 pub theme_preference: i32,
2089 #[prost(string, tag="2")]
2093 pub preferred_locale: ::prost::alloc::string::String,
2094}
2095#[derive(Clone, PartialEq, ::prost::Message)]
2098pub struct UserProfile {
2099 #[prost(string, tag="1")]
2102 pub first_name: ::prost::alloc::string::String,
2103 #[prost(string, tag="2")]
2106 pub last_name: ::prost::alloc::string::String,
2107 #[prost(string, tag="3")]
2110 pub department: ::prost::alloc::string::String,
2111 #[prost(string, tag="4")]
2114 pub title: ::prost::alloc::string::String,
2115 #[prost(string, tag="5")]
2118 pub phone: ::prost::alloc::string::String,
2119 #[prost(string, tag="6")]
2122 pub location: ::prost::alloc::string::String,
2123 #[prost(string, tag="7")]
2126 pub employee_id: ::prost::alloc::string::String,
2127 #[prost(string, tag="8")]
2130 pub manager_name: ::prost::alloc::string::String,
2131 #[prost(string, tag="9")]
2134 pub start_date: ::prost::alloc::string::String,
2135 #[prost(map="string, string", tag="10")]
2138 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2139 #[prost(string, tag="11")]
2143 pub manager_id: ::prost::alloc::string::String,
2144}
2145#[derive(Clone, PartialEq, ::prost::Message)]
2147pub struct User {
2148 #[prost(string, tag="1")]
2150 pub id: ::prost::alloc::string::String,
2151 #[prost(string, tag="2")]
2154 pub email: ::prost::alloc::string::String,
2155 #[prost(string, tag="3")]
2158 pub name: ::prost::alloc::string::String,
2159 #[prost(enumeration="UserStatus", tag="5")]
2161 pub status: i32,
2162 #[prost(message, optional, tag="6")]
2164 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2165 #[prost(message, optional, tag="7")]
2167 pub role: ::core::option::Option<Role>,
2168 #[prost(string, tag="8")]
2170 pub role_id: ::prost::alloc::string::String,
2171 #[prost(message, optional, tag="9")]
2174 pub profile: ::core::option::Option<UserProfile>,
2175 #[prost(bool, tag="10")]
2178 pub processing_restricted: bool,
2179 #[prost(string, tag="11")]
2182 pub data_governance_region: ::prost::alloc::string::String,
2183}
2184#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2188#[repr(i32)]
2189pub enum UserStatus {
2190 Unspecified = 0,
2192 Invited = 1,
2194 Active = 2,
2196 Deactivated = 3,
2198}
2199impl UserStatus {
2200 pub fn as_str_name(&self) -> &'static str {
2205 match self {
2206 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2207 Self::Invited => "USER_STATUS_INVITED",
2208 Self::Active => "USER_STATUS_ACTIVE",
2209 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2210 }
2211 }
2212 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2214 match value {
2215 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2216 "USER_STATUS_INVITED" => Some(Self::Invited),
2217 "USER_STATUS_ACTIVE" => Some(Self::Active),
2218 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2219 _ => None,
2220 }
2221 }
2222}
2223#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2225#[repr(i32)]
2226pub enum ThemePreference {
2227 Unspecified = 0,
2229 Light = 1,
2231 Dark = 2,
2233 System = 3,
2235}
2236impl ThemePreference {
2237 pub fn as_str_name(&self) -> &'static str {
2242 match self {
2243 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2244 Self::Light => "THEME_PREFERENCE_LIGHT",
2245 Self::Dark => "THEME_PREFERENCE_DARK",
2246 Self::System => "THEME_PREFERENCE_SYSTEM",
2247 }
2248 }
2249 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2251 match value {
2252 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2253 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2254 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2255 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2256 _ => None,
2257 }
2258 }
2259}
2260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2265pub struct Group {
2266 #[prost(string, tag="1")]
2268 pub id: ::prost::alloc::string::String,
2269 #[prost(string, tag="2")]
2272 pub name: ::prost::alloc::string::String,
2273 #[prost(string, tag="3")]
2276 pub description: ::prost::alloc::string::String,
2277 #[prost(int32, tag="4")]
2279 pub member_count: i32,
2280 #[prost(message, optional, tag="5")]
2282 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2283 #[prost(message, optional, tag="6")]
2285 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2286 #[prost(bool, tag="7")]
2288 pub is_default: bool,
2289 #[prost(string, tag="8")]
2291 pub created_by: ::prost::alloc::string::String,
2292}
2293#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2295pub struct CreateGroupRequest {
2296 #[prost(string, tag="1")]
2299 pub name: ::prost::alloc::string::String,
2300 #[prost(string, tag="2")]
2303 pub description: ::prost::alloc::string::String,
2304}
2305#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2307pub struct CreateGroupResponse {
2308 #[prost(message, optional, tag="1")]
2310 pub group: ::core::option::Option<Group>,
2311}
2312#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2314pub struct GetGroupRequest {
2315 #[prost(string, tag="1")]
2317 pub group_id: ::prost::alloc::string::String,
2318}
2319#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2321pub struct GetGroupResponse {
2322 #[prost(message, optional, tag="1")]
2324 pub group: ::core::option::Option<Group>,
2325}
2326#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2328pub struct ListGroupsRequest {
2329 #[prost(message, optional, tag="1")]
2331 pub pagination: ::core::option::Option<Pagination>,
2332}
2333#[derive(Clone, PartialEq, ::prost::Message)]
2335pub struct ListGroupsResponse {
2336 #[prost(message, repeated, tag="1")]
2338 pub groups: ::prost::alloc::vec::Vec<Group>,
2339 #[prost(message, optional, tag="2")]
2341 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2342}
2343#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2345pub struct UpdateGroupRequest {
2346 #[prost(string, tag="1")]
2348 pub group_id: ::prost::alloc::string::String,
2349 #[prost(string, tag="2")]
2353 pub name: ::prost::alloc::string::String,
2354 #[prost(string, tag="3")]
2357 pub description: ::prost::alloc::string::String,
2358}
2359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2361pub struct UpdateGroupResponse {
2362 #[prost(message, optional, tag="1")]
2364 pub group: ::core::option::Option<Group>,
2365}
2366#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2368pub struct DeleteGroupRequest {
2369 #[prost(string, tag="1")]
2372 pub group_id: ::prost::alloc::string::String,
2373}
2374#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2376pub struct DeleteGroupResponse {
2377}
2378#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2380pub struct AddGroupMembersRequest {
2381 #[prost(string, tag="1")]
2383 pub group_id: ::prost::alloc::string::String,
2384 #[prost(string, repeated, tag="2")]
2388 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2389}
2390#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2392pub struct AddGroupMembersResponse {
2393 #[prost(message, optional, tag="1")]
2395 pub group: ::core::option::Option<Group>,
2396}
2397#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2399pub struct RemoveGroupMembersRequest {
2400 #[prost(string, tag="1")]
2402 pub group_id: ::prost::alloc::string::String,
2403 #[prost(string, repeated, tag="2")]
2406 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2407}
2408#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2410pub struct RemoveGroupMembersResponse {
2411 #[prost(message, optional, tag="1")]
2413 pub group: ::core::option::Option<Group>,
2414}
2415#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2417pub struct ListGroupMembersRequest {
2418 #[prost(string, tag="1")]
2420 pub group_id: ::prost::alloc::string::String,
2421 #[prost(message, optional, tag="2")]
2423 pub pagination: ::core::option::Option<Pagination>,
2424}
2425#[derive(Clone, PartialEq, ::prost::Message)]
2427pub struct ListGroupMembersResponse {
2428 #[prost(message, repeated, tag="1")]
2430 pub users: ::prost::alloc::vec::Vec<User>,
2431 #[prost(message, optional, tag="2")]
2433 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2434}
2435#[derive(Clone, PartialEq, ::prost::Message)]
2437pub struct UserGroupMembership {
2438 #[prost(string, tag="1")]
2440 pub user_id: ::prost::alloc::string::String,
2441 #[prost(message, repeated, tag="2")]
2443 pub groups: ::prost::alloc::vec::Vec<Group>,
2444}
2445#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2447pub struct GetUserGroupMembershipsRequest {
2448 #[prost(string, repeated, tag="1")]
2451 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2452}
2453#[derive(Clone, PartialEq, ::prost::Message)]
2455pub struct GetUserGroupMembershipsResponse {
2456 #[prost(message, repeated, tag="1")]
2458 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2459}
2460#[derive(Clone, PartialEq, ::prost::Message)]
2464pub struct TouchEvent {
2465 #[prost(string, tag="1")]
2468 pub screen_name: ::prost::alloc::string::String,
2469 #[prost(float, tag="2")]
2472 pub x_pct: f32,
2473 #[prost(float, tag="3")]
2476 pub y_pct: f32,
2477 #[prost(enumeration="TouchEventType", tag="4")]
2479 pub event_type: i32,
2480 #[prost(int32, tag="5")]
2482 pub screen_width: i32,
2483 #[prost(int32, tag="6")]
2485 pub screen_height: i32,
2486 #[prost(message, optional, tag="7")]
2488 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2489 #[prost(string, tag="8")]
2492 pub campaign_id: ::prost::alloc::string::String,
2493}
2494#[derive(Clone, PartialEq, ::prost::Message)]
2496pub struct IngestTouchEventsRequest {
2497 #[prost(message, repeated, tag="1")]
2500 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2501}
2502#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2504pub struct IngestTouchEventsResponse {
2505 #[prost(int32, tag="1")]
2507 pub ingested_count: i32,
2508}
2509#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2511pub struct HeatmapDataPoint {
2512 #[prost(float, tag="1")]
2514 pub x_pct: f32,
2515 #[prost(float, tag="2")]
2517 pub y_pct: f32,
2518 #[prost(float, tag="3")]
2520 pub value: f32,
2521}
2522#[derive(Clone, PartialEq, ::prost::Message)]
2524pub struct QueryHeatmapDataRequest {
2525 #[prost(string, tag="1")]
2528 pub screen_name: ::prost::alloc::string::String,
2529 #[prost(message, optional, tag="2")]
2531 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2532 #[prost(message, optional, tag="3")]
2534 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2535 #[prost(string, tag="4")]
2538 pub campaign_id: ::prost::alloc::string::String,
2539 #[prost(float, tag="6")]
2542 pub grid_resolution: f32,
2543 #[prost(enumeration="HeatmapMode", tag="7")]
2545 pub mode: i32,
2546 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2548 pub event_types: ::prost::alloc::vec::Vec<i32>,
2549}
2550#[derive(Clone, PartialEq, ::prost::Message)]
2552pub struct QueryHeatmapDataResponse {
2553 #[prost(message, repeated, tag="1")]
2555 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2556 #[prost(string, tag="3")]
2559 pub screenshot_url: ::prost::alloc::string::String,
2560 #[prost(bool, tag="4")]
2562 pub cohort_enabled: bool,
2563}
2564#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2566pub struct UploadScreenshotRequest {
2567 #[prost(string, tag="1")]
2570 pub screen_name: ::prost::alloc::string::String,
2571 #[prost(string, tag="2")]
2573 pub app_version: ::prost::alloc::string::String,
2574 #[prost(bytes="vec", tag="3")]
2577 pub image_data: ::prost::alloc::vec::Vec<u8>,
2578}
2579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2581pub struct UploadScreenshotResponse {
2582 #[prost(string, tag="1")]
2584 pub url: ::prost::alloc::string::String,
2585}
2586#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2588pub struct ScreenScreenshot {
2589 #[prost(string, tag="1")]
2591 pub screen_name: ::prost::alloc::string::String,
2592 #[prost(string, tag="2")]
2594 pub url: ::prost::alloc::string::String,
2595 #[prost(string, tag="3")]
2597 pub app_version: ::prost::alloc::string::String,
2598}
2599#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2601pub struct ListScreenshotsRequest {
2602}
2603#[derive(Clone, PartialEq, ::prost::Message)]
2605pub struct ListScreenshotsResponse {
2606 #[prost(message, repeated, tag="1")]
2608 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2609}
2610#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2614#[repr(i32)]
2615pub enum TouchEventType {
2616 Unspecified = 0,
2618 Tap = 1,
2620 LongPress = 2,
2622 Scroll = 3,
2624 ActionClick = 4,
2626}
2627impl TouchEventType {
2628 pub fn as_str_name(&self) -> &'static str {
2633 match self {
2634 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2635 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2636 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2637 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2638 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2639 }
2640 }
2641 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2643 match value {
2644 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2645 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2646 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2647 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2648 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2649 _ => None,
2650 }
2651 }
2652}
2653#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2655#[repr(i32)]
2656pub enum HeatmapMode {
2657 Unspecified = 0,
2659 Total = 1,
2661 Median = 2,
2663}
2664impl HeatmapMode {
2665 pub fn as_str_name(&self) -> &'static str {
2670 match self {
2671 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2672 Self::Total => "HEATMAP_MODE_TOTAL",
2673 Self::Median => "HEATMAP_MODE_MEDIAN",
2674 }
2675 }
2676 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2678 match value {
2679 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2680 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2681 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2682 _ => None,
2683 }
2684 }
2685}
2686#[derive(Clone, PartialEq, ::prost::Message)]
2690pub struct InboxEntry {
2691 #[prost(string, tag="1")]
2694 pub delivery_id: ::prost::alloc::string::String,
2695 #[prost(message, optional, tag="2")]
2697 pub message: ::core::option::Option<Message>,
2698 #[prost(enumeration="DeliveryStatus", tag="3")]
2700 pub status: i32,
2701 #[prost(bool, tag="4")]
2703 pub read: bool,
2704 #[prost(message, optional, tag="5")]
2706 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2707 #[prost(enumeration="delivery::Kind", tag="6")]
2711 pub kind: i32,
2712 #[prost(string, tag="7")]
2715 pub parent_delivery_id: ::prost::alloc::string::String,
2716 #[prost(string, tag="8")]
2719 pub rendered_locale: ::prost::alloc::string::String,
2720}
2721#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2723pub struct SyncRequest {
2724 #[prost(message, optional, tag="1")]
2726 pub since: ::core::option::Option<::prost_types::Timestamp>,
2727 #[prost(int32, tag="2")]
2730 pub limit: i32,
2731}
2732#[derive(Clone, PartialEq, ::prost::Message)]
2734pub struct SyncResponse {
2735 #[prost(message, repeated, tag="1")]
2737 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2738 #[prost(message, optional, tag="2")]
2740 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2741}
2742#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2744pub struct MarkReadRequest {
2745 #[prost(string, tag="1")]
2748 pub delivery_id: ::prost::alloc::string::String,
2749}
2750#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2752pub struct MarkReadResponse {
2753 #[prost(bool, tag="1")]
2755 pub success: bool,
2756}
2757#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2759pub struct GetMessageRequest {
2760 #[prost(string, tag="1")]
2763 pub delivery_id: ::prost::alloc::string::String,
2764}
2765#[derive(Clone, PartialEq, ::prost::Message)]
2767pub struct GetMessageResponse {
2768 #[prost(message, optional, tag="1")]
2770 pub entry: ::core::option::Option<InboxEntry>,
2771}
2772#[derive(Clone, PartialEq, ::prost::Message)]
2777pub struct Archetype {
2778 #[prost(string, tag="1")]
2780 pub label: ::prost::alloc::string::String,
2781 #[prost(string, tag="2")]
2783 pub description: ::prost::alloc::string::String,
2784 #[prost(float, tag="3")]
2786 pub percentage: f32,
2787 #[prost(map="string, double", tag="4")]
2794 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
2795 #[prost(map="string, message", tag="5")]
2800 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
2801 #[prost(message, optional, tag="6")]
2805 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
2806 #[prost(message, optional, tag="7")]
2810 pub forecast: ::core::option::Option<ArchetypeForecast>,
2811 #[prost(message, repeated, tag="8")]
2817 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
2818 #[prost(message, optional, tag="9")]
2821 pub screen_dwell: ::core::option::Option<ScreenDwell>,
2822 #[prost(message, optional, tag="10")]
2826 pub response_timeline: ::core::option::Option<ResponseTimeline>,
2827}
2828#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2833pub struct DimensionStats {
2834 #[prost(double, tag="1")]
2836 pub centroid: f64,
2837 #[prost(double, tag="2")]
2839 pub p25: f64,
2840 #[prost(double, tag="3")]
2842 pub p50: f64,
2843 #[prost(double, tag="4")]
2845 pub p75: f64,
2846 #[prost(double, tag="5")]
2849 pub group_p50: f64,
2850}
2851#[derive(Clone, PartialEq, ::prost::Message)]
2855pub struct TapHeatmap {
2856 #[prost(int32, tag="1")]
2858 pub width: i32,
2859 #[prost(int32, tag="2")]
2861 pub height: i32,
2862 #[prost(double, repeated, tag="3")]
2865 pub values: ::prost::alloc::vec::Vec<f64>,
2866 #[prost(int32, tag="4")]
2869 pub session_count: i32,
2870 #[prost(message, repeated, tag="5")]
2874 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
2875}
2876#[derive(Clone, PartialEq, ::prost::Message)]
2878pub struct TapHeatmapLayer {
2879 #[prost(string, tag="1")]
2882 pub event_type: ::prost::alloc::string::String,
2883 #[prost(double, repeated, tag="2")]
2886 pub values: ::prost::alloc::vec::Vec<f64>,
2887}
2888#[derive(Clone, PartialEq, ::prost::Message)]
2890pub struct ArchetypeForecast {
2891 #[prost(message, repeated, tag="1")]
2894 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
2895}
2896#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2898pub struct ForecastHorizon {
2899 #[prost(int32, tag="1")]
2901 pub days: i32,
2902 #[prost(double, tag="2")]
2905 pub predicted_share: f64,
2906 #[prost(double, tag="3")]
2908 pub lower: f64,
2909 #[prost(double, tag="4")]
2911 pub upper: f64,
2912 #[prost(enumeration="ConfidenceLevel", tag="5")]
2914 pub confidence: i32,
2915}
2916#[derive(Clone, PartialEq, ::prost::Message)]
2919pub struct ExemplarSession {
2920 #[prost(string, tag="1")]
2923 pub session_id: ::prost::alloc::string::String,
2924 #[prost(int32, tag="2")]
2927 pub rank: i32,
2928 #[prost(double, tag="3")]
2930 pub distance: f64,
2931 #[prost(int32, tag="4")]
2933 pub duration_seconds: i32,
2934 #[prost(string, tag="5")]
2938 pub platform: ::prost::alloc::string::String,
2939}
2940#[derive(Clone, PartialEq, ::prost::Message)]
2944pub struct ScreenDwell {
2945 #[prost(message, repeated, tag="1")]
2948 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
2949}
2950#[derive(Clone, PartialEq, ::prost::Message)]
2951pub struct ScreenDwellEntry {
2952 #[prost(string, tag="1")]
2956 pub screen_name: ::prost::alloc::string::String,
2957 #[prost(double, tag="2")]
2959 pub median_seconds: f64,
2960 #[prost(double, tag="3")]
2962 pub p75_seconds: f64,
2963 #[prost(int32, tag="4")]
2965 pub session_count: i32,
2966}
2967#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2971pub struct ResponseTimeline {
2972 #[prost(message, optional, tag="1")]
2974 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
2975 #[prost(message, optional, tag="2")]
2978 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
2979 #[prost(message, optional, tag="3")]
2982 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
2983 #[prost(int32, tag="4")]
2985 pub delivery_count: i32,
2986}
2987#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2989pub struct LatencyPercentiles {
2990 #[prost(double, tag="1")]
2991 pub p50: f64,
2992 #[prost(double, tag="2")]
2993 pub p75: f64,
2994 #[prost(double, tag="3")]
2995 pub p95: f64,
2996}
2997#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3000pub struct CohortPrediction {
3001 #[prost(float, tag="1")]
3003 pub predicted_ack_rate: f32,
3004 #[prost(float, tag="2")]
3006 pub confidence_low: f32,
3007 #[prost(float, tag="3")]
3009 pub confidence_high: f32,
3010 #[prost(enumeration="ConfidenceLevel", tag="4")]
3012 pub confidence_level: i32,
3013 #[prost(int32, tag="5")]
3015 pub data_point_count: i32,
3016}
3017#[derive(Clone, PartialEq, ::prost::Message)]
3019pub struct CampaignAdvisory {
3020 #[prost(message, optional, tag="1")]
3022 pub predicted_ack: ::core::option::Option<CohortPrediction>,
3023 #[prost(int32, tag="2")]
3026 pub suggested_escalation_delay_minutes: i32,
3027 #[prost(message, repeated, tag="3")]
3029 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3030}
3031#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3033pub struct GetGroupArchetypesRequest {
3034 #[prost(string, tag="1")]
3036 pub group_id: ::prost::alloc::string::String,
3037}
3038#[derive(Clone, PartialEq, ::prost::Message)]
3040pub struct GetGroupArchetypesResponse {
3041 #[prost(message, repeated, tag="1")]
3043 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3044 #[prost(int32, tag="2")]
3046 pub data_point_count: i32,
3047 #[prost(enumeration="PipelineState", tag="3")]
3051 pub pipeline_state: i32,
3052}
3053#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3055pub struct PredictCampaignAckRequest {
3056 #[prost(string, tag="1")]
3058 pub group_id: ::prost::alloc::string::String,
3059 #[prost(string, tag="2")]
3061 pub template_type: ::prost::alloc::string::String,
3062 #[prost(int32, tag="3")]
3064 pub workflow_step_count: i32,
3065}
3066#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3068pub struct PredictCampaignAckResponse {
3069 #[prost(message, optional, tag="1")]
3071 pub prediction: ::core::option::Option<CohortPrediction>,
3072}
3073#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3075pub struct GetCampaignAdvisoryRequest {
3076 #[prost(string, tag="1")]
3078 pub group_id: ::prost::alloc::string::String,
3079 #[prost(string, tag="2")]
3081 pub template_id: ::prost::alloc::string::String,
3082 #[prost(int32, tag="3")]
3084 pub template_version: i32,
3085 #[prost(int32, tag="4")]
3087 pub workflow_step_count: i32,
3088}
3089#[derive(Clone, PartialEq, ::prost::Message)]
3091pub struct GetCampaignAdvisoryResponse {
3092 #[prost(message, optional, tag="1")]
3094 pub advisory: ::core::option::Option<CampaignAdvisory>,
3095}
3096#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3098pub struct GetInsightNarrativeRequest {
3099 #[prost(string, tag="1")]
3101 pub group_id: ::prost::alloc::string::String,
3102 #[prost(string, tag="2")]
3104 pub prompt_name: ::prost::alloc::string::String,
3105}
3106#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3108pub struct GetInsightNarrativeResponse {
3109 #[prost(string, tag="1")]
3111 pub narrative: ::prost::alloc::string::String,
3112 #[prost(message, optional, tag="2")]
3114 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3115 #[prost(string, tag="3")]
3117 pub model_id: ::prost::alloc::string::String,
3118}
3119#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3122pub struct TriggerMlPipelineRequest {
3123}
3124#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3126pub struct TriggerMlPipelineResponse {
3127 #[prost(int32, tag="1")]
3129 pub remaining_this_month: i32,
3130 #[prost(message, optional, tag="2")]
3132 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3133}
3134#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3138pub struct TriggerArchetypeClusteringRequest {
3139 #[prost(string, tag="1")]
3141 pub group_id: ::prost::alloc::string::String,
3142}
3143#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3145pub struct TriggerArchetypeClusteringResponse {
3146 #[prost(string, tag="1")]
3149 pub workflow_id: ::prost::alloc::string::String,
3150 #[prost(int32, tag="2")]
3153 pub remaining_this_month: i32,
3154 #[prost(message, optional, tag="3")]
3157 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3158}
3159#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3163#[repr(i32)]
3164pub enum ConfidenceLevel {
3165 Unspecified = 0,
3166 Low = 1,
3168 Medium = 2,
3170 High = 3,
3172}
3173impl ConfidenceLevel {
3174 pub fn as_str_name(&self) -> &'static str {
3179 match self {
3180 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3181 Self::Low => "CONFIDENCE_LEVEL_LOW",
3182 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3183 Self::High => "CONFIDENCE_LEVEL_HIGH",
3184 }
3185 }
3186 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3188 match value {
3189 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3190 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3191 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3192 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3193 _ => None,
3194 }
3195 }
3196}
3197#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3203#[repr(i32)]
3204pub enum PipelineState {
3205 Unspecified = 0,
3206 NeverRun = 1,
3209 BelowThreshold = 2,
3213 NoClusters = 3,
3217 Ready = 4,
3219}
3220impl PipelineState {
3221 pub fn as_str_name(&self) -> &'static str {
3226 match self {
3227 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3228 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3229 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3230 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3231 Self::Ready => "PIPELINE_STATE_READY",
3232 }
3233 }
3234 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3236 match value {
3237 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3238 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3239 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3240 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3241 "PIPELINE_STATE_READY" => Some(Self::Ready),
3242 _ => None,
3243 }
3244 }
3245}
3246#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3251pub struct InviteLink {
3252 #[prost(string, tag="1")]
3254 pub id: ::prost::alloc::string::String,
3255 #[prost(string, tag="2")]
3257 pub token: ::prost::alloc::string::String,
3258 #[prost(string, tag="3")]
3260 pub role_id: ::prost::alloc::string::String,
3261 #[prost(int32, tag="4")]
3264 pub max_uses: i32,
3265 #[prost(int32, tag="5")]
3267 pub use_count: i32,
3268 #[prost(message, optional, tag="6")]
3270 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3271 #[prost(message, optional, tag="7")]
3273 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
3274 #[prost(string, tag="8")]
3276 pub created_by: ::prost::alloc::string::String,
3277 #[prost(message, optional, tag="9")]
3279 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3280 #[prost(string, tag="10")]
3283 pub data_governance_region: ::prost::alloc::string::String,
3284}
3285#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3287pub struct CreateInviteLinkRequest {
3288 #[prost(string, tag="1")]
3290 pub role_id: ::prost::alloc::string::String,
3291 #[prost(int32, tag="2")]
3293 pub max_uses: i32,
3294 #[prost(int32, tag="3")]
3297 pub expires_in_hours: i32,
3298 #[prost(string, tag="4")]
3301 pub data_governance_region: ::prost::alloc::string::String,
3302}
3303#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3305pub struct CreateInviteLinkResponse {
3306 #[prost(message, optional, tag="1")]
3308 pub invite_link: ::core::option::Option<InviteLink>,
3309 #[prost(string, tag="2")]
3311 pub url: ::prost::alloc::string::String,
3312}
3313#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3315pub struct ListInviteLinksRequest {
3316}
3317#[derive(Clone, PartialEq, ::prost::Message)]
3319pub struct ListInviteLinksResponse {
3320 #[prost(message, repeated, tag="1")]
3322 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
3323}
3324#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3326pub struct RevokeInviteLinkRequest {
3327 #[prost(string, tag="1")]
3329 pub invite_link_id: ::prost::alloc::string::String,
3330}
3331#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3333pub struct RevokeInviteLinkResponse {
3334}
3335#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3337pub struct RedeemInviteLinkRequest {
3338 #[prost(string, tag="1")]
3340 pub token: ::prost::alloc::string::String,
3341}
3342#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3344pub struct RedeemInviteLinkResponse {
3345 #[prost(string, tag="1")]
3347 pub organization_name: ::prost::alloc::string::String,
3348}
3349#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3351pub struct ValidateInviteLinkRequest {
3352 #[prost(string, tag="1")]
3354 pub token: ::prost::alloc::string::String,
3355 #[prost(string, tag="2")]
3358 pub email: ::prost::alloc::string::String,
3359}
3360#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3362pub struct ValidateInviteLinkResponse {
3363 #[prost(string, tag="1")]
3365 pub organization_name: ::prost::alloc::string::String,
3366}
3367#[derive(Clone, PartialEq, ::prost::Message)]
3371pub struct InviteUserRequest {
3372 #[prost(string, tag="1")]
3375 pub email: ::prost::alloc::string::String,
3376 #[prost(string, tag="2")]
3379 pub name: ::prost::alloc::string::String,
3380 #[prost(string, tag="4")]
3382 pub role_id: ::prost::alloc::string::String,
3383 #[prost(message, optional, tag="5")]
3385 pub profile: ::core::option::Option<UserProfile>,
3386 #[prost(string, tag="6")]
3389 pub data_governance_region: ::prost::alloc::string::String,
3390}
3391#[derive(Clone, PartialEq, ::prost::Message)]
3393pub struct InviteUserResponse {
3394 #[prost(message, optional, tag="1")]
3396 pub user: ::core::option::Option<User>,
3397}
3398#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3400pub struct GetUserRequest {
3401 #[prost(string, tag="1")]
3403 pub user_id: ::prost::alloc::string::String,
3404}
3405#[derive(Clone, PartialEq, ::prost::Message)]
3407pub struct GetUserResponse {
3408 #[prost(message, optional, tag="1")]
3410 pub user: ::core::option::Option<User>,
3411}
3412#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3414pub struct ListUsersRequest {
3415 #[prost(message, optional, tag="1")]
3417 pub pagination: ::core::option::Option<Pagination>,
3418}
3419#[derive(Clone, PartialEq, ::prost::Message)]
3421pub struct ListUsersResponse {
3422 #[prost(message, repeated, tag="1")]
3424 pub users: ::prost::alloc::vec::Vec<User>,
3425 #[prost(message, optional, tag="2")]
3427 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3428}
3429#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3431pub struct UpdateUserRoleRequest {
3432 #[prost(string, tag="1")]
3434 pub user_id: ::prost::alloc::string::String,
3435 #[prost(string, tag="2")]
3437 pub role_id: ::prost::alloc::string::String,
3438}
3439#[derive(Clone, PartialEq, ::prost::Message)]
3441pub struct UpdateUserRoleResponse {
3442 #[prost(message, optional, tag="1")]
3444 pub user: ::core::option::Option<User>,
3445}
3446#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3448pub struct DeactivateUserRequest {
3449 #[prost(string, tag="1")]
3451 pub user_id: ::prost::alloc::string::String,
3452}
3453#[derive(Clone, PartialEq, ::prost::Message)]
3455pub struct DeactivateUserResponse {
3456 #[prost(message, optional, tag="1")]
3458 pub user: ::core::option::Option<User>,
3459}
3460#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3462pub struct ReactivateUserRequest {
3463 #[prost(string, tag="1")]
3465 pub user_id: ::prost::alloc::string::String,
3466}
3467#[derive(Clone, PartialEq, ::prost::Message)]
3469pub struct ReactivateUserResponse {
3470 #[prost(message, optional, tag="1")]
3472 pub user: ::core::option::Option<User>,
3473}
3474#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3476pub struct RevokeInviteRequest {
3477 #[prost(string, tag="1")]
3480 pub user_id: ::prost::alloc::string::String,
3481}
3482#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3484pub struct RevokeInviteResponse {
3485}
3486#[derive(Clone, PartialEq, ::prost::Message)]
3488pub struct UpdateUserProfileRequest {
3489 #[prost(string, tag="1")]
3492 pub user_id: ::prost::alloc::string::String,
3493 #[prost(message, optional, tag="2")]
3495 pub profile: ::core::option::Option<UserProfile>,
3496}
3497#[derive(Clone, PartialEq, ::prost::Message)]
3499pub struct UpdateUserProfileResponse {
3500 #[prost(message, optional, tag="1")]
3502 pub user: ::core::option::Option<User>,
3503}
3504#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3506pub struct GetUserSettingsRequest {
3507}
3508#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3510pub struct GetUserSettingsResponse {
3511 #[prost(message, optional, tag="1")]
3513 pub settings: ::core::option::Option<UserSettings>,
3514}
3515#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3517pub struct UpdateUserSettingsRequest {
3518 #[prost(message, optional, tag="1")]
3521 pub settings: ::core::option::Option<UserSettings>,
3522}
3523#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3525pub struct UpdateUserSettingsResponse {
3526 #[prost(message, optional, tag="1")]
3528 pub settings: ::core::option::Option<UserSettings>,
3529}
3530#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3532pub struct BulkInviteUsersRequest {
3533 #[prost(string, repeated, tag="1")]
3536 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3537 #[prost(string, tag="2")]
3539 pub role_id: ::prost::alloc::string::String,
3540}
3541#[derive(Clone, PartialEq, ::prost::Message)]
3543pub struct BulkInviteResult {
3544 #[prost(string, tag="1")]
3546 pub email: ::prost::alloc::string::String,
3547 #[prost(bool, tag="2")]
3549 pub success: bool,
3550 #[prost(string, tag="3")]
3553 pub error: ::prost::alloc::string::String,
3554 #[prost(message, optional, tag="4")]
3556 pub user: ::core::option::Option<User>,
3557}
3558#[derive(Clone, PartialEq, ::prost::Message)]
3560pub struct BulkInviteUsersResponse {
3561 #[prost(message, repeated, tag="1")]
3563 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3564 #[prost(int32, tag="2")]
3566 pub invited_count: i32,
3567 #[prost(int32, tag="3")]
3569 pub failed_count: i32,
3570}
3571#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3575pub struct ConfirmPasskeyEnrollmentRequest {
3576}
3577#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3579pub struct ConfirmPasskeyEnrollmentResponse {
3580 #[prost(bool, tag="1")]
3582 pub confirmed: bool,
3583}
3584#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3586pub struct UpdateUserRegionRequest {
3587 #[prost(string, tag="1")]
3589 pub user_id: ::prost::alloc::string::String,
3590 #[prost(string, tag="2")]
3593 pub data_governance_region: ::prost::alloc::string::String,
3594}
3595#[derive(Clone, PartialEq, ::prost::Message)]
3597pub struct UpdateUserRegionResponse {
3598 #[prost(message, optional, tag="1")]
3600 pub user: ::core::option::Option<User>,
3601 #[prost(string, tag="2")]
3604 pub migration_workflow_id: ::prost::alloc::string::String,
3605}
3606#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3611pub struct SsoAttributeMapping {
3612 #[prost(string, tag="1")]
3615 pub idp_claim: ::prost::alloc::string::String,
3616 #[prost(string, tag="2")]
3620 pub profile_field: ::prost::alloc::string::String,
3621}
3622#[derive(Clone, PartialEq, ::prost::Message)]
3624pub struct Organization {
3625 #[prost(string, tag="1")]
3627 pub id: ::prost::alloc::string::String,
3628 #[prost(string, tag="2")]
3631 pub name: ::prost::alloc::string::String,
3632 #[prost(message, optional, tag="3")]
3634 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3635 #[prost(message, optional, tag="4")]
3637 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3638 #[prost(enumeration="Industry", tag="5")]
3640 pub industry: i32,
3641 #[prost(enumeration="CompanySize", tag="6")]
3643 pub company_size: i32,
3644 #[prost(message, repeated, tag="7")]
3647 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3648 #[prost(string, tag="8")]
3652 pub default_locale: ::prost::alloc::string::String,
3653 #[prost(enumeration="OrgType", tag="9")]
3655 pub org_type: i32,
3656 #[prost(message, optional, tag="10")]
3658 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3659 #[prost(string, tag="11")]
3662 pub data_governance_region: ::prost::alloc::string::String,
3663 #[prost(string, tag="12")]
3666 pub data_content_region: ::prost::alloc::string::String,
3667 #[prost(int32, tag="13")]
3672 pub ml_retrain_cold_threshold: i32,
3673 #[prost(bool, tag="14")]
3675 pub ml_cancelled_counts: bool,
3676 #[prost(int32, tag="15")]
3678 pub ml_manual_limit_monthly: i32,
3679 #[prost(int32, tag="16")]
3681 pub ml_manual_retrains_used: i32,
3682 #[prost(bool, tag="17")]
3684 pub ml_needs_retrain: bool,
3685 #[prost(int32, tag="18")]
3687 pub campaigns_since_last_training: i32,
3688 #[prost(int32, tag="19")]
3690 pub total_completed_campaigns: i32,
3691 #[prost(message, optional, tag="20")]
3693 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
3694}
3695#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3699pub struct CreateOrganizationRequest {
3700 #[prost(string, tag="1")]
3703 pub name: ::prost::alloc::string::String,
3704 #[prost(enumeration="Industry", tag="2")]
3706 pub industry: i32,
3707 #[prost(enumeration="CompanySize", tag="3")]
3709 pub company_size: i32,
3710 #[prost(string, tag="4")]
3713 pub access_code: ::prost::alloc::string::String,
3714 #[prost(string, tag="5")]
3717 pub data_governance_region: ::prost::alloc::string::String,
3718}
3719#[derive(Clone, PartialEq, ::prost::Message)]
3721pub struct CreateOrganizationResponse {
3722 #[prost(message, optional, tag="1")]
3724 pub organization: ::core::option::Option<Organization>,
3725 #[prost(message, optional, tag="2")]
3727 pub admin_user: ::core::option::Option<User>,
3728}
3729#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3731pub struct GetOrganizationRequest {
3732}
3733#[derive(Clone, PartialEq, ::prost::Message)]
3735pub struct GetOrganizationResponse {
3736 #[prost(message, optional, tag="1")]
3738 pub organization: ::core::option::Option<Organization>,
3739}
3740#[derive(Clone, PartialEq, ::prost::Message)]
3742pub struct UpdateOrganizationRequest {
3743 #[prost(string, tag="1")]
3746 pub name: ::prost::alloc::string::String,
3747 #[prost(message, optional, tag="2")]
3749 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3750 #[prost(enumeration="Industry", tag="3")]
3752 pub industry: i32,
3753 #[prost(enumeration="CompanySize", tag="4")]
3755 pub company_size: i32,
3756 #[prost(string, tag="5")]
3759 pub default_locale: ::prost::alloc::string::String,
3760 #[prost(int32, tag="6")]
3762 pub ml_retrain_cold_threshold: i32,
3763 #[prost(bool, optional, tag="7")]
3766 pub ml_cancelled_counts: ::core::option::Option<bool>,
3767 #[prost(int32, tag="8")]
3770 pub ml_manual_limit_monthly: i32,
3771}
3772#[derive(Clone, PartialEq, ::prost::Message)]
3774pub struct UpdateOrganizationResponse {
3775 #[prost(message, optional, tag="1")]
3777 pub organization: ::core::option::Option<Organization>,
3778}
3779#[derive(Clone, PartialEq, ::prost::Message)]
3781pub struct UpdateSsoAttributeMappingsRequest {
3782 #[prost(message, repeated, tag="1")]
3784 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3785}
3786#[derive(Clone, PartialEq, ::prost::Message)]
3788pub struct UpdateSsoAttributeMappingsResponse {
3789 #[prost(message, optional, tag="1")]
3791 pub organization: ::core::option::Option<Organization>,
3792}
3793#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3795pub struct RotateAnalyticsSaltRequest {
3796 #[prost(int32, tag="1")]
3798 pub new_bucket_count: i32,
3799}
3800#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3802pub struct RotateAnalyticsSaltResponse {
3803 #[prost(int32, tag="1")]
3805 pub bucket_count: i32,
3806}
3807#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3809pub struct UpdateAnalyticsEpsilonRequest {
3810 #[prost(float, tag="1")]
3812 pub epsilon: f32,
3813}
3814#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3816pub struct UpdateAnalyticsEpsilonResponse {
3817 #[prost(float, tag="1")]
3819 pub epsilon: f32,
3820}
3821#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3823pub struct CreateSandboxOrganizationRequest {
3824 #[prost(string, tag="1")]
3827 pub name: ::prost::alloc::string::String,
3828 #[prost(message, optional, tag="2")]
3831 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3832 #[prost(string, tag="3")]
3835 pub data_governance_region: ::prost::alloc::string::String,
3836 #[prost(string, tag="4")]
3840 pub fixture_id: ::prost::alloc::string::String,
3841}
3842#[derive(Clone, PartialEq, ::prost::Message)]
3844pub struct CreateSandboxOrganizationResponse {
3845 #[prost(message, optional, tag="1")]
3847 pub organization: ::core::option::Option<Organization>,
3848 #[prost(message, optional, tag="2")]
3850 pub admin_user: ::core::option::Option<User>,
3851}
3852#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3855pub struct DeleteSandboxOrganizationRequest {
3856 #[prost(string, tag="1")]
3858 pub org_id: ::prost::alloc::string::String,
3859}
3860#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3863pub struct DeleteSandboxOrganizationResponse {
3864 #[prost(string, tag="1")]
3866 pub workflow_id: ::prost::alloc::string::String,
3867}
3868#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3870pub struct SandboxFixture {
3871 #[prost(string, tag="1")]
3873 pub id: ::prost::alloc::string::String,
3874 #[prost(string, tag="2")]
3876 pub name: ::prost::alloc::string::String,
3877 #[prost(string, tag="3")]
3879 pub description: ::prost::alloc::string::String,
3880 #[prost(bool, tag="4")]
3883 pub is_default: bool,
3884}
3885#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3888pub struct ListSandboxFixturesRequest {
3889}
3890#[derive(Clone, PartialEq, ::prost::Message)]
3892pub struct ListSandboxFixturesResponse {
3893 #[prost(message, repeated, tag="1")]
3895 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
3896}
3897#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3900pub struct ListUserOrganizationsRequest {
3901}
3902#[derive(Clone, PartialEq, ::prost::Message)]
3904pub struct ListUserOrganizationsResponse {
3905 #[prost(message, repeated, tag="1")]
3908 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3909}
3910#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3915pub struct ListUserSandboxesRequest {
3916}
3917#[derive(Clone, PartialEq, ::prost::Message)]
3919pub struct ListUserSandboxesResponse {
3920 #[prost(message, repeated, tag="1")]
3925 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
3926}
3927#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3931#[repr(i32)]
3932pub enum Industry {
3933 Unspecified = 0,
3934 Technology = 1,
3935 Finance = 2,
3936 Healthcare = 3,
3937 Education = 4,
3938 Retail = 5,
3939 Manufacturing = 6,
3940 Media = 7,
3941 Other = 8,
3942}
3943impl Industry {
3944 pub fn as_str_name(&self) -> &'static str {
3949 match self {
3950 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3951 Self::Technology => "INDUSTRY_TECHNOLOGY",
3952 Self::Finance => "INDUSTRY_FINANCE",
3953 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3954 Self::Education => "INDUSTRY_EDUCATION",
3955 Self::Retail => "INDUSTRY_RETAIL",
3956 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3957 Self::Media => "INDUSTRY_MEDIA",
3958 Self::Other => "INDUSTRY_OTHER",
3959 }
3960 }
3961 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3963 match value {
3964 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3965 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3966 "INDUSTRY_FINANCE" => Some(Self::Finance),
3967 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3968 "INDUSTRY_EDUCATION" => Some(Self::Education),
3969 "INDUSTRY_RETAIL" => Some(Self::Retail),
3970 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3971 "INDUSTRY_MEDIA" => Some(Self::Media),
3972 "INDUSTRY_OTHER" => Some(Self::Other),
3973 _ => None,
3974 }
3975 }
3976}
3977#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3979#[repr(i32)]
3980pub enum CompanySize {
3981 Unspecified = 0,
3982 CompanySize1200 = 1,
3983 CompanySize200500 = 2,
3984 CompanySize5001000 = 3,
3985 CompanySize10005000 = 4,
3986 CompanySize5000Plus = 5,
3987}
3988impl CompanySize {
3989 pub fn as_str_name(&self) -> &'static str {
3994 match self {
3995 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3996 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3997 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3998 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3999 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
4000 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
4001 }
4002 }
4003 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4005 match value {
4006 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
4007 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
4008 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
4009 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
4010 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
4011 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
4012 _ => None,
4013 }
4014 }
4015}
4016#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4018#[repr(i32)]
4019pub enum OrgType {
4020 Unspecified = 0,
4021 Standard = 1,
4022 Sandbox = 2,
4023 Staff = 3,
4026}
4027impl OrgType {
4028 pub fn as_str_name(&self) -> &'static str {
4033 match self {
4034 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
4035 Self::Standard => "ORG_TYPE_STANDARD",
4036 Self::Sandbox => "ORG_TYPE_SANDBOX",
4037 Self::Staff => "ORG_TYPE_STAFF",
4038 }
4039 }
4040 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4042 match value {
4043 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4044 "ORG_TYPE_STANDARD" => Some(Self::Standard),
4045 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
4046 "ORG_TYPE_STAFF" => Some(Self::Staff),
4047 _ => None,
4048 }
4049 }
4050}
4051#[derive(Clone, PartialEq, ::prost::Message)]
4055pub struct UserRenderContext {
4056 #[prost(string, tag="1")]
4058 pub user_id: ::prost::alloc::string::String,
4059 #[prost(map="string, string", tag="2")]
4062 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4063}
4064#[derive(Clone, PartialEq, ::prost::Message)]
4066pub struct RenderBatchRequest {
4067 #[prost(string, tag="1")]
4069 pub template_id: ::prost::alloc::string::String,
4070 #[prost(int32, tag="2")]
4072 pub version: i32,
4073 #[prost(message, repeated, tag="3")]
4076 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
4077}
4078#[derive(Clone, PartialEq, ::prost::Message)]
4081pub struct RenderBatchResponse {
4082 #[prost(string, tag="1")]
4084 pub user_id: ::prost::alloc::string::String,
4085 #[prost(message, optional, tag="2")]
4087 pub message: ::core::option::Option<Message>,
4088 #[prost(string, tag="3")]
4090 pub error: ::prost::alloc::string::String,
4091}
4092#[derive(Clone, PartialEq, ::prost::Message)]
4097pub struct SessionRecording {
4098 #[prost(string, tag="1")]
4100 pub id: ::prost::alloc::string::String,
4101 #[prost(message, optional, tag="2")]
4103 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
4104 #[prost(message, optional, tag="3")]
4106 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
4107 #[prost(int32, tag="4")]
4109 pub duration_seconds: i32,
4110 #[prost(float, tag="5")]
4112 pub activity_score: f32,
4113}
4114#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4116pub struct ListSessionRecordingsRequest {
4117 #[prost(string, tag="1")]
4120 pub campaign_id: ::prost::alloc::string::String,
4121 #[prost(message, optional, tag="2")]
4123 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
4124 #[prost(message, optional, tag="3")]
4126 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
4127 #[prost(message, optional, tag="4")]
4129 pub pagination: ::core::option::Option<Pagination>,
4130}
4131#[derive(Clone, PartialEq, ::prost::Message)]
4133pub struct ListSessionRecordingsResponse {
4134 #[prost(message, repeated, tag="1")]
4136 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
4137 #[prost(message, optional, tag="2")]
4139 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4140}
4141#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4143pub struct GetSessionSnapshotsRequest {
4144 #[prost(string, tag="1")]
4147 pub recording_id: ::prost::alloc::string::String,
4148}
4149#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4151pub struct GetSessionSnapshotsResponse {
4152 #[prost(string, tag="1")]
4155 pub snapshot_data: ::prost::alloc::string::String,
4156}
4157#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4161pub struct ListRolesRequest {
4162}
4163#[derive(Clone, PartialEq, ::prost::Message)]
4165pub struct ListRolesResponse {
4166 #[prost(message, repeated, tag="1")]
4168 pub roles: ::prost::alloc::vec::Vec<Role>,
4169}
4170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4172pub struct CreateRoleRequest {
4173 #[prost(string, tag="1")]
4176 pub name: ::prost::alloc::string::String,
4177 #[prost(enumeration="Permission", repeated, tag="2")]
4180 pub permissions: ::prost::alloc::vec::Vec<i32>,
4181}
4182#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4184pub struct CreateRoleResponse {
4185 #[prost(message, optional, tag="1")]
4187 pub role: ::core::option::Option<Role>,
4188}
4189#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4191pub struct UpdateRoleRequest {
4192 #[prost(string, tag="1")]
4194 pub role_id: ::prost::alloc::string::String,
4195 #[prost(string, tag="2")]
4197 pub name: ::prost::alloc::string::String,
4198 #[prost(enumeration="Permission", repeated, tag="3")]
4202 pub permissions: ::prost::alloc::vec::Vec<i32>,
4203}
4204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4206pub struct UpdateRoleResponse {
4207 #[prost(message, optional, tag="1")]
4209 pub role: ::core::option::Option<Role>,
4210}
4211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4213pub struct DeleteRoleRequest {
4214 #[prost(string, tag="1")]
4216 pub role_id: ::prost::alloc::string::String,
4217}
4218#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4220pub struct DeleteRoleResponse {
4221}
4222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4228pub struct SamlAttributeNames {
4229 #[prost(string, tag="1")]
4231 pub email: ::prost::alloc::string::String,
4232 #[prost(string, tag="2")]
4234 pub given_name: ::prost::alloc::string::String,
4235 #[prost(string, tag="3")]
4237 pub family_name: ::prost::alloc::string::String,
4238}
4239#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4241pub struct SsoProvider {
4242 #[prost(string, tag="1")]
4244 pub id: ::prost::alloc::string::String,
4245 #[prost(string, tag="2")]
4248 pub domain: ::prost::alloc::string::String,
4249 #[prost(enumeration="SsoProviderType", tag="3")]
4251 pub r#type: i32,
4252 #[prost(string, tag="4")]
4255 pub metadata_url: ::prost::alloc::string::String,
4256 #[prost(string, tag="5")]
4259 pub idp_provider_name: ::prost::alloc::string::String,
4260 #[prost(message, optional, tag="6")]
4262 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4263 #[prost(message, optional, tag="7")]
4265 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4266 #[prost(message, optional, tag="8")]
4268 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4269}
4270#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4273pub struct CheckSsoByDomainRequest {
4274 #[prost(string, tag="1")]
4277 pub email: ::prost::alloc::string::String,
4278}
4279#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4281pub struct CheckSsoByDomainResponse {
4282 #[prost(bool, tag="1")]
4284 pub sso_enabled: bool,
4285 #[prost(string, tag="2")]
4288 pub provider_name: ::prost::alloc::string::String,
4289}
4290#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4292pub struct CreateSsoProviderRequest {
4293 #[prost(string, tag="1")]
4296 pub domain: ::prost::alloc::string::String,
4297 #[prost(enumeration="SsoProviderType", tag="2")]
4299 pub r#type: i32,
4300 #[prost(string, tag="3")]
4303 pub metadata_url: ::prost::alloc::string::String,
4304 #[prost(message, optional, tag="4")]
4307 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4308}
4309#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4311pub struct CreateSsoProviderResponse {
4312 #[prost(message, optional, tag="1")]
4314 pub provider: ::core::option::Option<SsoProvider>,
4315}
4316#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4319pub struct GetSsoProviderRequest {
4320}
4321#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4323pub struct GetSsoProviderResponse {
4324 #[prost(message, optional, tag="1")]
4326 pub provider: ::core::option::Option<SsoProvider>,
4327}
4328#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4330pub struct DeleteSsoProviderRequest {
4331 #[prost(string, tag="1")]
4333 pub provider_id: ::prost::alloc::string::String,
4334}
4335#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4337pub struct DeleteSsoProviderResponse {
4338}
4339#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4343#[repr(i32)]
4344pub enum SsoProviderType {
4345 Unspecified = 0,
4347 Saml = 1,
4349 Oidc = 2,
4351}
4352impl SsoProviderType {
4353 pub fn as_str_name(&self) -> &'static str {
4358 match self {
4359 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
4360 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
4361 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
4362 }
4363 }
4364 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4366 match value {
4367 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4368 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
4369 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
4370 _ => None,
4371 }
4372 }
4373}
4374#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4380pub struct Team {
4381 #[prost(string, tag="1")]
4383 pub id: ::prost::alloc::string::String,
4384 #[prost(string, tag="2")]
4387 pub name: ::prost::alloc::string::String,
4388 #[prost(string, tag="3")]
4391 pub description: ::prost::alloc::string::String,
4392 #[prost(int32, tag="4")]
4394 pub member_count: i32,
4395 #[prost(message, optional, tag="5")]
4397 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4398 #[prost(message, optional, tag="6")]
4400 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4401 #[prost(bool, tag="7")]
4403 pub is_default: bool,
4404 #[prost(string, tag="8")]
4406 pub created_by: ::prost::alloc::string::String,
4407}
4408#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4410pub struct CreateTeamRequest {
4411 #[prost(string, tag="1")]
4414 pub name: ::prost::alloc::string::String,
4415 #[prost(string, tag="2")]
4418 pub description: ::prost::alloc::string::String,
4419}
4420#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4422pub struct CreateTeamResponse {
4423 #[prost(message, optional, tag="1")]
4425 pub team: ::core::option::Option<Team>,
4426}
4427#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4429pub struct GetTeamRequest {
4430 #[prost(string, tag="1")]
4432 pub team_id: ::prost::alloc::string::String,
4433}
4434#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4436pub struct GetTeamResponse {
4437 #[prost(message, optional, tag="1")]
4439 pub team: ::core::option::Option<Team>,
4440}
4441#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4443pub struct ListTeamsRequest {
4444 #[prost(message, optional, tag="1")]
4446 pub pagination: ::core::option::Option<Pagination>,
4447}
4448#[derive(Clone, PartialEq, ::prost::Message)]
4450pub struct ListTeamsResponse {
4451 #[prost(message, repeated, tag="1")]
4453 pub teams: ::prost::alloc::vec::Vec<Team>,
4454 #[prost(message, optional, tag="2")]
4456 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4457}
4458#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4460pub struct UpdateTeamRequest {
4461 #[prost(string, tag="1")]
4463 pub team_id: ::prost::alloc::string::String,
4464 #[prost(string, tag="2")]
4468 pub name: ::prost::alloc::string::String,
4469 #[prost(string, tag="3")]
4472 pub description: ::prost::alloc::string::String,
4473}
4474#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4476pub struct UpdateTeamResponse {
4477 #[prost(message, optional, tag="1")]
4479 pub team: ::core::option::Option<Team>,
4480}
4481#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4483pub struct DeleteTeamRequest {
4484 #[prost(string, tag="1")]
4487 pub team_id: ::prost::alloc::string::String,
4488}
4489#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4491pub struct DeleteTeamResponse {
4492}
4493#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4495pub struct AddTeamMembersRequest {
4496 #[prost(string, tag="1")]
4498 pub team_id: ::prost::alloc::string::String,
4499 #[prost(string, repeated, tag="2")]
4503 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4504}
4505#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4507pub struct AddTeamMembersResponse {
4508 #[prost(message, optional, tag="1")]
4510 pub team: ::core::option::Option<Team>,
4511}
4512#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4514pub struct RemoveTeamMembersRequest {
4515 #[prost(string, tag="1")]
4517 pub team_id: ::prost::alloc::string::String,
4518 #[prost(string, repeated, tag="2")]
4521 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4522}
4523#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4525pub struct RemoveTeamMembersResponse {
4526 #[prost(message, optional, tag="1")]
4528 pub team: ::core::option::Option<Team>,
4529}
4530#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4532pub struct ListTeamMembersRequest {
4533 #[prost(string, tag="1")]
4535 pub team_id: ::prost::alloc::string::String,
4536 #[prost(message, optional, tag="2")]
4538 pub pagination: ::core::option::Option<Pagination>,
4539}
4540#[derive(Clone, PartialEq, ::prost::Message)]
4542pub struct ListTeamMembersResponse {
4543 #[prost(message, repeated, tag="1")]
4545 pub users: ::prost::alloc::vec::Vec<User>,
4546 #[prost(message, optional, tag="2")]
4548 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4549}
4550#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4554pub struct TemplateVariable {
4555 #[prost(string, tag="1")]
4558 pub name: ::prost::alloc::string::String,
4559 #[prost(string, tag="2")]
4562 pub description: ::prost::alloc::string::String,
4563 #[prost(bool, tag="3")]
4565 pub required: bool,
4566 #[prost(enumeration="TemplateVariableSource", tag="4")]
4568 pub source: i32,
4569 #[prost(string, tag="5")]
4572 pub default_value: ::prost::alloc::string::String,
4573 #[prost(bool, tag="6")]
4576 pub pii: bool,
4577}
4578#[derive(Clone, PartialEq, ::prost::Message)]
4581pub struct Template {
4582 #[prost(string, tag="1")]
4584 pub id: ::prost::alloc::string::String,
4585 #[prost(string, tag="2")]
4588 pub name: ::prost::alloc::string::String,
4589 #[prost(string, tag="3")]
4592 pub body: ::prost::alloc::string::String,
4593 #[prost(message, repeated, tag="4")]
4595 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4596 #[prost(int32, tag="5")]
4598 pub version: i32,
4599 #[prost(message, optional, tag="6")]
4601 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4602 #[prost(message, optional, tag="7")]
4604 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4605 #[prost(string, tag="8")]
4609 pub title: ::prost::alloc::string::String,
4610 #[prost(enumeration="TemplateType", tag="9")]
4613 pub r#type: i32,
4614 #[prost(string, tag="10")]
4618 pub source_locale: ::prost::alloc::string::String,
4619}
4620#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4623pub struct TemplateTranslation {
4624 #[prost(string, tag="1")]
4626 pub id: ::prost::alloc::string::String,
4627 #[prost(string, tag="2")]
4629 pub template_id: ::prost::alloc::string::String,
4630 #[prost(int32, tag="3")]
4632 pub version: i32,
4633 #[prost(string, tag="4")]
4635 pub locale: ::prost::alloc::string::String,
4636 #[prost(string, tag="5")]
4639 pub title: ::prost::alloc::string::String,
4640 #[prost(string, tag="6")]
4643 pub body: ::prost::alloc::string::String,
4644 #[prost(enumeration="TranslationStatus", tag="7")]
4646 pub status: i32,
4647 #[prost(string, tag="8")]
4649 pub translated_by: ::prost::alloc::string::String,
4650 #[prost(string, tag="9")]
4652 pub reviewed_by: ::prost::alloc::string::String,
4653 #[prost(message, optional, tag="10")]
4655 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4656 #[prost(message, optional, tag="11")]
4658 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4659}
4660#[derive(Clone, PartialEq, ::prost::Message)]
4662pub struct CreateTemplateRequest {
4663 #[prost(string, tag="1")]
4666 pub name: ::prost::alloc::string::String,
4667 #[prost(string, tag="2")]
4670 pub body: ::prost::alloc::string::String,
4671 #[prost(message, repeated, tag="3")]
4673 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4674 #[prost(string, tag="4")]
4677 pub title: ::prost::alloc::string::String,
4678 #[prost(enumeration="TemplateType", tag="5")]
4680 pub r#type: i32,
4681 #[prost(string, tag="6")]
4684 pub source_locale: ::prost::alloc::string::String,
4685}
4686#[derive(Clone, PartialEq, ::prost::Message)]
4688pub struct CreateTemplateResponse {
4689 #[prost(message, optional, tag="1")]
4691 pub template: ::core::option::Option<Template>,
4692}
4693#[derive(Clone, PartialEq, ::prost::Message)]
4695pub struct UpdateTemplateRequest {
4696 #[prost(string, tag="1")]
4698 pub template_id: ::prost::alloc::string::String,
4699 #[prost(string, tag="2")]
4702 pub body: ::prost::alloc::string::String,
4703 #[prost(message, repeated, tag="3")]
4705 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4706}
4707#[derive(Clone, PartialEq, ::prost::Message)]
4709pub struct UpdateTemplateResponse {
4710 #[prost(message, optional, tag="1")]
4712 pub template: ::core::option::Option<Template>,
4713}
4714#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4716pub struct GetTemplateRequest {
4717 #[prost(string, tag="1")]
4719 pub template_id: ::prost::alloc::string::String,
4720 #[prost(int32, tag="2")]
4722 pub version: i32,
4723}
4724#[derive(Clone, PartialEq, ::prost::Message)]
4726pub struct GetTemplateResponse {
4727 #[prost(message, optional, tag="1")]
4729 pub template: ::core::option::Option<Template>,
4730}
4731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4733pub struct ListTemplatesRequest {
4734 #[prost(message, optional, tag="1")]
4736 pub pagination: ::core::option::Option<Pagination>,
4737 #[prost(enumeration="TemplateType", tag="2")]
4739 pub r#type: i32,
4740}
4741#[derive(Clone, PartialEq, ::prost::Message)]
4743pub struct ListTemplatesResponse {
4744 #[prost(message, repeated, tag="1")]
4746 pub templates: ::prost::alloc::vec::Vec<Template>,
4747 #[prost(message, optional, tag="2")]
4749 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4750}
4751#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4753pub struct CreateTemplateTranslationRequest {
4754 #[prost(string, tag="1")]
4756 pub template_id: ::prost::alloc::string::String,
4757 #[prost(int32, tag="2")]
4759 pub version: i32,
4760 #[prost(string, tag="3")]
4762 pub locale: ::prost::alloc::string::String,
4763 #[prost(string, tag="4")]
4765 pub title: ::prost::alloc::string::String,
4766 #[prost(string, tag="5")]
4768 pub body: ::prost::alloc::string::String,
4769 #[prost(string, tag="6")]
4771 pub translated_by: ::prost::alloc::string::String,
4772 #[prost(enumeration="TranslationStatus", tag="7")]
4774 pub status: i32,
4775}
4776#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4778pub struct CreateTemplateTranslationResponse {
4779 #[prost(message, optional, tag="1")]
4781 pub translation: ::core::option::Option<TemplateTranslation>,
4782}
4783#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4785pub struct UpdateTemplateTranslationRequest {
4786 #[prost(string, tag="1")]
4788 pub translation_id: ::prost::alloc::string::String,
4789 #[prost(string, tag="2")]
4791 pub title: ::prost::alloc::string::String,
4792 #[prost(string, tag="3")]
4794 pub body: ::prost::alloc::string::String,
4795 #[prost(enumeration="TranslationStatus", tag="4")]
4797 pub status: i32,
4798}
4799#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4801pub struct UpdateTemplateTranslationResponse {
4802 #[prost(message, optional, tag="1")]
4804 pub translation: ::core::option::Option<TemplateTranslation>,
4805}
4806#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4808pub struct ListTemplateTranslationsRequest {
4809 #[prost(string, tag="1")]
4811 pub template_id: ::prost::alloc::string::String,
4812 #[prost(int32, tag="2")]
4814 pub version: i32,
4815}
4816#[derive(Clone, PartialEq, ::prost::Message)]
4818pub struct ListTemplateTranslationsResponse {
4819 #[prost(message, repeated, tag="1")]
4821 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4822}
4823#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4825pub struct ApproveTemplateTranslationRequest {
4826 #[prost(string, tag="1")]
4828 pub translation_id: ::prost::alloc::string::String,
4829}
4830#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4832pub struct ApproveTemplateTranslationResponse {
4833 #[prost(message, optional, tag="1")]
4835 pub translation: ::core::option::Option<TemplateTranslation>,
4836}
4837#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4841#[repr(i32)]
4842pub enum TemplateType {
4843 Unspecified = 0,
4845 Markdown = 1,
4847 Rich = 2,
4849 Html = 3,
4851}
4852impl TemplateType {
4853 pub fn as_str_name(&self) -> &'static str {
4858 match self {
4859 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4860 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4861 Self::Rich => "TEMPLATE_TYPE_RICH",
4862 Self::Html => "TEMPLATE_TYPE_HTML",
4863 }
4864 }
4865 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4867 match value {
4868 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4869 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4870 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4871 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4872 _ => None,
4873 }
4874 }
4875}
4876#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4878#[repr(i32)]
4879pub enum TemplateVariableSource {
4880 Unspecified = 0,
4882 Profile = 1,
4884 Custom = 2,
4886}
4887impl TemplateVariableSource {
4888 pub fn as_str_name(&self) -> &'static str {
4893 match self {
4894 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4895 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4896 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4897 }
4898 }
4899 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4901 match value {
4902 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4903 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4904 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4905 _ => None,
4906 }
4907 }
4908}
4909#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4911#[repr(i32)]
4912pub enum TranslationStatus {
4913 Unspecified = 0,
4914 Draft = 1,
4916 AiTranslated = 2,
4918 InReview = 3,
4920 Approved = 4,
4922}
4923impl TranslationStatus {
4924 pub fn as_str_name(&self) -> &'static str {
4929 match self {
4930 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4931 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4932 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4933 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4934 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4935 }
4936 }
4937 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4939 match value {
4940 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4941 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4942 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4943 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4944 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4945 _ => None,
4946 }
4947 }
4948}
4949include!("pidgr.v1.tonic.rs");
4950