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")]
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 }
245}
246#[derive(Clone, PartialEq, ::prost::Message)]
248pub struct SendNotificationConfig {
249 #[prost(string, tag="1")]
252 pub r#type: ::prost::alloc::string::String,
253 #[prost(string, tag="2")]
257 pub template_id: ::prost::alloc::string::String,
258 #[prost(int32, tag="3")]
261 pub template_version: i32,
262 #[prost(string, tag="4")]
265 pub action_label: ::prost::alloc::string::String,
266 #[prost(enumeration="ActionType", tag="5")]
268 pub action_type: i32,
269 #[prost(map="string, string", tag="6")]
272 pub custom_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
273}
274#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
278pub struct DeadlineCheckConfig {
279 #[prost(string, tag="1")]
282 pub delay: ::prost::alloc::string::String,
283}
284#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
286pub struct SendReminderConfig {
287 #[prost(string, tag="1")]
290 pub r#type: ::prost::alloc::string::String,
291}
292#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct CallWebhookConfig {
295 #[prost(string, tag="1")]
298 pub name: ::prost::alloc::string::String,
299 #[prost(string, tag="2")]
304 pub url: ::prost::alloc::string::String,
305 #[prost(map="string, string", tag="3")]
308 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
309}
310#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
314#[repr(i32)]
315pub enum CampaignStatus {
316 Unspecified = 0,
318 Created = 1,
320 Running = 2,
322 Completed = 3,
324 Failed = 4,
326 Cancelled = 5,
328}
329impl CampaignStatus {
330 pub fn as_str_name(&self) -> &'static str {
335 match self {
336 Self::Unspecified => "CAMPAIGN_STATUS_UNSPECIFIED",
337 Self::Created => "CAMPAIGN_STATUS_CREATED",
338 Self::Running => "CAMPAIGN_STATUS_RUNNING",
339 Self::Completed => "CAMPAIGN_STATUS_COMPLETED",
340 Self::Failed => "CAMPAIGN_STATUS_FAILED",
341 Self::Cancelled => "CAMPAIGN_STATUS_CANCELLED",
342 }
343 }
344 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
346 match value {
347 "CAMPAIGN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
348 "CAMPAIGN_STATUS_CREATED" => Some(Self::Created),
349 "CAMPAIGN_STATUS_RUNNING" => Some(Self::Running),
350 "CAMPAIGN_STATUS_COMPLETED" => Some(Self::Completed),
351 "CAMPAIGN_STATUS_FAILED" => Some(Self::Failed),
352 "CAMPAIGN_STATUS_CANCELLED" => Some(Self::Cancelled),
353 _ => None,
354 }
355 }
356}
357#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
359#[repr(i32)]
360pub enum DeliveryStatus {
361 Unspecified = 0,
363 Pending = 1,
365 Sent = 2,
367 Delivered = 3,
369 Acknowledged = 4,
371 Missed = 5,
373 NoDevice = 6,
375 Failed = 7,
377}
378impl DeliveryStatus {
379 pub fn as_str_name(&self) -> &'static str {
384 match self {
385 Self::Unspecified => "DELIVERY_STATUS_UNSPECIFIED",
386 Self::Pending => "DELIVERY_STATUS_PENDING",
387 Self::Sent => "DELIVERY_STATUS_SENT",
388 Self::Delivered => "DELIVERY_STATUS_DELIVERED",
389 Self::Acknowledged => "DELIVERY_STATUS_ACKNOWLEDGED",
390 Self::Missed => "DELIVERY_STATUS_MISSED",
391 Self::NoDevice => "DELIVERY_STATUS_NO_DEVICE",
392 Self::Failed => "DELIVERY_STATUS_FAILED",
393 }
394 }
395 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
397 match value {
398 "DELIVERY_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
399 "DELIVERY_STATUS_PENDING" => Some(Self::Pending),
400 "DELIVERY_STATUS_SENT" => Some(Self::Sent),
401 "DELIVERY_STATUS_DELIVERED" => Some(Self::Delivered),
402 "DELIVERY_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
403 "DELIVERY_STATUS_MISSED" => Some(Self::Missed),
404 "DELIVERY_STATUS_NO_DEVICE" => Some(Self::NoDevice),
405 "DELIVERY_STATUS_FAILED" => Some(Self::Failed),
406 _ => None,
407 }
408 }
409}
410#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
412#[repr(i32)]
413pub enum Platform {
414 Unspecified = 0,
416 Ios = 1,
418 Android = 2,
420}
421impl Platform {
422 pub fn as_str_name(&self) -> &'static str {
427 match self {
428 Self::Unspecified => "PLATFORM_UNSPECIFIED",
429 Self::Ios => "PLATFORM_IOS",
430 Self::Android => "PLATFORM_ANDROID",
431 }
432 }
433 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
435 match value {
436 "PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
437 "PLATFORM_IOS" => Some(Self::Ios),
438 "PLATFORM_ANDROID" => Some(Self::Android),
439 _ => None,
440 }
441 }
442}
443#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
448#[repr(i32)]
449pub enum Permission {
450 Unspecified = 0,
452 OrgRead = 1,
454 OrgWrite = 2,
456 MembersRead = 3,
458 MembersInvite = 4,
460 MembersManage = 5,
462 CampaignsRead = 6,
464 CampaignsWrite = 7,
466 CampaignsStart = 8,
468 TemplatesRead = 9,
470 TemplatesWrite = 10,
472 InboxRead = 11,
474 InboxAct = 12,
476 GroupsAllRead = 13,
478 GroupsWrite = 14,
480 GroupsAllWrite = 15,
482 TeamsAllRead = 16,
484 TeamsWrite = 17,
486 TeamsAllWrite = 18,
488 PrivacyRead = 19,
490 PrivacyWrite = 20,
492 AuditRead = 21,
494}
495impl Permission {
496 pub fn as_str_name(&self) -> &'static str {
501 match self {
502 Self::Unspecified => "PERMISSION_UNSPECIFIED",
503 Self::OrgRead => "PERMISSION_ORG_READ",
504 Self::OrgWrite => "PERMISSION_ORG_WRITE",
505 Self::MembersRead => "PERMISSION_MEMBERS_READ",
506 Self::MembersInvite => "PERMISSION_MEMBERS_INVITE",
507 Self::MembersManage => "PERMISSION_MEMBERS_MANAGE",
508 Self::CampaignsRead => "PERMISSION_CAMPAIGNS_READ",
509 Self::CampaignsWrite => "PERMISSION_CAMPAIGNS_WRITE",
510 Self::CampaignsStart => "PERMISSION_CAMPAIGNS_START",
511 Self::TemplatesRead => "PERMISSION_TEMPLATES_READ",
512 Self::TemplatesWrite => "PERMISSION_TEMPLATES_WRITE",
513 Self::InboxRead => "PERMISSION_INBOX_READ",
514 Self::InboxAct => "PERMISSION_INBOX_ACT",
515 Self::GroupsAllRead => "PERMISSION_GROUPS_ALL_READ",
516 Self::GroupsWrite => "PERMISSION_GROUPS_WRITE",
517 Self::GroupsAllWrite => "PERMISSION_GROUPS_ALL_WRITE",
518 Self::TeamsAllRead => "PERMISSION_TEAMS_ALL_READ",
519 Self::TeamsWrite => "PERMISSION_TEAMS_WRITE",
520 Self::TeamsAllWrite => "PERMISSION_TEAMS_ALL_WRITE",
521 Self::PrivacyRead => "PERMISSION_PRIVACY_READ",
522 Self::PrivacyWrite => "PERMISSION_PRIVACY_WRITE",
523 Self::AuditRead => "PERMISSION_AUDIT_READ",
524 }
525 }
526 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
528 match value {
529 "PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
530 "PERMISSION_ORG_READ" => Some(Self::OrgRead),
531 "PERMISSION_ORG_WRITE" => Some(Self::OrgWrite),
532 "PERMISSION_MEMBERS_READ" => Some(Self::MembersRead),
533 "PERMISSION_MEMBERS_INVITE" => Some(Self::MembersInvite),
534 "PERMISSION_MEMBERS_MANAGE" => Some(Self::MembersManage),
535 "PERMISSION_CAMPAIGNS_READ" => Some(Self::CampaignsRead),
536 "PERMISSION_CAMPAIGNS_WRITE" => Some(Self::CampaignsWrite),
537 "PERMISSION_CAMPAIGNS_START" => Some(Self::CampaignsStart),
538 "PERMISSION_TEMPLATES_READ" => Some(Self::TemplatesRead),
539 "PERMISSION_TEMPLATES_WRITE" => Some(Self::TemplatesWrite),
540 "PERMISSION_INBOX_READ" => Some(Self::InboxRead),
541 "PERMISSION_INBOX_ACT" => Some(Self::InboxAct),
542 "PERMISSION_GROUPS_ALL_READ" => Some(Self::GroupsAllRead),
543 "PERMISSION_GROUPS_WRITE" => Some(Self::GroupsWrite),
544 "PERMISSION_GROUPS_ALL_WRITE" => Some(Self::GroupsAllWrite),
545 "PERMISSION_TEAMS_ALL_READ" => Some(Self::TeamsAllRead),
546 "PERMISSION_TEAMS_WRITE" => Some(Self::TeamsWrite),
547 "PERMISSION_TEAMS_ALL_WRITE" => Some(Self::TeamsAllWrite),
548 "PERMISSION_PRIVACY_READ" => Some(Self::PrivacyRead),
549 "PERMISSION_PRIVACY_WRITE" => Some(Self::PrivacyWrite),
550 "PERMISSION_AUDIT_READ" => Some(Self::AuditRead),
551 _ => None,
552 }
553 }
554}
555#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
557#[repr(i32)]
558pub enum ActionType {
559 Unspecified = 0,
561 Ack = 1,
563}
564impl ActionType {
565 pub fn as_str_name(&self) -> &'static str {
570 match self {
571 Self::Unspecified => "ACTION_TYPE_UNSPECIFIED",
572 Self::Ack => "ACTION_TYPE_ACK",
573 }
574 }
575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
577 match value {
578 "ACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
579 "ACTION_TYPE_ACK" => Some(Self::Ack),
580 _ => None,
581 }
582 }
583}
584#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
586#[repr(i32)]
587pub enum StepType {
588 Unspecified = 0,
590 SendNotification = 1,
592 DeadlineCheck = 2,
594 SendReminder = 3,
596 CallWebhook = 4,
598 MarkMissed = 5,
600}
601impl StepType {
602 pub fn as_str_name(&self) -> &'static str {
607 match self {
608 Self::Unspecified => "STEP_TYPE_UNSPECIFIED",
609 Self::SendNotification => "STEP_TYPE_SEND_NOTIFICATION",
610 Self::DeadlineCheck => "STEP_TYPE_DEADLINE_CHECK",
611 Self::SendReminder => "STEP_TYPE_SEND_REMINDER",
612 Self::CallWebhook => "STEP_TYPE_CALL_WEBHOOK",
613 Self::MarkMissed => "STEP_TYPE_MARK_MISSED",
614 }
615 }
616 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
618 match value {
619 "STEP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
620 "STEP_TYPE_SEND_NOTIFICATION" => Some(Self::SendNotification),
621 "STEP_TYPE_DEADLINE_CHECK" => Some(Self::DeadlineCheck),
622 "STEP_TYPE_SEND_REMINDER" => Some(Self::SendReminder),
623 "STEP_TYPE_CALL_WEBHOOK" => Some(Self::CallWebhook),
624 "STEP_TYPE_MARK_MISSED" => Some(Self::MarkMissed),
625 _ => None,
626 }
627 }
628}
629#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
633pub struct ApiKey {
634 #[prost(string, tag="1")]
636 pub id: ::prost::alloc::string::String,
637 #[prost(string, tag="2")]
639 pub name: ::prost::alloc::string::String,
640 #[prost(string, tag="3")]
643 pub key_prefix: ::prost::alloc::string::String,
644 #[prost(enumeration="Permission", repeated, tag="4")]
646 pub permissions: ::prost::alloc::vec::Vec<i32>,
647 #[prost(message, optional, tag="5")]
649 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
650 #[prost(message, optional, tag="6")]
652 pub last_used_at: ::core::option::Option<::prost_types::Timestamp>,
653 #[prost(message, optional, tag="7")]
655 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
656}
657#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
659pub struct CreateApiKeyRequest {
660 #[prost(string, tag="1")]
662 pub name: ::prost::alloc::string::String,
663 #[prost(enumeration="Permission", repeated, tag="2")]
666 pub permissions: ::prost::alloc::vec::Vec<i32>,
667 #[prost(message, optional, tag="3")]
669 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
670}
671#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
674pub struct CreateApiKeyResponse {
675 #[prost(message, optional, tag="1")]
677 pub api_key: ::core::option::Option<ApiKey>,
678 #[prost(string, tag="2")]
681 pub key: ::prost::alloc::string::String,
682}
683#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
685pub struct ListApiKeysRequest {
686}
687#[derive(Clone, PartialEq, ::prost::Message)]
689pub struct ListApiKeysResponse {
690 #[prost(message, repeated, tag="1")]
692 pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
693}
694#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
696pub struct RevokeApiKeyRequest {
697 #[prost(string, tag="1")]
699 pub api_key_id: ::prost::alloc::string::String,
700}
701#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
703pub struct RevokeApiKeyResponse {
704}
705#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
710pub struct ExportUserDataRequest {
711 #[prost(string, tag="1")]
714 pub user_id: ::prost::alloc::string::String,
715}
716#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
718pub struct ExportUserDataResponse {
719 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
721 pub status: i32,
722 #[prost(string, tag="2")]
725 pub result_url: ::prost::alloc::string::String,
726 #[prost(string, tag="3")]
729 pub export_id: ::prost::alloc::string::String,
730}
731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
734pub struct DeleteUserDataRequest {
735 #[prost(string, tag="1")]
738 pub user_id: ::prost::alloc::string::String,
739 #[prost(bool, tag="2")]
742 pub anonymize: bool,
743}
744#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
746pub struct DeleteUserDataResponse {
747 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
749 pub status: i32,
750 #[prost(message, optional, tag="2")]
753 pub deleted_at: ::core::option::Option<::prost_types::Timestamp>,
754 #[prost(string, tag="3")]
756 pub request_id: ::prost::alloc::string::String,
757}
758#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
761pub struct ListPrivacyRequestsRequest {
762 #[prost(int32, tag="1")]
765 pub page_size: i32,
766 #[prost(string, tag="2")]
768 pub page_token: ::prost::alloc::string::String,
769 #[prost(string, tag="3")]
771 pub request_type: ::prost::alloc::string::String,
772 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
774 pub status: i32,
775}
776#[derive(Clone, PartialEq, ::prost::Message)]
778pub struct ListPrivacyRequestsResponse {
779 #[prost(message, repeated, tag="1")]
781 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
782 #[prost(string, tag="2")]
784 pub next_page_token: ::prost::alloc::string::String,
785}
786#[derive(Clone, PartialEq, ::prost::Message)]
788pub struct PrivacyRequest {
789 #[prost(string, tag="1")]
791 pub id: ::prost::alloc::string::String,
792 #[prost(string, tag="2")]
794 pub user_id: ::prost::alloc::string::String,
795 #[prost(string, tag="3")]
797 pub user_email: ::prost::alloc::string::String,
798 #[prost(string, tag="4")]
800 pub request_type: ::prost::alloc::string::String,
801 #[prost(enumeration="PrivacyRequestStatus", tag="5")]
803 pub status: i32,
804 #[prost(bool, tag="6")]
806 pub anonymize: bool,
807 #[prost(string, tag="7")]
809 pub requested_by_email: ::prost::alloc::string::String,
810 #[prost(message, optional, tag="8")]
812 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
813 #[prost(message, optional, tag="9")]
815 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
816 #[prost(map="string, string", tag="10")]
818 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
819}
820#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
823pub struct CancelDeletionRequest {
824 #[prost(string, tag="1")]
826 pub request_id: ::prost::alloc::string::String,
827 #[prost(string, tag="2")]
829 pub confirmation_email: ::prost::alloc::string::String,
830}
831#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
833pub struct CancelDeletionResponse {
834 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
836 pub status: i32,
837}
838#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
841pub struct ImmediateDeleteRequest {
842 #[prost(string, tag="1")]
844 pub request_id: ::prost::alloc::string::String,
845 #[prost(string, tag="2")]
847 pub confirmation_email: ::prost::alloc::string::String,
848}
849#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
851pub struct ImmediateDeleteResponse {
852 #[prost(enumeration="PrivacyRequestStatus", tag="1")]
854 pub status: i32,
855}
856#[derive(Clone, PartialEq, ::prost::Message)]
859pub struct RectifyUserDataRequest {
860 #[prost(string, tag="1")]
863 pub user_id: ::prost::alloc::string::String,
864 #[prost(map="string, string", tag="2")]
868 pub corrections: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
869}
870#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
872pub struct RectifyUserDataResponse {
873 #[prost(string, repeated, tag="1")]
875 pub rectified_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
876}
877#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
880pub struct RestrictProcessingRequest {
881 #[prost(string, tag="1")]
884 pub user_id: ::prost::alloc::string::String,
885 #[prost(bool, tag="2")]
887 pub restricted: bool,
888}
889#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
891pub struct RestrictProcessingResponse {
892 #[prost(bool, tag="1")]
894 pub restricted: bool,
895 #[prost(message, optional, tag="2")]
897 pub restricted_at: ::core::option::Option<::prost_types::Timestamp>,
898}
899#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
903pub struct GetDataExistenceConfirmationRequest {
904 #[prost(string, tag="1")]
907 pub user_id: ::prost::alloc::string::String,
908}
909#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
911pub struct GetDataExistenceConfirmationResponse {
912 #[prost(bool, tag="1")]
914 pub exists: bool,
915 #[prost(string, repeated, tag="2")]
917 pub data_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
918}
919#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
923#[repr(i32)]
924pub enum PrivacyRequestStatus {
925 Unspecified = 0,
927 Pending = 1,
929 Processing = 2,
931 Completed = 3,
933 Failed = 4,
935}
936impl PrivacyRequestStatus {
937 pub fn as_str_name(&self) -> &'static str {
942 match self {
943 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
944 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
945 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
946 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
947 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
948 }
949 }
950 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
952 match value {
953 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
954 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
955 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
956 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
957 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
958 _ => None,
959 }
960 }
961}
962#[derive(Clone, PartialEq, ::prost::Message)]
967pub struct AuditEvent {
968 #[prost(string, tag="1")]
971 pub id: ::prost::alloc::string::String,
972 #[prost(string, tag="2")]
975 pub org_id: ::prost::alloc::string::String,
976 #[prost(string, tag="3")]
979 pub actor_id: ::prost::alloc::string::String,
980 #[prost(enumeration="AuditEventType", tag="4")]
982 pub event_type: i32,
983 #[prost(string, tag="5")]
986 pub entity_type: ::prost::alloc::string::String,
987 #[prost(string, tag="6")]
990 pub entity_id: ::prost::alloc::string::String,
991 #[prost(map="string, string", tag="7")]
994 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
995 #[prost(message, optional, tag="10")]
997 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
998}
999#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1002pub struct ListAuditEventsRequest {
1003 #[prost(string, tag="1")]
1005 pub page_token: ::prost::alloc::string::String,
1006 #[prost(int32, tag="2")]
1009 pub page_size: i32,
1010 #[prost(enumeration="AuditEventType", tag="3")]
1012 pub event_type: i32,
1013 #[prost(string, tag="4")]
1016 pub actor_id: ::prost::alloc::string::String,
1017 #[prost(message, optional, tag="5")]
1019 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1020 #[prost(message, optional, tag="6")]
1022 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1023}
1024#[derive(Clone, PartialEq, ::prost::Message)]
1026pub struct ListAuditEventsResponse {
1027 #[prost(message, repeated, tag="1")]
1029 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1030 #[prost(string, tag="2")]
1032 pub next_page_token: ::prost::alloc::string::String,
1033}
1034#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1037pub struct ExportAuditTrailRequest {
1038 #[prost(enumeration="AuditExportFormat", tag="1")]
1040 pub format: i32,
1041 #[prost(message, optional, tag="2")]
1043 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1044 #[prost(message, optional, tag="3")]
1046 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1047}
1048#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1050pub struct ExportAuditTrailResponse {
1051 #[prost(string, tag="1")]
1054 pub export_url: ::prost::alloc::string::String,
1055 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1057 pub status: i32,
1058}
1059#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1061pub struct AuditExport {
1062 #[prost(string, tag="1")]
1064 pub id: ::prost::alloc::string::String,
1065 #[prost(string, tag="2")]
1067 pub format: ::prost::alloc::string::String,
1068 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1070 pub status: i32,
1071 #[prost(string, tag="4")]
1073 pub result_url: ::prost::alloc::string::String,
1074 #[prost(string, tag="5")]
1076 pub error_message: ::prost::alloc::string::String,
1077 #[prost(string, tag="6")]
1079 pub requested_by_email: ::prost::alloc::string::String,
1080 #[prost(message, optional, tag="7")]
1082 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1083 #[prost(message, optional, tag="8")]
1085 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1086}
1087#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1090pub struct ListAuditExportsRequest {
1091}
1092#[derive(Clone, PartialEq, ::prost::Message)]
1094pub struct ListAuditExportsResponse {
1095 #[prost(message, repeated, tag="1")]
1097 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1098}
1099#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1103#[repr(i32)]
1104pub enum AuditEventType {
1105 Unspecified = 0,
1107 CampaignCreated = 1,
1110 MessageSent = 2,
1112 MessageOpened = 3,
1114 AckRegistered = 4,
1116 EscalationExecuted = 5,
1118 CampaignStarted = 12,
1120 CampaignCancelled = 13,
1122 CampaignUpdated = 14,
1124 UserInvited = 6,
1127 UserDeactivated = 7,
1129 UserReactivated = 15,
1131 RoleChanged = 10,
1133 InviteRevoked = 16,
1135 ProfileUpdated = 17,
1137 SettingsUpdated = 18,
1139 PasskeyEnrolled = 19,
1141 DataExportRequested = 8,
1144 DataDeletionRequested = 9,
1146 DataRectified = 20,
1148 ProcessingRestricted = 21,
1150 DeletionCancelled = 22,
1152 DeletionImmediate = 23,
1154 SsoConfigured = 11,
1157 SsoProviderCreated = 24,
1159 SsoProviderDeleted = 25,
1161 OrgUpdated = 26,
1163 RoleCreated = 27,
1166 RoleUpdated = 28,
1168 RoleDeleted = 29,
1170 TemplateCreated = 30,
1173 TemplateUpdated = 31,
1175 ApiKeyCreated = 32,
1178 ApiKeyRevoked = 33,
1180 InviteLinkCreated = 34,
1183 InviteLinkRevoked = 35,
1185 GroupCreated = 36,
1188 GroupUpdated = 37,
1190 GroupDeleted = 38,
1192 GroupMembersAdded = 39,
1194 GroupMembersRemoved = 40,
1196 TeamCreated = 41,
1199 TeamUpdated = 42,
1201 TeamDeleted = 43,
1203 TeamMembersAdded = 44,
1205 TeamMembersRemoved = 45,
1207}
1208impl AuditEventType {
1209 pub fn as_str_name(&self) -> &'static str {
1214 match self {
1215 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1216 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1217 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1218 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1219 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1220 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1221 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1222 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1223 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1224 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1225 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1226 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1227 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1228 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1229 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1230 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1231 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1232 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1233 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1234 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1235 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1236 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1237 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1238 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1239 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1240 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1241 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1242 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1243 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1244 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1245 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1246 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1247 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1248 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1249 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1250 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1251 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1252 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1253 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1254 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1255 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1256 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1257 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1258 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1259 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1260 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1261 }
1262 }
1263 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1265 match value {
1266 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1267 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1268 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1269 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1270 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1271 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1272 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1273 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1274 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1275 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1276 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1277 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1278 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1279 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1280 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1281 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1282 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1283 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1284 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1285 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1286 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1287 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1288 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1289 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1290 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1291 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1292 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1293 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1294 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1295 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1296 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1297 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1298 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1299 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1300 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1301 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1302 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1303 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1304 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1305 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1306 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1307 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1308 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1309 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1310 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1311 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1312 _ => None,
1313 }
1314 }
1315}
1316#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1318#[repr(i32)]
1319pub enum AuditExportFormat {
1320 Unspecified = 0,
1322 Csv = 1,
1324 Json = 2,
1326 Parquet = 3,
1328}
1329impl AuditExportFormat {
1330 pub fn as_str_name(&self) -> &'static str {
1335 match self {
1336 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1337 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1338 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1339 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1340 }
1341 }
1342 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1344 match value {
1345 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1346 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1347 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1348 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1349 _ => None,
1350 }
1351 }
1352}
1353#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct Campaign {
1359 #[prost(string, tag="1")]
1362 pub id: ::prost::alloc::string::String,
1363 #[prost(string, tag="2")]
1366 pub name: ::prost::alloc::string::String,
1367 #[prost(string, tag="3")]
1370 pub template_id: ::prost::alloc::string::String,
1371 #[prost(int32, tag="4")]
1373 pub template_version: i32,
1374 #[prost(string, tag="5")]
1376 pub audience_snapshot_ref: ::prost::alloc::string::String,
1377 #[prost(enumeration="CampaignStatus", tag="6")]
1379 pub status: i32,
1380 #[prost(message, optional, tag="7")]
1382 pub workflow: ::core::option::Option<WorkflowDefinition>,
1383 #[prost(int32, tag="8")]
1385 pub total_recipients: i32,
1386 #[prost(int32, tag="9")]
1388 pub action_completed_count: i32,
1389 #[prost(int32, tag="10")]
1391 pub missed_count: i32,
1392 #[prost(message, optional, tag="11")]
1394 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1395 #[prost(message, optional, tag="12")]
1397 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1398 #[prost(message, optional, tag="13")]
1400 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1401 #[prost(string, tag="14")]
1404 pub sender_name: ::prost::alloc::string::String,
1405 #[prost(string, tag="15")]
1408 pub title: ::prost::alloc::string::String,
1409}
1410#[derive(Clone, PartialEq, ::prost::Message)]
1412pub struct AudienceMember {
1413 #[prost(string, tag="1")]
1415 pub user_id: ::prost::alloc::string::String,
1416 #[prost(map="string, string", tag="2")]
1418 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1419}
1420#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct CreateCampaignRequest {
1423 #[prost(string, tag="1")]
1426 pub name: ::prost::alloc::string::String,
1427 #[prost(string, tag="2")]
1430 pub template_id: ::prost::alloc::string::String,
1431 #[prost(int32, tag="3")]
1433 pub template_version: i32,
1434 #[prost(string, repeated, tag="4")]
1437 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1438 #[prost(message, optional, tag="5")]
1440 pub workflow: ::core::option::Option<WorkflowDefinition>,
1441 #[prost(string, tag="6")]
1444 pub sender_name: ::prost::alloc::string::String,
1445 #[prost(string, tag="7")]
1448 pub title: ::prost::alloc::string::String,
1449 #[prost(message, repeated, tag="8")]
1453 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
1454 #[prost(bool, tag="9")]
1457 pub include_restricted: bool,
1458}
1459#[derive(Clone, PartialEq, ::prost::Message)]
1461pub struct CreateCampaignResponse {
1462 #[prost(message, optional, tag="1")]
1464 pub campaign: ::core::option::Option<Campaign>,
1465}
1466#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1468pub struct StartCampaignRequest {
1469 #[prost(string, tag="1")]
1472 pub campaign_id: ::prost::alloc::string::String,
1473}
1474#[derive(Clone, PartialEq, ::prost::Message)]
1476pub struct StartCampaignResponse {
1477 #[prost(message, optional, tag="1")]
1479 pub campaign: ::core::option::Option<Campaign>,
1480}
1481#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1483pub struct GetCampaignRequest {
1484 #[prost(string, tag="1")]
1487 pub campaign_id: ::prost::alloc::string::String,
1488}
1489#[derive(Clone, PartialEq, ::prost::Message)]
1491pub struct GetCampaignResponse {
1492 #[prost(message, optional, tag="1")]
1494 pub campaign: ::core::option::Option<Campaign>,
1495}
1496#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1498pub struct ListCampaignsRequest {
1499 #[prost(message, optional, tag="1")]
1501 pub pagination: ::core::option::Option<Pagination>,
1502}
1503#[derive(Clone, PartialEq, ::prost::Message)]
1505pub struct ListCampaignsResponse {
1506 #[prost(message, repeated, tag="1")]
1508 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
1509 #[prost(message, optional, tag="2")]
1511 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1512}
1513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1515pub struct CancelCampaignRequest {
1516 #[prost(string, tag="1")]
1519 pub campaign_id: ::prost::alloc::string::String,
1520}
1521#[derive(Clone, PartialEq, ::prost::Message)]
1523pub struct CancelCampaignResponse {
1524 #[prost(message, optional, tag="1")]
1526 pub campaign: ::core::option::Option<Campaign>,
1527}
1528#[derive(Clone, PartialEq, ::prost::Message)]
1531pub struct UpdateCampaignRequest {
1532 #[prost(string, tag="1")]
1535 pub campaign_id: ::prost::alloc::string::String,
1536 #[prost(string, tag="2")]
1539 pub name: ::prost::alloc::string::String,
1540 #[prost(string, tag="3")]
1543 pub sender_name: ::prost::alloc::string::String,
1544 #[prost(string, tag="4")]
1547 pub title: ::prost::alloc::string::String,
1548 #[prost(string, tag="5")]
1551 pub template_id: ::prost::alloc::string::String,
1552 #[prost(int32, tag="6")]
1554 pub template_version: i32,
1555 #[prost(message, optional, tag="7")]
1557 pub workflow: ::core::option::Option<WorkflowDefinition>,
1558}
1559#[derive(Clone, PartialEq, ::prost::Message)]
1561pub struct UpdateCampaignResponse {
1562 #[prost(message, optional, tag="1")]
1564 pub campaign: ::core::option::Option<Campaign>,
1565}
1566#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1568pub struct Delivery {
1569 #[prost(string, tag="1")]
1572 pub id: ::prost::alloc::string::String,
1573 #[prost(string, tag="2")]
1576 pub user_id: ::prost::alloc::string::String,
1577 #[prost(string, tag="3")]
1580 pub campaign_id: ::prost::alloc::string::String,
1581 #[prost(enumeration="DeliveryStatus", tag="4")]
1583 pub status: i32,
1584 #[prost(message, optional, tag="5")]
1586 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
1587 #[prost(message, optional, tag="6")]
1589 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
1590 #[prost(message, optional, tag="7")]
1592 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
1593 #[prost(string, tag="8")]
1595 pub recipient_email: ::prost::alloc::string::String,
1596}
1597#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1599pub struct ListDeliveriesRequest {
1600 #[prost(string, tag="1")]
1603 pub campaign_id: ::prost::alloc::string::String,
1604 #[prost(enumeration="DeliveryStatus", tag="2")]
1606 pub status_filter: i32,
1607 #[prost(message, optional, tag="3")]
1609 pub pagination: ::core::option::Option<Pagination>,
1610}
1611#[derive(Clone, PartialEq, ::prost::Message)]
1613pub struct ListDeliveriesResponse {
1614 #[prost(message, repeated, tag="1")]
1616 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
1617 #[prost(message, optional, tag="2")]
1619 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1620}
1621#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1626pub struct Device {
1627 #[prost(string, tag="1")]
1630 pub device_id: ::prost::alloc::string::String,
1631 #[prost(string, tag="2")]
1634 pub user_id: ::prost::alloc::string::String,
1635 #[prost(enumeration="Platform", tag="3")]
1637 pub platform: i32,
1638 #[prost(string, tag="4")]
1640 pub push_token: ::prost::alloc::string::String,
1641 #[prost(bool, tag="5")]
1643 pub active: bool,
1644 #[prost(message, optional, tag="6")]
1646 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1647 #[prost(message, optional, tag="7")]
1649 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1650}
1651#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1653pub struct DeviceSummary {
1654 #[prost(string, tag="1")]
1656 pub device_id: ::prost::alloc::string::String,
1657 #[prost(string, tag="2")]
1659 pub user_id: ::prost::alloc::string::String,
1660 #[prost(enumeration="Platform", tag="3")]
1662 pub platform: i32,
1663 #[prost(bool, tag="4")]
1665 pub active: bool,
1666 #[prost(message, optional, tag="5")]
1668 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1669 #[prost(message, optional, tag="6")]
1671 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1672}
1673#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1675pub struct RegisterRequest {
1676 #[prost(string, tag="1")]
1679 pub device_id: ::prost::alloc::string::String,
1680 #[prost(enumeration="Platform", tag="2")]
1682 pub platform: i32,
1683 #[prost(string, tag="3")]
1686 pub push_token: ::prost::alloc::string::String,
1687}
1688#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1690pub struct RegisterResponse {
1691 #[prost(message, optional, tag="1")]
1693 pub device: ::core::option::Option<DeviceSummary>,
1694}
1695#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1697pub struct DeactivateRequest {
1698 #[prost(string, tag="1")]
1701 pub device_id: ::prost::alloc::string::String,
1702}
1703#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1705pub struct DeactivateResponse {
1706 #[prost(bool, tag="1")]
1708 pub success: bool,
1709}
1710#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1712pub struct ListDevicesRequest {
1713}
1714#[derive(Clone, PartialEq, ::prost::Message)]
1716pub struct ListDevicesResponse {
1717 #[prost(message, repeated, tag="1")]
1719 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1720}
1721#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1723pub struct ListMemberDevicesRequest {
1724 #[prost(string, tag="1")]
1727 pub user_id: ::prost::alloc::string::String,
1728}
1729#[derive(Clone, PartialEq, ::prost::Message)]
1731pub struct ListMemberDevicesResponse {
1732 #[prost(message, repeated, tag="1")]
1734 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1735}
1736#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1741pub struct UserSettings {
1742 #[prost(enumeration="ThemePreference", tag="1")]
1744 pub theme_preference: i32,
1745 #[prost(string, tag="2")]
1749 pub preferred_locale: ::prost::alloc::string::String,
1750}
1751#[derive(Clone, PartialEq, ::prost::Message)]
1754pub struct UserProfile {
1755 #[prost(string, tag="1")]
1758 pub first_name: ::prost::alloc::string::String,
1759 #[prost(string, tag="2")]
1762 pub last_name: ::prost::alloc::string::String,
1763 #[prost(string, tag="3")]
1766 pub department: ::prost::alloc::string::String,
1767 #[prost(string, tag="4")]
1770 pub title: ::prost::alloc::string::String,
1771 #[prost(string, tag="5")]
1774 pub phone: ::prost::alloc::string::String,
1775 #[prost(string, tag="6")]
1778 pub location: ::prost::alloc::string::String,
1779 #[prost(string, tag="7")]
1782 pub employee_id: ::prost::alloc::string::String,
1783 #[prost(string, tag="8")]
1786 pub manager_name: ::prost::alloc::string::String,
1787 #[prost(string, tag="9")]
1790 pub start_date: ::prost::alloc::string::String,
1791 #[prost(map="string, string", tag="10")]
1794 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1795}
1796#[derive(Clone, PartialEq, ::prost::Message)]
1798pub struct User {
1799 #[prost(string, tag="1")]
1801 pub id: ::prost::alloc::string::String,
1802 #[prost(string, tag="2")]
1805 pub email: ::prost::alloc::string::String,
1806 #[prost(string, tag="3")]
1809 pub name: ::prost::alloc::string::String,
1810 #[prost(enumeration="UserStatus", tag="5")]
1812 pub status: i32,
1813 #[prost(message, optional, tag="6")]
1815 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1816 #[prost(message, optional, tag="7")]
1818 pub role: ::core::option::Option<Role>,
1819 #[prost(string, tag="8")]
1821 pub role_id: ::prost::alloc::string::String,
1822 #[prost(message, optional, tag="9")]
1825 pub profile: ::core::option::Option<UserProfile>,
1826 #[prost(bool, tag="10")]
1829 pub processing_restricted: bool,
1830}
1831#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1835#[repr(i32)]
1836pub enum UserStatus {
1837 Unspecified = 0,
1839 Invited = 1,
1841 Active = 2,
1843 Deactivated = 3,
1845}
1846impl UserStatus {
1847 pub fn as_str_name(&self) -> &'static str {
1852 match self {
1853 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
1854 Self::Invited => "USER_STATUS_INVITED",
1855 Self::Active => "USER_STATUS_ACTIVE",
1856 Self::Deactivated => "USER_STATUS_DEACTIVATED",
1857 }
1858 }
1859 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1861 match value {
1862 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1863 "USER_STATUS_INVITED" => Some(Self::Invited),
1864 "USER_STATUS_ACTIVE" => Some(Self::Active),
1865 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
1866 _ => None,
1867 }
1868 }
1869}
1870#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1872#[repr(i32)]
1873pub enum ThemePreference {
1874 Unspecified = 0,
1876 Light = 1,
1878 Dark = 2,
1880 System = 3,
1882}
1883impl ThemePreference {
1884 pub fn as_str_name(&self) -> &'static str {
1889 match self {
1890 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
1891 Self::Light => "THEME_PREFERENCE_LIGHT",
1892 Self::Dark => "THEME_PREFERENCE_DARK",
1893 Self::System => "THEME_PREFERENCE_SYSTEM",
1894 }
1895 }
1896 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1898 match value {
1899 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
1900 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
1901 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
1902 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
1903 _ => None,
1904 }
1905 }
1906}
1907#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1912pub struct Group {
1913 #[prost(string, tag="1")]
1915 pub id: ::prost::alloc::string::String,
1916 #[prost(string, tag="2")]
1919 pub name: ::prost::alloc::string::String,
1920 #[prost(string, tag="3")]
1923 pub description: ::prost::alloc::string::String,
1924 #[prost(int32, tag="4")]
1926 pub member_count: i32,
1927 #[prost(message, optional, tag="5")]
1929 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1930 #[prost(message, optional, tag="6")]
1932 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
1933 #[prost(bool, tag="7")]
1935 pub is_default: bool,
1936 #[prost(string, tag="8")]
1938 pub created_by: ::prost::alloc::string::String,
1939}
1940#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1942pub struct CreateGroupRequest {
1943 #[prost(string, tag="1")]
1946 pub name: ::prost::alloc::string::String,
1947 #[prost(string, tag="2")]
1950 pub description: ::prost::alloc::string::String,
1951}
1952#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1954pub struct CreateGroupResponse {
1955 #[prost(message, optional, tag="1")]
1957 pub group: ::core::option::Option<Group>,
1958}
1959#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1961pub struct GetGroupRequest {
1962 #[prost(string, tag="1")]
1964 pub group_id: ::prost::alloc::string::String,
1965}
1966#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1968pub struct GetGroupResponse {
1969 #[prost(message, optional, tag="1")]
1971 pub group: ::core::option::Option<Group>,
1972}
1973#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1975pub struct ListGroupsRequest {
1976 #[prost(message, optional, tag="1")]
1978 pub pagination: ::core::option::Option<Pagination>,
1979}
1980#[derive(Clone, PartialEq, ::prost::Message)]
1982pub struct ListGroupsResponse {
1983 #[prost(message, repeated, tag="1")]
1985 pub groups: ::prost::alloc::vec::Vec<Group>,
1986 #[prost(message, optional, tag="2")]
1988 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1989}
1990#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1992pub struct UpdateGroupRequest {
1993 #[prost(string, tag="1")]
1995 pub group_id: ::prost::alloc::string::String,
1996 #[prost(string, tag="2")]
2000 pub name: ::prost::alloc::string::String,
2001 #[prost(string, tag="3")]
2004 pub description: ::prost::alloc::string::String,
2005}
2006#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2008pub struct UpdateGroupResponse {
2009 #[prost(message, optional, tag="1")]
2011 pub group: ::core::option::Option<Group>,
2012}
2013#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2015pub struct DeleteGroupRequest {
2016 #[prost(string, tag="1")]
2019 pub group_id: ::prost::alloc::string::String,
2020}
2021#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2023pub struct DeleteGroupResponse {
2024}
2025#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2027pub struct AddGroupMembersRequest {
2028 #[prost(string, tag="1")]
2030 pub group_id: ::prost::alloc::string::String,
2031 #[prost(string, repeated, tag="2")]
2035 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2036}
2037#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2039pub struct AddGroupMembersResponse {
2040 #[prost(message, optional, tag="1")]
2042 pub group: ::core::option::Option<Group>,
2043}
2044#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2046pub struct RemoveGroupMembersRequest {
2047 #[prost(string, tag="1")]
2049 pub group_id: ::prost::alloc::string::String,
2050 #[prost(string, repeated, tag="2")]
2053 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2054}
2055#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2057pub struct RemoveGroupMembersResponse {
2058 #[prost(message, optional, tag="1")]
2060 pub group: ::core::option::Option<Group>,
2061}
2062#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2064pub struct ListGroupMembersRequest {
2065 #[prost(string, tag="1")]
2067 pub group_id: ::prost::alloc::string::String,
2068 #[prost(message, optional, tag="2")]
2070 pub pagination: ::core::option::Option<Pagination>,
2071}
2072#[derive(Clone, PartialEq, ::prost::Message)]
2074pub struct ListGroupMembersResponse {
2075 #[prost(message, repeated, tag="1")]
2077 pub users: ::prost::alloc::vec::Vec<User>,
2078 #[prost(message, optional, tag="2")]
2080 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2081}
2082#[derive(Clone, PartialEq, ::prost::Message)]
2084pub struct UserGroupMembership {
2085 #[prost(string, tag="1")]
2087 pub user_id: ::prost::alloc::string::String,
2088 #[prost(message, repeated, tag="2")]
2090 pub groups: ::prost::alloc::vec::Vec<Group>,
2091}
2092#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2094pub struct GetUserGroupMembershipsRequest {
2095 #[prost(string, repeated, tag="1")]
2098 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2099}
2100#[derive(Clone, PartialEq, ::prost::Message)]
2102pub struct GetUserGroupMembershipsResponse {
2103 #[prost(message, repeated, tag="1")]
2105 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2106}
2107#[derive(Clone, PartialEq, ::prost::Message)]
2111pub struct TouchEvent {
2112 #[prost(string, tag="1")]
2115 pub screen_name: ::prost::alloc::string::String,
2116 #[prost(float, tag="2")]
2119 pub x_pct: f32,
2120 #[prost(float, tag="3")]
2123 pub y_pct: f32,
2124 #[prost(enumeration="TouchEventType", tag="4")]
2126 pub event_type: i32,
2127 #[prost(int32, tag="5")]
2129 pub screen_width: i32,
2130 #[prost(int32, tag="6")]
2132 pub screen_height: i32,
2133 #[prost(message, optional, tag="7")]
2135 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2136}
2137#[derive(Clone, PartialEq, ::prost::Message)]
2139pub struct IngestTouchEventsRequest {
2140 #[prost(message, repeated, tag="1")]
2143 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2144}
2145#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2147pub struct IngestTouchEventsResponse {
2148 #[prost(int32, tag="1")]
2150 pub ingested_count: i32,
2151}
2152#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2154pub struct HeatmapDataPoint {
2155 #[prost(float, tag="1")]
2157 pub x_pct: f32,
2158 #[prost(float, tag="2")]
2160 pub y_pct: f32,
2161 #[prost(float, tag="3")]
2163 pub value: f32,
2164}
2165#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2167pub struct UserTouchCount {
2168 #[prost(string, tag="1")]
2170 pub user_id: ::prost::alloc::string::String,
2171 #[prost(int32, tag="2")]
2173 pub count: i32,
2174 #[prost(string, tag="3")]
2176 pub user_email: ::prost::alloc::string::String,
2177}
2178#[derive(Clone, PartialEq, ::prost::Message)]
2180pub struct QueryHeatmapDataRequest {
2181 #[prost(string, tag="1")]
2184 pub screen_name: ::prost::alloc::string::String,
2185 #[prost(message, optional, tag="2")]
2187 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2188 #[prost(message, optional, tag="3")]
2190 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2191 #[prost(string, tag="4")]
2194 pub campaign_id: ::prost::alloc::string::String,
2195 #[prost(string, tag="5")]
2198 pub user_id: ::prost::alloc::string::String,
2199 #[prost(float, tag="6")]
2202 pub grid_resolution: f32,
2203 #[prost(enumeration="HeatmapMode", tag="7")]
2205 pub mode: i32,
2206 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2208 pub event_types: ::prost::alloc::vec::Vec<i32>,
2209}
2210#[derive(Clone, PartialEq, ::prost::Message)]
2212pub struct QueryHeatmapDataResponse {
2213 #[prost(message, repeated, tag="1")]
2215 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2216 #[prost(message, repeated, tag="2")]
2219 pub user_touch_counts: ::prost::alloc::vec::Vec<UserTouchCount>,
2220 #[prost(string, tag="3")]
2223 pub screenshot_url: ::prost::alloc::string::String,
2224}
2225#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2227pub struct UploadScreenshotRequest {
2228 #[prost(string, tag="1")]
2231 pub screen_name: ::prost::alloc::string::String,
2232 #[prost(string, tag="2")]
2234 pub app_version: ::prost::alloc::string::String,
2235 #[prost(bytes="vec", tag="3")]
2238 pub image_data: ::prost::alloc::vec::Vec<u8>,
2239}
2240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2242pub struct UploadScreenshotResponse {
2243 #[prost(string, tag="1")]
2245 pub url: ::prost::alloc::string::String,
2246}
2247#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2249pub struct ScreenScreenshot {
2250 #[prost(string, tag="1")]
2252 pub screen_name: ::prost::alloc::string::String,
2253 #[prost(string, tag="2")]
2255 pub url: ::prost::alloc::string::String,
2256 #[prost(string, tag="3")]
2258 pub app_version: ::prost::alloc::string::String,
2259}
2260#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2262pub struct ListScreenshotsRequest {
2263}
2264#[derive(Clone, PartialEq, ::prost::Message)]
2266pub struct ListScreenshotsResponse {
2267 #[prost(message, repeated, tag="1")]
2269 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2270}
2271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2275#[repr(i32)]
2276pub enum TouchEventType {
2277 Unspecified = 0,
2279 Tap = 1,
2281 LongPress = 2,
2283 Scroll = 3,
2285 ActionClick = 4,
2287}
2288impl TouchEventType {
2289 pub fn as_str_name(&self) -> &'static str {
2294 match self {
2295 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2296 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2297 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2298 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2299 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2300 }
2301 }
2302 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2304 match value {
2305 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2306 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2307 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2308 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2309 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2310 _ => None,
2311 }
2312 }
2313}
2314#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2316#[repr(i32)]
2317pub enum HeatmapMode {
2318 Unspecified = 0,
2320 Total = 1,
2322 Median = 2,
2324 UserSpecific = 3,
2327}
2328impl HeatmapMode {
2329 pub fn as_str_name(&self) -> &'static str {
2334 match self {
2335 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2336 Self::Total => "HEATMAP_MODE_TOTAL",
2337 Self::Median => "HEATMAP_MODE_MEDIAN",
2338 Self::UserSpecific => "HEATMAP_MODE_USER_SPECIFIC",
2339 }
2340 }
2341 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2343 match value {
2344 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2345 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2346 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2347 "HEATMAP_MODE_USER_SPECIFIC" => Some(Self::UserSpecific),
2348 _ => None,
2349 }
2350 }
2351}
2352#[derive(Clone, PartialEq, ::prost::Message)]
2356pub struct InboxEntry {
2357 #[prost(string, tag="1")]
2360 pub delivery_id: ::prost::alloc::string::String,
2361 #[prost(message, optional, tag="2")]
2363 pub message: ::core::option::Option<Message>,
2364 #[prost(enumeration="DeliveryStatus", tag="3")]
2366 pub status: i32,
2367 #[prost(bool, tag="4")]
2369 pub read: bool,
2370 #[prost(message, optional, tag="5")]
2372 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2373}
2374#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2376pub struct SyncRequest {
2377 #[prost(message, optional, tag="1")]
2379 pub since: ::core::option::Option<::prost_types::Timestamp>,
2380 #[prost(int32, tag="2")]
2383 pub limit: i32,
2384}
2385#[derive(Clone, PartialEq, ::prost::Message)]
2387pub struct SyncResponse {
2388 #[prost(message, repeated, tag="1")]
2390 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2391 #[prost(message, optional, tag="2")]
2393 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2394}
2395#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2397pub struct MarkReadRequest {
2398 #[prost(string, tag="1")]
2401 pub delivery_id: ::prost::alloc::string::String,
2402}
2403#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2405pub struct MarkReadResponse {
2406 #[prost(bool, tag="1")]
2408 pub success: bool,
2409}
2410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2412pub struct GetMessageRequest {
2413 #[prost(string, tag="1")]
2416 pub delivery_id: ::prost::alloc::string::String,
2417}
2418#[derive(Clone, PartialEq, ::prost::Message)]
2420pub struct GetMessageResponse {
2421 #[prost(message, optional, tag="1")]
2423 pub entry: ::core::option::Option<InboxEntry>,
2424}
2425#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2430pub struct InviteLink {
2431 #[prost(string, tag="1")]
2433 pub id: ::prost::alloc::string::String,
2434 #[prost(string, tag="2")]
2436 pub token: ::prost::alloc::string::String,
2437 #[prost(string, tag="3")]
2439 pub role_id: ::prost::alloc::string::String,
2440 #[prost(int32, tag="4")]
2443 pub max_uses: i32,
2444 #[prost(int32, tag="5")]
2446 pub use_count: i32,
2447 #[prost(message, optional, tag="6")]
2449 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2450 #[prost(message, optional, tag="7")]
2452 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2453 #[prost(string, tag="8")]
2455 pub created_by: ::prost::alloc::string::String,
2456 #[prost(message, optional, tag="9")]
2458 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2459}
2460#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2462pub struct CreateInviteLinkRequest {
2463 #[prost(string, tag="1")]
2465 pub role_id: ::prost::alloc::string::String,
2466 #[prost(int32, tag="2")]
2468 pub max_uses: i32,
2469 #[prost(int32, tag="3")]
2472 pub expires_in_hours: i32,
2473}
2474#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2476pub struct CreateInviteLinkResponse {
2477 #[prost(message, optional, tag="1")]
2479 pub invite_link: ::core::option::Option<InviteLink>,
2480 #[prost(string, tag="2")]
2482 pub url: ::prost::alloc::string::String,
2483}
2484#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2486pub struct ListInviteLinksRequest {
2487}
2488#[derive(Clone, PartialEq, ::prost::Message)]
2490pub struct ListInviteLinksResponse {
2491 #[prost(message, repeated, tag="1")]
2493 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
2494}
2495#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2497pub struct RevokeInviteLinkRequest {
2498 #[prost(string, tag="1")]
2500 pub invite_link_id: ::prost::alloc::string::String,
2501}
2502#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2504pub struct RevokeInviteLinkResponse {
2505}
2506#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2508pub struct RedeemInviteLinkRequest {
2509 #[prost(string, tag="1")]
2511 pub token: ::prost::alloc::string::String,
2512}
2513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2515pub struct RedeemInviteLinkResponse {
2516 #[prost(string, tag="1")]
2518 pub organization_name: ::prost::alloc::string::String,
2519}
2520#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2522pub struct ValidateInviteLinkRequest {
2523 #[prost(string, tag="1")]
2525 pub token: ::prost::alloc::string::String,
2526 #[prost(string, tag="2")]
2529 pub email: ::prost::alloc::string::String,
2530}
2531#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2533pub struct ValidateInviteLinkResponse {
2534 #[prost(string, tag="1")]
2536 pub organization_name: ::prost::alloc::string::String,
2537}
2538#[derive(Clone, PartialEq, ::prost::Message)]
2542pub struct InviteUserRequest {
2543 #[prost(string, tag="1")]
2546 pub email: ::prost::alloc::string::String,
2547 #[prost(string, tag="2")]
2550 pub name: ::prost::alloc::string::String,
2551 #[prost(string, tag="4")]
2553 pub role_id: ::prost::alloc::string::String,
2554 #[prost(message, optional, tag="5")]
2556 pub profile: ::core::option::Option<UserProfile>,
2557}
2558#[derive(Clone, PartialEq, ::prost::Message)]
2560pub struct InviteUserResponse {
2561 #[prost(message, optional, tag="1")]
2563 pub user: ::core::option::Option<User>,
2564}
2565#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2567pub struct GetUserRequest {
2568 #[prost(string, tag="1")]
2570 pub user_id: ::prost::alloc::string::String,
2571}
2572#[derive(Clone, PartialEq, ::prost::Message)]
2574pub struct GetUserResponse {
2575 #[prost(message, optional, tag="1")]
2577 pub user: ::core::option::Option<User>,
2578}
2579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2581pub struct ListUsersRequest {
2582 #[prost(message, optional, tag="1")]
2584 pub pagination: ::core::option::Option<Pagination>,
2585}
2586#[derive(Clone, PartialEq, ::prost::Message)]
2588pub struct ListUsersResponse {
2589 #[prost(message, repeated, tag="1")]
2591 pub users: ::prost::alloc::vec::Vec<User>,
2592 #[prost(message, optional, tag="2")]
2594 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2595}
2596#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2598pub struct UpdateUserRoleRequest {
2599 #[prost(string, tag="1")]
2601 pub user_id: ::prost::alloc::string::String,
2602 #[prost(string, tag="2")]
2604 pub role_id: ::prost::alloc::string::String,
2605}
2606#[derive(Clone, PartialEq, ::prost::Message)]
2608pub struct UpdateUserRoleResponse {
2609 #[prost(message, optional, tag="1")]
2611 pub user: ::core::option::Option<User>,
2612}
2613#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2615pub struct DeactivateUserRequest {
2616 #[prost(string, tag="1")]
2618 pub user_id: ::prost::alloc::string::String,
2619}
2620#[derive(Clone, PartialEq, ::prost::Message)]
2622pub struct DeactivateUserResponse {
2623 #[prost(message, optional, tag="1")]
2625 pub user: ::core::option::Option<User>,
2626}
2627#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2629pub struct ReactivateUserRequest {
2630 #[prost(string, tag="1")]
2632 pub user_id: ::prost::alloc::string::String,
2633}
2634#[derive(Clone, PartialEq, ::prost::Message)]
2636pub struct ReactivateUserResponse {
2637 #[prost(message, optional, tag="1")]
2639 pub user: ::core::option::Option<User>,
2640}
2641#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2643pub struct RevokeInviteRequest {
2644 #[prost(string, tag="1")]
2647 pub user_id: ::prost::alloc::string::String,
2648}
2649#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2651pub struct RevokeInviteResponse {
2652}
2653#[derive(Clone, PartialEq, ::prost::Message)]
2655pub struct UpdateUserProfileRequest {
2656 #[prost(string, tag="1")]
2659 pub user_id: ::prost::alloc::string::String,
2660 #[prost(message, optional, tag="2")]
2662 pub profile: ::core::option::Option<UserProfile>,
2663}
2664#[derive(Clone, PartialEq, ::prost::Message)]
2666pub struct UpdateUserProfileResponse {
2667 #[prost(message, optional, tag="1")]
2669 pub user: ::core::option::Option<User>,
2670}
2671#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2673pub struct GetUserSettingsRequest {
2674}
2675#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2677pub struct GetUserSettingsResponse {
2678 #[prost(message, optional, tag="1")]
2680 pub settings: ::core::option::Option<UserSettings>,
2681}
2682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2684pub struct UpdateUserSettingsRequest {
2685 #[prost(message, optional, tag="1")]
2688 pub settings: ::core::option::Option<UserSettings>,
2689}
2690#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2692pub struct UpdateUserSettingsResponse {
2693 #[prost(message, optional, tag="1")]
2695 pub settings: ::core::option::Option<UserSettings>,
2696}
2697#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2699pub struct BulkInviteUsersRequest {
2700 #[prost(string, repeated, tag="1")]
2703 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2704 #[prost(string, tag="2")]
2706 pub role_id: ::prost::alloc::string::String,
2707}
2708#[derive(Clone, PartialEq, ::prost::Message)]
2710pub struct BulkInviteResult {
2711 #[prost(string, tag="1")]
2713 pub email: ::prost::alloc::string::String,
2714 #[prost(bool, tag="2")]
2716 pub success: bool,
2717 #[prost(string, tag="3")]
2720 pub error: ::prost::alloc::string::String,
2721 #[prost(message, optional, tag="4")]
2723 pub user: ::core::option::Option<User>,
2724}
2725#[derive(Clone, PartialEq, ::prost::Message)]
2727pub struct BulkInviteUsersResponse {
2728 #[prost(message, repeated, tag="1")]
2730 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
2731 #[prost(int32, tag="2")]
2733 pub invited_count: i32,
2734 #[prost(int32, tag="3")]
2736 pub failed_count: i32,
2737}
2738#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2742pub struct ConfirmPasskeyEnrollmentRequest {
2743}
2744#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2746pub struct ConfirmPasskeyEnrollmentResponse {
2747 #[prost(bool, tag="1")]
2749 pub confirmed: bool,
2750}
2751#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2756pub struct SsoAttributeMapping {
2757 #[prost(string, tag="1")]
2760 pub idp_claim: ::prost::alloc::string::String,
2761 #[prost(string, tag="2")]
2765 pub profile_field: ::prost::alloc::string::String,
2766}
2767#[derive(Clone, PartialEq, ::prost::Message)]
2769pub struct Organization {
2770 #[prost(string, tag="1")]
2772 pub id: ::prost::alloc::string::String,
2773 #[prost(string, tag="2")]
2776 pub name: ::prost::alloc::string::String,
2777 #[prost(message, optional, tag="3")]
2779 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2780 #[prost(message, optional, tag="4")]
2782 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2783 #[prost(enumeration="Industry", tag="5")]
2785 pub industry: i32,
2786 #[prost(enumeration="CompanySize", tag="6")]
2788 pub company_size: i32,
2789 #[prost(message, repeated, tag="7")]
2792 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2793 #[prost(string, tag="8")]
2797 pub default_locale: ::prost::alloc::string::String,
2798}
2799#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2802pub struct CreateOrganizationRequest {
2803 #[prost(string, tag="1")]
2806 pub name: ::prost::alloc::string::String,
2807 #[prost(string, tag="2")]
2810 pub admin_email: ::prost::alloc::string::String,
2811 #[prost(enumeration="Industry", tag="3")]
2813 pub industry: i32,
2814 #[prost(enumeration="CompanySize", tag="4")]
2816 pub company_size: i32,
2817 #[prost(string, tag="5")]
2820 pub access_code: ::prost::alloc::string::String,
2821}
2822#[derive(Clone, PartialEq, ::prost::Message)]
2824pub struct CreateOrganizationResponse {
2825 #[prost(message, optional, tag="1")]
2827 pub organization: ::core::option::Option<Organization>,
2828 #[prost(message, optional, tag="2")]
2830 pub admin_user: ::core::option::Option<User>,
2831}
2832#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2834pub struct GetOrganizationRequest {
2835}
2836#[derive(Clone, PartialEq, ::prost::Message)]
2838pub struct GetOrganizationResponse {
2839 #[prost(message, optional, tag="1")]
2841 pub organization: ::core::option::Option<Organization>,
2842}
2843#[derive(Clone, PartialEq, ::prost::Message)]
2845pub struct UpdateOrganizationRequest {
2846 #[prost(string, tag="1")]
2849 pub name: ::prost::alloc::string::String,
2850 #[prost(message, optional, tag="2")]
2852 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2853 #[prost(enumeration="Industry", tag="3")]
2855 pub industry: i32,
2856 #[prost(enumeration="CompanySize", tag="4")]
2858 pub company_size: i32,
2859 #[prost(string, tag="5")]
2862 pub default_locale: ::prost::alloc::string::String,
2863}
2864#[derive(Clone, PartialEq, ::prost::Message)]
2866pub struct UpdateOrganizationResponse {
2867 #[prost(message, optional, tag="1")]
2869 pub organization: ::core::option::Option<Organization>,
2870}
2871#[derive(Clone, PartialEq, ::prost::Message)]
2873pub struct UpdateSsoAttributeMappingsRequest {
2874 #[prost(message, repeated, tag="1")]
2876 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2877}
2878#[derive(Clone, PartialEq, ::prost::Message)]
2880pub struct UpdateSsoAttributeMappingsResponse {
2881 #[prost(message, optional, tag="1")]
2883 pub organization: ::core::option::Option<Organization>,
2884}
2885#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2889#[repr(i32)]
2890pub enum Industry {
2891 Unspecified = 0,
2892 Technology = 1,
2893 Finance = 2,
2894 Healthcare = 3,
2895 Education = 4,
2896 Retail = 5,
2897 Manufacturing = 6,
2898 Media = 7,
2899 Other = 8,
2900}
2901impl Industry {
2902 pub fn as_str_name(&self) -> &'static str {
2907 match self {
2908 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
2909 Self::Technology => "INDUSTRY_TECHNOLOGY",
2910 Self::Finance => "INDUSTRY_FINANCE",
2911 Self::Healthcare => "INDUSTRY_HEALTHCARE",
2912 Self::Education => "INDUSTRY_EDUCATION",
2913 Self::Retail => "INDUSTRY_RETAIL",
2914 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
2915 Self::Media => "INDUSTRY_MEDIA",
2916 Self::Other => "INDUSTRY_OTHER",
2917 }
2918 }
2919 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2921 match value {
2922 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
2923 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
2924 "INDUSTRY_FINANCE" => Some(Self::Finance),
2925 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
2926 "INDUSTRY_EDUCATION" => Some(Self::Education),
2927 "INDUSTRY_RETAIL" => Some(Self::Retail),
2928 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
2929 "INDUSTRY_MEDIA" => Some(Self::Media),
2930 "INDUSTRY_OTHER" => Some(Self::Other),
2931 _ => None,
2932 }
2933 }
2934}
2935#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2937#[repr(i32)]
2938pub enum CompanySize {
2939 Unspecified = 0,
2940 CompanySize1200 = 1,
2941 CompanySize200500 = 2,
2942 CompanySize5001000 = 3,
2943 CompanySize10005000 = 4,
2944 CompanySize5000Plus = 5,
2945}
2946impl CompanySize {
2947 pub fn as_str_name(&self) -> &'static str {
2952 match self {
2953 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
2954 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
2955 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
2956 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
2957 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
2958 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
2959 }
2960 }
2961 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2963 match value {
2964 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
2965 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
2966 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
2967 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
2968 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
2969 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
2970 _ => None,
2971 }
2972 }
2973}
2974#[derive(Clone, PartialEq, ::prost::Message)]
2978pub struct UserRenderContext {
2979 #[prost(string, tag="1")]
2981 pub user_id: ::prost::alloc::string::String,
2982 #[prost(map="string, string", tag="2")]
2985 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2986}
2987#[derive(Clone, PartialEq, ::prost::Message)]
2989pub struct RenderBatchRequest {
2990 #[prost(string, tag="1")]
2992 pub template_id: ::prost::alloc::string::String,
2993 #[prost(int32, tag="2")]
2995 pub version: i32,
2996 #[prost(message, repeated, tag="3")]
2999 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3000}
3001#[derive(Clone, PartialEq, ::prost::Message)]
3004pub struct RenderBatchResponse {
3005 #[prost(string, tag="1")]
3007 pub user_id: ::prost::alloc::string::String,
3008 #[prost(message, optional, tag="2")]
3010 pub message: ::core::option::Option<Message>,
3011 #[prost(string, tag="3")]
3013 pub error: ::prost::alloc::string::String,
3014}
3015#[derive(Clone, PartialEq, ::prost::Message)]
3019pub struct SessionRecording {
3020 #[prost(string, tag="1")]
3022 pub id: ::prost::alloc::string::String,
3023 #[prost(string, tag="2")]
3025 pub analytics_user_id: ::prost::alloc::string::String,
3026 #[prost(message, optional, tag="3")]
3028 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3029 #[prost(message, optional, tag="4")]
3031 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3032 #[prost(int32, tag="5")]
3034 pub duration_seconds: i32,
3035 #[prost(float, tag="6")]
3037 pub activity_score: f32,
3038 #[prost(string, tag="7")]
3041 pub user_email: ::prost::alloc::string::String,
3042}
3043#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3045pub struct ListSessionRecordingsRequest {
3046 #[prost(string, tag="1")]
3049 pub campaign_id: ::prost::alloc::string::String,
3050 #[prost(message, optional, tag="2")]
3052 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3053 #[prost(message, optional, tag="3")]
3055 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3056 #[prost(message, optional, tag="4")]
3058 pub pagination: ::core::option::Option<Pagination>,
3059}
3060#[derive(Clone, PartialEq, ::prost::Message)]
3062pub struct ListSessionRecordingsResponse {
3063 #[prost(message, repeated, tag="1")]
3065 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3066 #[prost(message, optional, tag="2")]
3068 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3069}
3070#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3072pub struct GetSessionSnapshotsRequest {
3073 #[prost(string, tag="1")]
3076 pub recording_id: ::prost::alloc::string::String,
3077}
3078#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3080pub struct GetSessionSnapshotsResponse {
3081 #[prost(string, tag="1")]
3084 pub snapshot_data: ::prost::alloc::string::String,
3085}
3086#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3090pub struct ListRolesRequest {
3091}
3092#[derive(Clone, PartialEq, ::prost::Message)]
3094pub struct ListRolesResponse {
3095 #[prost(message, repeated, tag="1")]
3097 pub roles: ::prost::alloc::vec::Vec<Role>,
3098}
3099#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3101pub struct CreateRoleRequest {
3102 #[prost(string, tag="1")]
3105 pub name: ::prost::alloc::string::String,
3106 #[prost(enumeration="Permission", repeated, tag="2")]
3109 pub permissions: ::prost::alloc::vec::Vec<i32>,
3110}
3111#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3113pub struct CreateRoleResponse {
3114 #[prost(message, optional, tag="1")]
3116 pub role: ::core::option::Option<Role>,
3117}
3118#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3120pub struct UpdateRoleRequest {
3121 #[prost(string, tag="1")]
3123 pub role_id: ::prost::alloc::string::String,
3124 #[prost(string, tag="2")]
3126 pub name: ::prost::alloc::string::String,
3127 #[prost(enumeration="Permission", repeated, tag="3")]
3131 pub permissions: ::prost::alloc::vec::Vec<i32>,
3132}
3133#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3135pub struct UpdateRoleResponse {
3136 #[prost(message, optional, tag="1")]
3138 pub role: ::core::option::Option<Role>,
3139}
3140#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3142pub struct DeleteRoleRequest {
3143 #[prost(string, tag="1")]
3145 pub role_id: ::prost::alloc::string::String,
3146}
3147#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3149pub struct DeleteRoleResponse {
3150}
3151#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3157pub struct SamlAttributeNames {
3158 #[prost(string, tag="1")]
3160 pub email: ::prost::alloc::string::String,
3161 #[prost(string, tag="2")]
3163 pub given_name: ::prost::alloc::string::String,
3164 #[prost(string, tag="3")]
3166 pub family_name: ::prost::alloc::string::String,
3167}
3168#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3170pub struct SsoProvider {
3171 #[prost(string, tag="1")]
3173 pub id: ::prost::alloc::string::String,
3174 #[prost(string, tag="2")]
3177 pub domain: ::prost::alloc::string::String,
3178 #[prost(enumeration="SsoProviderType", tag="3")]
3180 pub r#type: i32,
3181 #[prost(string, tag="4")]
3184 pub metadata_url: ::prost::alloc::string::String,
3185 #[prost(string, tag="5")]
3188 pub idp_provider_name: ::prost::alloc::string::String,
3189 #[prost(message, optional, tag="6")]
3191 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3192 #[prost(message, optional, tag="7")]
3194 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3195 #[prost(message, optional, tag="8")]
3197 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3198}
3199#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3202pub struct CheckSsoByDomainRequest {
3203 #[prost(string, tag="1")]
3206 pub email: ::prost::alloc::string::String,
3207}
3208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3210pub struct CheckSsoByDomainResponse {
3211 #[prost(bool, tag="1")]
3213 pub sso_enabled: bool,
3214 #[prost(string, tag="2")]
3217 pub provider_name: ::prost::alloc::string::String,
3218}
3219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3221pub struct CreateSsoProviderRequest {
3222 #[prost(string, tag="1")]
3225 pub domain: ::prost::alloc::string::String,
3226 #[prost(enumeration="SsoProviderType", tag="2")]
3228 pub r#type: i32,
3229 #[prost(string, tag="3")]
3232 pub metadata_url: ::prost::alloc::string::String,
3233 #[prost(message, optional, tag="4")]
3236 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3237}
3238#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3240pub struct CreateSsoProviderResponse {
3241 #[prost(message, optional, tag="1")]
3243 pub provider: ::core::option::Option<SsoProvider>,
3244}
3245#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3248pub struct GetSsoProviderRequest {
3249}
3250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3252pub struct GetSsoProviderResponse {
3253 #[prost(message, optional, tag="1")]
3255 pub provider: ::core::option::Option<SsoProvider>,
3256}
3257#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3259pub struct DeleteSsoProviderRequest {
3260 #[prost(string, tag="1")]
3262 pub provider_id: ::prost::alloc::string::String,
3263}
3264#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3266pub struct DeleteSsoProviderResponse {
3267}
3268#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3272#[repr(i32)]
3273pub enum SsoProviderType {
3274 Unspecified = 0,
3276 Saml = 1,
3278 Oidc = 2,
3280}
3281impl SsoProviderType {
3282 pub fn as_str_name(&self) -> &'static str {
3287 match self {
3288 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
3289 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
3290 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
3291 }
3292 }
3293 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3295 match value {
3296 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3297 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
3298 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
3299 _ => None,
3300 }
3301 }
3302}
3303#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3309pub struct Team {
3310 #[prost(string, tag="1")]
3312 pub id: ::prost::alloc::string::String,
3313 #[prost(string, tag="2")]
3316 pub name: ::prost::alloc::string::String,
3317 #[prost(string, tag="3")]
3320 pub description: ::prost::alloc::string::String,
3321 #[prost(int32, tag="4")]
3323 pub member_count: i32,
3324 #[prost(message, optional, tag="5")]
3326 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3327 #[prost(message, optional, tag="6")]
3329 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3330 #[prost(bool, tag="7")]
3332 pub is_default: bool,
3333 #[prost(string, tag="8")]
3335 pub created_by: ::prost::alloc::string::String,
3336}
3337#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3339pub struct CreateTeamRequest {
3340 #[prost(string, tag="1")]
3343 pub name: ::prost::alloc::string::String,
3344 #[prost(string, tag="2")]
3347 pub description: ::prost::alloc::string::String,
3348}
3349#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3351pub struct CreateTeamResponse {
3352 #[prost(message, optional, tag="1")]
3354 pub team: ::core::option::Option<Team>,
3355}
3356#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3358pub struct GetTeamRequest {
3359 #[prost(string, tag="1")]
3361 pub team_id: ::prost::alloc::string::String,
3362}
3363#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3365pub struct GetTeamResponse {
3366 #[prost(message, optional, tag="1")]
3368 pub team: ::core::option::Option<Team>,
3369}
3370#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3372pub struct ListTeamsRequest {
3373 #[prost(message, optional, tag="1")]
3375 pub pagination: ::core::option::Option<Pagination>,
3376}
3377#[derive(Clone, PartialEq, ::prost::Message)]
3379pub struct ListTeamsResponse {
3380 #[prost(message, repeated, tag="1")]
3382 pub teams: ::prost::alloc::vec::Vec<Team>,
3383 #[prost(message, optional, tag="2")]
3385 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3386}
3387#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3389pub struct UpdateTeamRequest {
3390 #[prost(string, tag="1")]
3392 pub team_id: ::prost::alloc::string::String,
3393 #[prost(string, tag="2")]
3397 pub name: ::prost::alloc::string::String,
3398 #[prost(string, tag="3")]
3401 pub description: ::prost::alloc::string::String,
3402}
3403#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3405pub struct UpdateTeamResponse {
3406 #[prost(message, optional, tag="1")]
3408 pub team: ::core::option::Option<Team>,
3409}
3410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3412pub struct DeleteTeamRequest {
3413 #[prost(string, tag="1")]
3416 pub team_id: ::prost::alloc::string::String,
3417}
3418#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3420pub struct DeleteTeamResponse {
3421}
3422#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3424pub struct AddTeamMembersRequest {
3425 #[prost(string, tag="1")]
3427 pub team_id: ::prost::alloc::string::String,
3428 #[prost(string, repeated, tag="2")]
3432 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3433}
3434#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3436pub struct AddTeamMembersResponse {
3437 #[prost(message, optional, tag="1")]
3439 pub team: ::core::option::Option<Team>,
3440}
3441#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3443pub struct RemoveTeamMembersRequest {
3444 #[prost(string, tag="1")]
3446 pub team_id: ::prost::alloc::string::String,
3447 #[prost(string, repeated, tag="2")]
3450 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3451}
3452#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3454pub struct RemoveTeamMembersResponse {
3455 #[prost(message, optional, tag="1")]
3457 pub team: ::core::option::Option<Team>,
3458}
3459#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3461pub struct ListTeamMembersRequest {
3462 #[prost(string, tag="1")]
3464 pub team_id: ::prost::alloc::string::String,
3465 #[prost(message, optional, tag="2")]
3467 pub pagination: ::core::option::Option<Pagination>,
3468}
3469#[derive(Clone, PartialEq, ::prost::Message)]
3471pub struct ListTeamMembersResponse {
3472 #[prost(message, repeated, tag="1")]
3474 pub users: ::prost::alloc::vec::Vec<User>,
3475 #[prost(message, optional, tag="2")]
3477 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3478}
3479#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3483pub struct TemplateVariable {
3484 #[prost(string, tag="1")]
3487 pub name: ::prost::alloc::string::String,
3488 #[prost(string, tag="2")]
3491 pub description: ::prost::alloc::string::String,
3492 #[prost(bool, tag="3")]
3494 pub required: bool,
3495 #[prost(enumeration="TemplateVariableSource", tag="4")]
3497 pub source: i32,
3498 #[prost(string, tag="5")]
3501 pub default_value: ::prost::alloc::string::String,
3502 #[prost(bool, tag="6")]
3505 pub pii: bool,
3506}
3507#[derive(Clone, PartialEq, ::prost::Message)]
3510pub struct Template {
3511 #[prost(string, tag="1")]
3513 pub id: ::prost::alloc::string::String,
3514 #[prost(string, tag="2")]
3517 pub name: ::prost::alloc::string::String,
3518 #[prost(string, tag="3")]
3521 pub body: ::prost::alloc::string::String,
3522 #[prost(message, repeated, tag="4")]
3524 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3525 #[prost(int32, tag="5")]
3527 pub version: i32,
3528 #[prost(message, optional, tag="6")]
3530 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3531 #[prost(message, optional, tag="7")]
3533 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3534 #[prost(string, tag="8")]
3538 pub title: ::prost::alloc::string::String,
3539 #[prost(enumeration="TemplateType", tag="9")]
3542 pub r#type: i32,
3543}
3544#[derive(Clone, PartialEq, ::prost::Message)]
3546pub struct CreateTemplateRequest {
3547 #[prost(string, tag="1")]
3550 pub name: ::prost::alloc::string::String,
3551 #[prost(string, tag="2")]
3554 pub body: ::prost::alloc::string::String,
3555 #[prost(message, repeated, tag="3")]
3557 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3558 #[prost(string, tag="4")]
3561 pub title: ::prost::alloc::string::String,
3562 #[prost(enumeration="TemplateType", tag="5")]
3564 pub r#type: i32,
3565}
3566#[derive(Clone, PartialEq, ::prost::Message)]
3568pub struct CreateTemplateResponse {
3569 #[prost(message, optional, tag="1")]
3571 pub template: ::core::option::Option<Template>,
3572}
3573#[derive(Clone, PartialEq, ::prost::Message)]
3575pub struct UpdateTemplateRequest {
3576 #[prost(string, tag="1")]
3578 pub template_id: ::prost::alloc::string::String,
3579 #[prost(string, tag="2")]
3582 pub body: ::prost::alloc::string::String,
3583 #[prost(message, repeated, tag="3")]
3585 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3586}
3587#[derive(Clone, PartialEq, ::prost::Message)]
3589pub struct UpdateTemplateResponse {
3590 #[prost(message, optional, tag="1")]
3592 pub template: ::core::option::Option<Template>,
3593}
3594#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3596pub struct GetTemplateRequest {
3597 #[prost(string, tag="1")]
3599 pub template_id: ::prost::alloc::string::String,
3600 #[prost(int32, tag="2")]
3602 pub version: i32,
3603}
3604#[derive(Clone, PartialEq, ::prost::Message)]
3606pub struct GetTemplateResponse {
3607 #[prost(message, optional, tag="1")]
3609 pub template: ::core::option::Option<Template>,
3610}
3611#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3613pub struct ListTemplatesRequest {
3614 #[prost(message, optional, tag="1")]
3616 pub pagination: ::core::option::Option<Pagination>,
3617 #[prost(enumeration="TemplateType", tag="2")]
3619 pub r#type: i32,
3620}
3621#[derive(Clone, PartialEq, ::prost::Message)]
3623pub struct ListTemplatesResponse {
3624 #[prost(message, repeated, tag="1")]
3626 pub templates: ::prost::alloc::vec::Vec<Template>,
3627 #[prost(message, optional, tag="2")]
3629 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3630}
3631#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3635#[repr(i32)]
3636pub enum TemplateType {
3637 Unspecified = 0,
3639 Markdown = 1,
3641 Rich = 2,
3643 Html = 3,
3645}
3646impl TemplateType {
3647 pub fn as_str_name(&self) -> &'static str {
3652 match self {
3653 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
3654 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
3655 Self::Rich => "TEMPLATE_TYPE_RICH",
3656 Self::Html => "TEMPLATE_TYPE_HTML",
3657 }
3658 }
3659 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3661 match value {
3662 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3663 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
3664 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
3665 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
3666 _ => None,
3667 }
3668 }
3669}
3670#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3672#[repr(i32)]
3673pub enum TemplateVariableSource {
3674 Unspecified = 0,
3676 Profile = 1,
3678 Custom = 2,
3680}
3681impl TemplateVariableSource {
3682 pub fn as_str_name(&self) -> &'static str {
3687 match self {
3688 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
3689 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
3690 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
3691 }
3692 }
3693 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3695 match value {
3696 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
3697 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
3698 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
3699 _ => None,
3700 }
3701 }
3702}
3703include!("pidgr.v1.tonic.rs");
3704