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 #[prost(string, tag="8")]
2139 pub campaign_id: ::prost::alloc::string::String,
2140}
2141#[derive(Clone, PartialEq, ::prost::Message)]
2143pub struct IngestTouchEventsRequest {
2144 #[prost(message, repeated, tag="1")]
2147 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2148}
2149#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2151pub struct IngestTouchEventsResponse {
2152 #[prost(int32, tag="1")]
2154 pub ingested_count: i32,
2155}
2156#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2158pub struct HeatmapDataPoint {
2159 #[prost(float, tag="1")]
2161 pub x_pct: f32,
2162 #[prost(float, tag="2")]
2164 pub y_pct: f32,
2165 #[prost(float, tag="3")]
2167 pub value: f32,
2168}
2169#[derive(Clone, PartialEq, ::prost::Message)]
2171pub struct QueryHeatmapDataRequest {
2172 #[prost(string, tag="1")]
2175 pub screen_name: ::prost::alloc::string::String,
2176 #[prost(message, optional, tag="2")]
2178 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2179 #[prost(message, optional, tag="3")]
2181 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2182 #[prost(string, tag="4")]
2185 pub campaign_id: ::prost::alloc::string::String,
2186 #[prost(float, tag="6")]
2189 pub grid_resolution: f32,
2190 #[prost(enumeration="HeatmapMode", tag="7")]
2192 pub mode: i32,
2193 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2195 pub event_types: ::prost::alloc::vec::Vec<i32>,
2196}
2197#[derive(Clone, PartialEq, ::prost::Message)]
2199pub struct QueryHeatmapDataResponse {
2200 #[prost(message, repeated, tag="1")]
2202 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2203 #[prost(string, tag="3")]
2206 pub screenshot_url: ::prost::alloc::string::String,
2207 #[prost(bool, tag="4")]
2209 pub cohort_enabled: bool,
2210}
2211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2213pub struct UploadScreenshotRequest {
2214 #[prost(string, tag="1")]
2217 pub screen_name: ::prost::alloc::string::String,
2218 #[prost(string, tag="2")]
2220 pub app_version: ::prost::alloc::string::String,
2221 #[prost(bytes="vec", tag="3")]
2224 pub image_data: ::prost::alloc::vec::Vec<u8>,
2225}
2226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2228pub struct UploadScreenshotResponse {
2229 #[prost(string, tag="1")]
2231 pub url: ::prost::alloc::string::String,
2232}
2233#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2235pub struct ScreenScreenshot {
2236 #[prost(string, tag="1")]
2238 pub screen_name: ::prost::alloc::string::String,
2239 #[prost(string, tag="2")]
2241 pub url: ::prost::alloc::string::String,
2242 #[prost(string, tag="3")]
2244 pub app_version: ::prost::alloc::string::String,
2245}
2246#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2248pub struct ListScreenshotsRequest {
2249}
2250#[derive(Clone, PartialEq, ::prost::Message)]
2252pub struct ListScreenshotsResponse {
2253 #[prost(message, repeated, tag="1")]
2255 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2256}
2257#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2261#[repr(i32)]
2262pub enum TouchEventType {
2263 Unspecified = 0,
2265 Tap = 1,
2267 LongPress = 2,
2269 Scroll = 3,
2271 ActionClick = 4,
2273}
2274impl TouchEventType {
2275 pub fn as_str_name(&self) -> &'static str {
2280 match self {
2281 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2282 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2283 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2284 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2285 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2286 }
2287 }
2288 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2290 match value {
2291 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2292 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2293 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2294 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2295 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2296 _ => None,
2297 }
2298 }
2299}
2300#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2302#[repr(i32)]
2303pub enum HeatmapMode {
2304 Unspecified = 0,
2306 Total = 1,
2308 Median = 2,
2310}
2311impl HeatmapMode {
2312 pub fn as_str_name(&self) -> &'static str {
2317 match self {
2318 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2319 Self::Total => "HEATMAP_MODE_TOTAL",
2320 Self::Median => "HEATMAP_MODE_MEDIAN",
2321 }
2322 }
2323 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2325 match value {
2326 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2327 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2328 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2329 _ => None,
2330 }
2331 }
2332}
2333#[derive(Clone, PartialEq, ::prost::Message)]
2337pub struct InboxEntry {
2338 #[prost(string, tag="1")]
2341 pub delivery_id: ::prost::alloc::string::String,
2342 #[prost(message, optional, tag="2")]
2344 pub message: ::core::option::Option<Message>,
2345 #[prost(enumeration="DeliveryStatus", tag="3")]
2347 pub status: i32,
2348 #[prost(bool, tag="4")]
2350 pub read: bool,
2351 #[prost(message, optional, tag="5")]
2353 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2354}
2355#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2357pub struct SyncRequest {
2358 #[prost(message, optional, tag="1")]
2360 pub since: ::core::option::Option<::prost_types::Timestamp>,
2361 #[prost(int32, tag="2")]
2364 pub limit: i32,
2365}
2366#[derive(Clone, PartialEq, ::prost::Message)]
2368pub struct SyncResponse {
2369 #[prost(message, repeated, tag="1")]
2371 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2372 #[prost(message, optional, tag="2")]
2374 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2375}
2376#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2378pub struct MarkReadRequest {
2379 #[prost(string, tag="1")]
2382 pub delivery_id: ::prost::alloc::string::String,
2383}
2384#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2386pub struct MarkReadResponse {
2387 #[prost(bool, tag="1")]
2389 pub success: bool,
2390}
2391#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2393pub struct GetMessageRequest {
2394 #[prost(string, tag="1")]
2397 pub delivery_id: ::prost::alloc::string::String,
2398}
2399#[derive(Clone, PartialEq, ::prost::Message)]
2401pub struct GetMessageResponse {
2402 #[prost(message, optional, tag="1")]
2404 pub entry: ::core::option::Option<InboxEntry>,
2405}
2406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2411pub struct InviteLink {
2412 #[prost(string, tag="1")]
2414 pub id: ::prost::alloc::string::String,
2415 #[prost(string, tag="2")]
2417 pub token: ::prost::alloc::string::String,
2418 #[prost(string, tag="3")]
2420 pub role_id: ::prost::alloc::string::String,
2421 #[prost(int32, tag="4")]
2424 pub max_uses: i32,
2425 #[prost(int32, tag="5")]
2427 pub use_count: i32,
2428 #[prost(message, optional, tag="6")]
2430 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2431 #[prost(message, optional, tag="7")]
2433 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2434 #[prost(string, tag="8")]
2436 pub created_by: ::prost::alloc::string::String,
2437 #[prost(message, optional, tag="9")]
2439 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2440}
2441#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2443pub struct CreateInviteLinkRequest {
2444 #[prost(string, tag="1")]
2446 pub role_id: ::prost::alloc::string::String,
2447 #[prost(int32, tag="2")]
2449 pub max_uses: i32,
2450 #[prost(int32, tag="3")]
2453 pub expires_in_hours: i32,
2454}
2455#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2457pub struct CreateInviteLinkResponse {
2458 #[prost(message, optional, tag="1")]
2460 pub invite_link: ::core::option::Option<InviteLink>,
2461 #[prost(string, tag="2")]
2463 pub url: ::prost::alloc::string::String,
2464}
2465#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2467pub struct ListInviteLinksRequest {
2468}
2469#[derive(Clone, PartialEq, ::prost::Message)]
2471pub struct ListInviteLinksResponse {
2472 #[prost(message, repeated, tag="1")]
2474 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
2475}
2476#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2478pub struct RevokeInviteLinkRequest {
2479 #[prost(string, tag="1")]
2481 pub invite_link_id: ::prost::alloc::string::String,
2482}
2483#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2485pub struct RevokeInviteLinkResponse {
2486}
2487#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2489pub struct RedeemInviteLinkRequest {
2490 #[prost(string, tag="1")]
2492 pub token: ::prost::alloc::string::String,
2493}
2494#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2496pub struct RedeemInviteLinkResponse {
2497 #[prost(string, tag="1")]
2499 pub organization_name: ::prost::alloc::string::String,
2500}
2501#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2503pub struct ValidateInviteLinkRequest {
2504 #[prost(string, tag="1")]
2506 pub token: ::prost::alloc::string::String,
2507 #[prost(string, tag="2")]
2510 pub email: ::prost::alloc::string::String,
2511}
2512#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2514pub struct ValidateInviteLinkResponse {
2515 #[prost(string, tag="1")]
2517 pub organization_name: ::prost::alloc::string::String,
2518}
2519#[derive(Clone, PartialEq, ::prost::Message)]
2523pub struct InviteUserRequest {
2524 #[prost(string, tag="1")]
2527 pub email: ::prost::alloc::string::String,
2528 #[prost(string, tag="2")]
2531 pub name: ::prost::alloc::string::String,
2532 #[prost(string, tag="4")]
2534 pub role_id: ::prost::alloc::string::String,
2535 #[prost(message, optional, tag="5")]
2537 pub profile: ::core::option::Option<UserProfile>,
2538}
2539#[derive(Clone, PartialEq, ::prost::Message)]
2541pub struct InviteUserResponse {
2542 #[prost(message, optional, tag="1")]
2544 pub user: ::core::option::Option<User>,
2545}
2546#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2548pub struct GetUserRequest {
2549 #[prost(string, tag="1")]
2551 pub user_id: ::prost::alloc::string::String,
2552}
2553#[derive(Clone, PartialEq, ::prost::Message)]
2555pub struct GetUserResponse {
2556 #[prost(message, optional, tag="1")]
2558 pub user: ::core::option::Option<User>,
2559}
2560#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2562pub struct ListUsersRequest {
2563 #[prost(message, optional, tag="1")]
2565 pub pagination: ::core::option::Option<Pagination>,
2566}
2567#[derive(Clone, PartialEq, ::prost::Message)]
2569pub struct ListUsersResponse {
2570 #[prost(message, repeated, tag="1")]
2572 pub users: ::prost::alloc::vec::Vec<User>,
2573 #[prost(message, optional, tag="2")]
2575 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2576}
2577#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2579pub struct UpdateUserRoleRequest {
2580 #[prost(string, tag="1")]
2582 pub user_id: ::prost::alloc::string::String,
2583 #[prost(string, tag="2")]
2585 pub role_id: ::prost::alloc::string::String,
2586}
2587#[derive(Clone, PartialEq, ::prost::Message)]
2589pub struct UpdateUserRoleResponse {
2590 #[prost(message, optional, tag="1")]
2592 pub user: ::core::option::Option<User>,
2593}
2594#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2596pub struct DeactivateUserRequest {
2597 #[prost(string, tag="1")]
2599 pub user_id: ::prost::alloc::string::String,
2600}
2601#[derive(Clone, PartialEq, ::prost::Message)]
2603pub struct DeactivateUserResponse {
2604 #[prost(message, optional, tag="1")]
2606 pub user: ::core::option::Option<User>,
2607}
2608#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2610pub struct ReactivateUserRequest {
2611 #[prost(string, tag="1")]
2613 pub user_id: ::prost::alloc::string::String,
2614}
2615#[derive(Clone, PartialEq, ::prost::Message)]
2617pub struct ReactivateUserResponse {
2618 #[prost(message, optional, tag="1")]
2620 pub user: ::core::option::Option<User>,
2621}
2622#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2624pub struct RevokeInviteRequest {
2625 #[prost(string, tag="1")]
2628 pub user_id: ::prost::alloc::string::String,
2629}
2630#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2632pub struct RevokeInviteResponse {
2633}
2634#[derive(Clone, PartialEq, ::prost::Message)]
2636pub struct UpdateUserProfileRequest {
2637 #[prost(string, tag="1")]
2640 pub user_id: ::prost::alloc::string::String,
2641 #[prost(message, optional, tag="2")]
2643 pub profile: ::core::option::Option<UserProfile>,
2644}
2645#[derive(Clone, PartialEq, ::prost::Message)]
2647pub struct UpdateUserProfileResponse {
2648 #[prost(message, optional, tag="1")]
2650 pub user: ::core::option::Option<User>,
2651}
2652#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2654pub struct GetUserSettingsRequest {
2655}
2656#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2658pub struct GetUserSettingsResponse {
2659 #[prost(message, optional, tag="1")]
2661 pub settings: ::core::option::Option<UserSettings>,
2662}
2663#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2665pub struct UpdateUserSettingsRequest {
2666 #[prost(message, optional, tag="1")]
2669 pub settings: ::core::option::Option<UserSettings>,
2670}
2671#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2673pub struct UpdateUserSettingsResponse {
2674 #[prost(message, optional, tag="1")]
2676 pub settings: ::core::option::Option<UserSettings>,
2677}
2678#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2680pub struct BulkInviteUsersRequest {
2681 #[prost(string, repeated, tag="1")]
2684 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2685 #[prost(string, tag="2")]
2687 pub role_id: ::prost::alloc::string::String,
2688}
2689#[derive(Clone, PartialEq, ::prost::Message)]
2691pub struct BulkInviteResult {
2692 #[prost(string, tag="1")]
2694 pub email: ::prost::alloc::string::String,
2695 #[prost(bool, tag="2")]
2697 pub success: bool,
2698 #[prost(string, tag="3")]
2701 pub error: ::prost::alloc::string::String,
2702 #[prost(message, optional, tag="4")]
2704 pub user: ::core::option::Option<User>,
2705}
2706#[derive(Clone, PartialEq, ::prost::Message)]
2708pub struct BulkInviteUsersResponse {
2709 #[prost(message, repeated, tag="1")]
2711 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
2712 #[prost(int32, tag="2")]
2714 pub invited_count: i32,
2715 #[prost(int32, tag="3")]
2717 pub failed_count: i32,
2718}
2719#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2723pub struct ConfirmPasskeyEnrollmentRequest {
2724}
2725#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2727pub struct ConfirmPasskeyEnrollmentResponse {
2728 #[prost(bool, tag="1")]
2730 pub confirmed: bool,
2731}
2732#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2737pub struct SsoAttributeMapping {
2738 #[prost(string, tag="1")]
2741 pub idp_claim: ::prost::alloc::string::String,
2742 #[prost(string, tag="2")]
2746 pub profile_field: ::prost::alloc::string::String,
2747}
2748#[derive(Clone, PartialEq, ::prost::Message)]
2750pub struct Organization {
2751 #[prost(string, tag="1")]
2753 pub id: ::prost::alloc::string::String,
2754 #[prost(string, tag="2")]
2757 pub name: ::prost::alloc::string::String,
2758 #[prost(message, optional, tag="3")]
2760 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2761 #[prost(message, optional, tag="4")]
2763 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2764 #[prost(enumeration="Industry", tag="5")]
2766 pub industry: i32,
2767 #[prost(enumeration="CompanySize", tag="6")]
2769 pub company_size: i32,
2770 #[prost(message, repeated, tag="7")]
2773 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2774 #[prost(string, tag="8")]
2778 pub default_locale: ::prost::alloc::string::String,
2779}
2780#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2783pub struct CreateOrganizationRequest {
2784 #[prost(string, tag="1")]
2787 pub name: ::prost::alloc::string::String,
2788 #[prost(string, tag="2")]
2791 pub admin_email: ::prost::alloc::string::String,
2792 #[prost(enumeration="Industry", tag="3")]
2794 pub industry: i32,
2795 #[prost(enumeration="CompanySize", tag="4")]
2797 pub company_size: i32,
2798 #[prost(string, tag="5")]
2801 pub access_code: ::prost::alloc::string::String,
2802}
2803#[derive(Clone, PartialEq, ::prost::Message)]
2805pub struct CreateOrganizationResponse {
2806 #[prost(message, optional, tag="1")]
2808 pub organization: ::core::option::Option<Organization>,
2809 #[prost(message, optional, tag="2")]
2811 pub admin_user: ::core::option::Option<User>,
2812}
2813#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2815pub struct GetOrganizationRequest {
2816}
2817#[derive(Clone, PartialEq, ::prost::Message)]
2819pub struct GetOrganizationResponse {
2820 #[prost(message, optional, tag="1")]
2822 pub organization: ::core::option::Option<Organization>,
2823}
2824#[derive(Clone, PartialEq, ::prost::Message)]
2826pub struct UpdateOrganizationRequest {
2827 #[prost(string, tag="1")]
2830 pub name: ::prost::alloc::string::String,
2831 #[prost(message, optional, tag="2")]
2833 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2834 #[prost(enumeration="Industry", tag="3")]
2836 pub industry: i32,
2837 #[prost(enumeration="CompanySize", tag="4")]
2839 pub company_size: i32,
2840 #[prost(string, tag="5")]
2843 pub default_locale: ::prost::alloc::string::String,
2844}
2845#[derive(Clone, PartialEq, ::prost::Message)]
2847pub struct UpdateOrganizationResponse {
2848 #[prost(message, optional, tag="1")]
2850 pub organization: ::core::option::Option<Organization>,
2851}
2852#[derive(Clone, PartialEq, ::prost::Message)]
2854pub struct UpdateSsoAttributeMappingsRequest {
2855 #[prost(message, repeated, tag="1")]
2857 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2858}
2859#[derive(Clone, PartialEq, ::prost::Message)]
2861pub struct UpdateSsoAttributeMappingsResponse {
2862 #[prost(message, optional, tag="1")]
2864 pub organization: ::core::option::Option<Organization>,
2865}
2866#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2868pub struct RotateAnalyticsSaltRequest {
2869 #[prost(int32, tag="1")]
2871 pub new_bucket_count: i32,
2872}
2873#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2875pub struct RotateAnalyticsSaltResponse {
2876 #[prost(int32, tag="1")]
2878 pub bucket_count: i32,
2879}
2880#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2882pub struct UpdateAnalyticsEpsilonRequest {
2883 #[prost(float, tag="1")]
2885 pub epsilon: f32,
2886}
2887#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2889pub struct UpdateAnalyticsEpsilonResponse {
2890 #[prost(float, tag="1")]
2892 pub epsilon: f32,
2893}
2894#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2898#[repr(i32)]
2899pub enum Industry {
2900 Unspecified = 0,
2901 Technology = 1,
2902 Finance = 2,
2903 Healthcare = 3,
2904 Education = 4,
2905 Retail = 5,
2906 Manufacturing = 6,
2907 Media = 7,
2908 Other = 8,
2909}
2910impl Industry {
2911 pub fn as_str_name(&self) -> &'static str {
2916 match self {
2917 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
2918 Self::Technology => "INDUSTRY_TECHNOLOGY",
2919 Self::Finance => "INDUSTRY_FINANCE",
2920 Self::Healthcare => "INDUSTRY_HEALTHCARE",
2921 Self::Education => "INDUSTRY_EDUCATION",
2922 Self::Retail => "INDUSTRY_RETAIL",
2923 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
2924 Self::Media => "INDUSTRY_MEDIA",
2925 Self::Other => "INDUSTRY_OTHER",
2926 }
2927 }
2928 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2930 match value {
2931 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
2932 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
2933 "INDUSTRY_FINANCE" => Some(Self::Finance),
2934 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
2935 "INDUSTRY_EDUCATION" => Some(Self::Education),
2936 "INDUSTRY_RETAIL" => Some(Self::Retail),
2937 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
2938 "INDUSTRY_MEDIA" => Some(Self::Media),
2939 "INDUSTRY_OTHER" => Some(Self::Other),
2940 _ => None,
2941 }
2942 }
2943}
2944#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2946#[repr(i32)]
2947pub enum CompanySize {
2948 Unspecified = 0,
2949 CompanySize1200 = 1,
2950 CompanySize200500 = 2,
2951 CompanySize5001000 = 3,
2952 CompanySize10005000 = 4,
2953 CompanySize5000Plus = 5,
2954}
2955impl CompanySize {
2956 pub fn as_str_name(&self) -> &'static str {
2961 match self {
2962 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
2963 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
2964 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
2965 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
2966 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
2967 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
2968 }
2969 }
2970 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2972 match value {
2973 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
2974 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
2975 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
2976 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
2977 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
2978 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
2979 _ => None,
2980 }
2981 }
2982}
2983#[derive(Clone, PartialEq, ::prost::Message)]
2987pub struct UserRenderContext {
2988 #[prost(string, tag="1")]
2990 pub user_id: ::prost::alloc::string::String,
2991 #[prost(map="string, string", tag="2")]
2994 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2995}
2996#[derive(Clone, PartialEq, ::prost::Message)]
2998pub struct RenderBatchRequest {
2999 #[prost(string, tag="1")]
3001 pub template_id: ::prost::alloc::string::String,
3002 #[prost(int32, tag="2")]
3004 pub version: i32,
3005 #[prost(message, repeated, tag="3")]
3008 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3009}
3010#[derive(Clone, PartialEq, ::prost::Message)]
3013pub struct RenderBatchResponse {
3014 #[prost(string, tag="1")]
3016 pub user_id: ::prost::alloc::string::String,
3017 #[prost(message, optional, tag="2")]
3019 pub message: ::core::option::Option<Message>,
3020 #[prost(string, tag="3")]
3022 pub error: ::prost::alloc::string::String,
3023}
3024#[derive(Clone, PartialEq, ::prost::Message)]
3029pub struct SessionRecording {
3030 #[prost(string, tag="1")]
3032 pub id: ::prost::alloc::string::String,
3033 #[prost(message, optional, tag="2")]
3035 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3036 #[prost(message, optional, tag="3")]
3038 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3039 #[prost(int32, tag="4")]
3041 pub duration_seconds: i32,
3042 #[prost(float, tag="5")]
3044 pub activity_score: f32,
3045}
3046#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3048pub struct ListSessionRecordingsRequest {
3049 #[prost(string, tag="1")]
3052 pub campaign_id: ::prost::alloc::string::String,
3053 #[prost(message, optional, tag="2")]
3055 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3056 #[prost(message, optional, tag="3")]
3058 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3059 #[prost(message, optional, tag="4")]
3061 pub pagination: ::core::option::Option<Pagination>,
3062}
3063#[derive(Clone, PartialEq, ::prost::Message)]
3065pub struct ListSessionRecordingsResponse {
3066 #[prost(message, repeated, tag="1")]
3068 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3069 #[prost(message, optional, tag="2")]
3071 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3072}
3073#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3075pub struct GetSessionSnapshotsRequest {
3076 #[prost(string, tag="1")]
3079 pub recording_id: ::prost::alloc::string::String,
3080}
3081#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3083pub struct GetSessionSnapshotsResponse {
3084 #[prost(string, tag="1")]
3087 pub snapshot_data: ::prost::alloc::string::String,
3088}
3089#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3093pub struct ListRolesRequest {
3094}
3095#[derive(Clone, PartialEq, ::prost::Message)]
3097pub struct ListRolesResponse {
3098 #[prost(message, repeated, tag="1")]
3100 pub roles: ::prost::alloc::vec::Vec<Role>,
3101}
3102#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3104pub struct CreateRoleRequest {
3105 #[prost(string, tag="1")]
3108 pub name: ::prost::alloc::string::String,
3109 #[prost(enumeration="Permission", repeated, tag="2")]
3112 pub permissions: ::prost::alloc::vec::Vec<i32>,
3113}
3114#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3116pub struct CreateRoleResponse {
3117 #[prost(message, optional, tag="1")]
3119 pub role: ::core::option::Option<Role>,
3120}
3121#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3123pub struct UpdateRoleRequest {
3124 #[prost(string, tag="1")]
3126 pub role_id: ::prost::alloc::string::String,
3127 #[prost(string, tag="2")]
3129 pub name: ::prost::alloc::string::String,
3130 #[prost(enumeration="Permission", repeated, tag="3")]
3134 pub permissions: ::prost::alloc::vec::Vec<i32>,
3135}
3136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3138pub struct UpdateRoleResponse {
3139 #[prost(message, optional, tag="1")]
3141 pub role: ::core::option::Option<Role>,
3142}
3143#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3145pub struct DeleteRoleRequest {
3146 #[prost(string, tag="1")]
3148 pub role_id: ::prost::alloc::string::String,
3149}
3150#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3152pub struct DeleteRoleResponse {
3153}
3154#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3160pub struct SamlAttributeNames {
3161 #[prost(string, tag="1")]
3163 pub email: ::prost::alloc::string::String,
3164 #[prost(string, tag="2")]
3166 pub given_name: ::prost::alloc::string::String,
3167 #[prost(string, tag="3")]
3169 pub family_name: ::prost::alloc::string::String,
3170}
3171#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3173pub struct SsoProvider {
3174 #[prost(string, tag="1")]
3176 pub id: ::prost::alloc::string::String,
3177 #[prost(string, tag="2")]
3180 pub domain: ::prost::alloc::string::String,
3181 #[prost(enumeration="SsoProviderType", tag="3")]
3183 pub r#type: i32,
3184 #[prost(string, tag="4")]
3187 pub metadata_url: ::prost::alloc::string::String,
3188 #[prost(string, tag="5")]
3191 pub idp_provider_name: ::prost::alloc::string::String,
3192 #[prost(message, optional, tag="6")]
3194 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3195 #[prost(message, optional, tag="7")]
3197 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3198 #[prost(message, optional, tag="8")]
3200 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3201}
3202#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3205pub struct CheckSsoByDomainRequest {
3206 #[prost(string, tag="1")]
3209 pub email: ::prost::alloc::string::String,
3210}
3211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3213pub struct CheckSsoByDomainResponse {
3214 #[prost(bool, tag="1")]
3216 pub sso_enabled: bool,
3217 #[prost(string, tag="2")]
3220 pub provider_name: ::prost::alloc::string::String,
3221}
3222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3224pub struct CreateSsoProviderRequest {
3225 #[prost(string, tag="1")]
3228 pub domain: ::prost::alloc::string::String,
3229 #[prost(enumeration="SsoProviderType", tag="2")]
3231 pub r#type: i32,
3232 #[prost(string, tag="3")]
3235 pub metadata_url: ::prost::alloc::string::String,
3236 #[prost(message, optional, tag="4")]
3239 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3240}
3241#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3243pub struct CreateSsoProviderResponse {
3244 #[prost(message, optional, tag="1")]
3246 pub provider: ::core::option::Option<SsoProvider>,
3247}
3248#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3251pub struct GetSsoProviderRequest {
3252}
3253#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3255pub struct GetSsoProviderResponse {
3256 #[prost(message, optional, tag="1")]
3258 pub provider: ::core::option::Option<SsoProvider>,
3259}
3260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3262pub struct DeleteSsoProviderRequest {
3263 #[prost(string, tag="1")]
3265 pub provider_id: ::prost::alloc::string::String,
3266}
3267#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3269pub struct DeleteSsoProviderResponse {
3270}
3271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3275#[repr(i32)]
3276pub enum SsoProviderType {
3277 Unspecified = 0,
3279 Saml = 1,
3281 Oidc = 2,
3283}
3284impl SsoProviderType {
3285 pub fn as_str_name(&self) -> &'static str {
3290 match self {
3291 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
3292 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
3293 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
3294 }
3295 }
3296 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3298 match value {
3299 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3300 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
3301 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
3302 _ => None,
3303 }
3304 }
3305}
3306#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3312pub struct Team {
3313 #[prost(string, tag="1")]
3315 pub id: ::prost::alloc::string::String,
3316 #[prost(string, tag="2")]
3319 pub name: ::prost::alloc::string::String,
3320 #[prost(string, tag="3")]
3323 pub description: ::prost::alloc::string::String,
3324 #[prost(int32, tag="4")]
3326 pub member_count: i32,
3327 #[prost(message, optional, tag="5")]
3329 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3330 #[prost(message, optional, tag="6")]
3332 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3333 #[prost(bool, tag="7")]
3335 pub is_default: bool,
3336 #[prost(string, tag="8")]
3338 pub created_by: ::prost::alloc::string::String,
3339}
3340#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3342pub struct CreateTeamRequest {
3343 #[prost(string, tag="1")]
3346 pub name: ::prost::alloc::string::String,
3347 #[prost(string, tag="2")]
3350 pub description: ::prost::alloc::string::String,
3351}
3352#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3354pub struct CreateTeamResponse {
3355 #[prost(message, optional, tag="1")]
3357 pub team: ::core::option::Option<Team>,
3358}
3359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3361pub struct GetTeamRequest {
3362 #[prost(string, tag="1")]
3364 pub team_id: ::prost::alloc::string::String,
3365}
3366#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3368pub struct GetTeamResponse {
3369 #[prost(message, optional, tag="1")]
3371 pub team: ::core::option::Option<Team>,
3372}
3373#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3375pub struct ListTeamsRequest {
3376 #[prost(message, optional, tag="1")]
3378 pub pagination: ::core::option::Option<Pagination>,
3379}
3380#[derive(Clone, PartialEq, ::prost::Message)]
3382pub struct ListTeamsResponse {
3383 #[prost(message, repeated, tag="1")]
3385 pub teams: ::prost::alloc::vec::Vec<Team>,
3386 #[prost(message, optional, tag="2")]
3388 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3389}
3390#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3392pub struct UpdateTeamRequest {
3393 #[prost(string, tag="1")]
3395 pub team_id: ::prost::alloc::string::String,
3396 #[prost(string, tag="2")]
3400 pub name: ::prost::alloc::string::String,
3401 #[prost(string, tag="3")]
3404 pub description: ::prost::alloc::string::String,
3405}
3406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3408pub struct UpdateTeamResponse {
3409 #[prost(message, optional, tag="1")]
3411 pub team: ::core::option::Option<Team>,
3412}
3413#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3415pub struct DeleteTeamRequest {
3416 #[prost(string, tag="1")]
3419 pub team_id: ::prost::alloc::string::String,
3420}
3421#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3423pub struct DeleteTeamResponse {
3424}
3425#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3427pub struct AddTeamMembersRequest {
3428 #[prost(string, tag="1")]
3430 pub team_id: ::prost::alloc::string::String,
3431 #[prost(string, repeated, tag="2")]
3435 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3436}
3437#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3439pub struct AddTeamMembersResponse {
3440 #[prost(message, optional, tag="1")]
3442 pub team: ::core::option::Option<Team>,
3443}
3444#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3446pub struct RemoveTeamMembersRequest {
3447 #[prost(string, tag="1")]
3449 pub team_id: ::prost::alloc::string::String,
3450 #[prost(string, repeated, tag="2")]
3453 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3454}
3455#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3457pub struct RemoveTeamMembersResponse {
3458 #[prost(message, optional, tag="1")]
3460 pub team: ::core::option::Option<Team>,
3461}
3462#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3464pub struct ListTeamMembersRequest {
3465 #[prost(string, tag="1")]
3467 pub team_id: ::prost::alloc::string::String,
3468 #[prost(message, optional, tag="2")]
3470 pub pagination: ::core::option::Option<Pagination>,
3471}
3472#[derive(Clone, PartialEq, ::prost::Message)]
3474pub struct ListTeamMembersResponse {
3475 #[prost(message, repeated, tag="1")]
3477 pub users: ::prost::alloc::vec::Vec<User>,
3478 #[prost(message, optional, tag="2")]
3480 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3481}
3482#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3486pub struct TemplateVariable {
3487 #[prost(string, tag="1")]
3490 pub name: ::prost::alloc::string::String,
3491 #[prost(string, tag="2")]
3494 pub description: ::prost::alloc::string::String,
3495 #[prost(bool, tag="3")]
3497 pub required: bool,
3498 #[prost(enumeration="TemplateVariableSource", tag="4")]
3500 pub source: i32,
3501 #[prost(string, tag="5")]
3504 pub default_value: ::prost::alloc::string::String,
3505 #[prost(bool, tag="6")]
3508 pub pii: bool,
3509}
3510#[derive(Clone, PartialEq, ::prost::Message)]
3513pub struct Template {
3514 #[prost(string, tag="1")]
3516 pub id: ::prost::alloc::string::String,
3517 #[prost(string, tag="2")]
3520 pub name: ::prost::alloc::string::String,
3521 #[prost(string, tag="3")]
3524 pub body: ::prost::alloc::string::String,
3525 #[prost(message, repeated, tag="4")]
3527 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3528 #[prost(int32, tag="5")]
3530 pub version: i32,
3531 #[prost(message, optional, tag="6")]
3533 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3534 #[prost(message, optional, tag="7")]
3536 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3537 #[prost(string, tag="8")]
3541 pub title: ::prost::alloc::string::String,
3542 #[prost(enumeration="TemplateType", tag="9")]
3545 pub r#type: i32,
3546}
3547#[derive(Clone, PartialEq, ::prost::Message)]
3549pub struct CreateTemplateRequest {
3550 #[prost(string, tag="1")]
3553 pub name: ::prost::alloc::string::String,
3554 #[prost(string, tag="2")]
3557 pub body: ::prost::alloc::string::String,
3558 #[prost(message, repeated, tag="3")]
3560 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3561 #[prost(string, tag="4")]
3564 pub title: ::prost::alloc::string::String,
3565 #[prost(enumeration="TemplateType", tag="5")]
3567 pub r#type: i32,
3568}
3569#[derive(Clone, PartialEq, ::prost::Message)]
3571pub struct CreateTemplateResponse {
3572 #[prost(message, optional, tag="1")]
3574 pub template: ::core::option::Option<Template>,
3575}
3576#[derive(Clone, PartialEq, ::prost::Message)]
3578pub struct UpdateTemplateRequest {
3579 #[prost(string, tag="1")]
3581 pub template_id: ::prost::alloc::string::String,
3582 #[prost(string, tag="2")]
3585 pub body: ::prost::alloc::string::String,
3586 #[prost(message, repeated, tag="3")]
3588 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3589}
3590#[derive(Clone, PartialEq, ::prost::Message)]
3592pub struct UpdateTemplateResponse {
3593 #[prost(message, optional, tag="1")]
3595 pub template: ::core::option::Option<Template>,
3596}
3597#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3599pub struct GetTemplateRequest {
3600 #[prost(string, tag="1")]
3602 pub template_id: ::prost::alloc::string::String,
3603 #[prost(int32, tag="2")]
3605 pub version: i32,
3606}
3607#[derive(Clone, PartialEq, ::prost::Message)]
3609pub struct GetTemplateResponse {
3610 #[prost(message, optional, tag="1")]
3612 pub template: ::core::option::Option<Template>,
3613}
3614#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3616pub struct ListTemplatesRequest {
3617 #[prost(message, optional, tag="1")]
3619 pub pagination: ::core::option::Option<Pagination>,
3620 #[prost(enumeration="TemplateType", tag="2")]
3622 pub r#type: i32,
3623}
3624#[derive(Clone, PartialEq, ::prost::Message)]
3626pub struct ListTemplatesResponse {
3627 #[prost(message, repeated, tag="1")]
3629 pub templates: ::prost::alloc::vec::Vec<Template>,
3630 #[prost(message, optional, tag="2")]
3632 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3633}
3634#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3638#[repr(i32)]
3639pub enum TemplateType {
3640 Unspecified = 0,
3642 Markdown = 1,
3644 Rich = 2,
3646 Html = 3,
3648}
3649impl TemplateType {
3650 pub fn as_str_name(&self) -> &'static str {
3655 match self {
3656 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
3657 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
3658 Self::Rich => "TEMPLATE_TYPE_RICH",
3659 Self::Html => "TEMPLATE_TYPE_HTML",
3660 }
3661 }
3662 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3664 match value {
3665 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3666 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
3667 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
3668 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
3669 _ => None,
3670 }
3671 }
3672}
3673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3675#[repr(i32)]
3676pub enum TemplateVariableSource {
3677 Unspecified = 0,
3679 Profile = 1,
3681 Custom = 2,
3683}
3684impl TemplateVariableSource {
3685 pub fn as_str_name(&self) -> &'static str {
3690 match self {
3691 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
3692 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
3693 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
3694 }
3695 }
3696 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3698 match value {
3699 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
3700 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
3701 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
3702 _ => None,
3703 }
3704 }
3705}
3706include!("pidgr.v1.tonic.rs");
3707