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")]
2695 pub feature_centroid: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
2696 #[prost(map="string, message", tag="5")]
2701 pub feature_breakdown: ::std::collections::HashMap<::prost::alloc::string::String, DimensionStats>,
2702 #[prost(message, optional, tag="6")]
2706 pub tap_heatmap: ::core::option::Option<TapHeatmap>,
2707 #[prost(message, optional, tag="7")]
2711 pub forecast: ::core::option::Option<ArchetypeForecast>,
2712 #[prost(message, repeated, tag="8")]
2718 pub exemplar_sessions: ::prost::alloc::vec::Vec<ExemplarSession>,
2719 #[prost(message, optional, tag="9")]
2722 pub screen_dwell: ::core::option::Option<ScreenDwell>,
2723 #[prost(message, optional, tag="10")]
2727 pub response_timeline: ::core::option::Option<ResponseTimeline>,
2728}
2729#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2734pub struct DimensionStats {
2735 #[prost(double, tag="1")]
2737 pub centroid: f64,
2738 #[prost(double, tag="2")]
2740 pub p25: f64,
2741 #[prost(double, tag="3")]
2743 pub p50: f64,
2744 #[prost(double, tag="4")]
2746 pub p75: f64,
2747 #[prost(double, tag="5")]
2750 pub group_p50: f64,
2751}
2752#[derive(Clone, PartialEq, ::prost::Message)]
2756pub struct TapHeatmap {
2757 #[prost(int32, tag="1")]
2759 pub width: i32,
2760 #[prost(int32, tag="2")]
2762 pub height: i32,
2763 #[prost(double, repeated, tag="3")]
2766 pub values: ::prost::alloc::vec::Vec<f64>,
2767 #[prost(int32, tag="4")]
2770 pub session_count: i32,
2771 #[prost(message, repeated, tag="5")]
2775 pub layers: ::prost::alloc::vec::Vec<TapHeatmapLayer>,
2776}
2777#[derive(Clone, PartialEq, ::prost::Message)]
2779pub struct TapHeatmapLayer {
2780 #[prost(string, tag="1")]
2783 pub event_type: ::prost::alloc::string::String,
2784 #[prost(double, repeated, tag="2")]
2787 pub values: ::prost::alloc::vec::Vec<f64>,
2788}
2789#[derive(Clone, PartialEq, ::prost::Message)]
2791pub struct ArchetypeForecast {
2792 #[prost(message, repeated, tag="1")]
2795 pub horizons: ::prost::alloc::vec::Vec<ForecastHorizon>,
2796}
2797#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2799pub struct ForecastHorizon {
2800 #[prost(int32, tag="1")]
2802 pub days: i32,
2803 #[prost(double, tag="2")]
2806 pub predicted_share: f64,
2807 #[prost(double, tag="3")]
2809 pub lower: f64,
2810 #[prost(double, tag="4")]
2812 pub upper: f64,
2813 #[prost(enumeration="ConfidenceLevel", tag="5")]
2815 pub confidence: i32,
2816}
2817#[derive(Clone, PartialEq, ::prost::Message)]
2820pub struct ExemplarSession {
2821 #[prost(string, tag="1")]
2824 pub session_id: ::prost::alloc::string::String,
2825 #[prost(int32, tag="2")]
2828 pub rank: i32,
2829 #[prost(double, tag="3")]
2831 pub distance: f64,
2832 #[prost(int32, tag="4")]
2834 pub duration_seconds: i32,
2835 #[prost(string, tag="5")]
2839 pub platform: ::prost::alloc::string::String,
2840}
2841#[derive(Clone, PartialEq, ::prost::Message)]
2845pub struct ScreenDwell {
2846 #[prost(message, repeated, tag="1")]
2849 pub entries: ::prost::alloc::vec::Vec<ScreenDwellEntry>,
2850}
2851#[derive(Clone, PartialEq, ::prost::Message)]
2852pub struct ScreenDwellEntry {
2853 #[prost(string, tag="1")]
2857 pub screen_name: ::prost::alloc::string::String,
2858 #[prost(double, tag="2")]
2860 pub median_seconds: f64,
2861 #[prost(double, tag="3")]
2863 pub p75_seconds: f64,
2864 #[prost(int32, tag="4")]
2866 pub session_count: i32,
2867}
2868#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2872pub struct ResponseTimeline {
2873 #[prost(message, optional, tag="1")]
2875 pub read_after_delivered: ::core::option::Option<LatencyPercentiles>,
2876 #[prost(message, optional, tag="2")]
2879 pub ack_after_read: ::core::option::Option<LatencyPercentiles>,
2880 #[prost(message, optional, tag="3")]
2883 pub ack_after_delivered: ::core::option::Option<LatencyPercentiles>,
2884 #[prost(int32, tag="4")]
2886 pub delivery_count: i32,
2887}
2888#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2890pub struct LatencyPercentiles {
2891 #[prost(double, tag="1")]
2892 pub p50: f64,
2893 #[prost(double, tag="2")]
2894 pub p75: f64,
2895 #[prost(double, tag="3")]
2896 pub p95: f64,
2897}
2898#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2901pub struct CohortPrediction {
2902 #[prost(float, tag="1")]
2904 pub predicted_ack_rate: f32,
2905 #[prost(float, tag="2")]
2907 pub confidence_low: f32,
2908 #[prost(float, tag="3")]
2910 pub confidence_high: f32,
2911 #[prost(enumeration="ConfidenceLevel", tag="4")]
2913 pub confidence_level: i32,
2914 #[prost(int32, tag="5")]
2916 pub data_point_count: i32,
2917}
2918#[derive(Clone, PartialEq, ::prost::Message)]
2920pub struct CampaignAdvisory {
2921 #[prost(message, optional, tag="1")]
2923 pub predicted_ack: ::core::option::Option<CohortPrediction>,
2924 #[prost(int32, tag="2")]
2927 pub suggested_escalation_delay_minutes: i32,
2928 #[prost(message, repeated, tag="3")]
2930 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2931}
2932#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2934pub struct GetGroupArchetypesRequest {
2935 #[prost(string, tag="1")]
2937 pub group_id: ::prost::alloc::string::String,
2938}
2939#[derive(Clone, PartialEq, ::prost::Message)]
2941pub struct GetGroupArchetypesResponse {
2942 #[prost(message, repeated, tag="1")]
2944 pub archetypes: ::prost::alloc::vec::Vec<Archetype>,
2945 #[prost(int32, tag="2")]
2947 pub data_point_count: i32,
2948 #[prost(enumeration="PipelineState", tag="3")]
2952 pub pipeline_state: i32,
2953}
2954#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2956pub struct PredictCampaignAckRequest {
2957 #[prost(string, tag="1")]
2959 pub group_id: ::prost::alloc::string::String,
2960 #[prost(string, tag="2")]
2962 pub template_type: ::prost::alloc::string::String,
2963 #[prost(int32, tag="3")]
2965 pub workflow_step_count: i32,
2966}
2967#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2969pub struct PredictCampaignAckResponse {
2970 #[prost(message, optional, tag="1")]
2972 pub prediction: ::core::option::Option<CohortPrediction>,
2973}
2974#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2976pub struct GetCampaignAdvisoryRequest {
2977 #[prost(string, tag="1")]
2979 pub group_id: ::prost::alloc::string::String,
2980 #[prost(string, tag="2")]
2982 pub template_id: ::prost::alloc::string::String,
2983 #[prost(int32, tag="3")]
2985 pub template_version: i32,
2986 #[prost(int32, tag="4")]
2988 pub workflow_step_count: i32,
2989}
2990#[derive(Clone, PartialEq, ::prost::Message)]
2992pub struct GetCampaignAdvisoryResponse {
2993 #[prost(message, optional, tag="1")]
2995 pub advisory: ::core::option::Option<CampaignAdvisory>,
2996}
2997#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2999pub struct GetInsightNarrativeRequest {
3000 #[prost(string, tag="1")]
3002 pub group_id: ::prost::alloc::string::String,
3003 #[prost(string, tag="2")]
3005 pub prompt_name: ::prost::alloc::string::String,
3006}
3007#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3009pub struct GetInsightNarrativeResponse {
3010 #[prost(string, tag="1")]
3012 pub narrative: ::prost::alloc::string::String,
3013 #[prost(message, optional, tag="2")]
3015 pub generated_at: ::core::option::Option<::prost_types::Timestamp>,
3016 #[prost(string, tag="3")]
3018 pub model_id: ::prost::alloc::string::String,
3019}
3020#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3023pub struct TriggerMlPipelineRequest {
3024}
3025#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3027pub struct TriggerMlPipelineResponse {
3028 #[prost(int32, tag="1")]
3030 pub remaining_this_month: i32,
3031 #[prost(message, optional, tag="2")]
3033 pub last_trained_at: ::core::option::Option<::prost_types::Timestamp>,
3034}
3035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3039pub struct TriggerArchetypeClusteringRequest {
3040 #[prost(string, tag="1")]
3042 pub group_id: ::prost::alloc::string::String,
3043}
3044#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3046pub struct TriggerArchetypeClusteringResponse {
3047 #[prost(string, tag="1")]
3050 pub workflow_id: ::prost::alloc::string::String,
3051 #[prost(int32, tag="2")]
3054 pub remaining_this_month: i32,
3055 #[prost(message, optional, tag="3")]
3058 pub last_clustered_at: ::core::option::Option<::prost_types::Timestamp>,
3059}
3060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3064#[repr(i32)]
3065pub enum ConfidenceLevel {
3066 Unspecified = 0,
3067 Low = 1,
3069 Medium = 2,
3071 High = 3,
3073}
3074impl ConfidenceLevel {
3075 pub fn as_str_name(&self) -> &'static str {
3080 match self {
3081 Self::Unspecified => "CONFIDENCE_LEVEL_UNSPECIFIED",
3082 Self::Low => "CONFIDENCE_LEVEL_LOW",
3083 Self::Medium => "CONFIDENCE_LEVEL_MEDIUM",
3084 Self::High => "CONFIDENCE_LEVEL_HIGH",
3085 }
3086 }
3087 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3089 match value {
3090 "CONFIDENCE_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
3091 "CONFIDENCE_LEVEL_LOW" => Some(Self::Low),
3092 "CONFIDENCE_LEVEL_MEDIUM" => Some(Self::Medium),
3093 "CONFIDENCE_LEVEL_HIGH" => Some(Self::High),
3094 _ => None,
3095 }
3096 }
3097}
3098#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3104#[repr(i32)]
3105pub enum PipelineState {
3106 Unspecified = 0,
3107 NeverRun = 1,
3110 BelowThreshold = 2,
3114 NoClusters = 3,
3118 Ready = 4,
3120}
3121impl PipelineState {
3122 pub fn as_str_name(&self) -> &'static str {
3127 match self {
3128 Self::Unspecified => "PIPELINE_STATE_UNSPECIFIED",
3129 Self::NeverRun => "PIPELINE_STATE_NEVER_RUN",
3130 Self::BelowThreshold => "PIPELINE_STATE_BELOW_THRESHOLD",
3131 Self::NoClusters => "PIPELINE_STATE_NO_CLUSTERS",
3132 Self::Ready => "PIPELINE_STATE_READY",
3133 }
3134 }
3135 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3137 match value {
3138 "PIPELINE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
3139 "PIPELINE_STATE_NEVER_RUN" => Some(Self::NeverRun),
3140 "PIPELINE_STATE_BELOW_THRESHOLD" => Some(Self::BelowThreshold),
3141 "PIPELINE_STATE_NO_CLUSTERS" => Some(Self::NoClusters),
3142 "PIPELINE_STATE_READY" => Some(Self::Ready),
3143 _ => None,
3144 }
3145 }
3146}
3147#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3152pub struct InviteLink {
3153 #[prost(string, tag="1")]
3155 pub id: ::prost::alloc::string::String,
3156 #[prost(string, tag="2")]
3158 pub token: ::prost::alloc::string::String,
3159 #[prost(string, tag="3")]
3161 pub role_id: ::prost::alloc::string::String,
3162 #[prost(int32, tag="4")]
3165 pub max_uses: i32,
3166 #[prost(int32, tag="5")]
3168 pub use_count: i32,
3169 #[prost(message, optional, tag="6")]
3171 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3172 #[prost(message, optional, tag="7")]
3174 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
3175 #[prost(string, tag="8")]
3177 pub created_by: ::prost::alloc::string::String,
3178 #[prost(message, optional, tag="9")]
3180 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3181 #[prost(string, tag="10")]
3184 pub data_governance_region: ::prost::alloc::string::String,
3185}
3186#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3188pub struct CreateInviteLinkRequest {
3189 #[prost(string, tag="1")]
3191 pub role_id: ::prost::alloc::string::String,
3192 #[prost(int32, tag="2")]
3194 pub max_uses: i32,
3195 #[prost(int32, tag="3")]
3198 pub expires_in_hours: i32,
3199 #[prost(string, tag="4")]
3202 pub data_governance_region: ::prost::alloc::string::String,
3203}
3204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3206pub struct CreateInviteLinkResponse {
3207 #[prost(message, optional, tag="1")]
3209 pub invite_link: ::core::option::Option<InviteLink>,
3210 #[prost(string, tag="2")]
3212 pub url: ::prost::alloc::string::String,
3213}
3214#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3216pub struct ListInviteLinksRequest {
3217}
3218#[derive(Clone, PartialEq, ::prost::Message)]
3220pub struct ListInviteLinksResponse {
3221 #[prost(message, repeated, tag="1")]
3223 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
3224}
3225#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3227pub struct RevokeInviteLinkRequest {
3228 #[prost(string, tag="1")]
3230 pub invite_link_id: ::prost::alloc::string::String,
3231}
3232#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3234pub struct RevokeInviteLinkResponse {
3235}
3236#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3238pub struct RedeemInviteLinkRequest {
3239 #[prost(string, tag="1")]
3241 pub token: ::prost::alloc::string::String,
3242}
3243#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3245pub struct RedeemInviteLinkResponse {
3246 #[prost(string, tag="1")]
3248 pub organization_name: ::prost::alloc::string::String,
3249}
3250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3252pub struct ValidateInviteLinkRequest {
3253 #[prost(string, tag="1")]
3255 pub token: ::prost::alloc::string::String,
3256 #[prost(string, tag="2")]
3259 pub email: ::prost::alloc::string::String,
3260}
3261#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3263pub struct ValidateInviteLinkResponse {
3264 #[prost(string, tag="1")]
3266 pub organization_name: ::prost::alloc::string::String,
3267}
3268#[derive(Clone, PartialEq, ::prost::Message)]
3272pub struct InviteUserRequest {
3273 #[prost(string, tag="1")]
3276 pub email: ::prost::alloc::string::String,
3277 #[prost(string, tag="2")]
3280 pub name: ::prost::alloc::string::String,
3281 #[prost(string, tag="4")]
3283 pub role_id: ::prost::alloc::string::String,
3284 #[prost(message, optional, tag="5")]
3286 pub profile: ::core::option::Option<UserProfile>,
3287 #[prost(string, tag="6")]
3290 pub data_governance_region: ::prost::alloc::string::String,
3291}
3292#[derive(Clone, PartialEq, ::prost::Message)]
3294pub struct InviteUserResponse {
3295 #[prost(message, optional, tag="1")]
3297 pub user: ::core::option::Option<User>,
3298}
3299#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3301pub struct GetUserRequest {
3302 #[prost(string, tag="1")]
3304 pub user_id: ::prost::alloc::string::String,
3305}
3306#[derive(Clone, PartialEq, ::prost::Message)]
3308pub struct GetUserResponse {
3309 #[prost(message, optional, tag="1")]
3311 pub user: ::core::option::Option<User>,
3312}
3313#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3315pub struct ListUsersRequest {
3316 #[prost(message, optional, tag="1")]
3318 pub pagination: ::core::option::Option<Pagination>,
3319}
3320#[derive(Clone, PartialEq, ::prost::Message)]
3322pub struct ListUsersResponse {
3323 #[prost(message, repeated, tag="1")]
3325 pub users: ::prost::alloc::vec::Vec<User>,
3326 #[prost(message, optional, tag="2")]
3328 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3329}
3330#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3332pub struct UpdateUserRoleRequest {
3333 #[prost(string, tag="1")]
3335 pub user_id: ::prost::alloc::string::String,
3336 #[prost(string, tag="2")]
3338 pub role_id: ::prost::alloc::string::String,
3339}
3340#[derive(Clone, PartialEq, ::prost::Message)]
3342pub struct UpdateUserRoleResponse {
3343 #[prost(message, optional, tag="1")]
3345 pub user: ::core::option::Option<User>,
3346}
3347#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3349pub struct DeactivateUserRequest {
3350 #[prost(string, tag="1")]
3352 pub user_id: ::prost::alloc::string::String,
3353}
3354#[derive(Clone, PartialEq, ::prost::Message)]
3356pub struct DeactivateUserResponse {
3357 #[prost(message, optional, tag="1")]
3359 pub user: ::core::option::Option<User>,
3360}
3361#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3363pub struct ReactivateUserRequest {
3364 #[prost(string, tag="1")]
3366 pub user_id: ::prost::alloc::string::String,
3367}
3368#[derive(Clone, PartialEq, ::prost::Message)]
3370pub struct ReactivateUserResponse {
3371 #[prost(message, optional, tag="1")]
3373 pub user: ::core::option::Option<User>,
3374}
3375#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3377pub struct RevokeInviteRequest {
3378 #[prost(string, tag="1")]
3381 pub user_id: ::prost::alloc::string::String,
3382}
3383#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3385pub struct RevokeInviteResponse {
3386}
3387#[derive(Clone, PartialEq, ::prost::Message)]
3389pub struct UpdateUserProfileRequest {
3390 #[prost(string, tag="1")]
3393 pub user_id: ::prost::alloc::string::String,
3394 #[prost(message, optional, tag="2")]
3396 pub profile: ::core::option::Option<UserProfile>,
3397}
3398#[derive(Clone, PartialEq, ::prost::Message)]
3400pub struct UpdateUserProfileResponse {
3401 #[prost(message, optional, tag="1")]
3403 pub user: ::core::option::Option<User>,
3404}
3405#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3407pub struct GetUserSettingsRequest {
3408}
3409#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3411pub struct GetUserSettingsResponse {
3412 #[prost(message, optional, tag="1")]
3414 pub settings: ::core::option::Option<UserSettings>,
3415}
3416#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3418pub struct UpdateUserSettingsRequest {
3419 #[prost(message, optional, tag="1")]
3422 pub settings: ::core::option::Option<UserSettings>,
3423}
3424#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3426pub struct UpdateUserSettingsResponse {
3427 #[prost(message, optional, tag="1")]
3429 pub settings: ::core::option::Option<UserSettings>,
3430}
3431#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3433pub struct BulkInviteUsersRequest {
3434 #[prost(string, repeated, tag="1")]
3437 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3438 #[prost(string, tag="2")]
3440 pub role_id: ::prost::alloc::string::String,
3441}
3442#[derive(Clone, PartialEq, ::prost::Message)]
3444pub struct BulkInviteResult {
3445 #[prost(string, tag="1")]
3447 pub email: ::prost::alloc::string::String,
3448 #[prost(bool, tag="2")]
3450 pub success: bool,
3451 #[prost(string, tag="3")]
3454 pub error: ::prost::alloc::string::String,
3455 #[prost(message, optional, tag="4")]
3457 pub user: ::core::option::Option<User>,
3458}
3459#[derive(Clone, PartialEq, ::prost::Message)]
3461pub struct BulkInviteUsersResponse {
3462 #[prost(message, repeated, tag="1")]
3464 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
3465 #[prost(int32, tag="2")]
3467 pub invited_count: i32,
3468 #[prost(int32, tag="3")]
3470 pub failed_count: i32,
3471}
3472#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3476pub struct ConfirmPasskeyEnrollmentRequest {
3477}
3478#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3480pub struct ConfirmPasskeyEnrollmentResponse {
3481 #[prost(bool, tag="1")]
3483 pub confirmed: bool,
3484}
3485#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3487pub struct UpdateUserRegionRequest {
3488 #[prost(string, tag="1")]
3490 pub user_id: ::prost::alloc::string::String,
3491 #[prost(string, tag="2")]
3494 pub data_governance_region: ::prost::alloc::string::String,
3495}
3496#[derive(Clone, PartialEq, ::prost::Message)]
3498pub struct UpdateUserRegionResponse {
3499 #[prost(message, optional, tag="1")]
3501 pub user: ::core::option::Option<User>,
3502 #[prost(string, tag="2")]
3505 pub migration_workflow_id: ::prost::alloc::string::String,
3506}
3507#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3512pub struct SsoAttributeMapping {
3513 #[prost(string, tag="1")]
3516 pub idp_claim: ::prost::alloc::string::String,
3517 #[prost(string, tag="2")]
3521 pub profile_field: ::prost::alloc::string::String,
3522}
3523#[derive(Clone, PartialEq, ::prost::Message)]
3525pub struct Organization {
3526 #[prost(string, tag="1")]
3528 pub id: ::prost::alloc::string::String,
3529 #[prost(string, tag="2")]
3532 pub name: ::prost::alloc::string::String,
3533 #[prost(message, optional, tag="3")]
3535 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3536 #[prost(message, optional, tag="4")]
3538 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3539 #[prost(enumeration="Industry", tag="5")]
3541 pub industry: i32,
3542 #[prost(enumeration="CompanySize", tag="6")]
3544 pub company_size: i32,
3545 #[prost(message, repeated, tag="7")]
3548 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3549 #[prost(string, tag="8")]
3553 pub default_locale: ::prost::alloc::string::String,
3554 #[prost(enumeration="OrgType", tag="9")]
3556 pub org_type: i32,
3557 #[prost(message, optional, tag="10")]
3559 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3560 #[prost(string, tag="11")]
3563 pub data_governance_region: ::prost::alloc::string::String,
3564 #[prost(string, tag="12")]
3567 pub data_content_region: ::prost::alloc::string::String,
3568 #[prost(int32, tag="13")]
3573 pub ml_retrain_cold_threshold: i32,
3574 #[prost(bool, tag="14")]
3576 pub ml_cancelled_counts: bool,
3577 #[prost(int32, tag="15")]
3579 pub ml_manual_limit_monthly: i32,
3580 #[prost(int32, tag="16")]
3582 pub ml_manual_retrains_used: i32,
3583 #[prost(bool, tag="17")]
3585 pub ml_needs_retrain: bool,
3586 #[prost(int32, tag="18")]
3588 pub campaigns_since_last_training: i32,
3589 #[prost(int32, tag="19")]
3591 pub total_completed_campaigns: i32,
3592 #[prost(message, optional, tag="20")]
3594 pub last_ml_training_at: ::core::option::Option<::prost_types::Timestamp>,
3595}
3596#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3600pub struct CreateOrganizationRequest {
3601 #[prost(string, tag="1")]
3604 pub name: ::prost::alloc::string::String,
3605 #[prost(enumeration="Industry", tag="2")]
3607 pub industry: i32,
3608 #[prost(enumeration="CompanySize", tag="3")]
3610 pub company_size: i32,
3611 #[prost(string, tag="4")]
3614 pub access_code: ::prost::alloc::string::String,
3615 #[prost(string, tag="5")]
3618 pub data_governance_region: ::prost::alloc::string::String,
3619}
3620#[derive(Clone, PartialEq, ::prost::Message)]
3622pub struct CreateOrganizationResponse {
3623 #[prost(message, optional, tag="1")]
3625 pub organization: ::core::option::Option<Organization>,
3626 #[prost(message, optional, tag="2")]
3628 pub admin_user: ::core::option::Option<User>,
3629}
3630#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3632pub struct GetOrganizationRequest {
3633}
3634#[derive(Clone, PartialEq, ::prost::Message)]
3636pub struct GetOrganizationResponse {
3637 #[prost(message, optional, tag="1")]
3639 pub organization: ::core::option::Option<Organization>,
3640}
3641#[derive(Clone, PartialEq, ::prost::Message)]
3643pub struct UpdateOrganizationRequest {
3644 #[prost(string, tag="1")]
3647 pub name: ::prost::alloc::string::String,
3648 #[prost(message, optional, tag="2")]
3650 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
3651 #[prost(enumeration="Industry", tag="3")]
3653 pub industry: i32,
3654 #[prost(enumeration="CompanySize", tag="4")]
3656 pub company_size: i32,
3657 #[prost(string, tag="5")]
3660 pub default_locale: ::prost::alloc::string::String,
3661 #[prost(int32, tag="6")]
3663 pub ml_retrain_cold_threshold: i32,
3664 #[prost(bool, optional, tag="7")]
3667 pub ml_cancelled_counts: ::core::option::Option<bool>,
3668 #[prost(int32, tag="8")]
3671 pub ml_manual_limit_monthly: i32,
3672}
3673#[derive(Clone, PartialEq, ::prost::Message)]
3675pub struct UpdateOrganizationResponse {
3676 #[prost(message, optional, tag="1")]
3678 pub organization: ::core::option::Option<Organization>,
3679}
3680#[derive(Clone, PartialEq, ::prost::Message)]
3682pub struct UpdateSsoAttributeMappingsRequest {
3683 #[prost(message, repeated, tag="1")]
3685 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
3686}
3687#[derive(Clone, PartialEq, ::prost::Message)]
3689pub struct UpdateSsoAttributeMappingsResponse {
3690 #[prost(message, optional, tag="1")]
3692 pub organization: ::core::option::Option<Organization>,
3693}
3694#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3696pub struct RotateAnalyticsSaltRequest {
3697 #[prost(int32, tag="1")]
3699 pub new_bucket_count: i32,
3700}
3701#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3703pub struct RotateAnalyticsSaltResponse {
3704 #[prost(int32, tag="1")]
3706 pub bucket_count: i32,
3707}
3708#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3710pub struct UpdateAnalyticsEpsilonRequest {
3711 #[prost(float, tag="1")]
3713 pub epsilon: f32,
3714}
3715#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3717pub struct UpdateAnalyticsEpsilonResponse {
3718 #[prost(float, tag="1")]
3720 pub epsilon: f32,
3721}
3722#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3724pub struct CreateSandboxOrganizationRequest {
3725 #[prost(string, tag="1")]
3728 pub name: ::prost::alloc::string::String,
3729 #[prost(message, optional, tag="2")]
3732 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
3733 #[prost(string, tag="3")]
3736 pub data_governance_region: ::prost::alloc::string::String,
3737 #[prost(string, tag="4")]
3741 pub fixture_id: ::prost::alloc::string::String,
3742}
3743#[derive(Clone, PartialEq, ::prost::Message)]
3745pub struct CreateSandboxOrganizationResponse {
3746 #[prost(message, optional, tag="1")]
3748 pub organization: ::core::option::Option<Organization>,
3749 #[prost(message, optional, tag="2")]
3751 pub admin_user: ::core::option::Option<User>,
3752}
3753#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3756pub struct DeleteSandboxOrganizationRequest {
3757 #[prost(string, tag="1")]
3759 pub org_id: ::prost::alloc::string::String,
3760}
3761#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3764pub struct DeleteSandboxOrganizationResponse {
3765 #[prost(string, tag="1")]
3767 pub workflow_id: ::prost::alloc::string::String,
3768}
3769#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3771pub struct SandboxFixture {
3772 #[prost(string, tag="1")]
3774 pub id: ::prost::alloc::string::String,
3775 #[prost(string, tag="2")]
3777 pub name: ::prost::alloc::string::String,
3778 #[prost(string, tag="3")]
3780 pub description: ::prost::alloc::string::String,
3781 #[prost(bool, tag="4")]
3784 pub is_default: bool,
3785}
3786#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3789pub struct ListSandboxFixturesRequest {
3790}
3791#[derive(Clone, PartialEq, ::prost::Message)]
3793pub struct ListSandboxFixturesResponse {
3794 #[prost(message, repeated, tag="1")]
3796 pub fixtures: ::prost::alloc::vec::Vec<SandboxFixture>,
3797}
3798#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3801pub struct ListUserOrganizationsRequest {
3802}
3803#[derive(Clone, PartialEq, ::prost::Message)]
3805pub struct ListUserOrganizationsResponse {
3806 #[prost(message, repeated, tag="1")]
3809 pub organizations: ::prost::alloc::vec::Vec<Organization>,
3810}
3811#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3816pub struct ListUserSandboxesRequest {
3817}
3818#[derive(Clone, PartialEq, ::prost::Message)]
3820pub struct ListUserSandboxesResponse {
3821 #[prost(message, repeated, tag="1")]
3826 pub sandboxes: ::prost::alloc::vec::Vec<Organization>,
3827}
3828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3832#[repr(i32)]
3833pub enum Industry {
3834 Unspecified = 0,
3835 Technology = 1,
3836 Finance = 2,
3837 Healthcare = 3,
3838 Education = 4,
3839 Retail = 5,
3840 Manufacturing = 6,
3841 Media = 7,
3842 Other = 8,
3843}
3844impl Industry {
3845 pub fn as_str_name(&self) -> &'static str {
3850 match self {
3851 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
3852 Self::Technology => "INDUSTRY_TECHNOLOGY",
3853 Self::Finance => "INDUSTRY_FINANCE",
3854 Self::Healthcare => "INDUSTRY_HEALTHCARE",
3855 Self::Education => "INDUSTRY_EDUCATION",
3856 Self::Retail => "INDUSTRY_RETAIL",
3857 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
3858 Self::Media => "INDUSTRY_MEDIA",
3859 Self::Other => "INDUSTRY_OTHER",
3860 }
3861 }
3862 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3864 match value {
3865 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
3866 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
3867 "INDUSTRY_FINANCE" => Some(Self::Finance),
3868 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
3869 "INDUSTRY_EDUCATION" => Some(Self::Education),
3870 "INDUSTRY_RETAIL" => Some(Self::Retail),
3871 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
3872 "INDUSTRY_MEDIA" => Some(Self::Media),
3873 "INDUSTRY_OTHER" => Some(Self::Other),
3874 _ => None,
3875 }
3876 }
3877}
3878#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3880#[repr(i32)]
3881pub enum CompanySize {
3882 Unspecified = 0,
3883 CompanySize1200 = 1,
3884 CompanySize200500 = 2,
3885 CompanySize5001000 = 3,
3886 CompanySize10005000 = 4,
3887 CompanySize5000Plus = 5,
3888}
3889impl CompanySize {
3890 pub fn as_str_name(&self) -> &'static str {
3895 match self {
3896 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
3897 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
3898 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
3899 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3900 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3901 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3902 }
3903 }
3904 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3906 match value {
3907 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3908 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3909 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3910 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3911 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3912 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3913 _ => None,
3914 }
3915 }
3916}
3917#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3919#[repr(i32)]
3920pub enum OrgType {
3921 Unspecified = 0,
3922 Standard = 1,
3923 Sandbox = 2,
3924 Staff = 3,
3927}
3928impl OrgType {
3929 pub fn as_str_name(&self) -> &'static str {
3934 match self {
3935 Self::Unspecified => "ORG_TYPE_UNSPECIFIED",
3936 Self::Standard => "ORG_TYPE_STANDARD",
3937 Self::Sandbox => "ORG_TYPE_SANDBOX",
3938 Self::Staff => "ORG_TYPE_STAFF",
3939 }
3940 }
3941 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3943 match value {
3944 "ORG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3945 "ORG_TYPE_STANDARD" => Some(Self::Standard),
3946 "ORG_TYPE_SANDBOX" => Some(Self::Sandbox),
3947 "ORG_TYPE_STAFF" => Some(Self::Staff),
3948 _ => None,
3949 }
3950 }
3951}
3952#[derive(Clone, PartialEq, ::prost::Message)]
3956pub struct UserRenderContext {
3957 #[prost(string, tag="1")]
3959 pub user_id: ::prost::alloc::string::String,
3960 #[prost(map="string, string", tag="2")]
3963 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3964}
3965#[derive(Clone, PartialEq, ::prost::Message)]
3967pub struct RenderBatchRequest {
3968 #[prost(string, tag="1")]
3970 pub template_id: ::prost::alloc::string::String,
3971 #[prost(int32, tag="2")]
3973 pub version: i32,
3974 #[prost(message, repeated, tag="3")]
3977 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3978}
3979#[derive(Clone, PartialEq, ::prost::Message)]
3982pub struct RenderBatchResponse {
3983 #[prost(string, tag="1")]
3985 pub user_id: ::prost::alloc::string::String,
3986 #[prost(message, optional, tag="2")]
3988 pub message: ::core::option::Option<Message>,
3989 #[prost(string, tag="3")]
3991 pub error: ::prost::alloc::string::String,
3992}
3993#[derive(Clone, PartialEq, ::prost::Message)]
3998pub struct SessionRecording {
3999 #[prost(string, tag="1")]
4001 pub id: ::prost::alloc::string::String,
4002 #[prost(message, optional, tag="2")]
4004 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
4005 #[prost(message, optional, tag="3")]
4007 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
4008 #[prost(int32, tag="4")]
4010 pub duration_seconds: i32,
4011 #[prost(float, tag="5")]
4013 pub activity_score: f32,
4014}
4015#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4017pub struct ListSessionRecordingsRequest {
4018 #[prost(string, tag="1")]
4021 pub campaign_id: ::prost::alloc::string::String,
4022 #[prost(message, optional, tag="2")]
4024 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
4025 #[prost(message, optional, tag="3")]
4027 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
4028 #[prost(message, optional, tag="4")]
4030 pub pagination: ::core::option::Option<Pagination>,
4031}
4032#[derive(Clone, PartialEq, ::prost::Message)]
4034pub struct ListSessionRecordingsResponse {
4035 #[prost(message, repeated, tag="1")]
4037 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
4038 #[prost(message, optional, tag="2")]
4040 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4041}
4042#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4044pub struct GetSessionSnapshotsRequest {
4045 #[prost(string, tag="1")]
4048 pub recording_id: ::prost::alloc::string::String,
4049}
4050#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4052pub struct GetSessionSnapshotsResponse {
4053 #[prost(string, tag="1")]
4056 pub snapshot_data: ::prost::alloc::string::String,
4057}
4058#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4062pub struct ListRolesRequest {
4063}
4064#[derive(Clone, PartialEq, ::prost::Message)]
4066pub struct ListRolesResponse {
4067 #[prost(message, repeated, tag="1")]
4069 pub roles: ::prost::alloc::vec::Vec<Role>,
4070}
4071#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4073pub struct CreateRoleRequest {
4074 #[prost(string, tag="1")]
4077 pub name: ::prost::alloc::string::String,
4078 #[prost(enumeration="Permission", repeated, tag="2")]
4081 pub permissions: ::prost::alloc::vec::Vec<i32>,
4082}
4083#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4085pub struct CreateRoleResponse {
4086 #[prost(message, optional, tag="1")]
4088 pub role: ::core::option::Option<Role>,
4089}
4090#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4092pub struct UpdateRoleRequest {
4093 #[prost(string, tag="1")]
4095 pub role_id: ::prost::alloc::string::String,
4096 #[prost(string, tag="2")]
4098 pub name: ::prost::alloc::string::String,
4099 #[prost(enumeration="Permission", repeated, tag="3")]
4103 pub permissions: ::prost::alloc::vec::Vec<i32>,
4104}
4105#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4107pub struct UpdateRoleResponse {
4108 #[prost(message, optional, tag="1")]
4110 pub role: ::core::option::Option<Role>,
4111}
4112#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4114pub struct DeleteRoleRequest {
4115 #[prost(string, tag="1")]
4117 pub role_id: ::prost::alloc::string::String,
4118}
4119#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4121pub struct DeleteRoleResponse {
4122}
4123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4129pub struct SamlAttributeNames {
4130 #[prost(string, tag="1")]
4132 pub email: ::prost::alloc::string::String,
4133 #[prost(string, tag="2")]
4135 pub given_name: ::prost::alloc::string::String,
4136 #[prost(string, tag="3")]
4138 pub family_name: ::prost::alloc::string::String,
4139}
4140#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4142pub struct SsoProvider {
4143 #[prost(string, tag="1")]
4145 pub id: ::prost::alloc::string::String,
4146 #[prost(string, tag="2")]
4149 pub domain: ::prost::alloc::string::String,
4150 #[prost(enumeration="SsoProviderType", tag="3")]
4152 pub r#type: i32,
4153 #[prost(string, tag="4")]
4156 pub metadata_url: ::prost::alloc::string::String,
4157 #[prost(string, tag="5")]
4160 pub idp_provider_name: ::prost::alloc::string::String,
4161 #[prost(message, optional, tag="6")]
4163 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4164 #[prost(message, optional, tag="7")]
4166 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4167 #[prost(message, optional, tag="8")]
4169 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4170}
4171#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4174pub struct CheckSsoByDomainRequest {
4175 #[prost(string, tag="1")]
4178 pub email: ::prost::alloc::string::String,
4179}
4180#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4182pub struct CheckSsoByDomainResponse {
4183 #[prost(bool, tag="1")]
4185 pub sso_enabled: bool,
4186 #[prost(string, tag="2")]
4189 pub provider_name: ::prost::alloc::string::String,
4190}
4191#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4193pub struct CreateSsoProviderRequest {
4194 #[prost(string, tag="1")]
4197 pub domain: ::prost::alloc::string::String,
4198 #[prost(enumeration="SsoProviderType", tag="2")]
4200 pub r#type: i32,
4201 #[prost(string, tag="3")]
4204 pub metadata_url: ::prost::alloc::string::String,
4205 #[prost(message, optional, tag="4")]
4208 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
4209}
4210#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4212pub struct CreateSsoProviderResponse {
4213 #[prost(message, optional, tag="1")]
4215 pub provider: ::core::option::Option<SsoProvider>,
4216}
4217#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4220pub struct GetSsoProviderRequest {
4221}
4222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4224pub struct GetSsoProviderResponse {
4225 #[prost(message, optional, tag="1")]
4227 pub provider: ::core::option::Option<SsoProvider>,
4228}
4229#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4231pub struct DeleteSsoProviderRequest {
4232 #[prost(string, tag="1")]
4234 pub provider_id: ::prost::alloc::string::String,
4235}
4236#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4238pub struct DeleteSsoProviderResponse {
4239}
4240#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4244#[repr(i32)]
4245pub enum SsoProviderType {
4246 Unspecified = 0,
4248 Saml = 1,
4250 Oidc = 2,
4252}
4253impl SsoProviderType {
4254 pub fn as_str_name(&self) -> &'static str {
4259 match self {
4260 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
4261 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
4262 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
4263 }
4264 }
4265 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4267 match value {
4268 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4269 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
4270 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
4271 _ => None,
4272 }
4273 }
4274}
4275#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4281pub struct Team {
4282 #[prost(string, tag="1")]
4284 pub id: ::prost::alloc::string::String,
4285 #[prost(string, tag="2")]
4288 pub name: ::prost::alloc::string::String,
4289 #[prost(string, tag="3")]
4292 pub description: ::prost::alloc::string::String,
4293 #[prost(int32, tag="4")]
4295 pub member_count: i32,
4296 #[prost(message, optional, tag="5")]
4298 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4299 #[prost(message, optional, tag="6")]
4301 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4302 #[prost(bool, tag="7")]
4304 pub is_default: bool,
4305 #[prost(string, tag="8")]
4307 pub created_by: ::prost::alloc::string::String,
4308}
4309#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4311pub struct CreateTeamRequest {
4312 #[prost(string, tag="1")]
4315 pub name: ::prost::alloc::string::String,
4316 #[prost(string, tag="2")]
4319 pub description: ::prost::alloc::string::String,
4320}
4321#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4323pub struct CreateTeamResponse {
4324 #[prost(message, optional, tag="1")]
4326 pub team: ::core::option::Option<Team>,
4327}
4328#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4330pub struct GetTeamRequest {
4331 #[prost(string, tag="1")]
4333 pub team_id: ::prost::alloc::string::String,
4334}
4335#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4337pub struct GetTeamResponse {
4338 #[prost(message, optional, tag="1")]
4340 pub team: ::core::option::Option<Team>,
4341}
4342#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4344pub struct ListTeamsRequest {
4345 #[prost(message, optional, tag="1")]
4347 pub pagination: ::core::option::Option<Pagination>,
4348}
4349#[derive(Clone, PartialEq, ::prost::Message)]
4351pub struct ListTeamsResponse {
4352 #[prost(message, repeated, tag="1")]
4354 pub teams: ::prost::alloc::vec::Vec<Team>,
4355 #[prost(message, optional, tag="2")]
4357 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4358}
4359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4361pub struct UpdateTeamRequest {
4362 #[prost(string, tag="1")]
4364 pub team_id: ::prost::alloc::string::String,
4365 #[prost(string, tag="2")]
4369 pub name: ::prost::alloc::string::String,
4370 #[prost(string, tag="3")]
4373 pub description: ::prost::alloc::string::String,
4374}
4375#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4377pub struct UpdateTeamResponse {
4378 #[prost(message, optional, tag="1")]
4380 pub team: ::core::option::Option<Team>,
4381}
4382#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4384pub struct DeleteTeamRequest {
4385 #[prost(string, tag="1")]
4388 pub team_id: ::prost::alloc::string::String,
4389}
4390#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4392pub struct DeleteTeamResponse {
4393}
4394#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4396pub struct AddTeamMembersRequest {
4397 #[prost(string, tag="1")]
4399 pub team_id: ::prost::alloc::string::String,
4400 #[prost(string, repeated, tag="2")]
4404 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4405}
4406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4408pub struct AddTeamMembersResponse {
4409 #[prost(message, optional, tag="1")]
4411 pub team: ::core::option::Option<Team>,
4412}
4413#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4415pub struct RemoveTeamMembersRequest {
4416 #[prost(string, tag="1")]
4418 pub team_id: ::prost::alloc::string::String,
4419 #[prost(string, repeated, tag="2")]
4422 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4423}
4424#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4426pub struct RemoveTeamMembersResponse {
4427 #[prost(message, optional, tag="1")]
4429 pub team: ::core::option::Option<Team>,
4430}
4431#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4433pub struct ListTeamMembersRequest {
4434 #[prost(string, tag="1")]
4436 pub team_id: ::prost::alloc::string::String,
4437 #[prost(message, optional, tag="2")]
4439 pub pagination: ::core::option::Option<Pagination>,
4440}
4441#[derive(Clone, PartialEq, ::prost::Message)]
4443pub struct ListTeamMembersResponse {
4444 #[prost(message, repeated, tag="1")]
4446 pub users: ::prost::alloc::vec::Vec<User>,
4447 #[prost(message, optional, tag="2")]
4449 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4450}
4451#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4455pub struct TemplateVariable {
4456 #[prost(string, tag="1")]
4459 pub name: ::prost::alloc::string::String,
4460 #[prost(string, tag="2")]
4463 pub description: ::prost::alloc::string::String,
4464 #[prost(bool, tag="3")]
4466 pub required: bool,
4467 #[prost(enumeration="TemplateVariableSource", tag="4")]
4469 pub source: i32,
4470 #[prost(string, tag="5")]
4473 pub default_value: ::prost::alloc::string::String,
4474 #[prost(bool, tag="6")]
4477 pub pii: bool,
4478}
4479#[derive(Clone, PartialEq, ::prost::Message)]
4482pub struct Template {
4483 #[prost(string, tag="1")]
4485 pub id: ::prost::alloc::string::String,
4486 #[prost(string, tag="2")]
4489 pub name: ::prost::alloc::string::String,
4490 #[prost(string, tag="3")]
4493 pub body: ::prost::alloc::string::String,
4494 #[prost(message, repeated, tag="4")]
4496 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4497 #[prost(int32, tag="5")]
4499 pub version: i32,
4500 #[prost(message, optional, tag="6")]
4502 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4503 #[prost(message, optional, tag="7")]
4505 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
4506 #[prost(string, tag="8")]
4510 pub title: ::prost::alloc::string::String,
4511 #[prost(enumeration="TemplateType", tag="9")]
4514 pub r#type: i32,
4515 #[prost(string, tag="10")]
4519 pub source_locale: ::prost::alloc::string::String,
4520}
4521#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4524pub struct TemplateTranslation {
4525 #[prost(string, tag="1")]
4527 pub id: ::prost::alloc::string::String,
4528 #[prost(string, tag="2")]
4530 pub template_id: ::prost::alloc::string::String,
4531 #[prost(int32, tag="3")]
4533 pub version: i32,
4534 #[prost(string, tag="4")]
4536 pub locale: ::prost::alloc::string::String,
4537 #[prost(string, tag="5")]
4540 pub title: ::prost::alloc::string::String,
4541 #[prost(string, tag="6")]
4544 pub body: ::prost::alloc::string::String,
4545 #[prost(enumeration="TranslationStatus", tag="7")]
4547 pub status: i32,
4548 #[prost(string, tag="8")]
4550 pub translated_by: ::prost::alloc::string::String,
4551 #[prost(string, tag="9")]
4553 pub reviewed_by: ::prost::alloc::string::String,
4554 #[prost(message, optional, tag="10")]
4556 pub reviewed_at: ::core::option::Option<::prost_types::Timestamp>,
4557 #[prost(message, optional, tag="11")]
4559 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
4560}
4561#[derive(Clone, PartialEq, ::prost::Message)]
4563pub struct CreateTemplateRequest {
4564 #[prost(string, tag="1")]
4567 pub name: ::prost::alloc::string::String,
4568 #[prost(string, tag="2")]
4571 pub body: ::prost::alloc::string::String,
4572 #[prost(message, repeated, tag="3")]
4574 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4575 #[prost(string, tag="4")]
4578 pub title: ::prost::alloc::string::String,
4579 #[prost(enumeration="TemplateType", tag="5")]
4581 pub r#type: i32,
4582 #[prost(string, tag="6")]
4585 pub source_locale: ::prost::alloc::string::String,
4586}
4587#[derive(Clone, PartialEq, ::prost::Message)]
4589pub struct CreateTemplateResponse {
4590 #[prost(message, optional, tag="1")]
4592 pub template: ::core::option::Option<Template>,
4593}
4594#[derive(Clone, PartialEq, ::prost::Message)]
4596pub struct UpdateTemplateRequest {
4597 #[prost(string, tag="1")]
4599 pub template_id: ::prost::alloc::string::String,
4600 #[prost(string, tag="2")]
4603 pub body: ::prost::alloc::string::String,
4604 #[prost(message, repeated, tag="3")]
4606 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
4607}
4608#[derive(Clone, PartialEq, ::prost::Message)]
4610pub struct UpdateTemplateResponse {
4611 #[prost(message, optional, tag="1")]
4613 pub template: ::core::option::Option<Template>,
4614}
4615#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4617pub struct GetTemplateRequest {
4618 #[prost(string, tag="1")]
4620 pub template_id: ::prost::alloc::string::String,
4621 #[prost(int32, tag="2")]
4623 pub version: i32,
4624}
4625#[derive(Clone, PartialEq, ::prost::Message)]
4627pub struct GetTemplateResponse {
4628 #[prost(message, optional, tag="1")]
4630 pub template: ::core::option::Option<Template>,
4631}
4632#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4634pub struct ListTemplatesRequest {
4635 #[prost(message, optional, tag="1")]
4637 pub pagination: ::core::option::Option<Pagination>,
4638 #[prost(enumeration="TemplateType", tag="2")]
4640 pub r#type: i32,
4641}
4642#[derive(Clone, PartialEq, ::prost::Message)]
4644pub struct ListTemplatesResponse {
4645 #[prost(message, repeated, tag="1")]
4647 pub templates: ::prost::alloc::vec::Vec<Template>,
4648 #[prost(message, optional, tag="2")]
4650 pub pagination_meta: ::core::option::Option<PaginationMeta>,
4651}
4652#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4654pub struct CreateTemplateTranslationRequest {
4655 #[prost(string, tag="1")]
4657 pub template_id: ::prost::alloc::string::String,
4658 #[prost(int32, tag="2")]
4660 pub version: i32,
4661 #[prost(string, tag="3")]
4663 pub locale: ::prost::alloc::string::String,
4664 #[prost(string, tag="4")]
4666 pub title: ::prost::alloc::string::String,
4667 #[prost(string, tag="5")]
4669 pub body: ::prost::alloc::string::String,
4670 #[prost(string, tag="6")]
4672 pub translated_by: ::prost::alloc::string::String,
4673 #[prost(enumeration="TranslationStatus", tag="7")]
4675 pub status: i32,
4676}
4677#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4679pub struct CreateTemplateTranslationResponse {
4680 #[prost(message, optional, tag="1")]
4682 pub translation: ::core::option::Option<TemplateTranslation>,
4683}
4684#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4686pub struct UpdateTemplateTranslationRequest {
4687 #[prost(string, tag="1")]
4689 pub translation_id: ::prost::alloc::string::String,
4690 #[prost(string, tag="2")]
4692 pub title: ::prost::alloc::string::String,
4693 #[prost(string, tag="3")]
4695 pub body: ::prost::alloc::string::String,
4696 #[prost(enumeration="TranslationStatus", tag="4")]
4698 pub status: i32,
4699}
4700#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4702pub struct UpdateTemplateTranslationResponse {
4703 #[prost(message, optional, tag="1")]
4705 pub translation: ::core::option::Option<TemplateTranslation>,
4706}
4707#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4709pub struct ListTemplateTranslationsRequest {
4710 #[prost(string, tag="1")]
4712 pub template_id: ::prost::alloc::string::String,
4713 #[prost(int32, tag="2")]
4715 pub version: i32,
4716}
4717#[derive(Clone, PartialEq, ::prost::Message)]
4719pub struct ListTemplateTranslationsResponse {
4720 #[prost(message, repeated, tag="1")]
4722 pub translations: ::prost::alloc::vec::Vec<TemplateTranslation>,
4723}
4724#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4726pub struct ApproveTemplateTranslationRequest {
4727 #[prost(string, tag="1")]
4729 pub translation_id: ::prost::alloc::string::String,
4730}
4731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4733pub struct ApproveTemplateTranslationResponse {
4734 #[prost(message, optional, tag="1")]
4736 pub translation: ::core::option::Option<TemplateTranslation>,
4737}
4738#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4742#[repr(i32)]
4743pub enum TemplateType {
4744 Unspecified = 0,
4746 Markdown = 1,
4748 Rich = 2,
4750 Html = 3,
4752}
4753impl TemplateType {
4754 pub fn as_str_name(&self) -> &'static str {
4759 match self {
4760 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
4761 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
4762 Self::Rich => "TEMPLATE_TYPE_RICH",
4763 Self::Html => "TEMPLATE_TYPE_HTML",
4764 }
4765 }
4766 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4768 match value {
4769 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
4770 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
4771 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
4772 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
4773 _ => None,
4774 }
4775 }
4776}
4777#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4779#[repr(i32)]
4780pub enum TemplateVariableSource {
4781 Unspecified = 0,
4783 Profile = 1,
4785 Custom = 2,
4787}
4788impl TemplateVariableSource {
4789 pub fn as_str_name(&self) -> &'static str {
4794 match self {
4795 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
4796 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
4797 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
4798 }
4799 }
4800 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4802 match value {
4803 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
4804 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
4805 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
4806 _ => None,
4807 }
4808 }
4809}
4810#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4812#[repr(i32)]
4813pub enum TranslationStatus {
4814 Unspecified = 0,
4815 Draft = 1,
4817 AiTranslated = 2,
4819 InReview = 3,
4821 Approved = 4,
4823}
4824impl TranslationStatus {
4825 pub fn as_str_name(&self) -> &'static str {
4830 match self {
4831 Self::Unspecified => "TRANSLATION_STATUS_UNSPECIFIED",
4832 Self::Draft => "TRANSLATION_STATUS_DRAFT",
4833 Self::AiTranslated => "TRANSLATION_STATUS_AI_TRANSLATED",
4834 Self::InReview => "TRANSLATION_STATUS_IN_REVIEW",
4835 Self::Approved => "TRANSLATION_STATUS_APPROVED",
4836 }
4837 }
4838 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4840 match value {
4841 "TRANSLATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
4842 "TRANSLATION_STATUS_DRAFT" => Some(Self::Draft),
4843 "TRANSLATION_STATUS_AI_TRANSLATED" => Some(Self::AiTranslated),
4844 "TRANSLATION_STATUS_IN_REVIEW" => Some(Self::InReview),
4845 "TRANSLATION_STATUS_APPROVED" => Some(Self::Approved),
4846 _ => None,
4847 }
4848 }
4849}
4850include!("pidgr.v1.tonic.rs");
4851