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}
2708#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2710pub struct SyncRequest {
2711 #[prost(message, optional, tag="1")]
2713 pub since: ::core::option::Option<::prost_types::Timestamp>,
2714 #[prost(int32, tag="2")]
2717 pub limit: i32,
2718}
2719#[derive(Clone, PartialEq, ::prost::Message)]
2721pub struct SyncResponse {
2722 #[prost(message, repeated, tag="1")]
2724 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2725 #[prost(message, optional, tag="2")]
2727 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2728}
2729#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2731pub struct MarkReadRequest {
2732 #[prost(string, tag="1")]
2735 pub delivery_id: ::prost::alloc::string::String,
2736}
2737#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2739pub struct MarkReadResponse {
2740 #[prost(bool, tag="1")]
2742 pub success: bool,
2743}
2744#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2746pub struct GetMessageRequest {
2747 #[prost(string, tag="1")]
2750 pub delivery_id: ::prost::alloc::string::String,
2751}
2752#[derive(Clone, PartialEq, ::prost::Message)]
2754pub struct GetMessageResponse {
2755 #[prost(message, optional, tag="1")]
2757 pub entry: ::core::option::Option<InboxEntry>,
2758}
2759#[derive(Clone, PartialEq, ::prost::Message)]
2764pub struct Archetype {
2765 #[prost(string, tag="1")]
2767 pub label: ::prost::alloc::string::String,
2768 #[prost(string, tag="2")]
2770 pub description: ::prost::alloc::string::String,
2771 #[prost(float, tag="3")]
2773 pub percentage: f32,
2774 #[prost(map="string, double", tag="4")]
2781 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
2782 #[prost(map="string, message", tag="5")]
2787 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
2788 #[prost(message, optional, tag="6")]
2792 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
2793 #[prost(message, optional, tag="7")]
2797 pub forecast: ::core::option::Option<ArchetypeForecast>,
2798 #[prost(message, repeated, tag="8")]
2804 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
2805 #[prost(message, optional, tag="9")]
2808 pub screen_dwell: ::core::option::Option<ScreenDwell>,
2809 #[prost(message, optional, tag="10")]
2813 pub response_timeline: ::core::option::Option<ResponseTimeline>,
2814}
2815#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2820pub struct DimensionStats {
2821 #[prost(double, tag="1")]
2823 pub centroid: f64,
2824 #[prost(double, tag="2")]
2826 pub p25: f64,
2827 #[prost(double, tag="3")]
2829 pub p50: f64,
2830 #[prost(double, tag="4")]
2832 pub p75: f64,
2833 #[prost(double, tag="5")]
2836 pub group_p50: f64,
2837}
2838#[derive(Clone, PartialEq, ::prost::Message)]
2842pub struct TapHeatmap {
2843 #[prost(int32, tag="1")]
2845 pub width: i32,
2846 #[prost(int32, tag="2")]
2848 pub height: i32,
2849 #[prost(double, repeated, tag="3")]
2852 pub values: ::prost::alloc::vec::Vec<f64>,
2853 #[prost(int32, tag="4")]
2856 pub session_count: i32,
2857 #[prost(message, repeated, tag="5")]
2861 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
2862}
2863#[derive(Clone, PartialEq, ::prost::Message)]
2865pub struct TapHeatmapLayer {
2866 #[prost(string, tag="1")]
2869 pub event_type: ::prost::alloc::string::String,
2870 #[prost(double, repeated, tag="2")]
2873 pub values: ::prost::alloc::vec::Vec<f64>,
2874}
2875#[derive(Clone, PartialEq, ::prost::Message)]
2877pub struct ArchetypeForecast {
2878 #[prost(message, repeated, tag="1")]
2881 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
2882}
2883#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2885pub struct ForecastHorizon {
2886 #[prost(int32, tag="1")]
2888 pub days: i32,
2889 #[prost(double, tag="2")]
2892 pub predicted_share: f64,
2893 #[prost(double, tag="3")]
2895 pub lower: f64,
2896 #[prost(double, tag="4")]
2898 pub upper: f64,
2899 #[prost(enumeration="ConfidenceLevel", tag="5")]
2901 pub confidence: i32,
2902}
2903#[derive(Clone, PartialEq, ::prost::Message)]
2906pub struct ExemplarSession {
2907 #[prost(string, tag="1")]
2910 pub session_id: ::prost::alloc::string::String,
2911 #[prost(int32, tag="2")]
2914 pub rank: i32,
2915 #[prost(double, tag="3")]
2917 pub distance: f64,
2918 #[prost(int32, tag="4")]
2920 pub duration_seconds: i32,
2921 #[prost(string, tag="5")]
2925 pub platform: ::prost::alloc::string::String,
2926}
2927#[derive(Clone, PartialEq, ::prost::Message)]
2931pub struct ScreenDwell {
2932 #[prost(message, repeated, tag="1")]
2935 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
2936}
2937#[derive(Clone, PartialEq, ::prost::Message)]
2938pub struct ScreenDwellEntry {
2939 #[prost(string, tag="1")]
2943 pub screen_name: ::prost::alloc::string::String,
2944 #[prost(double, tag="2")]
2946 pub median_seconds: f64,
2947 #[prost(double, tag="3")]
2949 pub p75_seconds: f64,
2950 #[prost(int32, tag="4")]
2952 pub session_count: i32,
2953}
2954#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2958pub struct ResponseTimeline {
2959 #[prost(message, optional, tag="1")]
2961 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
2962 #[prost(message, optional, tag="2")]
2965 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
2966 #[prost(message, optional, tag="3")]
2969 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
2970 #[prost(int32, tag="4")]
2972 pub delivery_count: i32,
2973}
2974#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2976pub struct LatencyPercentiles {
2977 #[prost(double, tag="1")]
2978 pub p50: f64,
2979 #[prost(double, tag="2")]
2980 pub p75: f64,
2981 #[prost(double, tag="3")]
2982 pub p95: f64,
2983}
2984#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2987pub struct CohortPrediction {
2988 #[prost(float, tag="1")]
2990 pub predicted_ack_rate: f32,
2991 #[prost(float, tag="2")]
2993 pub confidence_low: f32,
2994 #[prost(float, tag="3")]
2996 pub confidence_high: f32,
2997 #[prost(enumeration="ConfidenceLevel", tag="4")]
2999 pub confidence_level: i32,
3000 #[prost(int32, tag="5")]
3002 pub data_point_count: i32,
3003}
3004#[derive(Clone, PartialEq, ::prost::Message)]
3006pub struct CampaignAdvisory {
3007 #[prost(message, optional, tag="1")]
3009 pub predicted_ack: ::core::option::Option<CohortPrediction>,
3010 #[prost(int32, tag="2")]
3013 pub suggested_escalation_delay_minutes: i32,
3014 #[prost(message, repeated, tag="3")]
3016 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3017}
3018#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3020pub struct GetGroupArchetypesRequest {
3021 #[prost(string, tag="1")]
3023 pub group_id: ::prost::alloc::string::String,
3024}
3025#[derive(Clone, PartialEq, ::prost::Message)]
3027pub struct GetGroupArchetypesResponse {
3028 #[prost(message, repeated, tag="1")]
3030 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
3031 #[prost(int32, tag="2")]
3033 pub data_point_count: i32,
3034 #[prost(enumeration="PipelineState", tag="3")]
3038 pub pipeline_state: i32,
3039}
3040#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3042pub struct PredictCampaignAckRequest {
3043 #[prost(string, tag="1")]
3045 pub group_id: ::prost::alloc::string::String,
3046 #[prost(string, tag="2")]
3048 pub template_type: ::prost::alloc::string::String,
3049 #[prost(int32, tag="3")]
3051 pub workflow_step_count: i32,
3052}
3053#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3055pub struct PredictCampaignAckResponse {
3056 #[prost(message, optional, tag="1")]
3058 pub prediction: ::core::option::Option<CohortPrediction>,
3059}
3060#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3062pub struct GetCampaignAdvisoryRequest {
3063 #[prost(string, tag="1")]
3065 pub group_id: ::prost::alloc::string::String,
3066 #[prost(string, tag="2")]
3068 pub template_id: ::prost::alloc::string::String,
3069 #[prost(int32, tag="3")]
3071 pub template_version: i32,
3072 #[prost(int32, tag="4")]
3074 pub workflow_step_count: i32,
3075}
3076#[derive(Clone, PartialEq, ::prost::Message)]
3078pub struct GetCampaignAdvisoryResponse {
3079 #[prost(message, optional, tag="1")]
3081 pub advisory: ::core::option::Option<CampaignAdvisory>,
3082}
3083#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3085pub struct GetInsightNarrativeRequest {
3086 #[prost(string, tag="1")]
3088 pub group_id: ::prost::alloc::string::String,
3089 #[prost(string, tag="2")]
3091 pub prompt_name: ::prost::alloc::string::String,
3092}
3093#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3095pub struct GetInsightNarrativeResponse {
3096 #[prost(string, tag="1")]
3098 pub narrative: ::prost::alloc::string::String,
3099 #[prost(message, optional, tag="2")]
3101 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3102 #[prost(string, tag="3")]
3104 pub model_id: ::prost::alloc::string::String,
3105}
3106#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3109pub struct TriggerMlPipelineRequest {
3110}
3111#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3113pub struct TriggerMlPipelineResponse {
3114 #[prost(int32, tag="1")]
3116 pub remaining_this_month: i32,
3117 #[prost(message, optional, tag="2")]
3119 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3120}
3121#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3125pub struct TriggerArchetypeClusteringRequest {
3126 #[prost(string, tag="1")]
3128 pub group_id: ::prost::alloc::string::String,
3129}
3130#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3132pub struct TriggerArchetypeClusteringResponse {
3133 #[prost(string, tag="1")]
3136 pub workflow_id: ::prost::alloc::string::String,
3137 #[prost(int32, tag="2")]
3140 pub remaining_this_month: i32,
3141 #[prost(message, optional, tag="3")]
3144 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3145}
3146#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3150#[repr(i32)]
3151pub enum ConfidenceLevel {
3152 Unspecified = 0,
3153 Low = 1,
3155 Medium = 2,
3157 High = 3,
3159}
3160impl ConfidenceLevel {
3161 pub fn as_str_name(&self) -> &'static str {
3166 match self {
3167 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3168 Self::Low => "CONFIDENCE_LEVEL_LOW",
3169 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3170 Self::High => "CONFIDENCE_LEVEL_HIGH",
3171 }
3172 }
3173 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3175 match value {
3176 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3177 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3178 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3179 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3180 _ => None,
3181 }
3182 }
3183}
3184#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3190#[repr(i32)]
3191pub enum PipelineState {
3192 Unspecified = 0,
3193 NeverRun = 1,
3196 BelowThreshold = 2,
3200 NoClusters = 3,
3204 Ready = 4,
3206}
3207impl PipelineState {
3208 pub fn as_str_name(&self) -> &'static str {
3213 match self {
3214 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3215 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3216 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3217 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3218 Self::Ready => "PIPELINE_STATE_READY",
3219 }
3220 }
3221 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3223 match value {
3224 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3225 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3226 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3227 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3228 "PIPELINE_STATE_READY" => Some(Self::Ready),
3229 _ => None,
3230 }
3231 }
3232}
3233#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3238pub struct InviteLink {
3239 #[prost(string, tag="1")]
3241 pub id: ::prost::alloc::string::String,
3242 #[prost(string, tag="2")]
3244 pub token: ::prost::alloc::string::String,
3245 #[prost(string, tag="3")]
3247 pub role_id: ::prost::alloc::string::String,
3248 #[prost(int32, tag="4")]
3251 pub max_uses: i32,
3252 #[prost(int32, tag="5")]
3254 pub use_count: i32,
3255 #[prost(message, optional, tag="6")]
3257 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3258 #[prost(message, optional, tag="7")]
3260 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
3261 #[prost(string, tag="8")]
3263 pub created_by: ::prost::alloc::string::String,
3264 #[prost(message, optional, tag="9")]
3266 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3267 #[prost(string, tag="10")]
3270 pub data_governance_region: ::prost::alloc::string::String,
3271}
3272#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3274pub struct CreateInviteLinkRequest {
3275 #[prost(string, tag="1")]
3277 pub role_id: ::prost::alloc::string::String,
3278 #[prost(int32, tag="2")]
3280 pub max_uses: i32,
3281 #[prost(int32, tag="3")]
3284 pub expires_in_hours: i32,
3285 #[prost(string, tag="4")]
3288 pub data_governance_region: ::prost::alloc::string::String,
3289}
3290#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3292pub struct CreateInviteLinkResponse {
3293 #[prost(message, optional, tag="1")]
3295 pub invite_link: ::core::option::Option<InviteLink>,
3296 #[prost(string, tag="2")]
3298 pub url: ::prost::alloc::string::String,
3299}
3300#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3302pub struct ListInviteLinksRequest {
3303}
3304#[derive(Clone, PartialEq, ::prost::Message)]
3306pub struct ListInviteLinksResponse {
3307 #[prost(message, repeated, tag="1")]
3309 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
3310}
3311#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3313pub struct RevokeInviteLinkRequest {
3314 #[prost(string, tag="1")]
3316 pub invite_link_id: ::prost::alloc::string::String,
3317}
3318#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3320pub struct RevokeInviteLinkResponse {
3321}
3322#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3324pub struct RedeemInviteLinkRequest {
3325 #[prost(string, tag="1")]
3327 pub token: ::prost::alloc::string::String,
3328}
3329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3331pub struct RedeemInviteLinkResponse {
3332 #[prost(string, tag="1")]
3334 pub organization_name: ::prost::alloc::string::String,
3335}
3336#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3338pub struct ValidateInviteLinkRequest {
3339 #[prost(string, tag="1")]
3341 pub token: ::prost::alloc::string::String,
3342 #[prost(string, tag="2")]
3345 pub email: ::prost::alloc::string::String,
3346}
3347#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3349pub struct ValidateInviteLinkResponse {
3350 #[prost(string, tag="1")]
3352 pub organization_name: ::prost::alloc::string::String,
3353}
3354#[derive(Clone, PartialEq, ::prost::Message)]
3358pub struct InviteUserRequest {
3359 #[prost(string, tag="1")]
3362 pub email: ::prost::alloc::string::String,
3363 #[prost(string, tag="2")]
3366 pub name: ::prost::alloc::string::String,
3367 #[prost(string, tag="4")]
3369 pub role_id: ::prost::alloc::string::String,
3370 #[prost(message, optional, tag="5")]
3372 pub profile: ::core::option::Option<UserProfile>,
3373 #[prost(string, tag="6")]
3376 pub data_governance_region: ::prost::alloc::string::String,
3377}
3378#[derive(Clone, PartialEq, ::prost::Message)]
3380pub struct InviteUserResponse {
3381 #[prost(message, optional, tag="1")]
3383 pub user: ::core::option::Option<User>,
3384}
3385#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3387pub struct GetUserRequest {
3388 #[prost(string, tag="1")]
3390 pub user_id: ::prost::alloc::string::String,
3391}
3392#[derive(Clone, PartialEq, ::prost::Message)]
3394pub struct GetUserResponse {
3395 #[prost(message, optional, tag="1")]
3397 pub user: ::core::option::Option<User>,
3398}
3399#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3401pub struct ListUsersRequest {
3402 #[prost(message, optional, tag="1")]
3404 pub pagination: ::core::option::Option<Pagination>,
3405}
3406#[derive(Clone, PartialEq, ::prost::Message)]
3408pub struct ListUsersResponse {
3409 #[prost(message, repeated, tag="1")]
3411 pub users: ::prost::alloc::vec::Vec<User>,
3412 #[prost(message, optional, tag="2")]
3414 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3415}
3416#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3418pub struct UpdateUserRoleRequest {
3419 #[prost(string, tag="1")]
3421 pub user_id: ::prost::alloc::string::String,
3422 #[prost(string, tag="2")]
3424 pub role_id: ::prost::alloc::string::String,
3425}
3426#[derive(Clone, PartialEq, ::prost::Message)]
3428pub struct UpdateUserRoleResponse {
3429 #[prost(message, optional, tag="1")]
3431 pub user: ::core::option::Option<User>,
3432}
3433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3435pub struct DeactivateUserRequest {
3436 #[prost(string, tag="1")]
3438 pub user_id: ::prost::alloc::string::String,
3439}
3440#[derive(Clone, PartialEq, ::prost::Message)]
3442pub struct DeactivateUserResponse {
3443 #[prost(message, optional, tag="1")]
3445 pub user: ::core::option::Option<User>,
3446}
3447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3449pub struct ReactivateUserRequest {
3450 #[prost(string, tag="1")]
3452 pub user_id: ::prost::alloc::string::String,
3453}
3454#[derive(Clone, PartialEq, ::prost::Message)]
3456pub struct ReactivateUserResponse {
3457 #[prost(message, optional, tag="1")]
3459 pub user: ::core::option::Option<User>,
3460}
3461#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3463pub struct RevokeInviteRequest {
3464 #[prost(string, tag="1")]
3467 pub user_id: ::prost::alloc::string::String,
3468}
3469#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3471pub struct RevokeInviteResponse {
3472}
3473#[derive(Clone, PartialEq, ::prost::Message)]
3475pub struct UpdateUserProfileRequest {
3476 #[prost(string, tag="1")]
3479 pub user_id: ::prost::alloc::string::String,
3480 #[prost(message, optional, tag="2")]
3482 pub profile: ::core::option::Option<UserProfile>,
3483}
3484#[derive(Clone, PartialEq, ::prost::Message)]
3486pub struct UpdateUserProfileResponse {
3487 #[prost(message, optional, tag="1")]
3489 pub user: ::core::option::Option<User>,
3490}
3491#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3493pub struct GetUserSettingsRequest {
3494}
3495#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3497pub struct GetUserSettingsResponse {
3498 #[prost(message, optional, tag="1")]
3500 pub settings: ::core::option::Option<UserSettings>,
3501}
3502#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3504pub struct UpdateUserSettingsRequest {
3505 #[prost(message, optional, tag="1")]
3508 pub settings: ::core::option::Option<UserSettings>,
3509}
3510#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3512pub struct UpdateUserSettingsResponse {
3513 #[prost(message, optional, tag="1")]
3515 pub settings: ::core::option::Option<UserSettings>,
3516}
3517#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3519pub struct BulkInviteUsersRequest {
3520 #[prost(string, repeated, tag="1")]
3523 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3524 #[prost(string, tag="2")]
3526 pub role_id: ::prost::alloc::string::String,
3527}
3528#[derive(Clone, PartialEq, ::prost::Message)]
3530pub struct BulkInviteResult {
3531 #[prost(string, tag="1")]
3533 pub email: ::prost::alloc::string::String,
3534 #[prost(bool, tag="2")]
3536 pub success: bool,
3537 #[prost(string, tag="3")]
3540 pub error: ::prost::alloc::string::String,
3541 #[prost(message, optional, tag="4")]
3543 pub user: ::core::option::Option<User>,
3544}
3545#[derive(Clone, PartialEq, ::prost::Message)]
3547pub struct BulkInviteUsersResponse {
3548 #[prost(message, repeated, tag="1")]
3550 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3551 #[prost(int32, tag="2")]
3553 pub invited_count: i32,
3554 #[prost(int32, tag="3")]
3556 pub failed_count: i32,
3557}
3558#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3562pub struct ConfirmPasskeyEnrollmentRequest {
3563}
3564#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3566pub struct ConfirmPasskeyEnrollmentResponse {
3567 #[prost(bool, tag="1")]
3569 pub confirmed: bool,
3570}
3571#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3573pub struct UpdateUserRegionRequest {
3574 #[prost(string, tag="1")]
3576 pub user_id: ::prost::alloc::string::String,
3577 #[prost(string, tag="2")]
3580 pub data_governance_region: ::prost::alloc::string::String,
3581}
3582#[derive(Clone, PartialEq, ::prost::Message)]
3584pub struct UpdateUserRegionResponse {
3585 #[prost(message, optional, tag="1")]
3587 pub user: ::core::option::Option<User>,
3588 #[prost(string, tag="2")]
3591 pub migration_workflow_id: ::prost::alloc::string::String,
3592}
3593#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3598pub struct SsoAttributeMapping {
3599 #[prost(string, tag="1")]
3602 pub idp_claim: ::prost::alloc::string::String,
3603 #[prost(string, tag="2")]
3607 pub profile_field: ::prost::alloc::string::String,
3608}
3609#[derive(Clone, PartialEq, ::prost::Message)]
3611pub struct Organization {
3612 #[prost(string, tag="1")]
3614 pub id: ::prost::alloc::string::String,
3615 #[prost(string, tag="2")]
3618 pub name: ::prost::alloc::string::String,
3619 #[prost(message, optional, tag="3")]
3621 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3622 #[prost(message, optional, tag="4")]
3624 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3625 #[prost(enumeration="Industry", tag="5")]
3627 pub industry: i32,
3628 #[prost(enumeration="CompanySize", tag="6")]
3630 pub company_size: i32,
3631 #[prost(message, repeated, tag="7")]
3634 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3635 #[prost(string, tag="8")]
3639 pub default_locale: ::prost::alloc::string::String,
3640 #[prost(enumeration="OrgType", tag="9")]
3642 pub org_type: i32,
3643 #[prost(message, optional, tag="10")]
3645 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3646 #[prost(string, tag="11")]
3649 pub data_governance_region: ::prost::alloc::string::String,
3650 #[prost(string, tag="12")]
3653 pub data_content_region: ::prost::alloc::string::String,
3654 #[prost(int32, tag="13")]
3659 pub ml_retrain_cold_threshold: i32,
3660 #[prost(bool, tag="14")]
3662 pub ml_cancelled_counts: bool,
3663 #[prost(int32, tag="15")]
3665 pub ml_manual_limit_monthly: i32,
3666 #[prost(int32, tag="16")]
3668 pub ml_manual_retrains_used: i32,
3669 #[prost(bool, tag="17")]
3671 pub ml_needs_retrain: bool,
3672 #[prost(int32, tag="18")]
3674 pub campaigns_since_last_training: i32,
3675 #[prost(int32, tag="19")]
3677 pub total_completed_campaigns: i32,
3678 #[prost(message, optional, tag="20")]
3680 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
3681}
3682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3686pub struct CreateOrganizationRequest {
3687 #[prost(string, tag="1")]
3690 pub name: ::prost::alloc::string::String,
3691 #[prost(enumeration="Industry", tag="2")]
3693 pub industry: i32,
3694 #[prost(enumeration="CompanySize", tag="3")]
3696 pub company_size: i32,
3697 #[prost(string, tag="4")]
3700 pub access_code: ::prost::alloc::string::String,
3701 #[prost(string, tag="5")]
3704 pub data_governance_region: ::prost::alloc::string::String,
3705}
3706#[derive(Clone, PartialEq, ::prost::Message)]
3708pub struct CreateOrganizationResponse {
3709 #[prost(message, optional, tag="1")]
3711 pub organization: ::core::option::Option<Organization>,
3712 #[prost(message, optional, tag="2")]
3714 pub admin_user: ::core::option::Option<User>,
3715}
3716#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3718pub struct GetOrganizationRequest {
3719}
3720#[derive(Clone, PartialEq, ::prost::Message)]
3722pub struct GetOrganizationResponse {
3723 #[prost(message, optional, tag="1")]
3725 pub organization: ::core::option::Option<Organization>,
3726}
3727#[derive(Clone, PartialEq, ::prost::Message)]
3729pub struct UpdateOrganizationRequest {
3730 #[prost(string, tag="1")]
3733 pub name: ::prost::alloc::string::String,
3734 #[prost(message, optional, tag="2")]
3736 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3737 #[prost(enumeration="Industry", tag="3")]
3739 pub industry: i32,
3740 #[prost(enumeration="CompanySize", tag="4")]
3742 pub company_size: i32,
3743 #[prost(string, tag="5")]
3746 pub default_locale: ::prost::alloc::string::String,
3747 #[prost(int32, tag="6")]
3749 pub ml_retrain_cold_threshold: i32,
3750 #[prost(bool, optional, tag="7")]
3753 pub ml_cancelled_counts: ::core::option::Option<bool>,
3754 #[prost(int32, tag="8")]
3757 pub ml_manual_limit_monthly: i32,
3758}
3759#[derive(Clone, PartialEq, ::prost::Message)]
3761pub struct UpdateOrganizationResponse {
3762 #[prost(message, optional, tag="1")]
3764 pub organization: ::core::option::Option<Organization>,
3765}
3766#[derive(Clone, PartialEq, ::prost::Message)]
3768pub struct UpdateSsoAttributeMappingsRequest {
3769 #[prost(message, repeated, tag="1")]
3771 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3772}
3773#[derive(Clone, PartialEq, ::prost::Message)]
3775pub struct UpdateSsoAttributeMappingsResponse {
3776 #[prost(message, optional, tag="1")]
3778 pub organization: ::core::option::Option<Organization>,
3779}
3780#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3782pub struct RotateAnalyticsSaltRequest {
3783 #[prost(int32, tag="1")]
3785 pub new_bucket_count: i32,
3786}
3787#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3789pub struct RotateAnalyticsSaltResponse {
3790 #[prost(int32, tag="1")]
3792 pub bucket_count: i32,
3793}
3794#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3796pub struct UpdateAnalyticsEpsilonRequest {
3797 #[prost(float, tag="1")]
3799 pub epsilon: f32,
3800}
3801#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3803pub struct UpdateAnalyticsEpsilonResponse {
3804 #[prost(float, tag="1")]
3806 pub epsilon: f32,
3807}
3808#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3810pub struct CreateSandboxOrganizationRequest {
3811 #[prost(string, tag="1")]
3814 pub name: ::prost::alloc::string::String,
3815 #[prost(message, optional, tag="2")]
3818 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3819 #[prost(string, tag="3")]
3822 pub data_governance_region: ::prost::alloc::string::String,
3823 #[prost(string, tag="4")]
3827 pub fixture_id: ::prost::alloc::string::String,
3828}
3829#[derive(Clone, PartialEq, ::prost::Message)]
3831pub struct CreateSandboxOrganizationResponse {
3832 #[prost(message, optional, tag="1")]
3834 pub organization: ::core::option::Option<Organization>,
3835 #[prost(message, optional, tag="2")]
3837 pub admin_user: ::core::option::Option<User>,
3838}
3839#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3842pub struct DeleteSandboxOrganizationRequest {
3843 #[prost(string, tag="1")]
3845 pub org_id: ::prost::alloc::string::String,
3846}
3847#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3850pub struct DeleteSandboxOrganizationResponse {
3851 #[prost(string, tag="1")]
3853 pub workflow_id: ::prost::alloc::string::String,
3854}
3855#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3857pub struct SandboxFixture {
3858 #[prost(string, tag="1")]
3860 pub id: ::prost::alloc::string::String,
3861 #[prost(string, tag="2")]
3863 pub name: ::prost::alloc::string::String,
3864 #[prost(string, tag="3")]
3866 pub description: ::prost::alloc::string::String,
3867 #[prost(bool, tag="4")]
3870 pub is_default: bool,
3871}
3872#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3875pub struct ListSandboxFixturesRequest {
3876}
3877#[derive(Clone, PartialEq, ::prost::Message)]
3879pub struct ListSandboxFixturesResponse {
3880 #[prost(message, repeated, tag="1")]
3882 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
3883}
3884#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3887pub struct ListUserOrganizationsRequest {
3888}
3889#[derive(Clone, PartialEq, ::prost::Message)]
3891pub struct ListUserOrganizationsResponse {
3892 #[prost(message, repeated, tag="1")]
3895 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3896}
3897#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3902pub struct ListUserSandboxesRequest {
3903}
3904#[derive(Clone, PartialEq, ::prost::Message)]
3906pub struct ListUserSandboxesResponse {
3907 #[prost(message, repeated, tag="1")]
3912 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
3913}
3914#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3918#[repr(i32)]
3919pub enum Industry {
3920 Unspecified = 0,
3921 Technology = 1,
3922 Finance = 2,
3923 Healthcare = 3,
3924 Education = 4,
3925 Retail = 5,
3926 Manufacturing = 6,
3927 Media = 7,
3928 Other = 8,
3929}
3930impl Industry {
3931 pub fn as_str_name(&self) -> &'static str {
3936 match self {
3937 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3938 Self::Technology => "INDUSTRY_TECHNOLOGY",
3939 Self::Finance => "INDUSTRY_FINANCE",
3940 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3941 Self::Education => "INDUSTRY_EDUCATION",
3942 Self::Retail => "INDUSTRY_RETAIL",
3943 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3944 Self::Media => "INDUSTRY_MEDIA",
3945 Self::Other => "INDUSTRY_OTHER",
3946 }
3947 }
3948 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3950 match value {
3951 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3952 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3953 "INDUSTRY_FINANCE" => Some(Self::Finance),
3954 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3955 "INDUSTRY_EDUCATION" => Some(Self::Education),
3956 "INDUSTRY_RETAIL" => Some(Self::Retail),
3957 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3958 "INDUSTRY_MEDIA" => Some(Self::Media),
3959 "INDUSTRY_OTHER" => Some(Self::Other),
3960 _ => None,
3961 }
3962 }
3963}
3964#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3966#[repr(i32)]
3967pub enum CompanySize {
3968 Unspecified = 0,
3969 CompanySize1200 = 1,
3970 CompanySize200500 = 2,
3971 CompanySize5001000 = 3,
3972 CompanySize10005000 = 4,
3973 CompanySize5000Plus = 5,
3974}
3975impl CompanySize {
3976 pub fn as_str_name(&self) -> &'static str {
3981 match self {
3982 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3983 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3984 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3985 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3986 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3987 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3988 }
3989 }
3990 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3992 match value {
3993 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3994 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3995 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3996 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3997 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3998 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3999 _ => None,
4000 }
4001 }
4002}
4003#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4005#[repr(i32)]
4006pub enum OrgType {
4007 Unspecified = 0,
4008 Standard = 1,
4009 Sandbox = 2,
4010 Staff = 3,
4013}
4014impl OrgType {
4015 pub fn as_str_name(&self) -> &'static str {
4020 match self {
4021 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
4022 Self::Standard => "ORG_TYPE_STANDARD",
4023 Self::Sandbox => "ORG_TYPE_SANDBOX",
4024 Self::Staff => "ORG_TYPE_STAFF",
4025 }
4026 }
4027 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4029 match value {
4030 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4031 "ORG_TYPE_STANDARD" => Some(Self::Standard),
4032 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
4033 "ORG_TYPE_STAFF" => Some(Self::Staff),
4034 _ => None,
4035 }
4036 }
4037}
4038#[derive(Clone, PartialEq, ::prost::Message)]
4042pub struct UserRenderContext {
4043 #[prost(string, tag="1")]
4045 pub user_id: ::prost::alloc::string::String,
4046 #[prost(map="string, string", tag="2")]
4049 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4050}
4051#[derive(Clone, PartialEq, ::prost::Message)]
4053pub struct RenderBatchRequest {
4054 #[prost(string, tag="1")]
4056 pub template_id: ::prost::alloc::string::String,
4057 #[prost(int32, tag="2")]
4059 pub version: i32,
4060 #[prost(message, repeated, tag="3")]
4063 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
4064}
4065#[derive(Clone, PartialEq, ::prost::Message)]
4068pub struct RenderBatchResponse {
4069 #[prost(string, tag="1")]
4071 pub user_id: ::prost::alloc::string::String,
4072 #[prost(message, optional, tag="2")]
4074 pub message: ::core::option::Option<Message>,
4075 #[prost(string, tag="3")]
4077 pub error: ::prost::alloc::string::String,
4078}
4079#[derive(Clone, PartialEq, ::prost::Message)]
4084pub struct SessionRecording {
4085 #[prost(string, tag="1")]
4087 pub id: ::prost::alloc::string::String,
4088 #[prost(message, optional, tag="2")]
4090 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
4091 #[prost(message, optional, tag="3")]
4093 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
4094 #[prost(int32, tag="4")]
4096 pub duration_seconds: i32,
4097 #[prost(float, tag="5")]
4099 pub activity_score: f32,
4100}
4101#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4103pub struct ListSessionRecordingsRequest {
4104 #[prost(string, tag="1")]
4107 pub campaign_id: ::prost::alloc::string::String,
4108 #[prost(message, optional, tag="2")]
4110 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
4111 #[prost(message, optional, tag="3")]
4113 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
4114 #[prost(message, optional, tag="4")]
4116 pub pagination: ::core::option::Option<Pagination>,
4117}
4118#[derive(Clone, PartialEq, ::prost::Message)]
4120pub struct ListSessionRecordingsResponse {
4121 #[prost(message, repeated, tag="1")]
4123 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
4124 #[prost(message, optional, tag="2")]
4126 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4127}
4128#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4130pub struct GetSessionSnapshotsRequest {
4131 #[prost(string, tag="1")]
4134 pub recording_id: ::prost::alloc::string::String,
4135}
4136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4138pub struct GetSessionSnapshotsResponse {
4139 #[prost(string, tag="1")]
4142 pub snapshot_data: ::prost::alloc::string::String,
4143}
4144#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4148pub struct ListRolesRequest {
4149}
4150#[derive(Clone, PartialEq, ::prost::Message)]
4152pub struct ListRolesResponse {
4153 #[prost(message, repeated, tag="1")]
4155 pub roles: ::prost::alloc::vec::Vec<Role>,
4156}
4157#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4159pub struct CreateRoleRequest {
4160 #[prost(string, tag="1")]
4163 pub name: ::prost::alloc::string::String,
4164 #[prost(enumeration="Permission", repeated, tag="2")]
4167 pub permissions: ::prost::alloc::vec::Vec<i32>,
4168}
4169#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4171pub struct CreateRoleResponse {
4172 #[prost(message, optional, tag="1")]
4174 pub role: ::core::option::Option<Role>,
4175}
4176#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4178pub struct UpdateRoleRequest {
4179 #[prost(string, tag="1")]
4181 pub role_id: ::prost::alloc::string::String,
4182 #[prost(string, tag="2")]
4184 pub name: ::prost::alloc::string::String,
4185 #[prost(enumeration="Permission", repeated, tag="3")]
4189 pub permissions: ::prost::alloc::vec::Vec<i32>,
4190}
4191#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4193pub struct UpdateRoleResponse {
4194 #[prost(message, optional, tag="1")]
4196 pub role: ::core::option::Option<Role>,
4197}
4198#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4200pub struct DeleteRoleRequest {
4201 #[prost(string, tag="1")]
4203 pub role_id: ::prost::alloc::string::String,
4204}
4205#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4207pub struct DeleteRoleResponse {
4208}
4209#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4215pub struct SamlAttributeNames {
4216 #[prost(string, tag="1")]
4218 pub email: ::prost::alloc::string::String,
4219 #[prost(string, tag="2")]
4221 pub given_name: ::prost::alloc::string::String,
4222 #[prost(string, tag="3")]
4224 pub family_name: ::prost::alloc::string::String,
4225}
4226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4228pub struct SsoProvider {
4229 #[prost(string, tag="1")]
4231 pub id: ::prost::alloc::string::String,
4232 #[prost(string, tag="2")]
4235 pub domain: ::prost::alloc::string::String,
4236 #[prost(enumeration="SsoProviderType", tag="3")]
4238 pub r#type: i32,
4239 #[prost(string, tag="4")]
4242 pub metadata_url: ::prost::alloc::string::String,
4243 #[prost(string, tag="5")]
4246 pub idp_provider_name: ::prost::alloc::string::String,
4247 #[prost(message, optional, tag="6")]
4249 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4250 #[prost(message, optional, tag="7")]
4252 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4253 #[prost(message, optional, tag="8")]
4255 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4256}
4257#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4260pub struct CheckSsoByDomainRequest {
4261 #[prost(string, tag="1")]
4264 pub email: ::prost::alloc::string::String,
4265}
4266#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4268pub struct CheckSsoByDomainResponse {
4269 #[prost(bool, tag="1")]
4271 pub sso_enabled: bool,
4272 #[prost(string, tag="2")]
4275 pub provider_name: ::prost::alloc::string::String,
4276}
4277#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4279pub struct CreateSsoProviderRequest {
4280 #[prost(string, tag="1")]
4283 pub domain: ::prost::alloc::string::String,
4284 #[prost(enumeration="SsoProviderType", tag="2")]
4286 pub r#type: i32,
4287 #[prost(string, tag="3")]
4290 pub metadata_url: ::prost::alloc::string::String,
4291 #[prost(message, optional, tag="4")]
4294 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4295}
4296#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4298pub struct CreateSsoProviderResponse {
4299 #[prost(message, optional, tag="1")]
4301 pub provider: ::core::option::Option<SsoProvider>,
4302}
4303#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4306pub struct GetSsoProviderRequest {
4307}
4308#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4310pub struct GetSsoProviderResponse {
4311 #[prost(message, optional, tag="1")]
4313 pub provider: ::core::option::Option<SsoProvider>,
4314}
4315#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4317pub struct DeleteSsoProviderRequest {
4318 #[prost(string, tag="1")]
4320 pub provider_id: ::prost::alloc::string::String,
4321}
4322#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4324pub struct DeleteSsoProviderResponse {
4325}
4326#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4330#[repr(i32)]
4331pub enum SsoProviderType {
4332 Unspecified = 0,
4334 Saml = 1,
4336 Oidc = 2,
4338}
4339impl SsoProviderType {
4340 pub fn as_str_name(&self) -> &'static str {
4345 match self {
4346 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
4347 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
4348 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
4349 }
4350 }
4351 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4353 match value {
4354 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4355 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
4356 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
4357 _ => None,
4358 }
4359 }
4360}
4361#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4367pub struct Team {
4368 #[prost(string, tag="1")]
4370 pub id: ::prost::alloc::string::String,
4371 #[prost(string, tag="2")]
4374 pub name: ::prost::alloc::string::String,
4375 #[prost(string, tag="3")]
4378 pub description: ::prost::alloc::string::String,
4379 #[prost(int32, tag="4")]
4381 pub member_count: i32,
4382 #[prost(message, optional, tag="5")]
4384 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4385 #[prost(message, optional, tag="6")]
4387 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4388 #[prost(bool, tag="7")]
4390 pub is_default: bool,
4391 #[prost(string, tag="8")]
4393 pub created_by: ::prost::alloc::string::String,
4394}
4395#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4397pub struct CreateTeamRequest {
4398 #[prost(string, tag="1")]
4401 pub name: ::prost::alloc::string::String,
4402 #[prost(string, tag="2")]
4405 pub description: ::prost::alloc::string::String,
4406}
4407#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4409pub struct CreateTeamResponse {
4410 #[prost(message, optional, tag="1")]
4412 pub team: ::core::option::Option<Team>,
4413}
4414#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4416pub struct GetTeamRequest {
4417 #[prost(string, tag="1")]
4419 pub team_id: ::prost::alloc::string::String,
4420}
4421#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4423pub struct GetTeamResponse {
4424 #[prost(message, optional, tag="1")]
4426 pub team: ::core::option::Option<Team>,
4427}
4428#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4430pub struct ListTeamsRequest {
4431 #[prost(message, optional, tag="1")]
4433 pub pagination: ::core::option::Option<Pagination>,
4434}
4435#[derive(Clone, PartialEq, ::prost::Message)]
4437pub struct ListTeamsResponse {
4438 #[prost(message, repeated, tag="1")]
4440 pub teams: ::prost::alloc::vec::Vec<Team>,
4441 #[prost(message, optional, tag="2")]
4443 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4444}
4445#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4447pub struct UpdateTeamRequest {
4448 #[prost(string, tag="1")]
4450 pub team_id: ::prost::alloc::string::String,
4451 #[prost(string, tag="2")]
4455 pub name: ::prost::alloc::string::String,
4456 #[prost(string, tag="3")]
4459 pub description: ::prost::alloc::string::String,
4460}
4461#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4463pub struct UpdateTeamResponse {
4464 #[prost(message, optional, tag="1")]
4466 pub team: ::core::option::Option<Team>,
4467}
4468#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4470pub struct DeleteTeamRequest {
4471 #[prost(string, tag="1")]
4474 pub team_id: ::prost::alloc::string::String,
4475}
4476#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4478pub struct DeleteTeamResponse {
4479}
4480#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4482pub struct AddTeamMembersRequest {
4483 #[prost(string, tag="1")]
4485 pub team_id: ::prost::alloc::string::String,
4486 #[prost(string, repeated, tag="2")]
4490 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4491}
4492#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4494pub struct AddTeamMembersResponse {
4495 #[prost(message, optional, tag="1")]
4497 pub team: ::core::option::Option<Team>,
4498}
4499#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4501pub struct RemoveTeamMembersRequest {
4502 #[prost(string, tag="1")]
4504 pub team_id: ::prost::alloc::string::String,
4505 #[prost(string, repeated, tag="2")]
4508 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4509}
4510#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4512pub struct RemoveTeamMembersResponse {
4513 #[prost(message, optional, tag="1")]
4515 pub team: ::core::option::Option<Team>,
4516}
4517#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4519pub struct ListTeamMembersRequest {
4520 #[prost(string, tag="1")]
4522 pub team_id: ::prost::alloc::string::String,
4523 #[prost(message, optional, tag="2")]
4525 pub pagination: ::core::option::Option<Pagination>,
4526}
4527#[derive(Clone, PartialEq, ::prost::Message)]
4529pub struct ListTeamMembersResponse {
4530 #[prost(message, repeated, tag="1")]
4532 pub users: ::prost::alloc::vec::Vec<User>,
4533 #[prost(message, optional, tag="2")]
4535 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4536}
4537#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4541pub struct TemplateVariable {
4542 #[prost(string, tag="1")]
4545 pub name: ::prost::alloc::string::String,
4546 #[prost(string, tag="2")]
4549 pub description: ::prost::alloc::string::String,
4550 #[prost(bool, tag="3")]
4552 pub required: bool,
4553 #[prost(enumeration="TemplateVariableSource", tag="4")]
4555 pub source: i32,
4556 #[prost(string, tag="5")]
4559 pub default_value: ::prost::alloc::string::String,
4560 #[prost(bool, tag="6")]
4563 pub pii: bool,
4564}
4565#[derive(Clone, PartialEq, ::prost::Message)]
4568pub struct Template {
4569 #[prost(string, tag="1")]
4571 pub id: ::prost::alloc::string::String,
4572 #[prost(string, tag="2")]
4575 pub name: ::prost::alloc::string::String,
4576 #[prost(string, tag="3")]
4579 pub body: ::prost::alloc::string::String,
4580 #[prost(message, repeated, tag="4")]
4582 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4583 #[prost(int32, tag="5")]
4585 pub version: i32,
4586 #[prost(message, optional, tag="6")]
4588 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4589 #[prost(message, optional, tag="7")]
4591 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4592 #[prost(string, tag="8")]
4596 pub title: ::prost::alloc::string::String,
4597 #[prost(enumeration="TemplateType", tag="9")]
4600 pub r#type: i32,
4601 #[prost(string, tag="10")]
4605 pub source_locale: ::prost::alloc::string::String,
4606}
4607#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4610pub struct TemplateTranslation {
4611 #[prost(string, tag="1")]
4613 pub id: ::prost::alloc::string::String,
4614 #[prost(string, tag="2")]
4616 pub template_id: ::prost::alloc::string::String,
4617 #[prost(int32, tag="3")]
4619 pub version: i32,
4620 #[prost(string, tag="4")]
4622 pub locale: ::prost::alloc::string::String,
4623 #[prost(string, tag="5")]
4626 pub title: ::prost::alloc::string::String,
4627 #[prost(string, tag="6")]
4630 pub body: ::prost::alloc::string::String,
4631 #[prost(enumeration="TranslationStatus", tag="7")]
4633 pub status: i32,
4634 #[prost(string, tag="8")]
4636 pub translated_by: ::prost::alloc::string::String,
4637 #[prost(string, tag="9")]
4639 pub reviewed_by: ::prost::alloc::string::String,
4640 #[prost(message, optional, tag="10")]
4642 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4643 #[prost(message, optional, tag="11")]
4645 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4646}
4647#[derive(Clone, PartialEq, ::prost::Message)]
4649pub struct CreateTemplateRequest {
4650 #[prost(string, tag="1")]
4653 pub name: ::prost::alloc::string::String,
4654 #[prost(string, tag="2")]
4657 pub body: ::prost::alloc::string::String,
4658 #[prost(message, repeated, tag="3")]
4660 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4661 #[prost(string, tag="4")]
4664 pub title: ::prost::alloc::string::String,
4665 #[prost(enumeration="TemplateType", tag="5")]
4667 pub r#type: i32,
4668 #[prost(string, tag="6")]
4671 pub source_locale: ::prost::alloc::string::String,
4672}
4673#[derive(Clone, PartialEq, ::prost::Message)]
4675pub struct CreateTemplateResponse {
4676 #[prost(message, optional, tag="1")]
4678 pub template: ::core::option::Option<Template>,
4679}
4680#[derive(Clone, PartialEq, ::prost::Message)]
4682pub struct UpdateTemplateRequest {
4683 #[prost(string, tag="1")]
4685 pub template_id: ::prost::alloc::string::String,
4686 #[prost(string, tag="2")]
4689 pub body: ::prost::alloc::string::String,
4690 #[prost(message, repeated, tag="3")]
4692 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4693}
4694#[derive(Clone, PartialEq, ::prost::Message)]
4696pub struct UpdateTemplateResponse {
4697 #[prost(message, optional, tag="1")]
4699 pub template: ::core::option::Option<Template>,
4700}
4701#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4703pub struct GetTemplateRequest {
4704 #[prost(string, tag="1")]
4706 pub template_id: ::prost::alloc::string::String,
4707 #[prost(int32, tag="2")]
4709 pub version: i32,
4710}
4711#[derive(Clone, PartialEq, ::prost::Message)]
4713pub struct GetTemplateResponse {
4714 #[prost(message, optional, tag="1")]
4716 pub template: ::core::option::Option<Template>,
4717}
4718#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4720pub struct ListTemplatesRequest {
4721 #[prost(message, optional, tag="1")]
4723 pub pagination: ::core::option::Option<Pagination>,
4724 #[prost(enumeration="TemplateType", tag="2")]
4726 pub r#type: i32,
4727}
4728#[derive(Clone, PartialEq, ::prost::Message)]
4730pub struct ListTemplatesResponse {
4731 #[prost(message, repeated, tag="1")]
4733 pub templates: ::prost::alloc::vec::Vec<Template>,
4734 #[prost(message, optional, tag="2")]
4736 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4737}
4738#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4740pub struct CreateTemplateTranslationRequest {
4741 #[prost(string, tag="1")]
4743 pub template_id: ::prost::alloc::string::String,
4744 #[prost(int32, tag="2")]
4746 pub version: i32,
4747 #[prost(string, tag="3")]
4749 pub locale: ::prost::alloc::string::String,
4750 #[prost(string, tag="4")]
4752 pub title: ::prost::alloc::string::String,
4753 #[prost(string, tag="5")]
4755 pub body: ::prost::alloc::string::String,
4756 #[prost(string, tag="6")]
4758 pub translated_by: ::prost::alloc::string::String,
4759 #[prost(enumeration="TranslationStatus", tag="7")]
4761 pub status: i32,
4762}
4763#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4765pub struct CreateTemplateTranslationResponse {
4766 #[prost(message, optional, tag="1")]
4768 pub translation: ::core::option::Option<TemplateTranslation>,
4769}
4770#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4772pub struct UpdateTemplateTranslationRequest {
4773 #[prost(string, tag="1")]
4775 pub translation_id: ::prost::alloc::string::String,
4776 #[prost(string, tag="2")]
4778 pub title: ::prost::alloc::string::String,
4779 #[prost(string, tag="3")]
4781 pub body: ::prost::alloc::string::String,
4782 #[prost(enumeration="TranslationStatus", tag="4")]
4784 pub status: i32,
4785}
4786#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4788pub struct UpdateTemplateTranslationResponse {
4789 #[prost(message, optional, tag="1")]
4791 pub translation: ::core::option::Option<TemplateTranslation>,
4792}
4793#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4795pub struct ListTemplateTranslationsRequest {
4796 #[prost(string, tag="1")]
4798 pub template_id: ::prost::alloc::string::String,
4799 #[prost(int32, tag="2")]
4801 pub version: i32,
4802}
4803#[derive(Clone, PartialEq, ::prost::Message)]
4805pub struct ListTemplateTranslationsResponse {
4806 #[prost(message, repeated, tag="1")]
4808 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4809}
4810#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4812pub struct ApproveTemplateTranslationRequest {
4813 #[prost(string, tag="1")]
4815 pub translation_id: ::prost::alloc::string::String,
4816}
4817#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4819pub struct ApproveTemplateTranslationResponse {
4820 #[prost(message, optional, tag="1")]
4822 pub translation: ::core::option::Option<TemplateTranslation>,
4823}
4824#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4828#[repr(i32)]
4829pub enum TemplateType {
4830 Unspecified = 0,
4832 Markdown = 1,
4834 Rich = 2,
4836 Html = 3,
4838}
4839impl TemplateType {
4840 pub fn as_str_name(&self) -> &'static str {
4845 match self {
4846 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4847 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4848 Self::Rich => "TEMPLATE_TYPE_RICH",
4849 Self::Html => "TEMPLATE_TYPE_HTML",
4850 }
4851 }
4852 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4854 match value {
4855 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4856 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4857 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4858 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4859 _ => None,
4860 }
4861 }
4862}
4863#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4865#[repr(i32)]
4866pub enum TemplateVariableSource {
4867 Unspecified = 0,
4869 Profile = 1,
4871 Custom = 2,
4873}
4874impl TemplateVariableSource {
4875 pub fn as_str_name(&self) -> &'static str {
4880 match self {
4881 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4882 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4883 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4884 }
4885 }
4886 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4888 match value {
4889 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4890 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4891 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4892 _ => None,
4893 }
4894 }
4895}
4896#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4898#[repr(i32)]
4899pub enum TranslationStatus {
4900 Unspecified = 0,
4901 Draft = 1,
4903 AiTranslated = 2,
4905 InReview = 3,
4907 Approved = 4,
4909}
4910impl TranslationStatus {
4911 pub fn as_str_name(&self) -> &'static str {
4916 match self {
4917 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4918 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4919 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4920 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4921 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4922 }
4923 }
4924 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4926 match value {
4927 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4928 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4929 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4930 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4931 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4932 _ => None,
4933 }
4934 }
4935}
4936include!("pidgr.v1.tonic.rs");
4937