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, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2799#[repr(i32)]
2800pub enum ConfidenceLevel {
2801 Unspecified = 0,
2802 Low = 1,
2804 Medium = 2,
2806 High = 3,
2808}
2809impl ConfidenceLevel {
2810 pub fn as_str_name(&self) -> &'static str {
2815 match self {
2816 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
2817 Self::Low => "CONFIDENCE_LEVEL_LOW",
2818 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
2819 Self::High => "CONFIDENCE_LEVEL_HIGH",
2820 }
2821 }
2822 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2824 match value {
2825 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
2826 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
2827 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
2828 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
2829 _ => None,
2830 }
2831 }
2832}
2833#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2838pub struct InviteLink {
2839 #[prost(string, tag="1")]
2841 pub id: ::prost::alloc::string::String,
2842 #[prost(string, tag="2")]
2844 pub token: ::prost::alloc::string::String,
2845 #[prost(string, tag="3")]
2847 pub role_id: ::prost::alloc::string::String,
2848 #[prost(int32, tag="4")]
2851 pub max_uses: i32,
2852 #[prost(int32, tag="5")]
2854 pub use_count: i32,
2855 #[prost(message, optional, tag="6")]
2857 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2858 #[prost(message, optional, tag="7")]
2860 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2861 #[prost(string, tag="8")]
2863 pub created_by: ::prost::alloc::string::String,
2864 #[prost(message, optional, tag="9")]
2866 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2867 #[prost(string, tag="10")]
2870 pub data_governance_region: ::prost::alloc::string::String,
2871}
2872#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2874pub struct CreateInviteLinkRequest {
2875 #[prost(string, tag="1")]
2877 pub role_id: ::prost::alloc::string::String,
2878 #[prost(int32, tag="2")]
2880 pub max_uses: i32,
2881 #[prost(int32, tag="3")]
2884 pub expires_in_hours: i32,
2885 #[prost(string, tag="4")]
2888 pub data_governance_region: ::prost::alloc::string::String,
2889}
2890#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2892pub struct CreateInviteLinkResponse {
2893 #[prost(message, optional, tag="1")]
2895 pub invite_link: ::core::option::Option<InviteLink>,
2896 #[prost(string, tag="2")]
2898 pub url: ::prost::alloc::string::String,
2899}
2900#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2902pub struct ListInviteLinksRequest {
2903}
2904#[derive(Clone, PartialEq, ::prost::Message)]
2906pub struct ListInviteLinksResponse {
2907 #[prost(message, repeated, tag="1")]
2909 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
2910}
2911#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2913pub struct RevokeInviteLinkRequest {
2914 #[prost(string, tag="1")]
2916 pub invite_link_id: ::prost::alloc::string::String,
2917}
2918#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2920pub struct RevokeInviteLinkResponse {
2921}
2922#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2924pub struct RedeemInviteLinkRequest {
2925 #[prost(string, tag="1")]
2927 pub token: ::prost::alloc::string::String,
2928}
2929#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2931pub struct RedeemInviteLinkResponse {
2932 #[prost(string, tag="1")]
2934 pub organization_name: ::prost::alloc::string::String,
2935}
2936#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2938pub struct ValidateInviteLinkRequest {
2939 #[prost(string, tag="1")]
2941 pub token: ::prost::alloc::string::String,
2942 #[prost(string, tag="2")]
2945 pub email: ::prost::alloc::string::String,
2946}
2947#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2949pub struct ValidateInviteLinkResponse {
2950 #[prost(string, tag="1")]
2952 pub organization_name: ::prost::alloc::string::String,
2953}
2954#[derive(Clone, PartialEq, ::prost::Message)]
2958pub struct InviteUserRequest {
2959 #[prost(string, tag="1")]
2962 pub email: ::prost::alloc::string::String,
2963 #[prost(string, tag="2")]
2966 pub name: ::prost::alloc::string::String,
2967 #[prost(string, tag="4")]
2969 pub role_id: ::prost::alloc::string::String,
2970 #[prost(message, optional, tag="5")]
2972 pub profile: ::core::option::Option<UserProfile>,
2973 #[prost(string, tag="6")]
2976 pub data_governance_region: ::prost::alloc::string::String,
2977}
2978#[derive(Clone, PartialEq, ::prost::Message)]
2980pub struct InviteUserResponse {
2981 #[prost(message, optional, tag="1")]
2983 pub user: ::core::option::Option<User>,
2984}
2985#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2987pub struct GetUserRequest {
2988 #[prost(string, tag="1")]
2990 pub user_id: ::prost::alloc::string::String,
2991}
2992#[derive(Clone, PartialEq, ::prost::Message)]
2994pub struct GetUserResponse {
2995 #[prost(message, optional, tag="1")]
2997 pub user: ::core::option::Option<User>,
2998}
2999#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3001pub struct ListUsersRequest {
3002 #[prost(message, optional, tag="1")]
3004 pub pagination: ::core::option::Option<Pagination>,
3005}
3006#[derive(Clone, PartialEq, ::prost::Message)]
3008pub struct ListUsersResponse {
3009 #[prost(message, repeated, tag="1")]
3011 pub users: ::prost::alloc::vec::Vec<User>,
3012 #[prost(message, optional, tag="2")]
3014 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3015}
3016#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3018pub struct UpdateUserRoleRequest {
3019 #[prost(string, tag="1")]
3021 pub user_id: ::prost::alloc::string::String,
3022 #[prost(string, tag="2")]
3024 pub role_id: ::prost::alloc::string::String,
3025}
3026#[derive(Clone, PartialEq, ::prost::Message)]
3028pub struct UpdateUserRoleResponse {
3029 #[prost(message, optional, tag="1")]
3031 pub user: ::core::option::Option<User>,
3032}
3033#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3035pub struct DeactivateUserRequest {
3036 #[prost(string, tag="1")]
3038 pub user_id: ::prost::alloc::string::String,
3039}
3040#[derive(Clone, PartialEq, ::prost::Message)]
3042pub struct DeactivateUserResponse {
3043 #[prost(message, optional, tag="1")]
3045 pub user: ::core::option::Option<User>,
3046}
3047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3049pub struct ReactivateUserRequest {
3050 #[prost(string, tag="1")]
3052 pub user_id: ::prost::alloc::string::String,
3053}
3054#[derive(Clone, PartialEq, ::prost::Message)]
3056pub struct ReactivateUserResponse {
3057 #[prost(message, optional, tag="1")]
3059 pub user: ::core::option::Option<User>,
3060}
3061#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3063pub struct RevokeInviteRequest {
3064 #[prost(string, tag="1")]
3067 pub user_id: ::prost::alloc::string::String,
3068}
3069#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3071pub struct RevokeInviteResponse {
3072}
3073#[derive(Clone, PartialEq, ::prost::Message)]
3075pub struct UpdateUserProfileRequest {
3076 #[prost(string, tag="1")]
3079 pub user_id: ::prost::alloc::string::String,
3080 #[prost(message, optional, tag="2")]
3082 pub profile: ::core::option::Option<UserProfile>,
3083}
3084#[derive(Clone, PartialEq, ::prost::Message)]
3086pub struct UpdateUserProfileResponse {
3087 #[prost(message, optional, tag="1")]
3089 pub user: ::core::option::Option<User>,
3090}
3091#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3093pub struct GetUserSettingsRequest {
3094}
3095#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3097pub struct GetUserSettingsResponse {
3098 #[prost(message, optional, tag="1")]
3100 pub settings: ::core::option::Option<UserSettings>,
3101}
3102#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3104pub struct UpdateUserSettingsRequest {
3105 #[prost(message, optional, tag="1")]
3108 pub settings: ::core::option::Option<UserSettings>,
3109}
3110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3112pub struct UpdateUserSettingsResponse {
3113 #[prost(message, optional, tag="1")]
3115 pub settings: ::core::option::Option<UserSettings>,
3116}
3117#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3119pub struct BulkInviteUsersRequest {
3120 #[prost(string, repeated, tag="1")]
3123 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3124 #[prost(string, tag="2")]
3126 pub role_id: ::prost::alloc::string::String,
3127}
3128#[derive(Clone, PartialEq, ::prost::Message)]
3130pub struct BulkInviteResult {
3131 #[prost(string, tag="1")]
3133 pub email: ::prost::alloc::string::String,
3134 #[prost(bool, tag="2")]
3136 pub success: bool,
3137 #[prost(string, tag="3")]
3140 pub error: ::prost::alloc::string::String,
3141 #[prost(message, optional, tag="4")]
3143 pub user: ::core::option::Option<User>,
3144}
3145#[derive(Clone, PartialEq, ::prost::Message)]
3147pub struct BulkInviteUsersResponse {
3148 #[prost(message, repeated, tag="1")]
3150 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3151 #[prost(int32, tag="2")]
3153 pub invited_count: i32,
3154 #[prost(int32, tag="3")]
3156 pub failed_count: i32,
3157}
3158#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3162pub struct ConfirmPasskeyEnrollmentRequest {
3163}
3164#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3166pub struct ConfirmPasskeyEnrollmentResponse {
3167 #[prost(bool, tag="1")]
3169 pub confirmed: bool,
3170}
3171#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3173pub struct UpdateUserRegionRequest {
3174 #[prost(string, tag="1")]
3176 pub user_id: ::prost::alloc::string::String,
3177 #[prost(string, tag="2")]
3180 pub data_governance_region: ::prost::alloc::string::String,
3181}
3182#[derive(Clone, PartialEq, ::prost::Message)]
3184pub struct UpdateUserRegionResponse {
3185 #[prost(message, optional, tag="1")]
3187 pub user: ::core::option::Option<User>,
3188 #[prost(string, tag="2")]
3191 pub migration_workflow_id: ::prost::alloc::string::String,
3192}
3193#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3198pub struct SsoAttributeMapping {
3199 #[prost(string, tag="1")]
3202 pub idp_claim: ::prost::alloc::string::String,
3203 #[prost(string, tag="2")]
3207 pub profile_field: ::prost::alloc::string::String,
3208}
3209#[derive(Clone, PartialEq, ::prost::Message)]
3211pub struct Organization {
3212 #[prost(string, tag="1")]
3214 pub id: ::prost::alloc::string::String,
3215 #[prost(string, tag="2")]
3218 pub name: ::prost::alloc::string::String,
3219 #[prost(message, optional, tag="3")]
3221 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3222 #[prost(message, optional, tag="4")]
3224 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3225 #[prost(enumeration="Industry", tag="5")]
3227 pub industry: i32,
3228 #[prost(enumeration="CompanySize", tag="6")]
3230 pub company_size: i32,
3231 #[prost(message, repeated, tag="7")]
3234 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3235 #[prost(string, tag="8")]
3239 pub default_locale: ::prost::alloc::string::String,
3240 #[prost(enumeration="OrgType", tag="9")]
3242 pub org_type: i32,
3243 #[prost(message, optional, tag="10")]
3245 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3246 #[prost(string, tag="11")]
3249 pub data_governance_region: ::prost::alloc::string::String,
3250 #[prost(string, tag="12")]
3253 pub data_content_region: ::prost::alloc::string::String,
3254}
3255#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3258pub struct CreateOrganizationRequest {
3259 #[prost(string, tag="1")]
3262 pub name: ::prost::alloc::string::String,
3263 #[prost(string, tag="2")]
3266 pub admin_email: ::prost::alloc::string::String,
3267 #[prost(enumeration="Industry", tag="3")]
3269 pub industry: i32,
3270 #[prost(enumeration="CompanySize", tag="4")]
3272 pub company_size: i32,
3273 #[prost(string, tag="5")]
3276 pub access_code: ::prost::alloc::string::String,
3277 #[prost(string, tag="6")]
3280 pub data_governance_region: ::prost::alloc::string::String,
3281}
3282#[derive(Clone, PartialEq, ::prost::Message)]
3284pub struct CreateOrganizationResponse {
3285 #[prost(message, optional, tag="1")]
3287 pub organization: ::core::option::Option<Organization>,
3288 #[prost(message, optional, tag="2")]
3290 pub admin_user: ::core::option::Option<User>,
3291}
3292#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3294pub struct GetOrganizationRequest {
3295}
3296#[derive(Clone, PartialEq, ::prost::Message)]
3298pub struct GetOrganizationResponse {
3299 #[prost(message, optional, tag="1")]
3301 pub organization: ::core::option::Option<Organization>,
3302}
3303#[derive(Clone, PartialEq, ::prost::Message)]
3305pub struct UpdateOrganizationRequest {
3306 #[prost(string, tag="1")]
3309 pub name: ::prost::alloc::string::String,
3310 #[prost(message, optional, tag="2")]
3312 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3313 #[prost(enumeration="Industry", tag="3")]
3315 pub industry: i32,
3316 #[prost(enumeration="CompanySize", tag="4")]
3318 pub company_size: i32,
3319 #[prost(string, tag="5")]
3322 pub default_locale: ::prost::alloc::string::String,
3323}
3324#[derive(Clone, PartialEq, ::prost::Message)]
3326pub struct UpdateOrganizationResponse {
3327 #[prost(message, optional, tag="1")]
3329 pub organization: ::core::option::Option<Organization>,
3330}
3331#[derive(Clone, PartialEq, ::prost::Message)]
3333pub struct UpdateSsoAttributeMappingsRequest {
3334 #[prost(message, repeated, tag="1")]
3336 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3337}
3338#[derive(Clone, PartialEq, ::prost::Message)]
3340pub struct UpdateSsoAttributeMappingsResponse {
3341 #[prost(message, optional, tag="1")]
3343 pub organization: ::core::option::Option<Organization>,
3344}
3345#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3347pub struct RotateAnalyticsSaltRequest {
3348 #[prost(int32, tag="1")]
3350 pub new_bucket_count: i32,
3351}
3352#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3354pub struct RotateAnalyticsSaltResponse {
3355 #[prost(int32, tag="1")]
3357 pub bucket_count: i32,
3358}
3359#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3361pub struct UpdateAnalyticsEpsilonRequest {
3362 #[prost(float, tag="1")]
3364 pub epsilon: f32,
3365}
3366#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3368pub struct UpdateAnalyticsEpsilonResponse {
3369 #[prost(float, tag="1")]
3371 pub epsilon: f32,
3372}
3373#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3375pub struct CreateSandboxOrganizationRequest {
3376 #[prost(string, tag="1")]
3379 pub name: ::prost::alloc::string::String,
3380 #[prost(message, optional, tag="2")]
3382 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3383 #[prost(string, tag="3")]
3386 pub data_governance_region: ::prost::alloc::string::String,
3387}
3388#[derive(Clone, PartialEq, ::prost::Message)]
3390pub struct CreateSandboxOrganizationResponse {
3391 #[prost(message, optional, tag="1")]
3393 pub organization: ::core::option::Option<Organization>,
3394 #[prost(message, optional, tag="2")]
3396 pub admin_user: ::core::option::Option<User>,
3397}
3398#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3401pub struct ListUserOrganizationsRequest {
3402}
3403#[derive(Clone, PartialEq, ::prost::Message)]
3405pub struct ListUserOrganizationsResponse {
3406 #[prost(message, repeated, tag="1")]
3409 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3410}
3411#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3415#[repr(i32)]
3416pub enum Industry {
3417 Unspecified = 0,
3418 Technology = 1,
3419 Finance = 2,
3420 Healthcare = 3,
3421 Education = 4,
3422 Retail = 5,
3423 Manufacturing = 6,
3424 Media = 7,
3425 Other = 8,
3426}
3427impl Industry {
3428 pub fn as_str_name(&self) -> &'static str {
3433 match self {
3434 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3435 Self::Technology => "INDUSTRY_TECHNOLOGY",
3436 Self::Finance => "INDUSTRY_FINANCE",
3437 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3438 Self::Education => "INDUSTRY_EDUCATION",
3439 Self::Retail => "INDUSTRY_RETAIL",
3440 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3441 Self::Media => "INDUSTRY_MEDIA",
3442 Self::Other => "INDUSTRY_OTHER",
3443 }
3444 }
3445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3447 match value {
3448 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3449 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3450 "INDUSTRY_FINANCE" => Some(Self::Finance),
3451 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3452 "INDUSTRY_EDUCATION" => Some(Self::Education),
3453 "INDUSTRY_RETAIL" => Some(Self::Retail),
3454 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3455 "INDUSTRY_MEDIA" => Some(Self::Media),
3456 "INDUSTRY_OTHER" => Some(Self::Other),
3457 _ => None,
3458 }
3459 }
3460}
3461#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3463#[repr(i32)]
3464pub enum CompanySize {
3465 Unspecified = 0,
3466 CompanySize1200 = 1,
3467 CompanySize200500 = 2,
3468 CompanySize5001000 = 3,
3469 CompanySize10005000 = 4,
3470 CompanySize5000Plus = 5,
3471}
3472impl CompanySize {
3473 pub fn as_str_name(&self) -> &'static str {
3478 match self {
3479 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3480 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3481 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3482 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3483 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3484 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3485 }
3486 }
3487 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3489 match value {
3490 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3491 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3492 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3493 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3494 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3495 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3496 _ => None,
3497 }
3498 }
3499}
3500#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3502#[repr(i32)]
3503pub enum OrgType {
3504 Unspecified = 0,
3505 Standard = 1,
3506 Sandbox = 2,
3507}
3508impl OrgType {
3509 pub fn as_str_name(&self) -> &'static str {
3514 match self {
3515 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
3516 Self::Standard => "ORG_TYPE_STANDARD",
3517 Self::Sandbox => "ORG_TYPE_SANDBOX",
3518 }
3519 }
3520 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3522 match value {
3523 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3524 "ORG_TYPE_STANDARD" => Some(Self::Standard),
3525 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
3526 _ => None,
3527 }
3528 }
3529}
3530#[derive(Clone, PartialEq, ::prost::Message)]
3534pub struct UserRenderContext {
3535 #[prost(string, tag="1")]
3537 pub user_id: ::prost::alloc::string::String,
3538 #[prost(map="string, string", tag="2")]
3541 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3542}
3543#[derive(Clone, PartialEq, ::prost::Message)]
3545pub struct RenderBatchRequest {
3546 #[prost(string, tag="1")]
3548 pub template_id: ::prost::alloc::string::String,
3549 #[prost(int32, tag="2")]
3551 pub version: i32,
3552 #[prost(message, repeated, tag="3")]
3555 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3556}
3557#[derive(Clone, PartialEq, ::prost::Message)]
3560pub struct RenderBatchResponse {
3561 #[prost(string, tag="1")]
3563 pub user_id: ::prost::alloc::string::String,
3564 #[prost(message, optional, tag="2")]
3566 pub message: ::core::option::Option<Message>,
3567 #[prost(string, tag="3")]
3569 pub error: ::prost::alloc::string::String,
3570}
3571#[derive(Clone, PartialEq, ::prost::Message)]
3576pub struct SessionRecording {
3577 #[prost(string, tag="1")]
3579 pub id: ::prost::alloc::string::String,
3580 #[prost(message, optional, tag="2")]
3582 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3583 #[prost(message, optional, tag="3")]
3585 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3586 #[prost(int32, tag="4")]
3588 pub duration_seconds: i32,
3589 #[prost(float, tag="5")]
3591 pub activity_score: f32,
3592}
3593#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3595pub struct ListSessionRecordingsRequest {
3596 #[prost(string, tag="1")]
3599 pub campaign_id: ::prost::alloc::string::String,
3600 #[prost(message, optional, tag="2")]
3602 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3603 #[prost(message, optional, tag="3")]
3605 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3606 #[prost(message, optional, tag="4")]
3608 pub pagination: ::core::option::Option<Pagination>,
3609}
3610#[derive(Clone, PartialEq, ::prost::Message)]
3612pub struct ListSessionRecordingsResponse {
3613 #[prost(message, repeated, tag="1")]
3615 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3616 #[prost(message, optional, tag="2")]
3618 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3619}
3620#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3622pub struct GetSessionSnapshotsRequest {
3623 #[prost(string, tag="1")]
3626 pub recording_id: ::prost::alloc::string::String,
3627}
3628#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3630pub struct GetSessionSnapshotsResponse {
3631 #[prost(string, tag="1")]
3634 pub snapshot_data: ::prost::alloc::string::String,
3635}
3636#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3640pub struct ListRolesRequest {
3641}
3642#[derive(Clone, PartialEq, ::prost::Message)]
3644pub struct ListRolesResponse {
3645 #[prost(message, repeated, tag="1")]
3647 pub roles: ::prost::alloc::vec::Vec<Role>,
3648}
3649#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3651pub struct CreateRoleRequest {
3652 #[prost(string, tag="1")]
3655 pub name: ::prost::alloc::string::String,
3656 #[prost(enumeration="Permission", repeated, tag="2")]
3659 pub permissions: ::prost::alloc::vec::Vec<i32>,
3660}
3661#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3663pub struct CreateRoleResponse {
3664 #[prost(message, optional, tag="1")]
3666 pub role: ::core::option::Option<Role>,
3667}
3668#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3670pub struct UpdateRoleRequest {
3671 #[prost(string, tag="1")]
3673 pub role_id: ::prost::alloc::string::String,
3674 #[prost(string, tag="2")]
3676 pub name: ::prost::alloc::string::String,
3677 #[prost(enumeration="Permission", repeated, tag="3")]
3681 pub permissions: ::prost::alloc::vec::Vec<i32>,
3682}
3683#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3685pub struct UpdateRoleResponse {
3686 #[prost(message, optional, tag="1")]
3688 pub role: ::core::option::Option<Role>,
3689}
3690#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3692pub struct DeleteRoleRequest {
3693 #[prost(string, tag="1")]
3695 pub role_id: ::prost::alloc::string::String,
3696}
3697#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3699pub struct DeleteRoleResponse {
3700}
3701#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3707pub struct SamlAttributeNames {
3708 #[prost(string, tag="1")]
3710 pub email: ::prost::alloc::string::String,
3711 #[prost(string, tag="2")]
3713 pub given_name: ::prost::alloc::string::String,
3714 #[prost(string, tag="3")]
3716 pub family_name: ::prost::alloc::string::String,
3717}
3718#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3720pub struct SsoProvider {
3721 #[prost(string, tag="1")]
3723 pub id: ::prost::alloc::string::String,
3724 #[prost(string, tag="2")]
3727 pub domain: ::prost::alloc::string::String,
3728 #[prost(enumeration="SsoProviderType", tag="3")]
3730 pub r#type: i32,
3731 #[prost(string, tag="4")]
3734 pub metadata_url: ::prost::alloc::string::String,
3735 #[prost(string, tag="5")]
3738 pub idp_provider_name: ::prost::alloc::string::String,
3739 #[prost(message, optional, tag="6")]
3741 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3742 #[prost(message, optional, tag="7")]
3744 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3745 #[prost(message, optional, tag="8")]
3747 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3748}
3749#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3752pub struct CheckSsoByDomainRequest {
3753 #[prost(string, tag="1")]
3756 pub email: ::prost::alloc::string::String,
3757}
3758#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3760pub struct CheckSsoByDomainResponse {
3761 #[prost(bool, tag="1")]
3763 pub sso_enabled: bool,
3764 #[prost(string, tag="2")]
3767 pub provider_name: ::prost::alloc::string::String,
3768}
3769#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3771pub struct CreateSsoProviderRequest {
3772 #[prost(string, tag="1")]
3775 pub domain: ::prost::alloc::string::String,
3776 #[prost(enumeration="SsoProviderType", tag="2")]
3778 pub r#type: i32,
3779 #[prost(string, tag="3")]
3782 pub metadata_url: ::prost::alloc::string::String,
3783 #[prost(message, optional, tag="4")]
3786 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3787}
3788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3790pub struct CreateSsoProviderResponse {
3791 #[prost(message, optional, tag="1")]
3793 pub provider: ::core::option::Option<SsoProvider>,
3794}
3795#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3798pub struct GetSsoProviderRequest {
3799}
3800#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3802pub struct GetSsoProviderResponse {
3803 #[prost(message, optional, tag="1")]
3805 pub provider: ::core::option::Option<SsoProvider>,
3806}
3807#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3809pub struct DeleteSsoProviderRequest {
3810 #[prost(string, tag="1")]
3812 pub provider_id: ::prost::alloc::string::String,
3813}
3814#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3816pub struct DeleteSsoProviderResponse {
3817}
3818#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3822#[repr(i32)]
3823pub enum SsoProviderType {
3824 Unspecified = 0,
3826 Saml = 1,
3828 Oidc = 2,
3830}
3831impl SsoProviderType {
3832 pub fn as_str_name(&self) -> &'static str {
3837 match self {
3838 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
3839 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
3840 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
3841 }
3842 }
3843 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3845 match value {
3846 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3847 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
3848 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
3849 _ => None,
3850 }
3851 }
3852}
3853#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3859pub struct Team {
3860 #[prost(string, tag="1")]
3862 pub id: ::prost::alloc::string::String,
3863 #[prost(string, tag="2")]
3866 pub name: ::prost::alloc::string::String,
3867 #[prost(string, tag="3")]
3870 pub description: ::prost::alloc::string::String,
3871 #[prost(int32, tag="4")]
3873 pub member_count: i32,
3874 #[prost(message, optional, tag="5")]
3876 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3877 #[prost(message, optional, tag="6")]
3879 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3880 #[prost(bool, tag="7")]
3882 pub is_default: bool,
3883 #[prost(string, tag="8")]
3885 pub created_by: ::prost::alloc::string::String,
3886}
3887#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3889pub struct CreateTeamRequest {
3890 #[prost(string, tag="1")]
3893 pub name: ::prost::alloc::string::String,
3894 #[prost(string, tag="2")]
3897 pub description: ::prost::alloc::string::String,
3898}
3899#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3901pub struct CreateTeamResponse {
3902 #[prost(message, optional, tag="1")]
3904 pub team: ::core::option::Option<Team>,
3905}
3906#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3908pub struct GetTeamRequest {
3909 #[prost(string, tag="1")]
3911 pub team_id: ::prost::alloc::string::String,
3912}
3913#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3915pub struct GetTeamResponse {
3916 #[prost(message, optional, tag="1")]
3918 pub team: ::core::option::Option<Team>,
3919}
3920#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3922pub struct ListTeamsRequest {
3923 #[prost(message, optional, tag="1")]
3925 pub pagination: ::core::option::Option<Pagination>,
3926}
3927#[derive(Clone, PartialEq, ::prost::Message)]
3929pub struct ListTeamsResponse {
3930 #[prost(message, repeated, tag="1")]
3932 pub teams: ::prost::alloc::vec::Vec<Team>,
3933 #[prost(message, optional, tag="2")]
3935 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3936}
3937#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3939pub struct UpdateTeamRequest {
3940 #[prost(string, tag="1")]
3942 pub team_id: ::prost::alloc::string::String,
3943 #[prost(string, tag="2")]
3947 pub name: ::prost::alloc::string::String,
3948 #[prost(string, tag="3")]
3951 pub description: ::prost::alloc::string::String,
3952}
3953#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3955pub struct UpdateTeamResponse {
3956 #[prost(message, optional, tag="1")]
3958 pub team: ::core::option::Option<Team>,
3959}
3960#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3962pub struct DeleteTeamRequest {
3963 #[prost(string, tag="1")]
3966 pub team_id: ::prost::alloc::string::String,
3967}
3968#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3970pub struct DeleteTeamResponse {
3971}
3972#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3974pub struct AddTeamMembersRequest {
3975 #[prost(string, tag="1")]
3977 pub team_id: ::prost::alloc::string::String,
3978 #[prost(string, repeated, tag="2")]
3982 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3983}
3984#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3986pub struct AddTeamMembersResponse {
3987 #[prost(message, optional, tag="1")]
3989 pub team: ::core::option::Option<Team>,
3990}
3991#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3993pub struct RemoveTeamMembersRequest {
3994 #[prost(string, tag="1")]
3996 pub team_id: ::prost::alloc::string::String,
3997 #[prost(string, repeated, tag="2")]
4000 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4001}
4002#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4004pub struct RemoveTeamMembersResponse {
4005 #[prost(message, optional, tag="1")]
4007 pub team: ::core::option::Option<Team>,
4008}
4009#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4011pub struct ListTeamMembersRequest {
4012 #[prost(string, tag="1")]
4014 pub team_id: ::prost::alloc::string::String,
4015 #[prost(message, optional, tag="2")]
4017 pub pagination: ::core::option::Option<Pagination>,
4018}
4019#[derive(Clone, PartialEq, ::prost::Message)]
4021pub struct ListTeamMembersResponse {
4022 #[prost(message, repeated, tag="1")]
4024 pub users: ::prost::alloc::vec::Vec<User>,
4025 #[prost(message, optional, tag="2")]
4027 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4028}
4029#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4033pub struct TemplateVariable {
4034 #[prost(string, tag="1")]
4037 pub name: ::prost::alloc::string::String,
4038 #[prost(string, tag="2")]
4041 pub description: ::prost::alloc::string::String,
4042 #[prost(bool, tag="3")]
4044 pub required: bool,
4045 #[prost(enumeration="TemplateVariableSource", tag="4")]
4047 pub source: i32,
4048 #[prost(string, tag="5")]
4051 pub default_value: ::prost::alloc::string::String,
4052 #[prost(bool, tag="6")]
4055 pub pii: bool,
4056}
4057#[derive(Clone, PartialEq, ::prost::Message)]
4060pub struct Template {
4061 #[prost(string, tag="1")]
4063 pub id: ::prost::alloc::string::String,
4064 #[prost(string, tag="2")]
4067 pub name: ::prost::alloc::string::String,
4068 #[prost(string, tag="3")]
4071 pub body: ::prost::alloc::string::String,
4072 #[prost(message, repeated, tag="4")]
4074 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4075 #[prost(int32, tag="5")]
4077 pub version: i32,
4078 #[prost(message, optional, tag="6")]
4080 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4081 #[prost(message, optional, tag="7")]
4083 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4084 #[prost(string, tag="8")]
4088 pub title: ::prost::alloc::string::String,
4089 #[prost(enumeration="TemplateType", tag="9")]
4092 pub r#type: i32,
4093 #[prost(string, tag="10")]
4097 pub source_locale: ::prost::alloc::string::String,
4098}
4099#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4102pub struct TemplateTranslation {
4103 #[prost(string, tag="1")]
4105 pub id: ::prost::alloc::string::String,
4106 #[prost(string, tag="2")]
4108 pub template_id: ::prost::alloc::string::String,
4109 #[prost(int32, tag="3")]
4111 pub version: i32,
4112 #[prost(string, tag="4")]
4114 pub locale: ::prost::alloc::string::String,
4115 #[prost(string, tag="5")]
4118 pub title: ::prost::alloc::string::String,
4119 #[prost(string, tag="6")]
4122 pub body: ::prost::alloc::string::String,
4123 #[prost(enumeration="TranslationStatus", tag="7")]
4125 pub status: i32,
4126 #[prost(string, tag="8")]
4128 pub translated_by: ::prost::alloc::string::String,
4129 #[prost(string, tag="9")]
4131 pub reviewed_by: ::prost::alloc::string::String,
4132 #[prost(message, optional, tag="10")]
4134 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4135 #[prost(message, optional, tag="11")]
4137 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4138}
4139#[derive(Clone, PartialEq, ::prost::Message)]
4141pub struct CreateTemplateRequest {
4142 #[prost(string, tag="1")]
4145 pub name: ::prost::alloc::string::String,
4146 #[prost(string, tag="2")]
4149 pub body: ::prost::alloc::string::String,
4150 #[prost(message, repeated, tag="3")]
4152 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4153 #[prost(string, tag="4")]
4156 pub title: ::prost::alloc::string::String,
4157 #[prost(enumeration="TemplateType", tag="5")]
4159 pub r#type: i32,
4160 #[prost(string, tag="6")]
4163 pub source_locale: ::prost::alloc::string::String,
4164}
4165#[derive(Clone, PartialEq, ::prost::Message)]
4167pub struct CreateTemplateResponse {
4168 #[prost(message, optional, tag="1")]
4170 pub template: ::core::option::Option<Template>,
4171}
4172#[derive(Clone, PartialEq, ::prost::Message)]
4174pub struct UpdateTemplateRequest {
4175 #[prost(string, tag="1")]
4177 pub template_id: ::prost::alloc::string::String,
4178 #[prost(string, tag="2")]
4181 pub body: ::prost::alloc::string::String,
4182 #[prost(message, repeated, tag="3")]
4184 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4185}
4186#[derive(Clone, PartialEq, ::prost::Message)]
4188pub struct UpdateTemplateResponse {
4189 #[prost(message, optional, tag="1")]
4191 pub template: ::core::option::Option<Template>,
4192}
4193#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4195pub struct GetTemplateRequest {
4196 #[prost(string, tag="1")]
4198 pub template_id: ::prost::alloc::string::String,
4199 #[prost(int32, tag="2")]
4201 pub version: i32,
4202}
4203#[derive(Clone, PartialEq, ::prost::Message)]
4205pub struct GetTemplateResponse {
4206 #[prost(message, optional, tag="1")]
4208 pub template: ::core::option::Option<Template>,
4209}
4210#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4212pub struct ListTemplatesRequest {
4213 #[prost(message, optional, tag="1")]
4215 pub pagination: ::core::option::Option<Pagination>,
4216 #[prost(enumeration="TemplateType", tag="2")]
4218 pub r#type: i32,
4219}
4220#[derive(Clone, PartialEq, ::prost::Message)]
4222pub struct ListTemplatesResponse {
4223 #[prost(message, repeated, tag="1")]
4225 pub templates: ::prost::alloc::vec::Vec<Template>,
4226 #[prost(message, optional, tag="2")]
4228 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4229}
4230#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4232pub struct CreateTemplateTranslationRequest {
4233 #[prost(string, tag="1")]
4235 pub template_id: ::prost::alloc::string::String,
4236 #[prost(int32, tag="2")]
4238 pub version: i32,
4239 #[prost(string, tag="3")]
4241 pub locale: ::prost::alloc::string::String,
4242 #[prost(string, tag="4")]
4244 pub title: ::prost::alloc::string::String,
4245 #[prost(string, tag="5")]
4247 pub body: ::prost::alloc::string::String,
4248 #[prost(string, tag="6")]
4250 pub translated_by: ::prost::alloc::string::String,
4251 #[prost(enumeration="TranslationStatus", tag="7")]
4253 pub status: i32,
4254}
4255#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4257pub struct CreateTemplateTranslationResponse {
4258 #[prost(message, optional, tag="1")]
4260 pub translation: ::core::option::Option<TemplateTranslation>,
4261}
4262#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4264pub struct UpdateTemplateTranslationRequest {
4265 #[prost(string, tag="1")]
4267 pub translation_id: ::prost::alloc::string::String,
4268 #[prost(string, tag="2")]
4270 pub title: ::prost::alloc::string::String,
4271 #[prost(string, tag="3")]
4273 pub body: ::prost::alloc::string::String,
4274 #[prost(enumeration="TranslationStatus", tag="4")]
4276 pub status: i32,
4277}
4278#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4280pub struct UpdateTemplateTranslationResponse {
4281 #[prost(message, optional, tag="1")]
4283 pub translation: ::core::option::Option<TemplateTranslation>,
4284}
4285#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4287pub struct ListTemplateTranslationsRequest {
4288 #[prost(string, tag="1")]
4290 pub template_id: ::prost::alloc::string::String,
4291 #[prost(int32, tag="2")]
4293 pub version: i32,
4294}
4295#[derive(Clone, PartialEq, ::prost::Message)]
4297pub struct ListTemplateTranslationsResponse {
4298 #[prost(message, repeated, tag="1")]
4300 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4301}
4302#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4304pub struct ApproveTemplateTranslationRequest {
4305 #[prost(string, tag="1")]
4307 pub translation_id: ::prost::alloc::string::String,
4308}
4309#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4311pub struct ApproveTemplateTranslationResponse {
4312 #[prost(message, optional, tag="1")]
4314 pub translation: ::core::option::Option<TemplateTranslation>,
4315}
4316#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4320#[repr(i32)]
4321pub enum TemplateType {
4322 Unspecified = 0,
4324 Markdown = 1,
4326 Rich = 2,
4328 Html = 3,
4330}
4331impl TemplateType {
4332 pub fn as_str_name(&self) -> &'static str {
4337 match self {
4338 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4339 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4340 Self::Rich => "TEMPLATE_TYPE_RICH",
4341 Self::Html => "TEMPLATE_TYPE_HTML",
4342 }
4343 }
4344 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4346 match value {
4347 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4348 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4349 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4350 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4351 _ => None,
4352 }
4353 }
4354}
4355#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4357#[repr(i32)]
4358pub enum TemplateVariableSource {
4359 Unspecified = 0,
4361 Profile = 1,
4363 Custom = 2,
4365}
4366impl TemplateVariableSource {
4367 pub fn as_str_name(&self) -> &'static str {
4372 match self {
4373 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4374 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4375 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4376 }
4377 }
4378 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4380 match value {
4381 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4382 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4383 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4384 _ => None,
4385 }
4386 }
4387}
4388#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4390#[repr(i32)]
4391pub enum TranslationStatus {
4392 Unspecified = 0,
4393 Draft = 1,
4395 AiTranslated = 2,
4397 InReview = 3,
4399 Approved = 4,
4401}
4402impl TranslationStatus {
4403 pub fn as_str_name(&self) -> &'static str {
4408 match self {
4409 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4410 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4411 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4412 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4413 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4414 }
4415 }
4416 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4418 match value {
4419 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4420 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4421 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4422 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4423 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4424 _ => None,
4425 }
4426 }
4427}
4428include!("pidgr.v1.tonic.rs");
4429