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 PlatformSupport = 23,
530 PlatformAccessCodes = 24,
533 PlatformProvision = 25,
536}
537impl Permission {
538 pub fn as_str_name(&self) -> &'static str {
543 match self {
544 Self::Unspecified => "PERMISSION_UNSPECIFIED",
545 Self::OrgRead => "PERMISSION_ORG_READ",
546 Self::OrgWrite => "PERMISSION_ORG_WRITE",
547 Self::MembersRead => "PERMISSION_MEMBERS_READ",
548 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
549 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
550 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
551 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
552 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
553 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
554 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
555 Self::InboxRead => "PERMISSION_INBOX_READ",
556 Self::InboxAct => "PERMISSION_INBOX_ACT",
557 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
558 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
559 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
560 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
561 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
562 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
563 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
564 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
565 Self::AuditRead => "PERMISSION_AUDIT_READ",
566 Self::TemplatesReview => "PERMISSION_TEMPLATES_REVIEW",
567 Self::PlatformSupport => "PERMISSION_PLATFORM_SUPPORT",
568 Self::PlatformAccessCodes => "PERMISSION_PLATFORM_ACCESS_CODES",
569 Self::PlatformProvision => "PERMISSION_PLATFORM_PROVISION",
570 }
571 }
572 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
574 match value {
575 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
576 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
577 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
578 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
579 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
580 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
581 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
582 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
583 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
584 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
585 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
586 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
587 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
588 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
589 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
590 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
591 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
592 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
593 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
594 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
595 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
596 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
597 "PERMISSION_TEMPLATES_REVIEW" => Some(Self::TemplatesReview),
598 "PERMISSION_PLATFORM_SUPPORT" => Some(Self::PlatformSupport),
599 "PERMISSION_PLATFORM_ACCESS_CODES" => Some(Self::PlatformAccessCodes),
600 "PERMISSION_PLATFORM_PROVISION" => Some(Self::PlatformProvision),
601 _ => None,
602 }
603 }
604}
605#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
607#[repr(i32)]
608pub enum ActionType {
609 Unspecified = 0,
611 Ack = 1,
613}
614impl ActionType {
615 pub fn as_str_name(&self) -> &'static str {
620 match self {
621 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
622 Self::Ack => "ACTION_TYPE_ACK",
623 }
624 }
625 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
627 match value {
628 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
629 "ACTION_TYPE_ACK" => Some(Self::Ack),
630 _ => None,
631 }
632 }
633}
634#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
636#[repr(i32)]
637pub enum StepType {
638 Unspecified = 0,
640 SendNotification = 1,
642 DeadlineCheck = 2,
644 SendReminder = 3,
646 CallWebhook = 4,
648 MarkMissed = 5,
650 Escalate = 6,
652}
653impl StepType {
654 pub fn as_str_name(&self) -> &'static str {
659 match self {
660 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
661 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
662 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
663 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
664 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
665 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
666 Self::Escalate => "STEP_TYPE_ESCALATE",
667 }
668 }
669 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
671 match value {
672 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
673 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
674 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
675 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
676 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
677 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
678 "STEP_TYPE_ESCALATE" => Some(Self::Escalate),
679 _ => None,
680 }
681 }
682}
683#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
685#[repr(i32)]
686pub enum EscalationCondition {
687 Unspecified = 0,
688 IfNotAcked = 1,
690 IfNotClosed = 2,
692}
693impl EscalationCondition {
694 pub fn as_str_name(&self) -> &'static str {
699 match self {
700 Self::Unspecified => "ESCALATION_CONDITION_UNSPECIFIED",
701 Self::IfNotAcked => "ESCALATION_CONDITION_IF_NOT_ACKED",
702 Self::IfNotClosed => "ESCALATION_CONDITION_IF_NOT_CLOSED",
703 }
704 }
705 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
707 match value {
708 "ESCALATION_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
709 "ESCALATION_CONDITION_IF_NOT_ACKED" => Some(Self::IfNotAcked),
710 "ESCALATION_CONDITION_IF_NOT_CLOSED" => Some(Self::IfNotClosed),
711 _ => None,
712 }
713 }
714}
715#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
717#[repr(i32)]
718pub enum EscalationTargetType {
719 Unspecified = 0,
720 User = 1,
722 Group = 2,
724 Manager = 3,
726 Role = 4,
728}
729impl EscalationTargetType {
730 pub fn as_str_name(&self) -> &'static str {
735 match self {
736 Self::Unspecified => "ESCALATION_TARGET_TYPE_UNSPECIFIED",
737 Self::User => "ESCALATION_TARGET_TYPE_USER",
738 Self::Group => "ESCALATION_TARGET_TYPE_GROUP",
739 Self::Manager => "ESCALATION_TARGET_TYPE_MANAGER",
740 Self::Role => "ESCALATION_TARGET_TYPE_ROLE",
741 }
742 }
743 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
745 match value {
746 "ESCALATION_TARGET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
747 "ESCALATION_TARGET_TYPE_USER" => Some(Self::User),
748 "ESCALATION_TARGET_TYPE_GROUP" => Some(Self::Group),
749 "ESCALATION_TARGET_TYPE_MANAGER" => Some(Self::Manager),
750 "ESCALATION_TARGET_TYPE_ROLE" => Some(Self::Role),
751 _ => None,
752 }
753 }
754}
755#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
759pub struct ApiKey {
760 #[prost(string, tag="1")]
762 pub id: ::prost::alloc::string::String,
763 #[prost(string, tag="2")]
765 pub name: ::prost::alloc::string::String,
766 #[prost(string, tag="3")]
769 pub key_prefix: ::prost::alloc::string::String,
770 #[prost(enumeration="Permission", repeated, tag="4")]
772 pub permissions: ::prost::alloc::vec::Vec<i32>,
773 #[prost(message, optional, tag="5")]
775 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
776 #[prost(message, optional, tag="6")]
778 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
779 #[prost(message, optional, tag="7")]
781 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
782 #[prost(enumeration="KeyType", tag="8")]
785 pub key_type: i32,
786}
787#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
789pub struct CreateApiKeyRequest {
790 #[prost(string, tag="1")]
792 pub name: ::prost::alloc::string::String,
793 #[prost(enumeration="Permission", repeated, tag="2")]
796 pub permissions: ::prost::alloc::vec::Vec<i32>,
797 #[prost(message, optional, tag="3")]
799 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
800 #[prost(enumeration="KeyType", tag="4")]
803 pub key_type: i32,
804}
805#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
808pub struct CreateApiKeyResponse {
809 #[prost(message, optional, tag="1")]
811 pub api_key: ::core::option::Option<ApiKey>,
812 #[prost(string, tag="2")]
815 pub key: ::prost::alloc::string::String,
816}
817#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
819pub struct ListApiKeysRequest {
820 #[prost(enumeration="KeyType", tag="1")]
822 pub key_type: i32,
823}
824#[derive(Clone, PartialEq, ::prost::Message)]
826pub struct ListApiKeysResponse {
827 #[prost(message, repeated, tag="1")]
829 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
830}
831#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
833pub struct RevokeApiKeyRequest {
834 #[prost(string, tag="1")]
836 pub api_key_id: ::prost::alloc::string::String,
837}
838#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
840pub struct RevokeApiKeyResponse {
841}
842#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
846#[repr(i32)]
847pub enum KeyType {
848 Unspecified = 0,
849 ApiKey = 1,
850 ScimToken = 2,
851}
852impl KeyType {
853 pub fn as_str_name(&self) -> &'static str {
858 match self {
859 Self::Unspecified => "KEY_TYPE_UNSPECIFIED",
860 Self::ApiKey => "KEY_TYPE_API_KEY",
861 Self::ScimToken => "KEY_TYPE_SCIM_TOKEN",
862 }
863 }
864 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
866 match value {
867 "KEY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
868 "KEY_TYPE_API_KEY" => Some(Self::ApiKey),
869 "KEY_TYPE_SCIM_TOKEN" => Some(Self::ScimToken),
870 _ => None,
871 }
872 }
873}
874#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
879pub struct ExportUserDataRequest {
880 #[prost(string, tag="1")]
883 pub user_id: ::prost::alloc::string::String,
884}
885#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
887pub struct ExportUserDataResponse {
888 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
890 pub status: i32,
891 #[prost(string, tag="2")]
894 pub result_url: ::prost::alloc::string::String,
895 #[prost(string, tag="3")]
898 pub export_id: ::prost::alloc::string::String,
899}
900#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
903pub struct DeleteUserDataRequest {
904 #[prost(string, tag="1")]
907 pub user_id: ::prost::alloc::string::String,
908 #[prost(bool, tag="2")]
911 pub anonymize: bool,
912}
913#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
915pub struct DeleteUserDataResponse {
916 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
918 pub status: i32,
919 #[prost(message, optional, tag="2")]
922 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
923 #[prost(string, tag="3")]
925 pub request_id: ::prost::alloc::string::String,
926}
927#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
930pub struct ListPrivacyRequestsRequest {
931 #[prost(int32, tag="1")]
934 pub page_size: i32,
935 #[prost(string, tag="2")]
937 pub page_token: ::prost::alloc::string::String,
938 #[prost(string, tag="3")]
940 pub request_type: ::prost::alloc::string::String,
941 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
943 pub status: i32,
944}
945#[derive(Clone, PartialEq, ::prost::Message)]
947pub struct ListPrivacyRequestsResponse {
948 #[prost(message, repeated, tag="1")]
950 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
951 #[prost(string, tag="2")]
953 pub next_page_token: ::prost::alloc::string::String,
954}
955#[derive(Clone, PartialEq, ::prost::Message)]
957pub struct PrivacyRequest {
958 #[prost(string, tag="1")]
960 pub id: ::prost::alloc::string::String,
961 #[prost(string, tag="2")]
963 pub user_id: ::prost::alloc::string::String,
964 #[prost(string, tag="3")]
966 pub user_email: ::prost::alloc::string::String,
967 #[prost(string, tag="4")]
969 pub request_type: ::prost::alloc::string::String,
970 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
972 pub status: i32,
973 #[prost(bool, tag="6")]
975 pub anonymize: bool,
976 #[prost(string, tag="7")]
978 pub requested_by_email: ::prost::alloc::string::String,
979 #[prost(message, optional, tag="8")]
981 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
982 #[prost(message, optional, tag="9")]
984 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
985 #[prost(map="string, string", tag="10")]
987 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
988}
989#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
992pub struct CancelDeletionRequest {
993 #[prost(string, tag="1")]
995 pub request_id: ::prost::alloc::string::String,
996 #[prost(string, tag="2")]
998 pub confirmation_email: ::prost::alloc::string::String,
999}
1000#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1002pub struct CancelDeletionResponse {
1003 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1005 pub status: i32,
1006}
1007#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1010pub struct ImmediateDeleteRequest {
1011 #[prost(string, tag="1")]
1013 pub request_id: ::prost::alloc::string::String,
1014 #[prost(string, tag="2")]
1016 pub confirmation_email: ::prost::alloc::string::String,
1017}
1018#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1020pub struct ImmediateDeleteResponse {
1021 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
1023 pub status: i32,
1024}
1025#[derive(Clone, PartialEq, ::prost::Message)]
1028pub struct RectifyUserDataRequest {
1029 #[prost(string, tag="1")]
1032 pub user_id: ::prost::alloc::string::String,
1033 #[prost(map="string, string", tag="2")]
1037 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1038}
1039#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1041pub struct RectifyUserDataResponse {
1042 #[prost(string, repeated, tag="1")]
1044 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1045}
1046#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1049pub struct RestrictProcessingRequest {
1050 #[prost(string, tag="1")]
1053 pub user_id: ::prost::alloc::string::String,
1054 #[prost(bool, tag="2")]
1056 pub restricted: bool,
1057}
1058#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1060pub struct RestrictProcessingResponse {
1061 #[prost(bool, tag="1")]
1063 pub restricted: bool,
1064 #[prost(message, optional, tag="2")]
1066 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
1067}
1068#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1072pub struct GetDataExistenceConfirmationRequest {
1073 #[prost(string, tag="1")]
1076 pub user_id: ::prost::alloc::string::String,
1077}
1078#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1080pub struct GetDataExistenceConfirmationResponse {
1081 #[prost(bool, tag="1")]
1083 pub exists: bool,
1084 #[prost(string, repeated, tag="2")]
1086 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1087}
1088#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1091pub struct ListMyPrivacyRequestsRequest {
1092 #[prost(int32, tag="1")]
1095 pub page_size: i32,
1096 #[prost(string, tag="2")]
1098 pub page_token: ::prost::alloc::string::String,
1099 #[prost(string, tag="3")]
1101 pub request_type: ::prost::alloc::string::String,
1102 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
1104 pub status: i32,
1105}
1106#[derive(Clone, PartialEq, ::prost::Message)]
1108pub struct ListMyPrivacyRequestsResponse {
1109 #[prost(message, repeated, tag="1")]
1111 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
1112 #[prost(string, tag="2")]
1114 pub next_page_token: ::prost::alloc::string::String,
1115}
1116#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1120#[repr(i32)]
1121pub enum PrivacyRequestStatus {
1122 Unspecified = 0,
1124 Pending = 1,
1126 Processing = 2,
1128 Completed = 3,
1130 Failed = 4,
1132}
1133impl PrivacyRequestStatus {
1134 pub fn as_str_name(&self) -> &'static str {
1139 match self {
1140 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
1141 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
1142 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
1143 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
1144 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
1145 }
1146 }
1147 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1149 match value {
1150 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1151 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
1152 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
1153 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
1154 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
1155 _ => None,
1156 }
1157 }
1158}
1159#[derive(Clone, PartialEq, ::prost::Message)]
1164pub struct AuditEvent {
1165 #[prost(string, tag="1")]
1168 pub id: ::prost::alloc::string::String,
1169 #[prost(string, tag="2")]
1172 pub org_id: ::prost::alloc::string::String,
1173 #[prost(string, tag="3")]
1176 pub actor_id: ::prost::alloc::string::String,
1177 #[prost(enumeration="AuditEventType", tag="4")]
1179 pub event_type: i32,
1180 #[prost(string, tag="5")]
1183 pub entity_type: ::prost::alloc::string::String,
1184 #[prost(string, tag="6")]
1187 pub entity_id: ::prost::alloc::string::String,
1188 #[prost(map="string, string", tag="7")]
1191 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1192 #[prost(message, optional, tag="10")]
1194 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1195}
1196#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1199pub struct ListAuditEventsRequest {
1200 #[prost(string, tag="1")]
1202 pub page_token: ::prost::alloc::string::String,
1203 #[prost(int32, tag="2")]
1206 pub page_size: i32,
1207 #[prost(enumeration="AuditEventType", tag="3")]
1209 pub event_type: i32,
1210 #[prost(string, tag="4")]
1213 pub actor_id: ::prost::alloc::string::String,
1214 #[prost(message, optional, tag="5")]
1216 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1217 #[prost(message, optional, tag="6")]
1219 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1220}
1221#[derive(Clone, PartialEq, ::prost::Message)]
1223pub struct ListAuditEventsResponse {
1224 #[prost(message, repeated, tag="1")]
1226 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1227 #[prost(string, tag="2")]
1229 pub next_page_token: ::prost::alloc::string::String,
1230}
1231#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1234pub struct ExportAuditTrailRequest {
1235 #[prost(enumeration="AuditExportFormat", tag="1")]
1237 pub format: i32,
1238 #[prost(message, optional, tag="2")]
1240 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1241 #[prost(message, optional, tag="3")]
1243 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1244}
1245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1247pub struct ExportAuditTrailResponse {
1248 #[prost(string, tag="1")]
1251 pub export_url: ::prost::alloc::string::String,
1252 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1254 pub status: i32,
1255}
1256#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1258pub struct AuditExport {
1259 #[prost(string, tag="1")]
1261 pub id: ::prost::alloc::string::String,
1262 #[prost(string, tag="2")]
1264 pub format: ::prost::alloc::string::String,
1265 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1267 pub status: i32,
1268 #[prost(string, tag="4")]
1270 pub result_url: ::prost::alloc::string::String,
1271 #[prost(string, tag="5")]
1273 pub error_message: ::prost::alloc::string::String,
1274 #[prost(string, tag="6")]
1276 pub requested_by_email: ::prost::alloc::string::String,
1277 #[prost(message, optional, tag="7")]
1279 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1280 #[prost(message, optional, tag="8")]
1282 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1283}
1284#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1287pub struct ListAuditExportsRequest {
1288}
1289#[derive(Clone, PartialEq, ::prost::Message)]
1291pub struct ListAuditExportsResponse {
1292 #[prost(message, repeated, tag="1")]
1294 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1295}
1296#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1300#[repr(i32)]
1301pub enum AuditEventType {
1302 Unspecified = 0,
1304 CampaignCreated = 1,
1307 MessageSent = 2,
1309 MessageOpened = 3,
1311 AckRegistered = 4,
1313 EscalationExecuted = 5,
1315 CampaignStarted = 12,
1317 CampaignCancelled = 13,
1319 CampaignUpdated = 14,
1321 UserInvited = 6,
1324 UserDeactivated = 7,
1326 UserReactivated = 15,
1328 RoleChanged = 10,
1330 InviteRevoked = 16,
1332 ProfileUpdated = 17,
1334 SettingsUpdated = 18,
1336 PasskeyEnrolled = 19,
1338 DataExportRequested = 8,
1341 DataDeletionRequested = 9,
1343 DataRectified = 20,
1345 ProcessingRestricted = 21,
1347 DeletionCancelled = 22,
1349 DeletionImmediate = 23,
1351 SsoConfigured = 11,
1354 SsoProviderCreated = 24,
1356 SsoProviderDeleted = 25,
1358 OrgUpdated = 26,
1360 RoleCreated = 27,
1363 RoleUpdated = 28,
1365 RoleDeleted = 29,
1367 TemplateCreated = 30,
1370 TemplateUpdated = 31,
1372 ApiKeyCreated = 32,
1375 ApiKeyRevoked = 33,
1377 InviteLinkCreated = 34,
1380 InviteLinkRevoked = 35,
1382 GroupCreated = 36,
1385 GroupUpdated = 37,
1387 GroupDeleted = 38,
1389 GroupMembersAdded = 39,
1391 GroupMembersRemoved = 40,
1393 TeamCreated = 41,
1396 TeamUpdated = 42,
1398 TeamDeleted = 43,
1400 TeamMembersAdded = 44,
1402 TeamMembersRemoved = 45,
1404 ScimUserProvisioned = 46,
1407 ScimUserDeprovisioned = 47,
1409 ScimUserUpdated = 48,
1411 TranslationCreated = 49,
1414 TranslationApproved = 50,
1416 SandboxCreated = 51,
1419 SandboxExpired = 52,
1421 AiPredictionLogged = 53,
1424}
1425impl AuditEventType {
1426 pub fn as_str_name(&self) -> &'static str {
1431 match self {
1432 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1433 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1434 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1435 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1436 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1437 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1438 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1439 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1440 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1441 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1442 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1443 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1444 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1445 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1446 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1447 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1448 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1449 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1450 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1451 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1452 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1453 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1454 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1455 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1456 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1457 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1458 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1459 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1460 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1461 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1462 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1463 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1464 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1465 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1466 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1467 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1468 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1469 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1470 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1471 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1472 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1473 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1474 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1475 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1476 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1477 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1478 Self::ScimUserProvisioned => "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED",
1479 Self::ScimUserDeprovisioned => "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED",
1480 Self::ScimUserUpdated => "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED",
1481 Self::TranslationCreated => "AUDIT_EVENT_TYPE_TRANSLATION_CREATED",
1482 Self::TranslationApproved => "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED",
1483 Self::SandboxCreated => "AUDIT_EVENT_TYPE_SANDBOX_CREATED",
1484 Self::SandboxExpired => "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED",
1485 Self::AiPredictionLogged => "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED",
1486 }
1487 }
1488 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1490 match value {
1491 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1492 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1493 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1494 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1495 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1496 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1497 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1498 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1499 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1500 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1501 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1502 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1503 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1504 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1505 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1506 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1507 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1508 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1509 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1510 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1511 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1512 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1513 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1514 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1515 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1516 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1517 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1518 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1519 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1520 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1521 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1522 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1523 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1524 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1525 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1526 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1527 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1528 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1529 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1530 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1531 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1532 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1533 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1534 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1535 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1536 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1537 "AUDIT_EVENT_TYPE_SCIM_USER_PROVISIONED" => Some(Self::ScimUserProvisioned),
1538 "AUDIT_EVENT_TYPE_SCIM_USER_DEPROVISIONED" => Some(Self::ScimUserDeprovisioned),
1539 "AUDIT_EVENT_TYPE_SCIM_USER_UPDATED" => Some(Self::ScimUserUpdated),
1540 "AUDIT_EVENT_TYPE_TRANSLATION_CREATED" => Some(Self::TranslationCreated),
1541 "AUDIT_EVENT_TYPE_TRANSLATION_APPROVED" => Some(Self::TranslationApproved),
1542 "AUDIT_EVENT_TYPE_SANDBOX_CREATED" => Some(Self::SandboxCreated),
1543 "AUDIT_EVENT_TYPE_SANDBOX_EXPIRED" => Some(Self::SandboxExpired),
1544 "AUDIT_EVENT_TYPE_AI_PREDICTION_LOGGED" => Some(Self::AiPredictionLogged),
1545 _ => None,
1546 }
1547 }
1548}
1549#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1551#[repr(i32)]
1552pub enum AuditExportFormat {
1553 Unspecified = 0,
1555 Csv = 1,
1557 Json = 2,
1559 Parquet = 3,
1561}
1562impl AuditExportFormat {
1563 pub fn as_str_name(&self) -> &'static str {
1568 match self {
1569 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1570 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1571 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1572 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1573 }
1574 }
1575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1577 match value {
1578 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1579 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1580 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1581 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1582 _ => None,
1583 }
1584 }
1585}
1586#[derive(Clone, PartialEq, ::prost::Message)]
1591pub struct Campaign {
1592 #[prost(string, tag="1")]
1595 pub id: ::prost::alloc::string::String,
1596 #[prost(string, tag="2")]
1599 pub name: ::prost::alloc::string::String,
1600 #[prost(string, tag="3")]
1603 pub template_id: ::prost::alloc::string::String,
1604 #[prost(int32, tag="4")]
1606 pub template_version: i32,
1607 #[prost(string, tag="5")]
1609 pub audience_snapshot_ref: ::prost::alloc::string::String,
1610 #[prost(enumeration="CampaignStatus", tag="6")]
1612 pub status: i32,
1613 #[prost(message, optional, tag="7")]
1615 pub workflow: ::core::option::Option<WorkflowDefinition>,
1616 #[prost(int32, tag="8")]
1618 pub total_recipients: i32,
1619 #[prost(int32, tag="9")]
1621 pub action_completed_count: i32,
1622 #[prost(int32, tag="10")]
1624 pub missed_count: i32,
1625 #[prost(message, optional, tag="11")]
1627 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1628 #[prost(message, optional, tag="12")]
1630 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1631 #[prost(message, optional, tag="13")]
1633 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1634 #[prost(string, tag="14")]
1637 pub sender_name: ::prost::alloc::string::String,
1638 #[prost(string, tag="15")]
1641 pub title: ::prost::alloc::string::String,
1642 #[prost(bool, tag="16")]
1644 pub critical: bool,
1645 #[prost(string, tag="17")]
1650 pub default_locale: ::prost::alloc::string::String,
1651 #[prost(bool, tag="18")]
1655 pub wait_for_enrollment: bool,
1656}
1657#[derive(Clone, PartialEq, ::prost::Message)]
1659pub struct AudienceMember {
1660 #[prost(string, tag="1")]
1662 pub user_id: ::prost::alloc::string::String,
1663 #[prost(map="string, string", tag="2")]
1665 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1666}
1667#[derive(Clone, PartialEq, ::prost::Message)]
1669pub struct CreateCampaignRequest {
1670 #[prost(string, tag="1")]
1673 pub name: ::prost::alloc::string::String,
1674 #[prost(string, tag="2")]
1677 pub template_id: ::prost::alloc::string::String,
1678 #[prost(int32, tag="3")]
1680 pub template_version: i32,
1681 #[prost(string, repeated, tag="4")]
1684 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1685 #[prost(message, optional, tag="5")]
1687 pub workflow: ::core::option::Option<WorkflowDefinition>,
1688 #[prost(string, tag="6")]
1691 pub sender_name: ::prost::alloc::string::String,
1692 #[prost(string, tag="7")]
1695 pub title: ::prost::alloc::string::String,
1696 #[prost(message, repeated, tag="8")]
1700 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
1701 #[prost(bool, tag="9")]
1704 pub include_restricted: bool,
1705 #[prost(bool, tag="10")]
1707 pub critical: bool,
1708 #[prost(string, tag="11")]
1710 pub default_locale: ::prost::alloc::string::String,
1711 #[prost(bool, tag="12")]
1715 pub wait_for_enrollment: bool,
1716}
1717#[derive(Clone, PartialEq, ::prost::Message)]
1719pub struct CreateCampaignResponse {
1720 #[prost(message, optional, tag="1")]
1722 pub campaign: ::core::option::Option<Campaign>,
1723}
1724#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1726pub struct StartCampaignRequest {
1727 #[prost(string, tag="1")]
1730 pub campaign_id: ::prost::alloc::string::String,
1731}
1732#[derive(Clone, PartialEq, ::prost::Message)]
1734pub struct StartCampaignResponse {
1735 #[prost(message, optional, tag="1")]
1737 pub campaign: ::core::option::Option<Campaign>,
1738}
1739#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1741pub struct GetCampaignRequest {
1742 #[prost(string, tag="1")]
1745 pub campaign_id: ::prost::alloc::string::String,
1746}
1747#[derive(Clone, PartialEq, ::prost::Message)]
1749pub struct GetCampaignResponse {
1750 #[prost(message, optional, tag="1")]
1752 pub campaign: ::core::option::Option<Campaign>,
1753}
1754#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1756pub struct ListCampaignsRequest {
1757 #[prost(message, optional, tag="1")]
1759 pub pagination: ::core::option::Option<Pagination>,
1760}
1761#[derive(Clone, PartialEq, ::prost::Message)]
1763pub struct ListCampaignsResponse {
1764 #[prost(message, repeated, tag="1")]
1766 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
1767 #[prost(message, optional, tag="2")]
1769 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1770}
1771#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1773pub struct CancelCampaignRequest {
1774 #[prost(string, tag="1")]
1777 pub campaign_id: ::prost::alloc::string::String,
1778}
1779#[derive(Clone, PartialEq, ::prost::Message)]
1781pub struct CancelCampaignResponse {
1782 #[prost(message, optional, tag="1")]
1784 pub campaign: ::core::option::Option<Campaign>,
1785}
1786#[derive(Clone, PartialEq, ::prost::Message)]
1789pub struct UpdateCampaignRequest {
1790 #[prost(string, tag="1")]
1793 pub campaign_id: ::prost::alloc::string::String,
1794 #[prost(string, tag="2")]
1797 pub name: ::prost::alloc::string::String,
1798 #[prost(string, tag="3")]
1801 pub sender_name: ::prost::alloc::string::String,
1802 #[prost(string, tag="4")]
1805 pub title: ::prost::alloc::string::String,
1806 #[prost(string, tag="5")]
1809 pub template_id: ::prost::alloc::string::String,
1810 #[prost(int32, tag="6")]
1812 pub template_version: i32,
1813 #[prost(message, optional, tag="7")]
1815 pub workflow: ::core::option::Option<WorkflowDefinition>,
1816}
1817#[derive(Clone, PartialEq, ::prost::Message)]
1819pub struct UpdateCampaignResponse {
1820 #[prost(message, optional, tag="1")]
1822 pub campaign: ::core::option::Option<Campaign>,
1823}
1824#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1826pub struct Delivery {
1827 #[prost(string, tag="1")]
1830 pub id: ::prost::alloc::string::String,
1831 #[prost(string, tag="2")]
1834 pub user_id: ::prost::alloc::string::String,
1835 #[prost(string, tag="3")]
1838 pub campaign_id: ::prost::alloc::string::String,
1839 #[prost(enumeration="DeliveryStatus", tag="4")]
1841 pub status: i32,
1842 #[prost(message, optional, tag="5")]
1844 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
1845 #[prost(message, optional, tag="6")]
1847 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
1848 #[prost(message, optional, tag="7")]
1850 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
1851 #[prost(string, tag="8")]
1853 pub recipient_email: ::prost::alloc::string::String,
1854}
1855#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1857pub struct ListDeliveriesRequest {
1858 #[prost(string, tag="1")]
1861 pub campaign_id: ::prost::alloc::string::String,
1862 #[prost(enumeration="DeliveryStatus", tag="2")]
1864 pub status_filter: i32,
1865 #[prost(message, optional, tag="3")]
1867 pub pagination: ::core::option::Option<Pagination>,
1868}
1869#[derive(Clone, PartialEq, ::prost::Message)]
1871pub struct ListDeliveriesResponse {
1872 #[prost(message, repeated, tag="1")]
1874 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
1875 #[prost(message, optional, tag="2")]
1877 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1878}
1879#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1884pub struct Device {
1885 #[prost(string, tag="1")]
1888 pub device_id: ::prost::alloc::string::String,
1889 #[prost(string, tag="2")]
1892 pub user_id: ::prost::alloc::string::String,
1893 #[prost(enumeration="Platform", tag="3")]
1895 pub platform: i32,
1896 #[prost(string, tag="4")]
1898 pub push_token: ::prost::alloc::string::String,
1899 #[prost(bool, tag="5")]
1901 pub active: bool,
1902 #[prost(message, optional, tag="6")]
1904 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1905 #[prost(message, optional, tag="7")]
1907 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1908}
1909#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1911pub struct DeviceSummary {
1912 #[prost(string, tag="1")]
1914 pub device_id: ::prost::alloc::string::String,
1915 #[prost(string, tag="2")]
1917 pub user_id: ::prost::alloc::string::String,
1918 #[prost(enumeration="Platform", tag="3")]
1920 pub platform: i32,
1921 #[prost(bool, tag="4")]
1923 pub active: bool,
1924 #[prost(message, optional, tag="5")]
1926 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1927 #[prost(message, optional, tag="6")]
1929 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1930}
1931#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1933pub struct RegisterRequest {
1934 #[prost(string, tag="1")]
1937 pub device_id: ::prost::alloc::string::String,
1938 #[prost(enumeration="Platform", tag="2")]
1940 pub platform: i32,
1941 #[prost(string, tag="3")]
1944 pub push_token: ::prost::alloc::string::String,
1945}
1946#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1948pub struct RegisterResponse {
1949 #[prost(message, optional, tag="1")]
1951 pub device: ::core::option::Option<DeviceSummary>,
1952}
1953#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1955pub struct DeactivateRequest {
1956 #[prost(string, tag="1")]
1959 pub device_id: ::prost::alloc::string::String,
1960}
1961#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1963pub struct DeactivateResponse {
1964 #[prost(bool, tag="1")]
1966 pub success: bool,
1967}
1968#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1970pub struct ListDevicesRequest {
1971}
1972#[derive(Clone, PartialEq, ::prost::Message)]
1974pub struct ListDevicesResponse {
1975 #[prost(message, repeated, tag="1")]
1977 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1978}
1979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1981pub struct ListMemberDevicesRequest {
1982 #[prost(string, tag="1")]
1985 pub user_id: ::prost::alloc::string::String,
1986}
1987#[derive(Clone, PartialEq, ::prost::Message)]
1989pub struct ListMemberDevicesResponse {
1990 #[prost(message, repeated, tag="1")]
1992 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1993}
1994#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1999pub struct UserSettings {
2000 #[prost(enumeration="ThemePreference", tag="1")]
2002 pub theme_preference: i32,
2003 #[prost(string, tag="2")]
2007 pub preferred_locale: ::prost::alloc::string::String,
2008}
2009#[derive(Clone, PartialEq, ::prost::Message)]
2012pub struct UserProfile {
2013 #[prost(string, tag="1")]
2016 pub first_name: ::prost::alloc::string::String,
2017 #[prost(string, tag="2")]
2020 pub last_name: ::prost::alloc::string::String,
2021 #[prost(string, tag="3")]
2024 pub department: ::prost::alloc::string::String,
2025 #[prost(string, tag="4")]
2028 pub title: ::prost::alloc::string::String,
2029 #[prost(string, tag="5")]
2032 pub phone: ::prost::alloc::string::String,
2033 #[prost(string, tag="6")]
2036 pub location: ::prost::alloc::string::String,
2037 #[prost(string, tag="7")]
2040 pub employee_id: ::prost::alloc::string::String,
2041 #[prost(string, tag="8")]
2044 pub manager_name: ::prost::alloc::string::String,
2045 #[prost(string, tag="9")]
2048 pub start_date: ::prost::alloc::string::String,
2049 #[prost(map="string, string", tag="10")]
2052 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2053 #[prost(string, tag="11")]
2057 pub manager_id: ::prost::alloc::string::String,
2058}
2059#[derive(Clone, PartialEq, ::prost::Message)]
2061pub struct User {
2062 #[prost(string, tag="1")]
2064 pub id: ::prost::alloc::string::String,
2065 #[prost(string, tag="2")]
2068 pub email: ::prost::alloc::string::String,
2069 #[prost(string, tag="3")]
2072 pub name: ::prost::alloc::string::String,
2073 #[prost(enumeration="UserStatus", tag="5")]
2075 pub status: i32,
2076 #[prost(message, optional, tag="6")]
2078 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2079 #[prost(message, optional, tag="7")]
2081 pub role: ::core::option::Option<Role>,
2082 #[prost(string, tag="8")]
2084 pub role_id: ::prost::alloc::string::String,
2085 #[prost(message, optional, tag="9")]
2088 pub profile: ::core::option::Option<UserProfile>,
2089 #[prost(bool, tag="10")]
2092 pub processing_restricted: bool,
2093 #[prost(string, tag="11")]
2096 pub data_governance_region: ::prost::alloc::string::String,
2097}
2098#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2102#[repr(i32)]
2103pub enum UserStatus {
2104 Unspecified = 0,
2106 Invited = 1,
2108 Active = 2,
2110 Deactivated = 3,
2112}
2113impl UserStatus {
2114 pub fn as_str_name(&self) -> &'static str {
2119 match self {
2120 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
2121 Self::Invited => "USER_STATUS_INVITED",
2122 Self::Active => "USER_STATUS_ACTIVE",
2123 Self::Deactivated => "USER_STATUS_DEACTIVATED",
2124 }
2125 }
2126 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2128 match value {
2129 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
2130 "USER_STATUS_INVITED" => Some(Self::Invited),
2131 "USER_STATUS_ACTIVE" => Some(Self::Active),
2132 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
2133 _ => None,
2134 }
2135 }
2136}
2137#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2139#[repr(i32)]
2140pub enum ThemePreference {
2141 Unspecified = 0,
2143 Light = 1,
2145 Dark = 2,
2147 System = 3,
2149}
2150impl ThemePreference {
2151 pub fn as_str_name(&self) -> &'static str {
2156 match self {
2157 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
2158 Self::Light => "THEME_PREFERENCE_LIGHT",
2159 Self::Dark => "THEME_PREFERENCE_DARK",
2160 Self::System => "THEME_PREFERENCE_SYSTEM",
2161 }
2162 }
2163 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2165 match value {
2166 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
2167 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
2168 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
2169 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
2170 _ => None,
2171 }
2172 }
2173}
2174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2179pub struct Group {
2180 #[prost(string, tag="1")]
2182 pub id: ::prost::alloc::string::String,
2183 #[prost(string, tag="2")]
2186 pub name: ::prost::alloc::string::String,
2187 #[prost(string, tag="3")]
2190 pub description: ::prost::alloc::string::String,
2191 #[prost(int32, tag="4")]
2193 pub member_count: i32,
2194 #[prost(message, optional, tag="5")]
2196 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2197 #[prost(message, optional, tag="6")]
2199 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
2200 #[prost(bool, tag="7")]
2202 pub is_default: bool,
2203 #[prost(string, tag="8")]
2205 pub created_by: ::prost::alloc::string::String,
2206}
2207#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2209pub struct CreateGroupRequest {
2210 #[prost(string, tag="1")]
2213 pub name: ::prost::alloc::string::String,
2214 #[prost(string, tag="2")]
2217 pub description: ::prost::alloc::string::String,
2218}
2219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2221pub struct CreateGroupResponse {
2222 #[prost(message, optional, tag="1")]
2224 pub group: ::core::option::Option<Group>,
2225}
2226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2228pub struct GetGroupRequest {
2229 #[prost(string, tag="1")]
2231 pub group_id: ::prost::alloc::string::String,
2232}
2233#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2235pub struct GetGroupResponse {
2236 #[prost(message, optional, tag="1")]
2238 pub group: ::core::option::Option<Group>,
2239}
2240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2242pub struct ListGroupsRequest {
2243 #[prost(message, optional, tag="1")]
2245 pub pagination: ::core::option::Option<Pagination>,
2246}
2247#[derive(Clone, PartialEq, ::prost::Message)]
2249pub struct ListGroupsResponse {
2250 #[prost(message, repeated, tag="1")]
2252 pub groups: ::prost::alloc::vec::Vec<Group>,
2253 #[prost(message, optional, tag="2")]
2255 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2256}
2257#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2259pub struct UpdateGroupRequest {
2260 #[prost(string, tag="1")]
2262 pub group_id: ::prost::alloc::string::String,
2263 #[prost(string, tag="2")]
2267 pub name: ::prost::alloc::string::String,
2268 #[prost(string, tag="3")]
2271 pub description: ::prost::alloc::string::String,
2272}
2273#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2275pub struct UpdateGroupResponse {
2276 #[prost(message, optional, tag="1")]
2278 pub group: ::core::option::Option<Group>,
2279}
2280#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2282pub struct DeleteGroupRequest {
2283 #[prost(string, tag="1")]
2286 pub group_id: ::prost::alloc::string::String,
2287}
2288#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2290pub struct DeleteGroupResponse {
2291}
2292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2294pub struct AddGroupMembersRequest {
2295 #[prost(string, tag="1")]
2297 pub group_id: ::prost::alloc::string::String,
2298 #[prost(string, repeated, tag="2")]
2302 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2303}
2304#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2306pub struct AddGroupMembersResponse {
2307 #[prost(message, optional, tag="1")]
2309 pub group: ::core::option::Option<Group>,
2310}
2311#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2313pub struct RemoveGroupMembersRequest {
2314 #[prost(string, tag="1")]
2316 pub group_id: ::prost::alloc::string::String,
2317 #[prost(string, repeated, tag="2")]
2320 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2321}
2322#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2324pub struct RemoveGroupMembersResponse {
2325 #[prost(message, optional, tag="1")]
2327 pub group: ::core::option::Option<Group>,
2328}
2329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2331pub struct ListGroupMembersRequest {
2332 #[prost(string, tag="1")]
2334 pub group_id: ::prost::alloc::string::String,
2335 #[prost(message, optional, tag="2")]
2337 pub pagination: ::core::option::Option<Pagination>,
2338}
2339#[derive(Clone, PartialEq, ::prost::Message)]
2341pub struct ListGroupMembersResponse {
2342 #[prost(message, repeated, tag="1")]
2344 pub users: ::prost::alloc::vec::Vec<User>,
2345 #[prost(message, optional, tag="2")]
2347 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2348}
2349#[derive(Clone, PartialEq, ::prost::Message)]
2351pub struct UserGroupMembership {
2352 #[prost(string, tag="1")]
2354 pub user_id: ::prost::alloc::string::String,
2355 #[prost(message, repeated, tag="2")]
2357 pub groups: ::prost::alloc::vec::Vec<Group>,
2358}
2359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2361pub struct GetUserGroupMembershipsRequest {
2362 #[prost(string, repeated, tag="1")]
2365 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2366}
2367#[derive(Clone, PartialEq, ::prost::Message)]
2369pub struct GetUserGroupMembershipsResponse {
2370 #[prost(message, repeated, tag="1")]
2372 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2373}
2374#[derive(Clone, PartialEq, ::prost::Message)]
2378pub struct TouchEvent {
2379 #[prost(string, tag="1")]
2382 pub screen_name: ::prost::alloc::string::String,
2383 #[prost(float, tag="2")]
2386 pub x_pct: f32,
2387 #[prost(float, tag="3")]
2390 pub y_pct: f32,
2391 #[prost(enumeration="TouchEventType", tag="4")]
2393 pub event_type: i32,
2394 #[prost(int32, tag="5")]
2396 pub screen_width: i32,
2397 #[prost(int32, tag="6")]
2399 pub screen_height: i32,
2400 #[prost(message, optional, tag="7")]
2402 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2403 #[prost(string, tag="8")]
2406 pub campaign_id: ::prost::alloc::string::String,
2407}
2408#[derive(Clone, PartialEq, ::prost::Message)]
2410pub struct IngestTouchEventsRequest {
2411 #[prost(message, repeated, tag="1")]
2414 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2415}
2416#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2418pub struct IngestTouchEventsResponse {
2419 #[prost(int32, tag="1")]
2421 pub ingested_count: i32,
2422}
2423#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2425pub struct HeatmapDataPoint {
2426 #[prost(float, tag="1")]
2428 pub x_pct: f32,
2429 #[prost(float, tag="2")]
2431 pub y_pct: f32,
2432 #[prost(float, tag="3")]
2434 pub value: f32,
2435}
2436#[derive(Clone, PartialEq, ::prost::Message)]
2438pub struct QueryHeatmapDataRequest {
2439 #[prost(string, tag="1")]
2442 pub screen_name: ::prost::alloc::string::String,
2443 #[prost(message, optional, tag="2")]
2445 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2446 #[prost(message, optional, tag="3")]
2448 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2449 #[prost(string, tag="4")]
2452 pub campaign_id: ::prost::alloc::string::String,
2453 #[prost(float, tag="6")]
2456 pub grid_resolution: f32,
2457 #[prost(enumeration="HeatmapMode", tag="7")]
2459 pub mode: i32,
2460 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2462 pub event_types: ::prost::alloc::vec::Vec<i32>,
2463}
2464#[derive(Clone, PartialEq, ::prost::Message)]
2466pub struct QueryHeatmapDataResponse {
2467 #[prost(message, repeated, tag="1")]
2469 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2470 #[prost(string, tag="3")]
2473 pub screenshot_url: ::prost::alloc::string::String,
2474 #[prost(bool, tag="4")]
2476 pub cohort_enabled: bool,
2477}
2478#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2480pub struct UploadScreenshotRequest {
2481 #[prost(string, tag="1")]
2484 pub screen_name: ::prost::alloc::string::String,
2485 #[prost(string, tag="2")]
2487 pub app_version: ::prost::alloc::string::String,
2488 #[prost(bytes="vec", tag="3")]
2491 pub image_data: ::prost::alloc::vec::Vec<u8>,
2492}
2493#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2495pub struct UploadScreenshotResponse {
2496 #[prost(string, tag="1")]
2498 pub url: ::prost::alloc::string::String,
2499}
2500#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2502pub struct ScreenScreenshot {
2503 #[prost(string, tag="1")]
2505 pub screen_name: ::prost::alloc::string::String,
2506 #[prost(string, tag="2")]
2508 pub url: ::prost::alloc::string::String,
2509 #[prost(string, tag="3")]
2511 pub app_version: ::prost::alloc::string::String,
2512}
2513#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2515pub struct ListScreenshotsRequest {
2516}
2517#[derive(Clone, PartialEq, ::prost::Message)]
2519pub struct ListScreenshotsResponse {
2520 #[prost(message, repeated, tag="1")]
2522 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2523}
2524#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2528#[repr(i32)]
2529pub enum TouchEventType {
2530 Unspecified = 0,
2532 Tap = 1,
2534 LongPress = 2,
2536 Scroll = 3,
2538 ActionClick = 4,
2540}
2541impl TouchEventType {
2542 pub fn as_str_name(&self) -> &'static str {
2547 match self {
2548 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2549 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2550 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2551 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2552 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2553 }
2554 }
2555 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2557 match value {
2558 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2559 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2560 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2561 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2562 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2563 _ => None,
2564 }
2565 }
2566}
2567#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2569#[repr(i32)]
2570pub enum HeatmapMode {
2571 Unspecified = 0,
2573 Total = 1,
2575 Median = 2,
2577}
2578impl HeatmapMode {
2579 pub fn as_str_name(&self) -> &'static str {
2584 match self {
2585 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2586 Self::Total => "HEATMAP_MODE_TOTAL",
2587 Self::Median => "HEATMAP_MODE_MEDIAN",
2588 }
2589 }
2590 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2592 match value {
2593 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2594 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2595 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2596 _ => None,
2597 }
2598 }
2599}
2600#[derive(Clone, PartialEq, ::prost::Message)]
2604pub struct InboxEntry {
2605 #[prost(string, tag="1")]
2608 pub delivery_id: ::prost::alloc::string::String,
2609 #[prost(message, optional, tag="2")]
2611 pub message: ::core::option::Option<Message>,
2612 #[prost(enumeration="DeliveryStatus", tag="3")]
2614 pub status: i32,
2615 #[prost(bool, tag="4")]
2617 pub read: bool,
2618 #[prost(message, optional, tag="5")]
2620 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2621}
2622#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2624pub struct SyncRequest {
2625 #[prost(message, optional, tag="1")]
2627 pub since: ::core::option::Option<::prost_types::Timestamp>,
2628 #[prost(int32, tag="2")]
2631 pub limit: i32,
2632}
2633#[derive(Clone, PartialEq, ::prost::Message)]
2635pub struct SyncResponse {
2636 #[prost(message, repeated, tag="1")]
2638 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2639 #[prost(message, optional, tag="2")]
2641 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2642}
2643#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2645pub struct MarkReadRequest {
2646 #[prost(string, tag="1")]
2649 pub delivery_id: ::prost::alloc::string::String,
2650}
2651#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2653pub struct MarkReadResponse {
2654 #[prost(bool, tag="1")]
2656 pub success: bool,
2657}
2658#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2660pub struct GetMessageRequest {
2661 #[prost(string, tag="1")]
2664 pub delivery_id: ::prost::alloc::string::String,
2665}
2666#[derive(Clone, PartialEq, ::prost::Message)]
2668pub struct GetMessageResponse {
2669 #[prost(message, optional, tag="1")]
2671 pub entry: ::core::option::Option<InboxEntry>,
2672}
2673#[derive(Clone, PartialEq, ::prost::Message)]
2678pub struct Archetype {
2679 #[prost(string, tag="1")]
2681 pub label: ::prost::alloc::string::String,
2682 #[prost(string, tag="2")]
2684 pub description: ::prost::alloc::string::String,
2685 #[prost(float, tag="3")]
2687 pub percentage: f32,
2688 #[prost(map="string, double", tag="4")]
2691 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
2692}
2693#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2696pub struct CohortPrediction {
2697 #[prost(float, tag="1")]
2699 pub predicted_ack_rate: f32,
2700 #[prost(float, tag="2")]
2702 pub confidence_low: f32,
2703 #[prost(float, tag="3")]
2705 pub confidence_high: f32,
2706 #[prost(enumeration="ConfidenceLevel", tag="4")]
2708 pub confidence_level: i32,
2709 #[prost(int32, tag="5")]
2711 pub data_point_count: i32,
2712}
2713#[derive(Clone, PartialEq, ::prost::Message)]
2715pub struct CampaignAdvisory {
2716 #[prost(message, optional, tag="1")]
2718 pub predicted_ack: ::core::option::Option<CohortPrediction>,
2719 #[prost(int32, tag="2")]
2722 pub suggested_escalation_delay_minutes: i32,
2723 #[prost(message, repeated, tag="3")]
2725 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2726}
2727#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2729pub struct GetGroupArchetypesRequest {
2730 #[prost(string, tag="1")]
2732 pub group_id: ::prost::alloc::string::String,
2733}
2734#[derive(Clone, PartialEq, ::prost::Message)]
2736pub struct GetGroupArchetypesResponse {
2737 #[prost(message, repeated, tag="1")]
2739 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2740 #[prost(int32, tag="2")]
2742 pub data_point_count: i32,
2743 #[prost(enumeration="PipelineState", tag="3")]
2747 pub pipeline_state: i32,
2748}
2749#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2751pub struct PredictCampaignAckRequest {
2752 #[prost(string, tag="1")]
2754 pub group_id: ::prost::alloc::string::String,
2755 #[prost(string, tag="2")]
2757 pub template_type: ::prost::alloc::string::String,
2758 #[prost(int32, tag="3")]
2760 pub workflow_step_count: i32,
2761}
2762#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2764pub struct PredictCampaignAckResponse {
2765 #[prost(message, optional, tag="1")]
2767 pub prediction: ::core::option::Option<CohortPrediction>,
2768}
2769#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2771pub struct GetCampaignAdvisoryRequest {
2772 #[prost(string, tag="1")]
2774 pub group_id: ::prost::alloc::string::String,
2775 #[prost(string, tag="2")]
2777 pub template_id: ::prost::alloc::string::String,
2778 #[prost(int32, tag="3")]
2780 pub template_version: i32,
2781 #[prost(int32, tag="4")]
2783 pub workflow_step_count: i32,
2784}
2785#[derive(Clone, PartialEq, ::prost::Message)]
2787pub struct GetCampaignAdvisoryResponse {
2788 #[prost(message, optional, tag="1")]
2790 pub advisory: ::core::option::Option<CampaignAdvisory>,
2791}
2792#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2794pub struct GetInsightNarrativeRequest {
2795 #[prost(string, tag="1")]
2797 pub group_id: ::prost::alloc::string::String,
2798 #[prost(string, tag="2")]
2800 pub prompt_name: ::prost::alloc::string::String,
2801}
2802#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2804pub struct GetInsightNarrativeResponse {
2805 #[prost(string, tag="1")]
2807 pub narrative: ::prost::alloc::string::String,
2808 #[prost(message, optional, tag="2")]
2810 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
2811 #[prost(string, tag="3")]
2813 pub model_id: ::prost::alloc::string::String,
2814}
2815#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2818pub struct TriggerMlPipelineRequest {
2819}
2820#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2822pub struct TriggerMlPipelineResponse {
2823 #[prost(int32, tag="1")]
2825 pub remaining_this_month: i32,
2826 #[prost(message, optional, tag="2")]
2828 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
2829}
2830#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2834pub struct TriggerArchetypeClusteringRequest {
2835 #[prost(string, tag="1")]
2837 pub group_id: ::prost::alloc::string::String,
2838}
2839#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2841pub struct TriggerArchetypeClusteringResponse {
2842 #[prost(string, tag="1")]
2845 pub workflow_id: ::prost::alloc::string::String,
2846 #[prost(int32, tag="2")]
2849 pub remaining_this_month: i32,
2850 #[prost(message, optional, tag="3")]
2853 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
2854}
2855#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2859#[repr(i32)]
2860pub enum ConfidenceLevel {
2861 Unspecified = 0,
2862 Low = 1,
2864 Medium = 2,
2866 High = 3,
2868}
2869impl ConfidenceLevel {
2870 pub fn as_str_name(&self) -> &'static str {
2875 match self {
2876 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
2877 Self::Low => "CONFIDENCE_LEVEL_LOW",
2878 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
2879 Self::High => "CONFIDENCE_LEVEL_HIGH",
2880 }
2881 }
2882 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2884 match value {
2885 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
2886 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
2887 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
2888 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
2889 _ => None,
2890 }
2891 }
2892}
2893#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2899#[repr(i32)]
2900pub enum PipelineState {
2901 Unspecified = 0,
2902 NeverRun = 1,
2905 BelowThreshold = 2,
2909 NoClusters = 3,
2913 Ready = 4,
2915}
2916impl PipelineState {
2917 pub fn as_str_name(&self) -> &'static str {
2922 match self {
2923 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
2924 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
2925 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
2926 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
2927 Self::Ready => "PIPELINE_STATE_READY",
2928 }
2929 }
2930 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2932 match value {
2933 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
2934 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
2935 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
2936 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
2937 "PIPELINE_STATE_READY" => Some(Self::Ready),
2938 _ => None,
2939 }
2940 }
2941}
2942#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2947pub struct InviteLink {
2948 #[prost(string, tag="1")]
2950 pub id: ::prost::alloc::string::String,
2951 #[prost(string, tag="2")]
2953 pub token: ::prost::alloc::string::String,
2954 #[prost(string, tag="3")]
2956 pub role_id: ::prost::alloc::string::String,
2957 #[prost(int32, tag="4")]
2960 pub max_uses: i32,
2961 #[prost(int32, tag="5")]
2963 pub use_count: i32,
2964 #[prost(message, optional, tag="6")]
2966 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2967 #[prost(message, optional, tag="7")]
2969 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2970 #[prost(string, tag="8")]
2972 pub created_by: ::prost::alloc::string::String,
2973 #[prost(message, optional, tag="9")]
2975 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2976 #[prost(string, tag="10")]
2979 pub data_governance_region: ::prost::alloc::string::String,
2980}
2981#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2983pub struct CreateInviteLinkRequest {
2984 #[prost(string, tag="1")]
2986 pub role_id: ::prost::alloc::string::String,
2987 #[prost(int32, tag="2")]
2989 pub max_uses: i32,
2990 #[prost(int32, tag="3")]
2993 pub expires_in_hours: i32,
2994 #[prost(string, tag="4")]
2997 pub data_governance_region: ::prost::alloc::string::String,
2998}
2999#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3001pub struct CreateInviteLinkResponse {
3002 #[prost(message, optional, tag="1")]
3004 pub invite_link: ::core::option::Option<InviteLink>,
3005 #[prost(string, tag="2")]
3007 pub url: ::prost::alloc::string::String,
3008}
3009#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3011pub struct ListInviteLinksRequest {
3012}
3013#[derive(Clone, PartialEq, ::prost::Message)]
3015pub struct ListInviteLinksResponse {
3016 #[prost(message, repeated, tag="1")]
3018 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
3019}
3020#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3022pub struct RevokeInviteLinkRequest {
3023 #[prost(string, tag="1")]
3025 pub invite_link_id: ::prost::alloc::string::String,
3026}
3027#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3029pub struct RevokeInviteLinkResponse {
3030}
3031#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3033pub struct RedeemInviteLinkRequest {
3034 #[prost(string, tag="1")]
3036 pub token: ::prost::alloc::string::String,
3037}
3038#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3040pub struct RedeemInviteLinkResponse {
3041 #[prost(string, tag="1")]
3043 pub organization_name: ::prost::alloc::string::String,
3044}
3045#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3047pub struct ValidateInviteLinkRequest {
3048 #[prost(string, tag="1")]
3050 pub token: ::prost::alloc::string::String,
3051 #[prost(string, tag="2")]
3054 pub email: ::prost::alloc::string::String,
3055}
3056#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3058pub struct ValidateInviteLinkResponse {
3059 #[prost(string, tag="1")]
3061 pub organization_name: ::prost::alloc::string::String,
3062}
3063#[derive(Clone, PartialEq, ::prost::Message)]
3067pub struct InviteUserRequest {
3068 #[prost(string, tag="1")]
3071 pub email: ::prost::alloc::string::String,
3072 #[prost(string, tag="2")]
3075 pub name: ::prost::alloc::string::String,
3076 #[prost(string, tag="4")]
3078 pub role_id: ::prost::alloc::string::String,
3079 #[prost(message, optional, tag="5")]
3081 pub profile: ::core::option::Option<UserProfile>,
3082 #[prost(string, tag="6")]
3085 pub data_governance_region: ::prost::alloc::string::String,
3086}
3087#[derive(Clone, PartialEq, ::prost::Message)]
3089pub struct InviteUserResponse {
3090 #[prost(message, optional, tag="1")]
3092 pub user: ::core::option::Option<User>,
3093}
3094#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3096pub struct GetUserRequest {
3097 #[prost(string, tag="1")]
3099 pub user_id: ::prost::alloc::string::String,
3100}
3101#[derive(Clone, PartialEq, ::prost::Message)]
3103pub struct GetUserResponse {
3104 #[prost(message, optional, tag="1")]
3106 pub user: ::core::option::Option<User>,
3107}
3108#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3110pub struct ListUsersRequest {
3111 #[prost(message, optional, tag="1")]
3113 pub pagination: ::core::option::Option<Pagination>,
3114}
3115#[derive(Clone, PartialEq, ::prost::Message)]
3117pub struct ListUsersResponse {
3118 #[prost(message, repeated, tag="1")]
3120 pub users: ::prost::alloc::vec::Vec<User>,
3121 #[prost(message, optional, tag="2")]
3123 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3124}
3125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3127pub struct UpdateUserRoleRequest {
3128 #[prost(string, tag="1")]
3130 pub user_id: ::prost::alloc::string::String,
3131 #[prost(string, tag="2")]
3133 pub role_id: ::prost::alloc::string::String,
3134}
3135#[derive(Clone, PartialEq, ::prost::Message)]
3137pub struct UpdateUserRoleResponse {
3138 #[prost(message, optional, tag="1")]
3140 pub user: ::core::option::Option<User>,
3141}
3142#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3144pub struct DeactivateUserRequest {
3145 #[prost(string, tag="1")]
3147 pub user_id: ::prost::alloc::string::String,
3148}
3149#[derive(Clone, PartialEq, ::prost::Message)]
3151pub struct DeactivateUserResponse {
3152 #[prost(message, optional, tag="1")]
3154 pub user: ::core::option::Option<User>,
3155}
3156#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3158pub struct ReactivateUserRequest {
3159 #[prost(string, tag="1")]
3161 pub user_id: ::prost::alloc::string::String,
3162}
3163#[derive(Clone, PartialEq, ::prost::Message)]
3165pub struct ReactivateUserResponse {
3166 #[prost(message, optional, tag="1")]
3168 pub user: ::core::option::Option<User>,
3169}
3170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3172pub struct RevokeInviteRequest {
3173 #[prost(string, tag="1")]
3176 pub user_id: ::prost::alloc::string::String,
3177}
3178#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3180pub struct RevokeInviteResponse {
3181}
3182#[derive(Clone, PartialEq, ::prost::Message)]
3184pub struct UpdateUserProfileRequest {
3185 #[prost(string, tag="1")]
3188 pub user_id: ::prost::alloc::string::String,
3189 #[prost(message, optional, tag="2")]
3191 pub profile: ::core::option::Option<UserProfile>,
3192}
3193#[derive(Clone, PartialEq, ::prost::Message)]
3195pub struct UpdateUserProfileResponse {
3196 #[prost(message, optional, tag="1")]
3198 pub user: ::core::option::Option<User>,
3199}
3200#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3202pub struct GetUserSettingsRequest {
3203}
3204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3206pub struct GetUserSettingsResponse {
3207 #[prost(message, optional, tag="1")]
3209 pub settings: ::core::option::Option<UserSettings>,
3210}
3211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3213pub struct UpdateUserSettingsRequest {
3214 #[prost(message, optional, tag="1")]
3217 pub settings: ::core::option::Option<UserSettings>,
3218}
3219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3221pub struct UpdateUserSettingsResponse {
3222 #[prost(message, optional, tag="1")]
3224 pub settings: ::core::option::Option<UserSettings>,
3225}
3226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3228pub struct BulkInviteUsersRequest {
3229 #[prost(string, repeated, tag="1")]
3232 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3233 #[prost(string, tag="2")]
3235 pub role_id: ::prost::alloc::string::String,
3236}
3237#[derive(Clone, PartialEq, ::prost::Message)]
3239pub struct BulkInviteResult {
3240 #[prost(string, tag="1")]
3242 pub email: ::prost::alloc::string::String,
3243 #[prost(bool, tag="2")]
3245 pub success: bool,
3246 #[prost(string, tag="3")]
3249 pub error: ::prost::alloc::string::String,
3250 #[prost(message, optional, tag="4")]
3252 pub user: ::core::option::Option<User>,
3253}
3254#[derive(Clone, PartialEq, ::prost::Message)]
3256pub struct BulkInviteUsersResponse {
3257 #[prost(message, repeated, tag="1")]
3259 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3260 #[prost(int32, tag="2")]
3262 pub invited_count: i32,
3263 #[prost(int32, tag="3")]
3265 pub failed_count: i32,
3266}
3267#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3271pub struct ConfirmPasskeyEnrollmentRequest {
3272}
3273#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3275pub struct ConfirmPasskeyEnrollmentResponse {
3276 #[prost(bool, tag="1")]
3278 pub confirmed: bool,
3279}
3280#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3282pub struct UpdateUserRegionRequest {
3283 #[prost(string, tag="1")]
3285 pub user_id: ::prost::alloc::string::String,
3286 #[prost(string, tag="2")]
3289 pub data_governance_region: ::prost::alloc::string::String,
3290}
3291#[derive(Clone, PartialEq, ::prost::Message)]
3293pub struct UpdateUserRegionResponse {
3294 #[prost(message, optional, tag="1")]
3296 pub user: ::core::option::Option<User>,
3297 #[prost(string, tag="2")]
3300 pub migration_workflow_id: ::prost::alloc::string::String,
3301}
3302#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3307pub struct SsoAttributeMapping {
3308 #[prost(string, tag="1")]
3311 pub idp_claim: ::prost::alloc::string::String,
3312 #[prost(string, tag="2")]
3316 pub profile_field: ::prost::alloc::string::String,
3317}
3318#[derive(Clone, PartialEq, ::prost::Message)]
3320pub struct Organization {
3321 #[prost(string, tag="1")]
3323 pub id: ::prost::alloc::string::String,
3324 #[prost(string, tag="2")]
3327 pub name: ::prost::alloc::string::String,
3328 #[prost(message, optional, tag="3")]
3330 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3331 #[prost(message, optional, tag="4")]
3333 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3334 #[prost(enumeration="Industry", tag="5")]
3336 pub industry: i32,
3337 #[prost(enumeration="CompanySize", tag="6")]
3339 pub company_size: i32,
3340 #[prost(message, repeated, tag="7")]
3343 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3344 #[prost(string, tag="8")]
3348 pub default_locale: ::prost::alloc::string::String,
3349 #[prost(enumeration="OrgType", tag="9")]
3351 pub org_type: i32,
3352 #[prost(message, optional, tag="10")]
3354 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3355 #[prost(string, tag="11")]
3358 pub data_governance_region: ::prost::alloc::string::String,
3359 #[prost(string, tag="12")]
3362 pub data_content_region: ::prost::alloc::string::String,
3363 #[prost(int32, tag="13")]
3368 pub ml_retrain_cold_threshold: i32,
3369 #[prost(bool, tag="14")]
3371 pub ml_cancelled_counts: bool,
3372 #[prost(int32, tag="15")]
3374 pub ml_manual_limit_monthly: i32,
3375 #[prost(int32, tag="16")]
3377 pub ml_manual_retrains_used: i32,
3378 #[prost(bool, tag="17")]
3380 pub ml_needs_retrain: bool,
3381 #[prost(int32, tag="18")]
3383 pub campaigns_since_last_training: i32,
3384 #[prost(int32, tag="19")]
3386 pub total_completed_campaigns: i32,
3387 #[prost(message, optional, tag="20")]
3389 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
3390}
3391#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3395pub struct CreateOrganizationRequest {
3396 #[prost(string, tag="1")]
3399 pub name: ::prost::alloc::string::String,
3400 #[prost(enumeration="Industry", tag="2")]
3402 pub industry: i32,
3403 #[prost(enumeration="CompanySize", tag="3")]
3405 pub company_size: i32,
3406 #[prost(string, tag="4")]
3409 pub access_code: ::prost::alloc::string::String,
3410 #[prost(string, tag="5")]
3413 pub data_governance_region: ::prost::alloc::string::String,
3414}
3415#[derive(Clone, PartialEq, ::prost::Message)]
3417pub struct CreateOrganizationResponse {
3418 #[prost(message, optional, tag="1")]
3420 pub organization: ::core::option::Option<Organization>,
3421 #[prost(message, optional, tag="2")]
3423 pub admin_user: ::core::option::Option<User>,
3424}
3425#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3427pub struct GetOrganizationRequest {
3428}
3429#[derive(Clone, PartialEq, ::prost::Message)]
3431pub struct GetOrganizationResponse {
3432 #[prost(message, optional, tag="1")]
3434 pub organization: ::core::option::Option<Organization>,
3435}
3436#[derive(Clone, PartialEq, ::prost::Message)]
3438pub struct UpdateOrganizationRequest {
3439 #[prost(string, tag="1")]
3442 pub name: ::prost::alloc::string::String,
3443 #[prost(message, optional, tag="2")]
3445 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3446 #[prost(enumeration="Industry", tag="3")]
3448 pub industry: i32,
3449 #[prost(enumeration="CompanySize", tag="4")]
3451 pub company_size: i32,
3452 #[prost(string, tag="5")]
3455 pub default_locale: ::prost::alloc::string::String,
3456 #[prost(int32, tag="6")]
3458 pub ml_retrain_cold_threshold: i32,
3459 #[prost(bool, optional, tag="7")]
3462 pub ml_cancelled_counts: ::core::option::Option<bool>,
3463 #[prost(int32, tag="8")]
3466 pub ml_manual_limit_monthly: i32,
3467}
3468#[derive(Clone, PartialEq, ::prost::Message)]
3470pub struct UpdateOrganizationResponse {
3471 #[prost(message, optional, tag="1")]
3473 pub organization: ::core::option::Option<Organization>,
3474}
3475#[derive(Clone, PartialEq, ::prost::Message)]
3477pub struct UpdateSsoAttributeMappingsRequest {
3478 #[prost(message, repeated, tag="1")]
3480 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3481}
3482#[derive(Clone, PartialEq, ::prost::Message)]
3484pub struct UpdateSsoAttributeMappingsResponse {
3485 #[prost(message, optional, tag="1")]
3487 pub organization: ::core::option::Option<Organization>,
3488}
3489#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3491pub struct RotateAnalyticsSaltRequest {
3492 #[prost(int32, tag="1")]
3494 pub new_bucket_count: i32,
3495}
3496#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3498pub struct RotateAnalyticsSaltResponse {
3499 #[prost(int32, tag="1")]
3501 pub bucket_count: i32,
3502}
3503#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3505pub struct UpdateAnalyticsEpsilonRequest {
3506 #[prost(float, tag="1")]
3508 pub epsilon: f32,
3509}
3510#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3512pub struct UpdateAnalyticsEpsilonResponse {
3513 #[prost(float, tag="1")]
3515 pub epsilon: f32,
3516}
3517#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3519pub struct CreateSandboxOrganizationRequest {
3520 #[prost(string, tag="1")]
3523 pub name: ::prost::alloc::string::String,
3524 #[prost(message, optional, tag="2")]
3527 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3528 #[prost(string, tag="3")]
3531 pub data_governance_region: ::prost::alloc::string::String,
3532 #[prost(string, tag="4")]
3536 pub fixture_id: ::prost::alloc::string::String,
3537}
3538#[derive(Clone, PartialEq, ::prost::Message)]
3540pub struct CreateSandboxOrganizationResponse {
3541 #[prost(message, optional, tag="1")]
3543 pub organization: ::core::option::Option<Organization>,
3544 #[prost(message, optional, tag="2")]
3546 pub admin_user: ::core::option::Option<User>,
3547}
3548#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3551pub struct DeleteSandboxOrganizationRequest {
3552 #[prost(string, tag="1")]
3554 pub org_id: ::prost::alloc::string::String,
3555}
3556#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3559pub struct DeleteSandboxOrganizationResponse {
3560 #[prost(string, tag="1")]
3562 pub workflow_id: ::prost::alloc::string::String,
3563}
3564#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3566pub struct SandboxFixture {
3567 #[prost(string, tag="1")]
3569 pub id: ::prost::alloc::string::String,
3570 #[prost(string, tag="2")]
3572 pub name: ::prost::alloc::string::String,
3573 #[prost(string, tag="3")]
3575 pub description: ::prost::alloc::string::String,
3576 #[prost(bool, tag="4")]
3579 pub is_default: bool,
3580}
3581#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3584pub struct ListSandboxFixturesRequest {
3585}
3586#[derive(Clone, PartialEq, ::prost::Message)]
3588pub struct ListSandboxFixturesResponse {
3589 #[prost(message, repeated, tag="1")]
3591 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
3592}
3593#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3596pub struct ListUserOrganizationsRequest {
3597}
3598#[derive(Clone, PartialEq, ::prost::Message)]
3600pub struct ListUserOrganizationsResponse {
3601 #[prost(message, repeated, tag="1")]
3604 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3605}
3606#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3611pub struct ListUserSandboxesRequest {
3612}
3613#[derive(Clone, PartialEq, ::prost::Message)]
3615pub struct ListUserSandboxesResponse {
3616 #[prost(message, repeated, tag="1")]
3621 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
3622}
3623#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3627#[repr(i32)]
3628pub enum Industry {
3629 Unspecified = 0,
3630 Technology = 1,
3631 Finance = 2,
3632 Healthcare = 3,
3633 Education = 4,
3634 Retail = 5,
3635 Manufacturing = 6,
3636 Media = 7,
3637 Other = 8,
3638}
3639impl Industry {
3640 pub fn as_str_name(&self) -> &'static str {
3645 match self {
3646 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3647 Self::Technology => "INDUSTRY_TECHNOLOGY",
3648 Self::Finance => "INDUSTRY_FINANCE",
3649 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3650 Self::Education => "INDUSTRY_EDUCATION",
3651 Self::Retail => "INDUSTRY_RETAIL",
3652 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3653 Self::Media => "INDUSTRY_MEDIA",
3654 Self::Other => "INDUSTRY_OTHER",
3655 }
3656 }
3657 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3659 match value {
3660 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3661 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3662 "INDUSTRY_FINANCE" => Some(Self::Finance),
3663 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3664 "INDUSTRY_EDUCATION" => Some(Self::Education),
3665 "INDUSTRY_RETAIL" => Some(Self::Retail),
3666 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3667 "INDUSTRY_MEDIA" => Some(Self::Media),
3668 "INDUSTRY_OTHER" => Some(Self::Other),
3669 _ => None,
3670 }
3671 }
3672}
3673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3675#[repr(i32)]
3676pub enum CompanySize {
3677 Unspecified = 0,
3678 CompanySize1200 = 1,
3679 CompanySize200500 = 2,
3680 CompanySize5001000 = 3,
3681 CompanySize10005000 = 4,
3682 CompanySize5000Plus = 5,
3683}
3684impl CompanySize {
3685 pub fn as_str_name(&self) -> &'static str {
3690 match self {
3691 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3692 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3693 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3694 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3695 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3696 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3697 }
3698 }
3699 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3701 match value {
3702 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3703 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3704 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3705 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3706 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3707 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3708 _ => None,
3709 }
3710 }
3711}
3712#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3714#[repr(i32)]
3715pub enum OrgType {
3716 Unspecified = 0,
3717 Standard = 1,
3718 Sandbox = 2,
3719 Staff = 3,
3722}
3723impl OrgType {
3724 pub fn as_str_name(&self) -> &'static str {
3729 match self {
3730 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
3731 Self::Standard => "ORG_TYPE_STANDARD",
3732 Self::Sandbox => "ORG_TYPE_SANDBOX",
3733 Self::Staff => "ORG_TYPE_STAFF",
3734 }
3735 }
3736 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3738 match value {
3739 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3740 "ORG_TYPE_STANDARD" => Some(Self::Standard),
3741 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
3742 "ORG_TYPE_STAFF" => Some(Self::Staff),
3743 _ => None,
3744 }
3745 }
3746}
3747#[derive(Clone, PartialEq, ::prost::Message)]
3751pub struct UserRenderContext {
3752 #[prost(string, tag="1")]
3754 pub user_id: ::prost::alloc::string::String,
3755 #[prost(map="string, string", tag="2")]
3758 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3759}
3760#[derive(Clone, PartialEq, ::prost::Message)]
3762pub struct RenderBatchRequest {
3763 #[prost(string, tag="1")]
3765 pub template_id: ::prost::alloc::string::String,
3766 #[prost(int32, tag="2")]
3768 pub version: i32,
3769 #[prost(message, repeated, tag="3")]
3772 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3773}
3774#[derive(Clone, PartialEq, ::prost::Message)]
3777pub struct RenderBatchResponse {
3778 #[prost(string, tag="1")]
3780 pub user_id: ::prost::alloc::string::String,
3781 #[prost(message, optional, tag="2")]
3783 pub message: ::core::option::Option<Message>,
3784 #[prost(string, tag="3")]
3786 pub error: ::prost::alloc::string::String,
3787}
3788#[derive(Clone, PartialEq, ::prost::Message)]
3793pub struct SessionRecording {
3794 #[prost(string, tag="1")]
3796 pub id: ::prost::alloc::string::String,
3797 #[prost(message, optional, tag="2")]
3799 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3800 #[prost(message, optional, tag="3")]
3802 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3803 #[prost(int32, tag="4")]
3805 pub duration_seconds: i32,
3806 #[prost(float, tag="5")]
3808 pub activity_score: f32,
3809}
3810#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3812pub struct ListSessionRecordingsRequest {
3813 #[prost(string, tag="1")]
3816 pub campaign_id: ::prost::alloc::string::String,
3817 #[prost(message, optional, tag="2")]
3819 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3820 #[prost(message, optional, tag="3")]
3822 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3823 #[prost(message, optional, tag="4")]
3825 pub pagination: ::core::option::Option<Pagination>,
3826}
3827#[derive(Clone, PartialEq, ::prost::Message)]
3829pub struct ListSessionRecordingsResponse {
3830 #[prost(message, repeated, tag="1")]
3832 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3833 #[prost(message, optional, tag="2")]
3835 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3836}
3837#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3839pub struct GetSessionSnapshotsRequest {
3840 #[prost(string, tag="1")]
3843 pub recording_id: ::prost::alloc::string::String,
3844}
3845#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3847pub struct GetSessionSnapshotsResponse {
3848 #[prost(string, tag="1")]
3851 pub snapshot_data: ::prost::alloc::string::String,
3852}
3853#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3857pub struct ListRolesRequest {
3858}
3859#[derive(Clone, PartialEq, ::prost::Message)]
3861pub struct ListRolesResponse {
3862 #[prost(message, repeated, tag="1")]
3864 pub roles: ::prost::alloc::vec::Vec<Role>,
3865}
3866#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3868pub struct CreateRoleRequest {
3869 #[prost(string, tag="1")]
3872 pub name: ::prost::alloc::string::String,
3873 #[prost(enumeration="Permission", repeated, tag="2")]
3876 pub permissions: ::prost::alloc::vec::Vec<i32>,
3877}
3878#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3880pub struct CreateRoleResponse {
3881 #[prost(message, optional, tag="1")]
3883 pub role: ::core::option::Option<Role>,
3884}
3885#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3887pub struct UpdateRoleRequest {
3888 #[prost(string, tag="1")]
3890 pub role_id: ::prost::alloc::string::String,
3891 #[prost(string, tag="2")]
3893 pub name: ::prost::alloc::string::String,
3894 #[prost(enumeration="Permission", repeated, tag="3")]
3898 pub permissions: ::prost::alloc::vec::Vec<i32>,
3899}
3900#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3902pub struct UpdateRoleResponse {
3903 #[prost(message, optional, tag="1")]
3905 pub role: ::core::option::Option<Role>,
3906}
3907#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3909pub struct DeleteRoleRequest {
3910 #[prost(string, tag="1")]
3912 pub role_id: ::prost::alloc::string::String,
3913}
3914#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3916pub struct DeleteRoleResponse {
3917}
3918#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3924pub struct SamlAttributeNames {
3925 #[prost(string, tag="1")]
3927 pub email: ::prost::alloc::string::String,
3928 #[prost(string, tag="2")]
3930 pub given_name: ::prost::alloc::string::String,
3931 #[prost(string, tag="3")]
3933 pub family_name: ::prost::alloc::string::String,
3934}
3935#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3937pub struct SsoProvider {
3938 #[prost(string, tag="1")]
3940 pub id: ::prost::alloc::string::String,
3941 #[prost(string, tag="2")]
3944 pub domain: ::prost::alloc::string::String,
3945 #[prost(enumeration="SsoProviderType", tag="3")]
3947 pub r#type: i32,
3948 #[prost(string, tag="4")]
3951 pub metadata_url: ::prost::alloc::string::String,
3952 #[prost(string, tag="5")]
3955 pub idp_provider_name: ::prost::alloc::string::String,
3956 #[prost(message, optional, tag="6")]
3958 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3959 #[prost(message, optional, tag="7")]
3961 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3962 #[prost(message, optional, tag="8")]
3964 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3965}
3966#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3969pub struct CheckSsoByDomainRequest {
3970 #[prost(string, tag="1")]
3973 pub email: ::prost::alloc::string::String,
3974}
3975#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3977pub struct CheckSsoByDomainResponse {
3978 #[prost(bool, tag="1")]
3980 pub sso_enabled: bool,
3981 #[prost(string, tag="2")]
3984 pub provider_name: ::prost::alloc::string::String,
3985}
3986#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3988pub struct CreateSsoProviderRequest {
3989 #[prost(string, tag="1")]
3992 pub domain: ::prost::alloc::string::String,
3993 #[prost(enumeration="SsoProviderType", tag="2")]
3995 pub r#type: i32,
3996 #[prost(string, tag="3")]
3999 pub metadata_url: ::prost::alloc::string::String,
4000 #[prost(message, optional, tag="4")]
4003 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4004}
4005#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4007pub struct CreateSsoProviderResponse {
4008 #[prost(message, optional, tag="1")]
4010 pub provider: ::core::option::Option<SsoProvider>,
4011}
4012#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4015pub struct GetSsoProviderRequest {
4016}
4017#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4019pub struct GetSsoProviderResponse {
4020 #[prost(message, optional, tag="1")]
4022 pub provider: ::core::option::Option<SsoProvider>,
4023}
4024#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4026pub struct DeleteSsoProviderRequest {
4027 #[prost(string, tag="1")]
4029 pub provider_id: ::prost::alloc::string::String,
4030}
4031#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4033pub struct DeleteSsoProviderResponse {
4034}
4035#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4039#[repr(i32)]
4040pub enum SsoProviderType {
4041 Unspecified = 0,
4043 Saml = 1,
4045 Oidc = 2,
4047}
4048impl SsoProviderType {
4049 pub fn as_str_name(&self) -> &'static str {
4054 match self {
4055 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
4056 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
4057 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
4058 }
4059 }
4060 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4062 match value {
4063 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4064 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
4065 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
4066 _ => None,
4067 }
4068 }
4069}
4070#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4076pub struct Team {
4077 #[prost(string, tag="1")]
4079 pub id: ::prost::alloc::string::String,
4080 #[prost(string, tag="2")]
4083 pub name: ::prost::alloc::string::String,
4084 #[prost(string, tag="3")]
4087 pub description: ::prost::alloc::string::String,
4088 #[prost(int32, tag="4")]
4090 pub member_count: i32,
4091 #[prost(message, optional, tag="5")]
4093 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4094 #[prost(message, optional, tag="6")]
4096 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4097 #[prost(bool, tag="7")]
4099 pub is_default: bool,
4100 #[prost(string, tag="8")]
4102 pub created_by: ::prost::alloc::string::String,
4103}
4104#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4106pub struct CreateTeamRequest {
4107 #[prost(string, tag="1")]
4110 pub name: ::prost::alloc::string::String,
4111 #[prost(string, tag="2")]
4114 pub description: ::prost::alloc::string::String,
4115}
4116#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4118pub struct CreateTeamResponse {
4119 #[prost(message, optional, tag="1")]
4121 pub team: ::core::option::Option<Team>,
4122}
4123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4125pub struct GetTeamRequest {
4126 #[prost(string, tag="1")]
4128 pub team_id: ::prost::alloc::string::String,
4129}
4130#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4132pub struct GetTeamResponse {
4133 #[prost(message, optional, tag="1")]
4135 pub team: ::core::option::Option<Team>,
4136}
4137#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4139pub struct ListTeamsRequest {
4140 #[prost(message, optional, tag="1")]
4142 pub pagination: ::core::option::Option<Pagination>,
4143}
4144#[derive(Clone, PartialEq, ::prost::Message)]
4146pub struct ListTeamsResponse {
4147 #[prost(message, repeated, tag="1")]
4149 pub teams: ::prost::alloc::vec::Vec<Team>,
4150 #[prost(message, optional, tag="2")]
4152 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4153}
4154#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4156pub struct UpdateTeamRequest {
4157 #[prost(string, tag="1")]
4159 pub team_id: ::prost::alloc::string::String,
4160 #[prost(string, tag="2")]
4164 pub name: ::prost::alloc::string::String,
4165 #[prost(string, tag="3")]
4168 pub description: ::prost::alloc::string::String,
4169}
4170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4172pub struct UpdateTeamResponse {
4173 #[prost(message, optional, tag="1")]
4175 pub team: ::core::option::Option<Team>,
4176}
4177#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4179pub struct DeleteTeamRequest {
4180 #[prost(string, tag="1")]
4183 pub team_id: ::prost::alloc::string::String,
4184}
4185#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4187pub struct DeleteTeamResponse {
4188}
4189#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4191pub struct AddTeamMembersRequest {
4192 #[prost(string, tag="1")]
4194 pub team_id: ::prost::alloc::string::String,
4195 #[prost(string, repeated, tag="2")]
4199 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4200}
4201#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4203pub struct AddTeamMembersResponse {
4204 #[prost(message, optional, tag="1")]
4206 pub team: ::core::option::Option<Team>,
4207}
4208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4210pub struct RemoveTeamMembersRequest {
4211 #[prost(string, tag="1")]
4213 pub team_id: ::prost::alloc::string::String,
4214 #[prost(string, repeated, tag="2")]
4217 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4218}
4219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4221pub struct RemoveTeamMembersResponse {
4222 #[prost(message, optional, tag="1")]
4224 pub team: ::core::option::Option<Team>,
4225}
4226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4228pub struct ListTeamMembersRequest {
4229 #[prost(string, tag="1")]
4231 pub team_id: ::prost::alloc::string::String,
4232 #[prost(message, optional, tag="2")]
4234 pub pagination: ::core::option::Option<Pagination>,
4235}
4236#[derive(Clone, PartialEq, ::prost::Message)]
4238pub struct ListTeamMembersResponse {
4239 #[prost(message, repeated, tag="1")]
4241 pub users: ::prost::alloc::vec::Vec<User>,
4242 #[prost(message, optional, tag="2")]
4244 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4245}
4246#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4250pub struct TemplateVariable {
4251 #[prost(string, tag="1")]
4254 pub name: ::prost::alloc::string::String,
4255 #[prost(string, tag="2")]
4258 pub description: ::prost::alloc::string::String,
4259 #[prost(bool, tag="3")]
4261 pub required: bool,
4262 #[prost(enumeration="TemplateVariableSource", tag="4")]
4264 pub source: i32,
4265 #[prost(string, tag="5")]
4268 pub default_value: ::prost::alloc::string::String,
4269 #[prost(bool, tag="6")]
4272 pub pii: bool,
4273}
4274#[derive(Clone, PartialEq, ::prost::Message)]
4277pub struct Template {
4278 #[prost(string, tag="1")]
4280 pub id: ::prost::alloc::string::String,
4281 #[prost(string, tag="2")]
4284 pub name: ::prost::alloc::string::String,
4285 #[prost(string, tag="3")]
4288 pub body: ::prost::alloc::string::String,
4289 #[prost(message, repeated, tag="4")]
4291 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4292 #[prost(int32, tag="5")]
4294 pub version: i32,
4295 #[prost(message, optional, tag="6")]
4297 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4298 #[prost(message, optional, tag="7")]
4300 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4301 #[prost(string, tag="8")]
4305 pub title: ::prost::alloc::string::String,
4306 #[prost(enumeration="TemplateType", tag="9")]
4309 pub r#type: i32,
4310 #[prost(string, tag="10")]
4314 pub source_locale: ::prost::alloc::string::String,
4315}
4316#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4319pub struct TemplateTranslation {
4320 #[prost(string, tag="1")]
4322 pub id: ::prost::alloc::string::String,
4323 #[prost(string, tag="2")]
4325 pub template_id: ::prost::alloc::string::String,
4326 #[prost(int32, tag="3")]
4328 pub version: i32,
4329 #[prost(string, tag="4")]
4331 pub locale: ::prost::alloc::string::String,
4332 #[prost(string, tag="5")]
4335 pub title: ::prost::alloc::string::String,
4336 #[prost(string, tag="6")]
4339 pub body: ::prost::alloc::string::String,
4340 #[prost(enumeration="TranslationStatus", tag="7")]
4342 pub status: i32,
4343 #[prost(string, tag="8")]
4345 pub translated_by: ::prost::alloc::string::String,
4346 #[prost(string, tag="9")]
4348 pub reviewed_by: ::prost::alloc::string::String,
4349 #[prost(message, optional, tag="10")]
4351 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4352 #[prost(message, optional, tag="11")]
4354 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4355}
4356#[derive(Clone, PartialEq, ::prost::Message)]
4358pub struct CreateTemplateRequest {
4359 #[prost(string, tag="1")]
4362 pub name: ::prost::alloc::string::String,
4363 #[prost(string, tag="2")]
4366 pub body: ::prost::alloc::string::String,
4367 #[prost(message, repeated, tag="3")]
4369 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4370 #[prost(string, tag="4")]
4373 pub title: ::prost::alloc::string::String,
4374 #[prost(enumeration="TemplateType", tag="5")]
4376 pub r#type: i32,
4377 #[prost(string, tag="6")]
4380 pub source_locale: ::prost::alloc::string::String,
4381}
4382#[derive(Clone, PartialEq, ::prost::Message)]
4384pub struct CreateTemplateResponse {
4385 #[prost(message, optional, tag="1")]
4387 pub template: ::core::option::Option<Template>,
4388}
4389#[derive(Clone, PartialEq, ::prost::Message)]
4391pub struct UpdateTemplateRequest {
4392 #[prost(string, tag="1")]
4394 pub template_id: ::prost::alloc::string::String,
4395 #[prost(string, tag="2")]
4398 pub body: ::prost::alloc::string::String,
4399 #[prost(message, repeated, tag="3")]
4401 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4402}
4403#[derive(Clone, PartialEq, ::prost::Message)]
4405pub struct UpdateTemplateResponse {
4406 #[prost(message, optional, tag="1")]
4408 pub template: ::core::option::Option<Template>,
4409}
4410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4412pub struct GetTemplateRequest {
4413 #[prost(string, tag="1")]
4415 pub template_id: ::prost::alloc::string::String,
4416 #[prost(int32, tag="2")]
4418 pub version: i32,
4419}
4420#[derive(Clone, PartialEq, ::prost::Message)]
4422pub struct GetTemplateResponse {
4423 #[prost(message, optional, tag="1")]
4425 pub template: ::core::option::Option<Template>,
4426}
4427#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4429pub struct ListTemplatesRequest {
4430 #[prost(message, optional, tag="1")]
4432 pub pagination: ::core::option::Option<Pagination>,
4433 #[prost(enumeration="TemplateType", tag="2")]
4435 pub r#type: i32,
4436}
4437#[derive(Clone, PartialEq, ::prost::Message)]
4439pub struct ListTemplatesResponse {
4440 #[prost(message, repeated, tag="1")]
4442 pub templates: ::prost::alloc::vec::Vec<Template>,
4443 #[prost(message, optional, tag="2")]
4445 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4446}
4447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4449pub struct CreateTemplateTranslationRequest {
4450 #[prost(string, tag="1")]
4452 pub template_id: ::prost::alloc::string::String,
4453 #[prost(int32, tag="2")]
4455 pub version: i32,
4456 #[prost(string, tag="3")]
4458 pub locale: ::prost::alloc::string::String,
4459 #[prost(string, tag="4")]
4461 pub title: ::prost::alloc::string::String,
4462 #[prost(string, tag="5")]
4464 pub body: ::prost::alloc::string::String,
4465 #[prost(string, tag="6")]
4467 pub translated_by: ::prost::alloc::string::String,
4468 #[prost(enumeration="TranslationStatus", tag="7")]
4470 pub status: i32,
4471}
4472#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4474pub struct CreateTemplateTranslationResponse {
4475 #[prost(message, optional, tag="1")]
4477 pub translation: ::core::option::Option<TemplateTranslation>,
4478}
4479#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4481pub struct UpdateTemplateTranslationRequest {
4482 #[prost(string, tag="1")]
4484 pub translation_id: ::prost::alloc::string::String,
4485 #[prost(string, tag="2")]
4487 pub title: ::prost::alloc::string::String,
4488 #[prost(string, tag="3")]
4490 pub body: ::prost::alloc::string::String,
4491 #[prost(enumeration="TranslationStatus", tag="4")]
4493 pub status: i32,
4494}
4495#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4497pub struct UpdateTemplateTranslationResponse {
4498 #[prost(message, optional, tag="1")]
4500 pub translation: ::core::option::Option<TemplateTranslation>,
4501}
4502#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4504pub struct ListTemplateTranslationsRequest {
4505 #[prost(string, tag="1")]
4507 pub template_id: ::prost::alloc::string::String,
4508 #[prost(int32, tag="2")]
4510 pub version: i32,
4511}
4512#[derive(Clone, PartialEq, ::prost::Message)]
4514pub struct ListTemplateTranslationsResponse {
4515 #[prost(message, repeated, tag="1")]
4517 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4518}
4519#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4521pub struct ApproveTemplateTranslationRequest {
4522 #[prost(string, tag="1")]
4524 pub translation_id: ::prost::alloc::string::String,
4525}
4526#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4528pub struct ApproveTemplateTranslationResponse {
4529 #[prost(message, optional, tag="1")]
4531 pub translation: ::core::option::Option<TemplateTranslation>,
4532}
4533#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4537#[repr(i32)]
4538pub enum TemplateType {
4539 Unspecified = 0,
4541 Markdown = 1,
4543 Rich = 2,
4545 Html = 3,
4547}
4548impl TemplateType {
4549 pub fn as_str_name(&self) -> &'static str {
4554 match self {
4555 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4556 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4557 Self::Rich => "TEMPLATE_TYPE_RICH",
4558 Self::Html => "TEMPLATE_TYPE_HTML",
4559 }
4560 }
4561 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4563 match value {
4564 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4565 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4566 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4567 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4568 _ => None,
4569 }
4570 }
4571}
4572#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4574#[repr(i32)]
4575pub enum TemplateVariableSource {
4576 Unspecified = 0,
4578 Profile = 1,
4580 Custom = 2,
4582}
4583impl TemplateVariableSource {
4584 pub fn as_str_name(&self) -> &'static str {
4589 match self {
4590 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4591 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4592 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4593 }
4594 }
4595 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4597 match value {
4598 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4599 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4600 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4601 _ => None,
4602 }
4603 }
4604}
4605#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4607#[repr(i32)]
4608pub enum TranslationStatus {
4609 Unspecified = 0,
4610 Draft = 1,
4612 AiTranslated = 2,
4614 InReview = 3,
4616 Approved = 4,
4618}
4619impl TranslationStatus {
4620 pub fn as_str_name(&self) -> &'static str {
4625 match self {
4626 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4627 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4628 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4629 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4630 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4631 }
4632 }
4633 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4635 match value {
4636 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4637 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4638 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4639 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4640 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4641 _ => None,
4642 }
4643 }
4644}
4645include!("pidgr.v1.tonic.rs");
4646