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}
341#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
345#[repr(i32)]
346pub enum CampaignStatus {
347 Unspecified = 0,
349 Created = 1,
351 Running = 2,
353 Completed = 3,
355 Failed = 4,
357 Cancelled = 5,
359}
360impl CampaignStatus {
361 pub fn as_str_name(&self) -> &'static str {
366 match self {
367 Self::Unspecified => "CAMPAIGN_STATUS_UNSPECIFIED",
368 Self::Created => "CAMPAIGN_STATUS_CREATED",
369 Self::Running => "CAMPAIGN_STATUS_RUNNING",
370 Self::Completed => "CAMPAIGN_STATUS_COMPLETED",
371 Self::Failed => "CAMPAIGN_STATUS_FAILED",
372 Self::Cancelled => "CAMPAIGN_STATUS_CANCELLED",
373 }
374 }
375 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
377 match value {
378 "CAMPAIGN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
379 "CAMPAIGN_STATUS_CREATED" => Some(Self::Created),
380 "CAMPAIGN_STATUS_RUNNING" => Some(Self::Running),
381 "CAMPAIGN_STATUS_COMPLETED" => Some(Self::Completed),
382 "CAMPAIGN_STATUS_FAILED" => Some(Self::Failed),
383 "CAMPAIGN_STATUS_CANCELLED" => Some(Self::Cancelled),
384 _ => None,
385 }
386 }
387}
388#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
390#[repr(i32)]
391pub enum DeliveryStatus {
392 Unspecified = 0,
394 Pending = 1,
396 Sent = 2,
398 Delivered = 3,
400 Acknowledged = 4,
402 Missed = 5,
404 NoDevice = 6,
406 Failed = 7,
408}
409impl DeliveryStatus {
410 pub fn as_str_name(&self) -> &'static str {
415 match self {
416 Self::Unspecified => "DELIVERY_STATUS_UNSPECIFIED",
417 Self::Pending => "DELIVERY_STATUS_PENDING",
418 Self::Sent => "DELIVERY_STATUS_SENT",
419 Self::Delivered => "DELIVERY_STATUS_DELIVERED",
420 Self::Acknowledged => "DELIVERY_STATUS_ACKNOWLEDGED",
421 Self::Missed => "DELIVERY_STATUS_MISSED",
422 Self::NoDevice => "DELIVERY_STATUS_NO_DEVICE",
423 Self::Failed => "DELIVERY_STATUS_FAILED",
424 }
425 }
426 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
428 match value {
429 "DELIVERY_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
430 "DELIVERY_STATUS_PENDING" => Some(Self::Pending),
431 "DELIVERY_STATUS_SENT" => Some(Self::Sent),
432 "DELIVERY_STATUS_DELIVERED" => Some(Self::Delivered),
433 "DELIVERY_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
434 "DELIVERY_STATUS_MISSED" => Some(Self::Missed),
435 "DELIVERY_STATUS_NO_DEVICE" => Some(Self::NoDevice),
436 "DELIVERY_STATUS_FAILED" => Some(Self::Failed),
437 _ => None,
438 }
439 }
440}
441#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
443#[repr(i32)]
444pub enum Platform {
445 Unspecified = 0,
447 Ios = 1,
449 Android = 2,
451}
452impl Platform {
453 pub fn as_str_name(&self) -> &'static str {
458 match self {
459 Self::Unspecified => "PLATFORM_UNSPECIFIED",
460 Self::Ios => "PLATFORM_IOS",
461 Self::Android => "PLATFORM_ANDROID",
462 }
463 }
464 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
466 match value {
467 "PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
468 "PLATFORM_IOS" => Some(Self::Ios),
469 "PLATFORM_ANDROID" => Some(Self::Android),
470 _ => None,
471 }
472 }
473}
474#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
479#[repr(i32)]
480pub enum Permission {
481 Unspecified = 0,
483 OrgRead = 1,
485 OrgWrite = 2,
487 MembersRead = 3,
489 MembersInvite = 4,
491 MembersManage = 5,
493 CampaignsRead = 6,
495 CampaignsWrite = 7,
497 CampaignsStart = 8,
499 TemplatesRead = 9,
501 TemplatesWrite = 10,
503 InboxRead = 11,
505 InboxAct = 12,
507 GroupsAllRead = 13,
509 GroupsWrite = 14,
511 GroupsAllWrite = 15,
513 TeamsAllRead = 16,
515 TeamsWrite = 17,
517 TeamsAllWrite = 18,
519 PrivacyRead = 19,
521 PrivacyWrite = 20,
523 AuditRead = 21,
525 TemplatesReview = 22,
527}
528impl Permission {
529 pub fn as_str_name(&self) -> &'static str {
534 match self {
535 Self::Unspecified => "PERMISSION_UNSPECIFIED",
536 Self::OrgRead => "PERMISSION_ORG_READ",
537 Self::OrgWrite => "PERMISSION_ORG_WRITE",
538 Self::MembersRead => "PERMISSION_MEMBERS_READ",
539 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
540 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
541 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
542 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
543 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
544 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
545 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
546 Self::InboxRead => "PERMISSION_INBOX_READ",
547 Self::InboxAct => "PERMISSION_INBOX_ACT",
548 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
549 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
550 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
551 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
552 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
553 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
554 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
555 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
556 Self::AuditRead => "PERMISSION_AUDIT_READ",
557 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
558 }
559 }
560 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
562 match value {
563 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
564 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
565 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
566 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
567 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
568 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
569 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
570 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
571 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
572 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
573 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
574 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
575 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
576 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
577 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
578 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
579 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
580 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
581 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
582 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
583 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
584 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
585 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
586 _ => None,
587 }
588 }
589}
590#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
592#[repr(i32)]
593pub enum ActionType {
594 Unspecified = 0,
596 Ack = 1,
598}
599impl ActionType {
600 pub fn as_str_name(&self) -> &'static str {
605 match self {
606 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
607 Self::Ack => "ACTION_TYPE_ACK",
608 }
609 }
610 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
612 match value {
613 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
614 "ACTION_TYPE_ACK" => Some(Self::Ack),
615 _ => None,
616 }
617 }
618}
619#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
621#[repr(i32)]
622pub enum StepType {
623 Unspecified = 0,
625 SendNotification = 1,
627 DeadlineCheck = 2,
629 SendReminder = 3,
631 CallWebhook = 4,
633 MarkMissed = 5,
635 Escalate = 6,
637}
638impl StepType {
639 pub fn as_str_name(&self) -> &'static str {
644 match self {
645 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
646 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
647 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
648 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
649 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
650 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
651 Self::Escalate => "STEP_TYPE_ESCALATE",
652 }
653 }
654 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
656 match value {
657 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
658 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
659 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
660 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
661 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
662 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
663 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
664 _ => None,
665 }
666 }
667}
668#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
670#[repr(i32)]
671pub enum EscalationCondition {
672 Unspecified = 0,
673 IfNotAcked = 1,
675 IfNotClosed = 2,
677}
678impl EscalationCondition {
679 pub fn as_str_name(&self) -> &'static str {
684 match self {
685 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
686 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
687 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
688 }
689 }
690 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
692 match value {
693 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
694 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
695 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
696 _ => None,
697 }
698 }
699}
700#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
702#[repr(i32)]
703pub enum EscalationTargetType {
704 Unspecified = 0,
705 User = 1,
707 Group = 2,
709 Manager = 3,
711 Role = 4,
713}
714impl EscalationTargetType {
715 pub fn as_str_name(&self) -> &'static str {
720 match self {
721 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
722 Self::User => "ESCALATION_TARGET_TYPE_USER",
723 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
724 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
725 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
726 }
727 }
728 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
730 match value {
731 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
732 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
733 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
734 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
735 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
736 _ => None,
737 }
738 }
739}
740#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
744pub struct ApiKey {
745 #[prost(string, tag="1")]
747 pub id: ::prost::alloc::string::String,
748 #[prost(string, tag="2")]
750 pub name: ::prost::alloc::string::String,
751 #[prost(string, tag="3")]
754 pub key_prefix: ::prost::alloc::string::String,
755 #[prost(enumeration="Permission", repeated, tag="4")]
757 pub permissions: ::prost::alloc::vec::Vec<i32>,
758 #[prost(message, optional, tag="5")]
760 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
761 #[prost(message, optional, tag="6")]
763 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
764 #[prost(message, optional, tag="7")]
766 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
767 #[prost(enumeration="KeyType", tag="8")]
770 pub key_type: i32,
771}
772#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
774pub struct CreateApiKeyRequest {
775 #[prost(string, tag="1")]
777 pub name: ::prost::alloc::string::String,
778 #[prost(enumeration="Permission", repeated, tag="2")]
781 pub permissions: ::prost::alloc::vec::Vec<i32>,
782 #[prost(message, optional, tag="3")]
784 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
785 #[prost(enumeration="KeyType", tag="4")]
788 pub key_type: i32,
789}
790#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
793pub struct CreateApiKeyResponse {
794 #[prost(message, optional, tag="1")]
796 pub api_key: ::core::option::Option<ApiKey>,
797 #[prost(string, tag="2")]
800 pub key: ::prost::alloc::string::String,
801}
802#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
804pub struct ListApiKeysRequest {
805 #[prost(enumeration="KeyType", tag="1")]
807 pub key_type: i32,
808}
809#[derive(Clone, PartialEq, ::prost::Message)]
811pub struct ListApiKeysResponse {
812 #[prost(message, repeated, tag="1")]
814 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
815}
816#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
818pub struct RevokeApiKeyRequest {
819 #[prost(string, tag="1")]
821 pub api_key_id: ::prost::alloc::string::String,
822}
823#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
825pub struct RevokeApiKeyResponse {
826}
827#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
831#[repr(i32)]
832pub enum KeyType {
833 Unspecified = 0,
834 ApiKey = 1,
835 ScimToken = 2,
836}
837impl KeyType {
838 pub fn as_str_name(&self) -> &'static str {
843 match self {
844 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
845 Self::ApiKey => "KEY_TYPE_API_KEY",
846 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
847 }
848 }
849 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
851 match value {
852 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
853 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
854 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
855 _ => None,
856 }
857 }
858}
859#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
864pub struct ExportUserDataRequest {
865 #[prost(string, tag="1")]
868 pub user_id: ::prost::alloc::string::String,
869}
870#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
872pub struct ExportUserDataResponse {
873 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
875 pub status: i32,
876 #[prost(string, tag="2")]
879 pub result_url: ::prost::alloc::string::String,
880 #[prost(string, tag="3")]
883 pub export_id: ::prost::alloc::string::String,
884}
885#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
888pub struct DeleteUserDataRequest {
889 #[prost(string, tag="1")]
892 pub user_id: ::prost::alloc::string::String,
893 #[prost(bool, tag="2")]
896 pub anonymize: bool,
897}
898#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
900pub struct DeleteUserDataResponse {
901 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
903 pub status: i32,
904 #[prost(message, optional, tag="2")]
907 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
908 #[prost(string, tag="3")]
910 pub request_id: ::prost::alloc::string::String,
911}
912#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
915pub struct ListPrivacyRequestsRequest {
916 #[prost(int32, tag="1")]
919 pub page_size: i32,
920 #[prost(string, tag="2")]
922 pub page_token: ::prost::alloc::string::String,
923 #[prost(string, tag="3")]
925 pub request_type: ::prost::alloc::string::String,
926 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
928 pub status: i32,
929}
930#[derive(Clone, PartialEq, ::prost::Message)]
932pub struct ListPrivacyRequestsResponse {
933 #[prost(message, repeated, tag="1")]
935 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
936 #[prost(string, tag="2")]
938 pub next_page_token: ::prost::alloc::string::String,
939}
940#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct PrivacyRequest {
943 #[prost(string, tag="1")]
945 pub id: ::prost::alloc::string::String,
946 #[prost(string, tag="2")]
948 pub user_id: ::prost::alloc::string::String,
949 #[prost(string, tag="3")]
951 pub user_email: ::prost::alloc::string::String,
952 #[prost(string, tag="4")]
954 pub request_type: ::prost::alloc::string::String,
955 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
957 pub status: i32,
958 #[prost(bool, tag="6")]
960 pub anonymize: bool,
961 #[prost(string, tag="7")]
963 pub requested_by_email: ::prost::alloc::string::String,
964 #[prost(message, optional, tag="8")]
966 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
967 #[prost(message, optional, tag="9")]
969 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
970 #[prost(map="string, string", tag="10")]
972 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
973}
974#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
977pub struct CancelDeletionRequest {
978 #[prost(string, tag="1")]
980 pub request_id: ::prost::alloc::string::String,
981 #[prost(string, tag="2")]
983 pub confirmation_email: ::prost::alloc::string::String,
984}
985#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
987pub struct CancelDeletionResponse {
988 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
990 pub status: i32,
991}
992#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
995pub struct ImmediateDeleteRequest {
996 #[prost(string, tag="1")]
998 pub request_id: ::prost::alloc::string::String,
999 #[prost(string, tag="2")]
1001 pub confirmation_email: ::prost::alloc::string::String,
1002}
1003#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1005pub struct ImmediateDeleteResponse {
1006 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1008 pub status: i32,
1009}
1010#[derive(Clone, PartialEq, ::prost::Message)]
1013pub struct RectifyUserDataRequest {
1014 #[prost(string, tag="1")]
1017 pub user_id: ::prost::alloc::string::String,
1018 #[prost(map="string, string", tag="2")]
1022 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1023}
1024#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1026pub struct RectifyUserDataResponse {
1027 #[prost(string, repeated, tag="1")]
1029 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1030}
1031#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1034pub struct RestrictProcessingRequest {
1035 #[prost(string, tag="1")]
1038 pub user_id: ::prost::alloc::string::String,
1039 #[prost(bool, tag="2")]
1041 pub restricted: bool,
1042}
1043#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1045pub struct RestrictProcessingResponse {
1046 #[prost(bool, tag="1")]
1048 pub restricted: bool,
1049 #[prost(message, optional, tag="2")]
1051 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1052}
1053#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1057pub struct GetDataExistenceConfirmationRequest {
1058 #[prost(string, tag="1")]
1061 pub user_id: ::prost::alloc::string::String,
1062}
1063#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1065pub struct GetDataExistenceConfirmationResponse {
1066 #[prost(bool, tag="1")]
1068 pub exists: bool,
1069 #[prost(string, repeated, tag="2")]
1071 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1072}
1073#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1076pub struct ListMyPrivacyRequestsRequest {
1077 #[prost(int32, tag="1")]
1080 pub page_size: i32,
1081 #[prost(string, tag="2")]
1083 pub page_token: ::prost::alloc::string::String,
1084 #[prost(string, tag="3")]
1086 pub request_type: ::prost::alloc::string::String,
1087 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1089 pub status: i32,
1090}
1091#[derive(Clone, PartialEq, ::prost::Message)]
1093pub struct ListMyPrivacyRequestsResponse {
1094 #[prost(message, repeated, tag="1")]
1096 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1097 #[prost(string, tag="2")]
1099 pub next_page_token: ::prost::alloc::string::String,
1100}
1101#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1105#[repr(i32)]
1106pub enum PrivacyRequestStatus {
1107 Unspecified = 0,
1109 Pending = 1,
1111 Processing = 2,
1113 Completed = 3,
1115 Failed = 4,
1117}
1118impl PrivacyRequestStatus {
1119 pub fn as_str_name(&self) -> &'static str {
1124 match self {
1125 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1126 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1127 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1128 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1129 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1130 }
1131 }
1132 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1134 match value {
1135 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1136 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1137 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1138 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1139 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1140 _ => None,
1141 }
1142 }
1143}
1144#[derive(Clone, PartialEq, ::prost::Message)]
1149pub struct AuditEvent {
1150 #[prost(string, tag="1")]
1153 pub id: ::prost::alloc::string::String,
1154 #[prost(string, tag="2")]
1157 pub org_id: ::prost::alloc::string::String,
1158 #[prost(string, tag="3")]
1161 pub actor_id: ::prost::alloc::string::String,
1162 #[prost(enumeration="AuditEventType", tag="4")]
1164 pub event_type: i32,
1165 #[prost(string, tag="5")]
1168 pub entity_type: ::prost::alloc::string::String,
1169 #[prost(string, tag="6")]
1172 pub entity_id: ::prost::alloc::string::String,
1173 #[prost(map="string, string", tag="7")]
1176 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1177 #[prost(message, optional, tag="10")]
1179 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1180}
1181#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1184pub struct ListAuditEventsRequest {
1185 #[prost(string, tag="1")]
1187 pub page_token: ::prost::alloc::string::String,
1188 #[prost(int32, tag="2")]
1191 pub page_size: i32,
1192 #[prost(enumeration="AuditEventType", tag="3")]
1194 pub event_type: i32,
1195 #[prost(string, tag="4")]
1198 pub actor_id: ::prost::alloc::string::String,
1199 #[prost(message, optional, tag="5")]
1201 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1202 #[prost(message, optional, tag="6")]
1204 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1205}
1206#[derive(Clone, PartialEq, ::prost::Message)]
1208pub struct ListAuditEventsResponse {
1209 #[prost(message, repeated, tag="1")]
1211 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1212 #[prost(string, tag="2")]
1214 pub next_page_token: ::prost::alloc::string::String,
1215}
1216#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1219pub struct ExportAuditTrailRequest {
1220 #[prost(enumeration="AuditExportFormat", tag="1")]
1222 pub format: i32,
1223 #[prost(message, optional, tag="2")]
1225 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1226 #[prost(message, optional, tag="3")]
1228 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1229}
1230#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1232pub struct ExportAuditTrailResponse {
1233 #[prost(string, tag="1")]
1236 pub export_url: ::prost::alloc::string::String,
1237 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1239 pub status: i32,
1240}
1241#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1243pub struct AuditExport {
1244 #[prost(string, tag="1")]
1246 pub id: ::prost::alloc::string::String,
1247 #[prost(string, tag="2")]
1249 pub format: ::prost::alloc::string::String,
1250 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1252 pub status: i32,
1253 #[prost(string, tag="4")]
1255 pub result_url: ::prost::alloc::string::String,
1256 #[prost(string, tag="5")]
1258 pub error_message: ::prost::alloc::string::String,
1259 #[prost(string, tag="6")]
1261 pub requested_by_email: ::prost::alloc::string::String,
1262 #[prost(message, optional, tag="7")]
1264 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1265 #[prost(message, optional, tag="8")]
1267 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1268}
1269#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1272pub struct ListAuditExportsRequest {
1273}
1274#[derive(Clone, PartialEq, ::prost::Message)]
1276pub struct ListAuditExportsResponse {
1277 #[prost(message, repeated, tag="1")]
1279 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1280}
1281#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1285#[repr(i32)]
1286pub enum AuditEventType {
1287 Unspecified = 0,
1289 CampaignCreated = 1,
1292 MessageSent = 2,
1294 MessageOpened = 3,
1296 AckRegistered = 4,
1298 EscalationExecuted = 5,
1300 CampaignStarted = 12,
1302 CampaignCancelled = 13,
1304 CampaignUpdated = 14,
1306 UserInvited = 6,
1309 UserDeactivated = 7,
1311 UserReactivated = 15,
1313 RoleChanged = 10,
1315 InviteRevoked = 16,
1317 ProfileUpdated = 17,
1319 SettingsUpdated = 18,
1321 PasskeyEnrolled = 19,
1323 DataExportRequested = 8,
1326 DataDeletionRequested = 9,
1328 DataRectified = 20,
1330 ProcessingRestricted = 21,
1332 DeletionCancelled = 22,
1334 DeletionImmediate = 23,
1336 SsoConfigured = 11,
1339 SsoProviderCreated = 24,
1341 SsoProviderDeleted = 25,
1343 OrgUpdated = 26,
1345 RoleCreated = 27,
1348 RoleUpdated = 28,
1350 RoleDeleted = 29,
1352 TemplateCreated = 30,
1355 TemplateUpdated = 31,
1357 ApiKeyCreated = 32,
1360 ApiKeyRevoked = 33,
1362 InviteLinkCreated = 34,
1365 InviteLinkRevoked = 35,
1367 GroupCreated = 36,
1370 GroupUpdated = 37,
1372 GroupDeleted = 38,
1374 GroupMembersAdded = 39,
1376 GroupMembersRemoved = 40,
1378 TeamCreated = 41,
1381 TeamUpdated = 42,
1383 TeamDeleted = 43,
1385 TeamMembersAdded = 44,
1387 TeamMembersRemoved = 45,
1389 ScimUserProvisioned = 46,
1392 ScimUserDeprovisioned = 47,
1394 ScimUserUpdated = 48,
1396 TranslationCreated = 49,
1399 TranslationApproved = 50,
1401 SandboxCreated = 51,
1404 SandboxExpired = 52,
1406 AiPredictionLogged = 53,
1409}
1410impl AuditEventType {
1411 pub fn as_str_name(&self) -> &'static str {
1416 match self {
1417 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1418 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1419 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1420 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1421 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1422 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1423 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1424 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1425 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1426 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1427 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1428 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1429 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1430 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1431 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1432 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1433 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1434 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1435 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1436 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1437 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1438 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1439 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1440 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1441 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1442 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1443 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1444 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1445 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1446 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1447 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1448 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1449 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1450 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1451 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1452 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1453 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1454 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1455 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1456 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1457 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1458 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1459 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1460 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1461 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1462 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1463 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1464 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1465 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1466 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1467 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1468 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1469 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1470 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1471 }
1472 }
1473 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1475 match value {
1476 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1477 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1478 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1479 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1480 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1481 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1482 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1483 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1484 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1485 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1486 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1487 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1488 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1489 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1490 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1491 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1492 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1493 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1494 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1495 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1496 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1497 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1498 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1499 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1500 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1501 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1502 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1503 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1504 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1505 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1506 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1507 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1508 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1509 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1510 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1511 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1512 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1513 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1514 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1515 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1516 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1517 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1518 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1519 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1520 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1521 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1522 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1523 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1524 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1525 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1526 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1527 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1528 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1529 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1530 _ => None,
1531 }
1532 }
1533}
1534#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1536#[repr(i32)]
1537pub enum AuditExportFormat {
1538 Unspecified = 0,
1540 Csv = 1,
1542 Json = 2,
1544 Parquet = 3,
1546}
1547impl AuditExportFormat {
1548 pub fn as_str_name(&self) -> &'static str {
1553 match self {
1554 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1555 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1556 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1557 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1558 }
1559 }
1560 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1562 match value {
1563 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1564 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1565 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1566 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1567 _ => None,
1568 }
1569 }
1570}
1571#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct Campaign {
1577 #[prost(string, tag="1")]
1580 pub id: ::prost::alloc::string::String,
1581 #[prost(string, tag="2")]
1584 pub name: ::prost::alloc::string::String,
1585 #[prost(string, tag="3")]
1588 pub template_id: ::prost::alloc::string::String,
1589 #[prost(int32, tag="4")]
1591 pub template_version: i32,
1592 #[prost(string, tag="5")]
1594 pub audience_snapshot_ref: ::prost::alloc::string::String,
1595 #[prost(enumeration="CampaignStatus", tag="6")]
1597 pub status: i32,
1598 #[prost(message, optional, tag="7")]
1600 pub workflow: ::core::option::Option<WorkflowDefinition>,
1601 #[prost(int32, tag="8")]
1603 pub total_recipients: i32,
1604 #[prost(int32, tag="9")]
1606 pub action_completed_count: i32,
1607 #[prost(int32, tag="10")]
1609 pub missed_count: i32,
1610 #[prost(message, optional, tag="11")]
1612 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1613 #[prost(message, optional, tag="12")]
1615 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1616 #[prost(message, optional, tag="13")]
1618 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1619 #[prost(string, tag="14")]
1622 pub sender_name: ::prost::alloc::string::String,
1623 #[prost(string, tag="15")]
1626 pub title: ::prost::alloc::string::String,
1627 #[prost(bool, tag="16")]
1629 pub critical: bool,
1630 #[prost(string, tag="17")]
1635 pub default_locale: ::prost::alloc::string::String,
1636 #[prost(bool, tag="18")]
1640 pub wait_for_enrollment: bool,
1641}
1642#[derive(Clone, PartialEq, ::prost::Message)]
1644pub struct AudienceMember {
1645 #[prost(string, tag="1")]
1647 pub user_id: ::prost::alloc::string::String,
1648 #[prost(map="string, string", tag="2")]
1650 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1651}
1652#[derive(Clone, PartialEq, ::prost::Message)]
1654pub struct CreateCampaignRequest {
1655 #[prost(string, tag="1")]
1658 pub name: ::prost::alloc::string::String,
1659 #[prost(string, tag="2")]
1662 pub template_id: ::prost::alloc::string::String,
1663 #[prost(int32, tag="3")]
1665 pub template_version: i32,
1666 #[prost(string, repeated, tag="4")]
1669 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1670 #[prost(message, optional, tag="5")]
1672 pub workflow: ::core::option::Option<WorkflowDefinition>,
1673 #[prost(string, tag="6")]
1676 pub sender_name: ::prost::alloc::string::String,
1677 #[prost(string, tag="7")]
1680 pub title: ::prost::alloc::string::String,
1681 #[prost(message, repeated, tag="8")]
1685 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
1686 #[prost(bool, tag="9")]
1689 pub include_restricted: bool,
1690 #[prost(bool, tag="10")]
1692 pub critical: bool,
1693 #[prost(string, tag="11")]
1695 pub default_locale: ::prost::alloc::string::String,
1696 #[prost(bool, tag="12")]
1700 pub wait_for_enrollment: bool,
1701}
1702#[derive(Clone, PartialEq, ::prost::Message)]
1704pub struct CreateCampaignResponse {
1705 #[prost(message, optional, tag="1")]
1707 pub campaign: ::core::option::Option<Campaign>,
1708}
1709#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1711pub struct StartCampaignRequest {
1712 #[prost(string, tag="1")]
1715 pub campaign_id: ::prost::alloc::string::String,
1716}
1717#[derive(Clone, PartialEq, ::prost::Message)]
1719pub struct StartCampaignResponse {
1720 #[prost(message, optional, tag="1")]
1722 pub campaign: ::core::option::Option<Campaign>,
1723}
1724#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1726pub struct GetCampaignRequest {
1727 #[prost(string, tag="1")]
1730 pub campaign_id: ::prost::alloc::string::String,
1731}
1732#[derive(Clone, PartialEq, ::prost::Message)]
1734pub struct GetCampaignResponse {
1735 #[prost(message, optional, tag="1")]
1737 pub campaign: ::core::option::Option<Campaign>,
1738}
1739#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1741pub struct ListCampaignsRequest {
1742 #[prost(message, optional, tag="1")]
1744 pub pagination: ::core::option::Option<Pagination>,
1745}
1746#[derive(Clone, PartialEq, ::prost::Message)]
1748pub struct ListCampaignsResponse {
1749 #[prost(message, repeated, tag="1")]
1751 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
1752 #[prost(message, optional, tag="2")]
1754 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1755}
1756#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1758pub struct CancelCampaignRequest {
1759 #[prost(string, tag="1")]
1762 pub campaign_id: ::prost::alloc::string::String,
1763}
1764#[derive(Clone, PartialEq, ::prost::Message)]
1766pub struct CancelCampaignResponse {
1767 #[prost(message, optional, tag="1")]
1769 pub campaign: ::core::option::Option<Campaign>,
1770}
1771#[derive(Clone, PartialEq, ::prost::Message)]
1774pub struct UpdateCampaignRequest {
1775 #[prost(string, tag="1")]
1778 pub campaign_id: ::prost::alloc::string::String,
1779 #[prost(string, tag="2")]
1782 pub name: ::prost::alloc::string::String,
1783 #[prost(string, tag="3")]
1786 pub sender_name: ::prost::alloc::string::String,
1787 #[prost(string, tag="4")]
1790 pub title: ::prost::alloc::string::String,
1791 #[prost(string, tag="5")]
1794 pub template_id: ::prost::alloc::string::String,
1795 #[prost(int32, tag="6")]
1797 pub template_version: i32,
1798 #[prost(message, optional, tag="7")]
1800 pub workflow: ::core::option::Option<WorkflowDefinition>,
1801}
1802#[derive(Clone, PartialEq, ::prost::Message)]
1804pub struct UpdateCampaignResponse {
1805 #[prost(message, optional, tag="1")]
1807 pub campaign: ::core::option::Option<Campaign>,
1808}
1809#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1811pub struct Delivery {
1812 #[prost(string, tag="1")]
1815 pub id: ::prost::alloc::string::String,
1816 #[prost(string, tag="2")]
1819 pub user_id: ::prost::alloc::string::String,
1820 #[prost(string, tag="3")]
1823 pub campaign_id: ::prost::alloc::string::String,
1824 #[prost(enumeration="DeliveryStatus", tag="4")]
1826 pub status: i32,
1827 #[prost(message, optional, tag="5")]
1829 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
1830 #[prost(message, optional, tag="6")]
1832 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
1833 #[prost(message, optional, tag="7")]
1835 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
1836 #[prost(string, tag="8")]
1838 pub recipient_email: ::prost::alloc::string::String,
1839}
1840#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1842pub struct ListDeliveriesRequest {
1843 #[prost(string, tag="1")]
1846 pub campaign_id: ::prost::alloc::string::String,
1847 #[prost(enumeration="DeliveryStatus", tag="2")]
1849 pub status_filter: i32,
1850 #[prost(message, optional, tag="3")]
1852 pub pagination: ::core::option::Option<Pagination>,
1853}
1854#[derive(Clone, PartialEq, ::prost::Message)]
1856pub struct ListDeliveriesResponse {
1857 #[prost(message, repeated, tag="1")]
1859 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
1860 #[prost(message, optional, tag="2")]
1862 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1863}
1864#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1869pub struct Device {
1870 #[prost(string, tag="1")]
1873 pub device_id: ::prost::alloc::string::String,
1874 #[prost(string, tag="2")]
1877 pub user_id: ::prost::alloc::string::String,
1878 #[prost(enumeration="Platform", tag="3")]
1880 pub platform: i32,
1881 #[prost(string, tag="4")]
1883 pub push_token: ::prost::alloc::string::String,
1884 #[prost(bool, tag="5")]
1886 pub active: bool,
1887 #[prost(message, optional, tag="6")]
1889 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1890 #[prost(message, optional, tag="7")]
1892 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1893}
1894#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1896pub struct DeviceSummary {
1897 #[prost(string, tag="1")]
1899 pub device_id: ::prost::alloc::string::String,
1900 #[prost(string, tag="2")]
1902 pub user_id: ::prost::alloc::string::String,
1903 #[prost(enumeration="Platform", tag="3")]
1905 pub platform: i32,
1906 #[prost(bool, tag="4")]
1908 pub active: bool,
1909 #[prost(message, optional, tag="5")]
1911 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1912 #[prost(message, optional, tag="6")]
1914 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1915}
1916#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1918pub struct RegisterRequest {
1919 #[prost(string, tag="1")]
1922 pub device_id: ::prost::alloc::string::String,
1923 #[prost(enumeration="Platform", tag="2")]
1925 pub platform: i32,
1926 #[prost(string, tag="3")]
1929 pub push_token: ::prost::alloc::string::String,
1930}
1931#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1933pub struct RegisterResponse {
1934 #[prost(message, optional, tag="1")]
1936 pub device: ::core::option::Option<DeviceSummary>,
1937}
1938#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1940pub struct DeactivateRequest {
1941 #[prost(string, tag="1")]
1944 pub device_id: ::prost::alloc::string::String,
1945}
1946#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1948pub struct DeactivateResponse {
1949 #[prost(bool, tag="1")]
1951 pub success: bool,
1952}
1953#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1955pub struct ListDevicesRequest {
1956}
1957#[derive(Clone, PartialEq, ::prost::Message)]
1959pub struct ListDevicesResponse {
1960 #[prost(message, repeated, tag="1")]
1962 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1963}
1964#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1966pub struct ListMemberDevicesRequest {
1967 #[prost(string, tag="1")]
1970 pub user_id: ::prost::alloc::string::String,
1971}
1972#[derive(Clone, PartialEq, ::prost::Message)]
1974pub struct ListMemberDevicesResponse {
1975 #[prost(message, repeated, tag="1")]
1977 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1978}
1979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1984pub struct UserSettings {
1985 #[prost(enumeration="ThemePreference", tag="1")]
1987 pub theme_preference: i32,
1988 #[prost(string, tag="2")]
1992 pub preferred_locale: ::prost::alloc::string::String,
1993}
1994#[derive(Clone, PartialEq, ::prost::Message)]
1997pub struct UserProfile {
1998 #[prost(string, tag="1")]
2001 pub first_name: ::prost::alloc::string::String,
2002 #[prost(string, tag="2")]
2005 pub last_name: ::prost::alloc::string::String,
2006 #[prost(string, tag="3")]
2009 pub department: ::prost::alloc::string::String,
2010 #[prost(string, tag="4")]
2013 pub title: ::prost::alloc::string::String,
2014 #[prost(string, tag="5")]
2017 pub phone: ::prost::alloc::string::String,
2018 #[prost(string, tag="6")]
2021 pub location: ::prost::alloc::string::String,
2022 #[prost(string, tag="7")]
2025 pub employee_id: ::prost::alloc::string::String,
2026 #[prost(string, tag="8")]
2029 pub manager_name: ::prost::alloc::string::String,
2030 #[prost(string, tag="9")]
2033 pub start_date: ::prost::alloc::string::String,
2034 #[prost(map="string, string", tag="10")]
2037 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2038 #[prost(string, tag="11")]
2042 pub manager_id: ::prost::alloc::string::String,
2043}
2044#[derive(Clone, PartialEq, ::prost::Message)]
2046pub struct User {
2047 #[prost(string, tag="1")]
2049 pub id: ::prost::alloc::string::String,
2050 #[prost(string, tag="2")]
2053 pub email: ::prost::alloc::string::String,
2054 #[prost(string, tag="3")]
2057 pub name: ::prost::alloc::string::String,
2058 #[prost(enumeration="UserStatus", tag="5")]
2060 pub status: i32,
2061 #[prost(message, optional, tag="6")]
2063 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2064 #[prost(message, optional, tag="7")]
2066 pub role: ::core::option::Option<Role>,
2067 #[prost(string, tag="8")]
2069 pub role_id: ::prost::alloc::string::String,
2070 #[prost(message, optional, tag="9")]
2073 pub profile: ::core::option::Option<UserProfile>,
2074 #[prost(bool, tag="10")]
2077 pub processing_restricted: bool,
2078 #[prost(string, tag="11")]
2081 pub data_governance_region: ::prost::alloc::string::String,
2082}
2083#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2087#[repr(i32)]
2088pub enum UserStatus {
2089 Unspecified = 0,
2091 Invited = 1,
2093 Active = 2,
2095 Deactivated = 3,
2097}
2098impl UserStatus {
2099 pub fn as_str_name(&self) -> &'static str {
2104 match self {
2105 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2106 Self::Invited => "USER_STATUS_INVITED",
2107 Self::Active => "USER_STATUS_ACTIVE",
2108 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2109 }
2110 }
2111 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2113 match value {
2114 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2115 "USER_STATUS_INVITED" => Some(Self::Invited),
2116 "USER_STATUS_ACTIVE" => Some(Self::Active),
2117 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2118 _ => None,
2119 }
2120 }
2121}
2122#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2124#[repr(i32)]
2125pub enum ThemePreference {
2126 Unspecified = 0,
2128 Light = 1,
2130 Dark = 2,
2132 System = 3,
2134}
2135impl ThemePreference {
2136 pub fn as_str_name(&self) -> &'static str {
2141 match self {
2142 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2143 Self::Light => "THEME_PREFERENCE_LIGHT",
2144 Self::Dark => "THEME_PREFERENCE_DARK",
2145 Self::System => "THEME_PREFERENCE_SYSTEM",
2146 }
2147 }
2148 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2150 match value {
2151 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2152 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2153 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2154 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2155 _ => None,
2156 }
2157 }
2158}
2159#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2164pub struct Group {
2165 #[prost(string, tag="1")]
2167 pub id: ::prost::alloc::string::String,
2168 #[prost(string, tag="2")]
2171 pub name: ::prost::alloc::string::String,
2172 #[prost(string, tag="3")]
2175 pub description: ::prost::alloc::string::String,
2176 #[prost(int32, tag="4")]
2178 pub member_count: i32,
2179 #[prost(message, optional, tag="5")]
2181 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2182 #[prost(message, optional, tag="6")]
2184 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2185 #[prost(bool, tag="7")]
2187 pub is_default: bool,
2188 #[prost(string, tag="8")]
2190 pub created_by: ::prost::alloc::string::String,
2191}
2192#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2194pub struct CreateGroupRequest {
2195 #[prost(string, tag="1")]
2198 pub name: ::prost::alloc::string::String,
2199 #[prost(string, tag="2")]
2202 pub description: ::prost::alloc::string::String,
2203}
2204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2206pub struct CreateGroupResponse {
2207 #[prost(message, optional, tag="1")]
2209 pub group: ::core::option::Option<Group>,
2210}
2211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2213pub struct GetGroupRequest {
2214 #[prost(string, tag="1")]
2216 pub group_id: ::prost::alloc::string::String,
2217}
2218#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2220pub struct GetGroupResponse {
2221 #[prost(message, optional, tag="1")]
2223 pub group: ::core::option::Option<Group>,
2224}
2225#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2227pub struct ListGroupsRequest {
2228 #[prost(message, optional, tag="1")]
2230 pub pagination: ::core::option::Option<Pagination>,
2231}
2232#[derive(Clone, PartialEq, ::prost::Message)]
2234pub struct ListGroupsResponse {
2235 #[prost(message, repeated, tag="1")]
2237 pub groups: ::prost::alloc::vec::Vec<Group>,
2238 #[prost(message, optional, tag="2")]
2240 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2241}
2242#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2244pub struct UpdateGroupRequest {
2245 #[prost(string, tag="1")]
2247 pub group_id: ::prost::alloc::string::String,
2248 #[prost(string, tag="2")]
2252 pub name: ::prost::alloc::string::String,
2253 #[prost(string, tag="3")]
2256 pub description: ::prost::alloc::string::String,
2257}
2258#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2260pub struct UpdateGroupResponse {
2261 #[prost(message, optional, tag="1")]
2263 pub group: ::core::option::Option<Group>,
2264}
2265#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2267pub struct DeleteGroupRequest {
2268 #[prost(string, tag="1")]
2271 pub group_id: ::prost::alloc::string::String,
2272}
2273#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2275pub struct DeleteGroupResponse {
2276}
2277#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2279pub struct AddGroupMembersRequest {
2280 #[prost(string, tag="1")]
2282 pub group_id: ::prost::alloc::string::String,
2283 #[prost(string, repeated, tag="2")]
2287 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2288}
2289#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2291pub struct AddGroupMembersResponse {
2292 #[prost(message, optional, tag="1")]
2294 pub group: ::core::option::Option<Group>,
2295}
2296#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2298pub struct RemoveGroupMembersRequest {
2299 #[prost(string, tag="1")]
2301 pub group_id: ::prost::alloc::string::String,
2302 #[prost(string, repeated, tag="2")]
2305 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2306}
2307#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2309pub struct RemoveGroupMembersResponse {
2310 #[prost(message, optional, tag="1")]
2312 pub group: ::core::option::Option<Group>,
2313}
2314#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2316pub struct ListGroupMembersRequest {
2317 #[prost(string, tag="1")]
2319 pub group_id: ::prost::alloc::string::String,
2320 #[prost(message, optional, tag="2")]
2322 pub pagination: ::core::option::Option<Pagination>,
2323}
2324#[derive(Clone, PartialEq, ::prost::Message)]
2326pub struct ListGroupMembersResponse {
2327 #[prost(message, repeated, tag="1")]
2329 pub users: ::prost::alloc::vec::Vec<User>,
2330 #[prost(message, optional, tag="2")]
2332 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2333}
2334#[derive(Clone, PartialEq, ::prost::Message)]
2336pub struct UserGroupMembership {
2337 #[prost(string, tag="1")]
2339 pub user_id: ::prost::alloc::string::String,
2340 #[prost(message, repeated, tag="2")]
2342 pub groups: ::prost::alloc::vec::Vec<Group>,
2343}
2344#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2346pub struct GetUserGroupMembershipsRequest {
2347 #[prost(string, repeated, tag="1")]
2350 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2351}
2352#[derive(Clone, PartialEq, ::prost::Message)]
2354pub struct GetUserGroupMembershipsResponse {
2355 #[prost(message, repeated, tag="1")]
2357 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2358}
2359#[derive(Clone, PartialEq, ::prost::Message)]
2363pub struct TouchEvent {
2364 #[prost(string, tag="1")]
2367 pub screen_name: ::prost::alloc::string::String,
2368 #[prost(float, tag="2")]
2371 pub x_pct: f32,
2372 #[prost(float, tag="3")]
2375 pub y_pct: f32,
2376 #[prost(enumeration="TouchEventType", tag="4")]
2378 pub event_type: i32,
2379 #[prost(int32, tag="5")]
2381 pub screen_width: i32,
2382 #[prost(int32, tag="6")]
2384 pub screen_height: i32,
2385 #[prost(message, optional, tag="7")]
2387 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2388 #[prost(string, tag="8")]
2391 pub campaign_id: ::prost::alloc::string::String,
2392}
2393#[derive(Clone, PartialEq, ::prost::Message)]
2395pub struct IngestTouchEventsRequest {
2396 #[prost(message, repeated, tag="1")]
2399 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2400}
2401#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2403pub struct IngestTouchEventsResponse {
2404 #[prost(int32, tag="1")]
2406 pub ingested_count: i32,
2407}
2408#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2410pub struct HeatmapDataPoint {
2411 #[prost(float, tag="1")]
2413 pub x_pct: f32,
2414 #[prost(float, tag="2")]
2416 pub y_pct: f32,
2417 #[prost(float, tag="3")]
2419 pub value: f32,
2420}
2421#[derive(Clone, PartialEq, ::prost::Message)]
2423pub struct QueryHeatmapDataRequest {
2424 #[prost(string, tag="1")]
2427 pub screen_name: ::prost::alloc::string::String,
2428 #[prost(message, optional, tag="2")]
2430 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2431 #[prost(message, optional, tag="3")]
2433 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2434 #[prost(string, tag="4")]
2437 pub campaign_id: ::prost::alloc::string::String,
2438 #[prost(float, tag="6")]
2441 pub grid_resolution: f32,
2442 #[prost(enumeration="HeatmapMode", tag="7")]
2444 pub mode: i32,
2445 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2447 pub event_types: ::prost::alloc::vec::Vec<i32>,
2448}
2449#[derive(Clone, PartialEq, ::prost::Message)]
2451pub struct QueryHeatmapDataResponse {
2452 #[prost(message, repeated, tag="1")]
2454 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2455 #[prost(string, tag="3")]
2458 pub screenshot_url: ::prost::alloc::string::String,
2459 #[prost(bool, tag="4")]
2461 pub cohort_enabled: bool,
2462}
2463#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2465pub struct UploadScreenshotRequest {
2466 #[prost(string, tag="1")]
2469 pub screen_name: ::prost::alloc::string::String,
2470 #[prost(string, tag="2")]
2472 pub app_version: ::prost::alloc::string::String,
2473 #[prost(bytes="vec", tag="3")]
2476 pub image_data: ::prost::alloc::vec::Vec<u8>,
2477}
2478#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2480pub struct UploadScreenshotResponse {
2481 #[prost(string, tag="1")]
2483 pub url: ::prost::alloc::string::String,
2484}
2485#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2487pub struct ScreenScreenshot {
2488 #[prost(string, tag="1")]
2490 pub screen_name: ::prost::alloc::string::String,
2491 #[prost(string, tag="2")]
2493 pub url: ::prost::alloc::string::String,
2494 #[prost(string, tag="3")]
2496 pub app_version: ::prost::alloc::string::String,
2497}
2498#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2500pub struct ListScreenshotsRequest {
2501}
2502#[derive(Clone, PartialEq, ::prost::Message)]
2504pub struct ListScreenshotsResponse {
2505 #[prost(message, repeated, tag="1")]
2507 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2508}
2509#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2513#[repr(i32)]
2514pub enum TouchEventType {
2515 Unspecified = 0,
2517 Tap = 1,
2519 LongPress = 2,
2521 Scroll = 3,
2523 ActionClick = 4,
2525}
2526impl TouchEventType {
2527 pub fn as_str_name(&self) -> &'static str {
2532 match self {
2533 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2534 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2535 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2536 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2537 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2538 }
2539 }
2540 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2542 match value {
2543 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2544 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2545 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2546 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2547 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2548 _ => None,
2549 }
2550 }
2551}
2552#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2554#[repr(i32)]
2555pub enum HeatmapMode {
2556 Unspecified = 0,
2558 Total = 1,
2560 Median = 2,
2562}
2563impl HeatmapMode {
2564 pub fn as_str_name(&self) -> &'static str {
2569 match self {
2570 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2571 Self::Total => "HEATMAP_MODE_TOTAL",
2572 Self::Median => "HEATMAP_MODE_MEDIAN",
2573 }
2574 }
2575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2577 match value {
2578 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2579 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2580 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2581 _ => None,
2582 }
2583 }
2584}
2585#[derive(Clone, PartialEq, ::prost::Message)]
2589pub struct InboxEntry {
2590 #[prost(string, tag="1")]
2593 pub delivery_id: ::prost::alloc::string::String,
2594 #[prost(message, optional, tag="2")]
2596 pub message: ::core::option::Option<Message>,
2597 #[prost(enumeration="DeliveryStatus", tag="3")]
2599 pub status: i32,
2600 #[prost(bool, tag="4")]
2602 pub read: bool,
2603 #[prost(message, optional, tag="5")]
2605 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2606}
2607#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2609pub struct SyncRequest {
2610 #[prost(message, optional, tag="1")]
2612 pub since: ::core::option::Option<::prost_types::Timestamp>,
2613 #[prost(int32, tag="2")]
2616 pub limit: i32,
2617}
2618#[derive(Clone, PartialEq, ::prost::Message)]
2620pub struct SyncResponse {
2621 #[prost(message, repeated, tag="1")]
2623 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2624 #[prost(message, optional, tag="2")]
2626 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2627}
2628#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2630pub struct MarkReadRequest {
2631 #[prost(string, tag="1")]
2634 pub delivery_id: ::prost::alloc::string::String,
2635}
2636#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2638pub struct MarkReadResponse {
2639 #[prost(bool, tag="1")]
2641 pub success: bool,
2642}
2643#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2645pub struct GetMessageRequest {
2646 #[prost(string, tag="1")]
2649 pub delivery_id: ::prost::alloc::string::String,
2650}
2651#[derive(Clone, PartialEq, ::prost::Message)]
2653pub struct GetMessageResponse {
2654 #[prost(message, optional, tag="1")]
2656 pub entry: ::core::option::Option<InboxEntry>,
2657}
2658#[derive(Clone, PartialEq, ::prost::Message)]
2663pub struct Archetype {
2664 #[prost(string, tag="1")]
2666 pub label: ::prost::alloc::string::String,
2667 #[prost(string, tag="2")]
2669 pub description: ::prost::alloc::string::String,
2670 #[prost(float, tag="3")]
2672 pub percentage: f32,
2673 #[prost(map="string, double", tag="4")]
2676 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
2677}
2678#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2681pub struct CohortPrediction {
2682 #[prost(float, tag="1")]
2684 pub predicted_ack_rate: f32,
2685 #[prost(float, tag="2")]
2687 pub confidence_low: f32,
2688 #[prost(float, tag="3")]
2690 pub confidence_high: f32,
2691 #[prost(enumeration="ConfidenceLevel", tag="4")]
2693 pub confidence_level: i32,
2694 #[prost(int32, tag="5")]
2696 pub data_point_count: i32,
2697}
2698#[derive(Clone, PartialEq, ::prost::Message)]
2700pub struct CampaignAdvisory {
2701 #[prost(message, optional, tag="1")]
2703 pub predicted_ack: ::core::option::Option<CohortPrediction>,
2704 #[prost(int32, tag="2")]
2707 pub suggested_escalation_delay_minutes: i32,
2708 #[prost(message, repeated, tag="3")]
2710 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2711}
2712#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2714pub struct GetGroupArchetypesRequest {
2715 #[prost(string, tag="1")]
2717 pub group_id: ::prost::alloc::string::String,
2718}
2719#[derive(Clone, PartialEq, ::prost::Message)]
2721pub struct GetGroupArchetypesResponse {
2722 #[prost(message, repeated, tag="1")]
2724 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2725 #[prost(int32, tag="2")]
2727 pub data_point_count: i32,
2728}
2729#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2731pub struct PredictCampaignAckRequest {
2732 #[prost(string, tag="1")]
2734 pub group_id: ::prost::alloc::string::String,
2735 #[prost(string, tag="2")]
2737 pub template_type: ::prost::alloc::string::String,
2738 #[prost(int32, tag="3")]
2740 pub workflow_step_count: i32,
2741}
2742#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2744pub struct PredictCampaignAckResponse {
2745 #[prost(message, optional, tag="1")]
2747 pub prediction: ::core::option::Option<CohortPrediction>,
2748}
2749#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2751pub struct GetCampaignAdvisoryRequest {
2752 #[prost(string, tag="1")]
2754 pub group_id: ::prost::alloc::string::String,
2755 #[prost(string, tag="2")]
2757 pub template_id: ::prost::alloc::string::String,
2758 #[prost(int32, tag="3")]
2760 pub template_version: i32,
2761 #[prost(int32, tag="4")]
2763 pub workflow_step_count: i32,
2764}
2765#[derive(Clone, PartialEq, ::prost::Message)]
2767pub struct GetCampaignAdvisoryResponse {
2768 #[prost(message, optional, tag="1")]
2770 pub advisory: ::core::option::Option<CampaignAdvisory>,
2771}
2772#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2774pub struct GetInsightNarrativeRequest {
2775 #[prost(string, tag="1")]
2777 pub group_id: ::prost::alloc::string::String,
2778 #[prost(string, tag="2")]
2780 pub prompt_name: ::prost::alloc::string::String,
2781}
2782#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2784pub struct GetInsightNarrativeResponse {
2785 #[prost(string, tag="1")]
2787 pub narrative: ::prost::alloc::string::String,
2788 #[prost(message, optional, tag="2")]
2790 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
2791 #[prost(string, tag="3")]
2793 pub model_id: ::prost::alloc::string::String,
2794}
2795#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2798pub struct TriggerMlPipelineRequest {
2799}
2800#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2802pub struct TriggerMlPipelineResponse {
2803 #[prost(int32, tag="1")]
2805 pub remaining_this_month: i32,
2806 #[prost(message, optional, tag="2")]
2808 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
2809}
2810#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2814#[repr(i32)]
2815pub enum ConfidenceLevel {
2816 Unspecified = 0,
2817 Low = 1,
2819 Medium = 2,
2821 High = 3,
2823}
2824impl ConfidenceLevel {
2825 pub fn as_str_name(&self) -> &'static str {
2830 match self {
2831 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
2832 Self::Low => "CONFIDENCE_LEVEL_LOW",
2833 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
2834 Self::High => "CONFIDENCE_LEVEL_HIGH",
2835 }
2836 }
2837 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2839 match value {
2840 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
2841 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
2842 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
2843 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
2844 _ => None,
2845 }
2846 }
2847}
2848#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2853pub struct InviteLink {
2854 #[prost(string, tag="1")]
2856 pub id: ::prost::alloc::string::String,
2857 #[prost(string, tag="2")]
2859 pub token: ::prost::alloc::string::String,
2860 #[prost(string, tag="3")]
2862 pub role_id: ::prost::alloc::string::String,
2863 #[prost(int32, tag="4")]
2866 pub max_uses: i32,
2867 #[prost(int32, tag="5")]
2869 pub use_count: i32,
2870 #[prost(message, optional, tag="6")]
2872 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2873 #[prost(message, optional, tag="7")]
2875 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2876 #[prost(string, tag="8")]
2878 pub created_by: ::prost::alloc::string::String,
2879 #[prost(message, optional, tag="9")]
2881 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2882 #[prost(string, tag="10")]
2885 pub data_governance_region: ::prost::alloc::string::String,
2886}
2887#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2889pub struct CreateInviteLinkRequest {
2890 #[prost(string, tag="1")]
2892 pub role_id: ::prost::alloc::string::String,
2893 #[prost(int32, tag="2")]
2895 pub max_uses: i32,
2896 #[prost(int32, tag="3")]
2899 pub expires_in_hours: i32,
2900 #[prost(string, tag="4")]
2903 pub data_governance_region: ::prost::alloc::string::String,
2904}
2905#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2907pub struct CreateInviteLinkResponse {
2908 #[prost(message, optional, tag="1")]
2910 pub invite_link: ::core::option::Option<InviteLink>,
2911 #[prost(string, tag="2")]
2913 pub url: ::prost::alloc::string::String,
2914}
2915#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2917pub struct ListInviteLinksRequest {
2918}
2919#[derive(Clone, PartialEq, ::prost::Message)]
2921pub struct ListInviteLinksResponse {
2922 #[prost(message, repeated, tag="1")]
2924 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
2925}
2926#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2928pub struct RevokeInviteLinkRequest {
2929 #[prost(string, tag="1")]
2931 pub invite_link_id: ::prost::alloc::string::String,
2932}
2933#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2935pub struct RevokeInviteLinkResponse {
2936}
2937#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2939pub struct RedeemInviteLinkRequest {
2940 #[prost(string, tag="1")]
2942 pub token: ::prost::alloc::string::String,
2943}
2944#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2946pub struct RedeemInviteLinkResponse {
2947 #[prost(string, tag="1")]
2949 pub organization_name: ::prost::alloc::string::String,
2950}
2951#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2953pub struct ValidateInviteLinkRequest {
2954 #[prost(string, tag="1")]
2956 pub token: ::prost::alloc::string::String,
2957 #[prost(string, tag="2")]
2960 pub email: ::prost::alloc::string::String,
2961}
2962#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2964pub struct ValidateInviteLinkResponse {
2965 #[prost(string, tag="1")]
2967 pub organization_name: ::prost::alloc::string::String,
2968}
2969#[derive(Clone, PartialEq, ::prost::Message)]
2973pub struct InviteUserRequest {
2974 #[prost(string, tag="1")]
2977 pub email: ::prost::alloc::string::String,
2978 #[prost(string, tag="2")]
2981 pub name: ::prost::alloc::string::String,
2982 #[prost(string, tag="4")]
2984 pub role_id: ::prost::alloc::string::String,
2985 #[prost(message, optional, tag="5")]
2987 pub profile: ::core::option::Option<UserProfile>,
2988 #[prost(string, tag="6")]
2991 pub data_governance_region: ::prost::alloc::string::String,
2992}
2993#[derive(Clone, PartialEq, ::prost::Message)]
2995pub struct InviteUserResponse {
2996 #[prost(message, optional, tag="1")]
2998 pub user: ::core::option::Option<User>,
2999}
3000#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3002pub struct GetUserRequest {
3003 #[prost(string, tag="1")]
3005 pub user_id: ::prost::alloc::string::String,
3006}
3007#[derive(Clone, PartialEq, ::prost::Message)]
3009pub struct GetUserResponse {
3010 #[prost(message, optional, tag="1")]
3012 pub user: ::core::option::Option<User>,
3013}
3014#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3016pub struct ListUsersRequest {
3017 #[prost(message, optional, tag="1")]
3019 pub pagination: ::core::option::Option<Pagination>,
3020}
3021#[derive(Clone, PartialEq, ::prost::Message)]
3023pub struct ListUsersResponse {
3024 #[prost(message, repeated, tag="1")]
3026 pub users: ::prost::alloc::vec::Vec<User>,
3027 #[prost(message, optional, tag="2")]
3029 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3030}
3031#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3033pub struct UpdateUserRoleRequest {
3034 #[prost(string, tag="1")]
3036 pub user_id: ::prost::alloc::string::String,
3037 #[prost(string, tag="2")]
3039 pub role_id: ::prost::alloc::string::String,
3040}
3041#[derive(Clone, PartialEq, ::prost::Message)]
3043pub struct UpdateUserRoleResponse {
3044 #[prost(message, optional, tag="1")]
3046 pub user: ::core::option::Option<User>,
3047}
3048#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3050pub struct DeactivateUserRequest {
3051 #[prost(string, tag="1")]
3053 pub user_id: ::prost::alloc::string::String,
3054}
3055#[derive(Clone, PartialEq, ::prost::Message)]
3057pub struct DeactivateUserResponse {
3058 #[prost(message, optional, tag="1")]
3060 pub user: ::core::option::Option<User>,
3061}
3062#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3064pub struct ReactivateUserRequest {
3065 #[prost(string, tag="1")]
3067 pub user_id: ::prost::alloc::string::String,
3068}
3069#[derive(Clone, PartialEq, ::prost::Message)]
3071pub struct ReactivateUserResponse {
3072 #[prost(message, optional, tag="1")]
3074 pub user: ::core::option::Option<User>,
3075}
3076#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3078pub struct RevokeInviteRequest {
3079 #[prost(string, tag="1")]
3082 pub user_id: ::prost::alloc::string::String,
3083}
3084#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3086pub struct RevokeInviteResponse {
3087}
3088#[derive(Clone, PartialEq, ::prost::Message)]
3090pub struct UpdateUserProfileRequest {
3091 #[prost(string, tag="1")]
3094 pub user_id: ::prost::alloc::string::String,
3095 #[prost(message, optional, tag="2")]
3097 pub profile: ::core::option::Option<UserProfile>,
3098}
3099#[derive(Clone, PartialEq, ::prost::Message)]
3101pub struct UpdateUserProfileResponse {
3102 #[prost(message, optional, tag="1")]
3104 pub user: ::core::option::Option<User>,
3105}
3106#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3108pub struct GetUserSettingsRequest {
3109}
3110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3112pub struct GetUserSettingsResponse {
3113 #[prost(message, optional, tag="1")]
3115 pub settings: ::core::option::Option<UserSettings>,
3116}
3117#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3119pub struct UpdateUserSettingsRequest {
3120 #[prost(message, optional, tag="1")]
3123 pub settings: ::core::option::Option<UserSettings>,
3124}
3125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3127pub struct UpdateUserSettingsResponse {
3128 #[prost(message, optional, tag="1")]
3130 pub settings: ::core::option::Option<UserSettings>,
3131}
3132#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3134pub struct BulkInviteUsersRequest {
3135 #[prost(string, repeated, tag="1")]
3138 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3139 #[prost(string, tag="2")]
3141 pub role_id: ::prost::alloc::string::String,
3142}
3143#[derive(Clone, PartialEq, ::prost::Message)]
3145pub struct BulkInviteResult {
3146 #[prost(string, tag="1")]
3148 pub email: ::prost::alloc::string::String,
3149 #[prost(bool, tag="2")]
3151 pub success: bool,
3152 #[prost(string, tag="3")]
3155 pub error: ::prost::alloc::string::String,
3156 #[prost(message, optional, tag="4")]
3158 pub user: ::core::option::Option<User>,
3159}
3160#[derive(Clone, PartialEq, ::prost::Message)]
3162pub struct BulkInviteUsersResponse {
3163 #[prost(message, repeated, tag="1")]
3165 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3166 #[prost(int32, tag="2")]
3168 pub invited_count: i32,
3169 #[prost(int32, tag="3")]
3171 pub failed_count: i32,
3172}
3173#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3177pub struct ConfirmPasskeyEnrollmentRequest {
3178}
3179#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3181pub struct ConfirmPasskeyEnrollmentResponse {
3182 #[prost(bool, tag="1")]
3184 pub confirmed: bool,
3185}
3186#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3188pub struct UpdateUserRegionRequest {
3189 #[prost(string, tag="1")]
3191 pub user_id: ::prost::alloc::string::String,
3192 #[prost(string, tag="2")]
3195 pub data_governance_region: ::prost::alloc::string::String,
3196}
3197#[derive(Clone, PartialEq, ::prost::Message)]
3199pub struct UpdateUserRegionResponse {
3200 #[prost(message, optional, tag="1")]
3202 pub user: ::core::option::Option<User>,
3203 #[prost(string, tag="2")]
3206 pub migration_workflow_id: ::prost::alloc::string::String,
3207}
3208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3213pub struct SsoAttributeMapping {
3214 #[prost(string, tag="1")]
3217 pub idp_claim: ::prost::alloc::string::String,
3218 #[prost(string, tag="2")]
3222 pub profile_field: ::prost::alloc::string::String,
3223}
3224#[derive(Clone, PartialEq, ::prost::Message)]
3226pub struct Organization {
3227 #[prost(string, tag="1")]
3229 pub id: ::prost::alloc::string::String,
3230 #[prost(string, tag="2")]
3233 pub name: ::prost::alloc::string::String,
3234 #[prost(message, optional, tag="3")]
3236 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3237 #[prost(message, optional, tag="4")]
3239 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3240 #[prost(enumeration="Industry", tag="5")]
3242 pub industry: i32,
3243 #[prost(enumeration="CompanySize", tag="6")]
3245 pub company_size: i32,
3246 #[prost(message, repeated, tag="7")]
3249 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3250 #[prost(string, tag="8")]
3254 pub default_locale: ::prost::alloc::string::String,
3255 #[prost(enumeration="OrgType", tag="9")]
3257 pub org_type: i32,
3258 #[prost(message, optional, tag="10")]
3260 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3261 #[prost(string, tag="11")]
3264 pub data_governance_region: ::prost::alloc::string::String,
3265 #[prost(string, tag="12")]
3268 pub data_content_region: ::prost::alloc::string::String,
3269 #[prost(int32, tag="13")]
3274 pub ml_retrain_cold_threshold: i32,
3275 #[prost(bool, tag="14")]
3277 pub ml_cancelled_counts: bool,
3278 #[prost(int32, tag="15")]
3280 pub ml_manual_limit_monthly: i32,
3281 #[prost(int32, tag="16")]
3283 pub ml_manual_retrains_used: i32,
3284 #[prost(bool, tag="17")]
3286 pub ml_needs_retrain: bool,
3287 #[prost(int32, tag="18")]
3289 pub campaigns_since_last_training: i32,
3290 #[prost(int32, tag="19")]
3292 pub total_completed_campaigns: i32,
3293 #[prost(message, optional, tag="20")]
3295 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
3296}
3297#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3300pub struct CreateOrganizationRequest {
3301 #[prost(string, tag="1")]
3304 pub name: ::prost::alloc::string::String,
3305 #[prost(string, tag="2")]
3308 pub admin_email: ::prost::alloc::string::String,
3309 #[prost(enumeration="Industry", tag="3")]
3311 pub industry: i32,
3312 #[prost(enumeration="CompanySize", tag="4")]
3314 pub company_size: i32,
3315 #[prost(string, tag="5")]
3318 pub access_code: ::prost::alloc::string::String,
3319 #[prost(string, tag="6")]
3322 pub data_governance_region: ::prost::alloc::string::String,
3323}
3324#[derive(Clone, PartialEq, ::prost::Message)]
3326pub struct CreateOrganizationResponse {
3327 #[prost(message, optional, tag="1")]
3329 pub organization: ::core::option::Option<Organization>,
3330 #[prost(message, optional, tag="2")]
3332 pub admin_user: ::core::option::Option<User>,
3333}
3334#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3336pub struct GetOrganizationRequest {
3337}
3338#[derive(Clone, PartialEq, ::prost::Message)]
3340pub struct GetOrganizationResponse {
3341 #[prost(message, optional, tag="1")]
3343 pub organization: ::core::option::Option<Organization>,
3344}
3345#[derive(Clone, PartialEq, ::prost::Message)]
3347pub struct UpdateOrganizationRequest {
3348 #[prost(string, tag="1")]
3351 pub name: ::prost::alloc::string::String,
3352 #[prost(message, optional, tag="2")]
3354 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3355 #[prost(enumeration="Industry", tag="3")]
3357 pub industry: i32,
3358 #[prost(enumeration="CompanySize", tag="4")]
3360 pub company_size: i32,
3361 #[prost(string, tag="5")]
3364 pub default_locale: ::prost::alloc::string::String,
3365 #[prost(int32, tag="6")]
3367 pub ml_retrain_cold_threshold: i32,
3368 #[prost(bool, optional, tag="7")]
3371 pub ml_cancelled_counts: ::core::option::Option<bool>,
3372 #[prost(int32, tag="8")]
3375 pub ml_manual_limit_monthly: i32,
3376}
3377#[derive(Clone, PartialEq, ::prost::Message)]
3379pub struct UpdateOrganizationResponse {
3380 #[prost(message, optional, tag="1")]
3382 pub organization: ::core::option::Option<Organization>,
3383}
3384#[derive(Clone, PartialEq, ::prost::Message)]
3386pub struct UpdateSsoAttributeMappingsRequest {
3387 #[prost(message, repeated, tag="1")]
3389 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3390}
3391#[derive(Clone, PartialEq, ::prost::Message)]
3393pub struct UpdateSsoAttributeMappingsResponse {
3394 #[prost(message, optional, tag="1")]
3396 pub organization: ::core::option::Option<Organization>,
3397}
3398#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3400pub struct RotateAnalyticsSaltRequest {
3401 #[prost(int32, tag="1")]
3403 pub new_bucket_count: i32,
3404}
3405#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3407pub struct RotateAnalyticsSaltResponse {
3408 #[prost(int32, tag="1")]
3410 pub bucket_count: i32,
3411}
3412#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3414pub struct UpdateAnalyticsEpsilonRequest {
3415 #[prost(float, tag="1")]
3417 pub epsilon: f32,
3418}
3419#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3421pub struct UpdateAnalyticsEpsilonResponse {
3422 #[prost(float, tag="1")]
3424 pub epsilon: f32,
3425}
3426#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3428pub struct CreateSandboxOrganizationRequest {
3429 #[prost(string, tag="1")]
3432 pub name: ::prost::alloc::string::String,
3433 #[prost(message, optional, tag="2")]
3436 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3437 #[prost(string, tag="3")]
3440 pub data_governance_region: ::prost::alloc::string::String,
3441 #[prost(string, tag="4")]
3445 pub fixture_id: ::prost::alloc::string::String,
3446}
3447#[derive(Clone, PartialEq, ::prost::Message)]
3449pub struct CreateSandboxOrganizationResponse {
3450 #[prost(message, optional, tag="1")]
3452 pub organization: ::core::option::Option<Organization>,
3453 #[prost(message, optional, tag="2")]
3455 pub admin_user: ::core::option::Option<User>,
3456}
3457#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3460pub struct DeleteSandboxOrganizationRequest {
3461 #[prost(string, tag="1")]
3463 pub org_id: ::prost::alloc::string::String,
3464}
3465#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3468pub struct DeleteSandboxOrganizationResponse {
3469 #[prost(string, tag="1")]
3471 pub workflow_id: ::prost::alloc::string::String,
3472}
3473#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3475pub struct SandboxFixture {
3476 #[prost(string, tag="1")]
3478 pub id: ::prost::alloc::string::String,
3479 #[prost(string, tag="2")]
3481 pub name: ::prost::alloc::string::String,
3482 #[prost(string, tag="3")]
3484 pub description: ::prost::alloc::string::String,
3485 #[prost(bool, tag="4")]
3488 pub is_default: bool,
3489}
3490#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3493pub struct ListSandboxFixturesRequest {
3494}
3495#[derive(Clone, PartialEq, ::prost::Message)]
3497pub struct ListSandboxFixturesResponse {
3498 #[prost(message, repeated, tag="1")]
3500 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
3501}
3502#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3505pub struct ListUserOrganizationsRequest {
3506}
3507#[derive(Clone, PartialEq, ::prost::Message)]
3509pub struct ListUserOrganizationsResponse {
3510 #[prost(message, repeated, tag="1")]
3513 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3514}
3515#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3519#[repr(i32)]
3520pub enum Industry {
3521 Unspecified = 0,
3522 Technology = 1,
3523 Finance = 2,
3524 Healthcare = 3,
3525 Education = 4,
3526 Retail = 5,
3527 Manufacturing = 6,
3528 Media = 7,
3529 Other = 8,
3530}
3531impl Industry {
3532 pub fn as_str_name(&self) -> &'static str {
3537 match self {
3538 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3539 Self::Technology => "INDUSTRY_TECHNOLOGY",
3540 Self::Finance => "INDUSTRY_FINANCE",
3541 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3542 Self::Education => "INDUSTRY_EDUCATION",
3543 Self::Retail => "INDUSTRY_RETAIL",
3544 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3545 Self::Media => "INDUSTRY_MEDIA",
3546 Self::Other => "INDUSTRY_OTHER",
3547 }
3548 }
3549 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3551 match value {
3552 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3553 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3554 "INDUSTRY_FINANCE" => Some(Self::Finance),
3555 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3556 "INDUSTRY_EDUCATION" => Some(Self::Education),
3557 "INDUSTRY_RETAIL" => Some(Self::Retail),
3558 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3559 "INDUSTRY_MEDIA" => Some(Self::Media),
3560 "INDUSTRY_OTHER" => Some(Self::Other),
3561 _ => None,
3562 }
3563 }
3564}
3565#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3567#[repr(i32)]
3568pub enum CompanySize {
3569 Unspecified = 0,
3570 CompanySize1200 = 1,
3571 CompanySize200500 = 2,
3572 CompanySize5001000 = 3,
3573 CompanySize10005000 = 4,
3574 CompanySize5000Plus = 5,
3575}
3576impl CompanySize {
3577 pub fn as_str_name(&self) -> &'static str {
3582 match self {
3583 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3584 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3585 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3586 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3587 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3588 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3589 }
3590 }
3591 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3593 match value {
3594 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3595 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3596 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3597 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3598 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3599 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3600 _ => None,
3601 }
3602 }
3603}
3604#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3606#[repr(i32)]
3607pub enum OrgType {
3608 Unspecified = 0,
3609 Standard = 1,
3610 Sandbox = 2,
3611}
3612impl OrgType {
3613 pub fn as_str_name(&self) -> &'static str {
3618 match self {
3619 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
3620 Self::Standard => "ORG_TYPE_STANDARD",
3621 Self::Sandbox => "ORG_TYPE_SANDBOX",
3622 }
3623 }
3624 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3626 match value {
3627 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3628 "ORG_TYPE_STANDARD" => Some(Self::Standard),
3629 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
3630 _ => None,
3631 }
3632 }
3633}
3634#[derive(Clone, PartialEq, ::prost::Message)]
3638pub struct UserRenderContext {
3639 #[prost(string, tag="1")]
3641 pub user_id: ::prost::alloc::string::String,
3642 #[prost(map="string, string", tag="2")]
3645 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3646}
3647#[derive(Clone, PartialEq, ::prost::Message)]
3649pub struct RenderBatchRequest {
3650 #[prost(string, tag="1")]
3652 pub template_id: ::prost::alloc::string::String,
3653 #[prost(int32, tag="2")]
3655 pub version: i32,
3656 #[prost(message, repeated, tag="3")]
3659 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3660}
3661#[derive(Clone, PartialEq, ::prost::Message)]
3664pub struct RenderBatchResponse {
3665 #[prost(string, tag="1")]
3667 pub user_id: ::prost::alloc::string::String,
3668 #[prost(message, optional, tag="2")]
3670 pub message: ::core::option::Option<Message>,
3671 #[prost(string, tag="3")]
3673 pub error: ::prost::alloc::string::String,
3674}
3675#[derive(Clone, PartialEq, ::prost::Message)]
3680pub struct SessionRecording {
3681 #[prost(string, tag="1")]
3683 pub id: ::prost::alloc::string::String,
3684 #[prost(message, optional, tag="2")]
3686 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3687 #[prost(message, optional, tag="3")]
3689 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3690 #[prost(int32, tag="4")]
3692 pub duration_seconds: i32,
3693 #[prost(float, tag="5")]
3695 pub activity_score: f32,
3696}
3697#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3699pub struct ListSessionRecordingsRequest {
3700 #[prost(string, tag="1")]
3703 pub campaign_id: ::prost::alloc::string::String,
3704 #[prost(message, optional, tag="2")]
3706 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3707 #[prost(message, optional, tag="3")]
3709 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3710 #[prost(message, optional, tag="4")]
3712 pub pagination: ::core::option::Option<Pagination>,
3713}
3714#[derive(Clone, PartialEq, ::prost::Message)]
3716pub struct ListSessionRecordingsResponse {
3717 #[prost(message, repeated, tag="1")]
3719 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3720 #[prost(message, optional, tag="2")]
3722 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3723}
3724#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3726pub struct GetSessionSnapshotsRequest {
3727 #[prost(string, tag="1")]
3730 pub recording_id: ::prost::alloc::string::String,
3731}
3732#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3734pub struct GetSessionSnapshotsResponse {
3735 #[prost(string, tag="1")]
3738 pub snapshot_data: ::prost::alloc::string::String,
3739}
3740#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3744pub struct ListRolesRequest {
3745}
3746#[derive(Clone, PartialEq, ::prost::Message)]
3748pub struct ListRolesResponse {
3749 #[prost(message, repeated, tag="1")]
3751 pub roles: ::prost::alloc::vec::Vec<Role>,
3752}
3753#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3755pub struct CreateRoleRequest {
3756 #[prost(string, tag="1")]
3759 pub name: ::prost::alloc::string::String,
3760 #[prost(enumeration="Permission", repeated, tag="2")]
3763 pub permissions: ::prost::alloc::vec::Vec<i32>,
3764}
3765#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3767pub struct CreateRoleResponse {
3768 #[prost(message, optional, tag="1")]
3770 pub role: ::core::option::Option<Role>,
3771}
3772#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3774pub struct UpdateRoleRequest {
3775 #[prost(string, tag="1")]
3777 pub role_id: ::prost::alloc::string::String,
3778 #[prost(string, tag="2")]
3780 pub name: ::prost::alloc::string::String,
3781 #[prost(enumeration="Permission", repeated, tag="3")]
3785 pub permissions: ::prost::alloc::vec::Vec<i32>,
3786}
3787#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3789pub struct UpdateRoleResponse {
3790 #[prost(message, optional, tag="1")]
3792 pub role: ::core::option::Option<Role>,
3793}
3794#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3796pub struct DeleteRoleRequest {
3797 #[prost(string, tag="1")]
3799 pub role_id: ::prost::alloc::string::String,
3800}
3801#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3803pub struct DeleteRoleResponse {
3804}
3805#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3811pub struct SamlAttributeNames {
3812 #[prost(string, tag="1")]
3814 pub email: ::prost::alloc::string::String,
3815 #[prost(string, tag="2")]
3817 pub given_name: ::prost::alloc::string::String,
3818 #[prost(string, tag="3")]
3820 pub family_name: ::prost::alloc::string::String,
3821}
3822#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3824pub struct SsoProvider {
3825 #[prost(string, tag="1")]
3827 pub id: ::prost::alloc::string::String,
3828 #[prost(string, tag="2")]
3831 pub domain: ::prost::alloc::string::String,
3832 #[prost(enumeration="SsoProviderType", tag="3")]
3834 pub r#type: i32,
3835 #[prost(string, tag="4")]
3838 pub metadata_url: ::prost::alloc::string::String,
3839 #[prost(string, tag="5")]
3842 pub idp_provider_name: ::prost::alloc::string::String,
3843 #[prost(message, optional, tag="6")]
3845 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3846 #[prost(message, optional, tag="7")]
3848 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3849 #[prost(message, optional, tag="8")]
3851 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3852}
3853#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3856pub struct CheckSsoByDomainRequest {
3857 #[prost(string, tag="1")]
3860 pub email: ::prost::alloc::string::String,
3861}
3862#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3864pub struct CheckSsoByDomainResponse {
3865 #[prost(bool, tag="1")]
3867 pub sso_enabled: bool,
3868 #[prost(string, tag="2")]
3871 pub provider_name: ::prost::alloc::string::String,
3872}
3873#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3875pub struct CreateSsoProviderRequest {
3876 #[prost(string, tag="1")]
3879 pub domain: ::prost::alloc::string::String,
3880 #[prost(enumeration="SsoProviderType", tag="2")]
3882 pub r#type: i32,
3883 #[prost(string, tag="3")]
3886 pub metadata_url: ::prost::alloc::string::String,
3887 #[prost(message, optional, tag="4")]
3890 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3891}
3892#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3894pub struct CreateSsoProviderResponse {
3895 #[prost(message, optional, tag="1")]
3897 pub provider: ::core::option::Option<SsoProvider>,
3898}
3899#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3902pub struct GetSsoProviderRequest {
3903}
3904#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3906pub struct GetSsoProviderResponse {
3907 #[prost(message, optional, tag="1")]
3909 pub provider: ::core::option::Option<SsoProvider>,
3910}
3911#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3913pub struct DeleteSsoProviderRequest {
3914 #[prost(string, tag="1")]
3916 pub provider_id: ::prost::alloc::string::String,
3917}
3918#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3920pub struct DeleteSsoProviderResponse {
3921}
3922#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3926#[repr(i32)]
3927pub enum SsoProviderType {
3928 Unspecified = 0,
3930 Saml = 1,
3932 Oidc = 2,
3934}
3935impl SsoProviderType {
3936 pub fn as_str_name(&self) -> &'static str {
3941 match self {
3942 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
3943 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
3944 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
3945 }
3946 }
3947 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3949 match value {
3950 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3951 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
3952 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
3953 _ => None,
3954 }
3955 }
3956}
3957#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3963pub struct Team {
3964 #[prost(string, tag="1")]
3966 pub id: ::prost::alloc::string::String,
3967 #[prost(string, tag="2")]
3970 pub name: ::prost::alloc::string::String,
3971 #[prost(string, tag="3")]
3974 pub description: ::prost::alloc::string::String,
3975 #[prost(int32, tag="4")]
3977 pub member_count: i32,
3978 #[prost(message, optional, tag="5")]
3980 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3981 #[prost(message, optional, tag="6")]
3983 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3984 #[prost(bool, tag="7")]
3986 pub is_default: bool,
3987 #[prost(string, tag="8")]
3989 pub created_by: ::prost::alloc::string::String,
3990}
3991#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3993pub struct CreateTeamRequest {
3994 #[prost(string, tag="1")]
3997 pub name: ::prost::alloc::string::String,
3998 #[prost(string, tag="2")]
4001 pub description: ::prost::alloc::string::String,
4002}
4003#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4005pub struct CreateTeamResponse {
4006 #[prost(message, optional, tag="1")]
4008 pub team: ::core::option::Option<Team>,
4009}
4010#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4012pub struct GetTeamRequest {
4013 #[prost(string, tag="1")]
4015 pub team_id: ::prost::alloc::string::String,
4016}
4017#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4019pub struct GetTeamResponse {
4020 #[prost(message, optional, tag="1")]
4022 pub team: ::core::option::Option<Team>,
4023}
4024#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4026pub struct ListTeamsRequest {
4027 #[prost(message, optional, tag="1")]
4029 pub pagination: ::core::option::Option<Pagination>,
4030}
4031#[derive(Clone, PartialEq, ::prost::Message)]
4033pub struct ListTeamsResponse {
4034 #[prost(message, repeated, tag="1")]
4036 pub teams: ::prost::alloc::vec::Vec<Team>,
4037 #[prost(message, optional, tag="2")]
4039 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4040}
4041#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4043pub struct UpdateTeamRequest {
4044 #[prost(string, tag="1")]
4046 pub team_id: ::prost::alloc::string::String,
4047 #[prost(string, tag="2")]
4051 pub name: ::prost::alloc::string::String,
4052 #[prost(string, tag="3")]
4055 pub description: ::prost::alloc::string::String,
4056}
4057#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4059pub struct UpdateTeamResponse {
4060 #[prost(message, optional, tag="1")]
4062 pub team: ::core::option::Option<Team>,
4063}
4064#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4066pub struct DeleteTeamRequest {
4067 #[prost(string, tag="1")]
4070 pub team_id: ::prost::alloc::string::String,
4071}
4072#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4074pub struct DeleteTeamResponse {
4075}
4076#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4078pub struct AddTeamMembersRequest {
4079 #[prost(string, tag="1")]
4081 pub team_id: ::prost::alloc::string::String,
4082 #[prost(string, repeated, tag="2")]
4086 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4087}
4088#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4090pub struct AddTeamMembersResponse {
4091 #[prost(message, optional, tag="1")]
4093 pub team: ::core::option::Option<Team>,
4094}
4095#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4097pub struct RemoveTeamMembersRequest {
4098 #[prost(string, tag="1")]
4100 pub team_id: ::prost::alloc::string::String,
4101 #[prost(string, repeated, tag="2")]
4104 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4105}
4106#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4108pub struct RemoveTeamMembersResponse {
4109 #[prost(message, optional, tag="1")]
4111 pub team: ::core::option::Option<Team>,
4112}
4113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4115pub struct ListTeamMembersRequest {
4116 #[prost(string, tag="1")]
4118 pub team_id: ::prost::alloc::string::String,
4119 #[prost(message, optional, tag="2")]
4121 pub pagination: ::core::option::Option<Pagination>,
4122}
4123#[derive(Clone, PartialEq, ::prost::Message)]
4125pub struct ListTeamMembersResponse {
4126 #[prost(message, repeated, tag="1")]
4128 pub users: ::prost::alloc::vec::Vec<User>,
4129 #[prost(message, optional, tag="2")]
4131 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4132}
4133#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4137pub struct TemplateVariable {
4138 #[prost(string, tag="1")]
4141 pub name: ::prost::alloc::string::String,
4142 #[prost(string, tag="2")]
4145 pub description: ::prost::alloc::string::String,
4146 #[prost(bool, tag="3")]
4148 pub required: bool,
4149 #[prost(enumeration="TemplateVariableSource", tag="4")]
4151 pub source: i32,
4152 #[prost(string, tag="5")]
4155 pub default_value: ::prost::alloc::string::String,
4156 #[prost(bool, tag="6")]
4159 pub pii: bool,
4160}
4161#[derive(Clone, PartialEq, ::prost::Message)]
4164pub struct Template {
4165 #[prost(string, tag="1")]
4167 pub id: ::prost::alloc::string::String,
4168 #[prost(string, tag="2")]
4171 pub name: ::prost::alloc::string::String,
4172 #[prost(string, tag="3")]
4175 pub body: ::prost::alloc::string::String,
4176 #[prost(message, repeated, tag="4")]
4178 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4179 #[prost(int32, tag="5")]
4181 pub version: i32,
4182 #[prost(message, optional, tag="6")]
4184 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4185 #[prost(message, optional, tag="7")]
4187 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4188 #[prost(string, tag="8")]
4192 pub title: ::prost::alloc::string::String,
4193 #[prost(enumeration="TemplateType", tag="9")]
4196 pub r#type: i32,
4197 #[prost(string, tag="10")]
4201 pub source_locale: ::prost::alloc::string::String,
4202}
4203#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4206pub struct TemplateTranslation {
4207 #[prost(string, tag="1")]
4209 pub id: ::prost::alloc::string::String,
4210 #[prost(string, tag="2")]
4212 pub template_id: ::prost::alloc::string::String,
4213 #[prost(int32, tag="3")]
4215 pub version: i32,
4216 #[prost(string, tag="4")]
4218 pub locale: ::prost::alloc::string::String,
4219 #[prost(string, tag="5")]
4222 pub title: ::prost::alloc::string::String,
4223 #[prost(string, tag="6")]
4226 pub body: ::prost::alloc::string::String,
4227 #[prost(enumeration="TranslationStatus", tag="7")]
4229 pub status: i32,
4230 #[prost(string, tag="8")]
4232 pub translated_by: ::prost::alloc::string::String,
4233 #[prost(string, tag="9")]
4235 pub reviewed_by: ::prost::alloc::string::String,
4236 #[prost(message, optional, tag="10")]
4238 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4239 #[prost(message, optional, tag="11")]
4241 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4242}
4243#[derive(Clone, PartialEq, ::prost::Message)]
4245pub struct CreateTemplateRequest {
4246 #[prost(string, tag="1")]
4249 pub name: ::prost::alloc::string::String,
4250 #[prost(string, tag="2")]
4253 pub body: ::prost::alloc::string::String,
4254 #[prost(message, repeated, tag="3")]
4256 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4257 #[prost(string, tag="4")]
4260 pub title: ::prost::alloc::string::String,
4261 #[prost(enumeration="TemplateType", tag="5")]
4263 pub r#type: i32,
4264 #[prost(string, tag="6")]
4267 pub source_locale: ::prost::alloc::string::String,
4268}
4269#[derive(Clone, PartialEq, ::prost::Message)]
4271pub struct CreateTemplateResponse {
4272 #[prost(message, optional, tag="1")]
4274 pub template: ::core::option::Option<Template>,
4275}
4276#[derive(Clone, PartialEq, ::prost::Message)]
4278pub struct UpdateTemplateRequest {
4279 #[prost(string, tag="1")]
4281 pub template_id: ::prost::alloc::string::String,
4282 #[prost(string, tag="2")]
4285 pub body: ::prost::alloc::string::String,
4286 #[prost(message, repeated, tag="3")]
4288 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4289}
4290#[derive(Clone, PartialEq, ::prost::Message)]
4292pub struct UpdateTemplateResponse {
4293 #[prost(message, optional, tag="1")]
4295 pub template: ::core::option::Option<Template>,
4296}
4297#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4299pub struct GetTemplateRequest {
4300 #[prost(string, tag="1")]
4302 pub template_id: ::prost::alloc::string::String,
4303 #[prost(int32, tag="2")]
4305 pub version: i32,
4306}
4307#[derive(Clone, PartialEq, ::prost::Message)]
4309pub struct GetTemplateResponse {
4310 #[prost(message, optional, tag="1")]
4312 pub template: ::core::option::Option<Template>,
4313}
4314#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4316pub struct ListTemplatesRequest {
4317 #[prost(message, optional, tag="1")]
4319 pub pagination: ::core::option::Option<Pagination>,
4320 #[prost(enumeration="TemplateType", tag="2")]
4322 pub r#type: i32,
4323}
4324#[derive(Clone, PartialEq, ::prost::Message)]
4326pub struct ListTemplatesResponse {
4327 #[prost(message, repeated, tag="1")]
4329 pub templates: ::prost::alloc::vec::Vec<Template>,
4330 #[prost(message, optional, tag="2")]
4332 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4333}
4334#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4336pub struct CreateTemplateTranslationRequest {
4337 #[prost(string, tag="1")]
4339 pub template_id: ::prost::alloc::string::String,
4340 #[prost(int32, tag="2")]
4342 pub version: i32,
4343 #[prost(string, tag="3")]
4345 pub locale: ::prost::alloc::string::String,
4346 #[prost(string, tag="4")]
4348 pub title: ::prost::alloc::string::String,
4349 #[prost(string, tag="5")]
4351 pub body: ::prost::alloc::string::String,
4352 #[prost(string, tag="6")]
4354 pub translated_by: ::prost::alloc::string::String,
4355 #[prost(enumeration="TranslationStatus", tag="7")]
4357 pub status: i32,
4358}
4359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4361pub struct CreateTemplateTranslationResponse {
4362 #[prost(message, optional, tag="1")]
4364 pub translation: ::core::option::Option<TemplateTranslation>,
4365}
4366#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4368pub struct UpdateTemplateTranslationRequest {
4369 #[prost(string, tag="1")]
4371 pub translation_id: ::prost::alloc::string::String,
4372 #[prost(string, tag="2")]
4374 pub title: ::prost::alloc::string::String,
4375 #[prost(string, tag="3")]
4377 pub body: ::prost::alloc::string::String,
4378 #[prost(enumeration="TranslationStatus", tag="4")]
4380 pub status: i32,
4381}
4382#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4384pub struct UpdateTemplateTranslationResponse {
4385 #[prost(message, optional, tag="1")]
4387 pub translation: ::core::option::Option<TemplateTranslation>,
4388}
4389#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4391pub struct ListTemplateTranslationsRequest {
4392 #[prost(string, tag="1")]
4394 pub template_id: ::prost::alloc::string::String,
4395 #[prost(int32, tag="2")]
4397 pub version: i32,
4398}
4399#[derive(Clone, PartialEq, ::prost::Message)]
4401pub struct ListTemplateTranslationsResponse {
4402 #[prost(message, repeated, tag="1")]
4404 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4405}
4406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4408pub struct ApproveTemplateTranslationRequest {
4409 #[prost(string, tag="1")]
4411 pub translation_id: ::prost::alloc::string::String,
4412}
4413#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4415pub struct ApproveTemplateTranslationResponse {
4416 #[prost(message, optional, tag="1")]
4418 pub translation: ::core::option::Option<TemplateTranslation>,
4419}
4420#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4424#[repr(i32)]
4425pub enum TemplateType {
4426 Unspecified = 0,
4428 Markdown = 1,
4430 Rich = 2,
4432 Html = 3,
4434}
4435impl TemplateType {
4436 pub fn as_str_name(&self) -> &'static str {
4441 match self {
4442 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4443 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4444 Self::Rich => "TEMPLATE_TYPE_RICH",
4445 Self::Html => "TEMPLATE_TYPE_HTML",
4446 }
4447 }
4448 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4450 match value {
4451 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4452 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4453 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4454 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4455 _ => None,
4456 }
4457 }
4458}
4459#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4461#[repr(i32)]
4462pub enum TemplateVariableSource {
4463 Unspecified = 0,
4465 Profile = 1,
4467 Custom = 2,
4469}
4470impl TemplateVariableSource {
4471 pub fn as_str_name(&self) -> &'static str {
4476 match self {
4477 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4478 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4479 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4480 }
4481 }
4482 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4484 match value {
4485 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4486 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4487 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4488 _ => None,
4489 }
4490 }
4491}
4492#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4494#[repr(i32)]
4495pub enum TranslationStatus {
4496 Unspecified = 0,
4497 Draft = 1,
4499 AiTranslated = 2,
4501 InReview = 3,
4503 Approved = 4,
4505}
4506impl TranslationStatus {
4507 pub fn as_str_name(&self) -> &'static str {
4512 match self {
4513 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4514 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4515 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4516 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4517 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4518 }
4519 }
4520 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4522 match value {
4523 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4524 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4525 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4526 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4527 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4528 _ => None,
4529 }
4530 }
4531}
4532include!("pidgr.v1.tonic.rs");
4533