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, PartialEq, Eq, Hash, ::prost::Message)]
922pub struct ListMyPrivacyRequestsRequest {
923 #[prost(int32, tag="1")]
926 pub page_size: i32,
927 #[prost(string, tag="2")]
929 pub page_token: ::prost::alloc::string::String,
930 #[prost(string, tag="3")]
932 pub request_type: ::prost::alloc::string::String,
933 #[prost(enumeration="PrivacyRequestStatus", tag="4")]
935 pub status: i32,
936}
937#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct ListMyPrivacyRequestsResponse {
940 #[prost(message, repeated, tag="1")]
942 pub requests: ::prost::alloc::vec::Vec<PrivacyRequest>,
943 #[prost(string, tag="2")]
945 pub next_page_token: ::prost::alloc::string::String,
946}
947#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
951#[repr(i32)]
952pub enum PrivacyRequestStatus {
953 Unspecified = 0,
955 Pending = 1,
957 Processing = 2,
959 Completed = 3,
961 Failed = 4,
963}
964impl PrivacyRequestStatus {
965 pub fn as_str_name(&self) -> &'static str {
970 match self {
971 Self::Unspecified => "PRIVACY_REQUEST_STATUS_UNSPECIFIED",
972 Self::Pending => "PRIVACY_REQUEST_STATUS_PENDING",
973 Self::Processing => "PRIVACY_REQUEST_STATUS_PROCESSING",
974 Self::Completed => "PRIVACY_REQUEST_STATUS_COMPLETED",
975 Self::Failed => "PRIVACY_REQUEST_STATUS_FAILED",
976 }
977 }
978 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
980 match value {
981 "PRIVACY_REQUEST_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
982 "PRIVACY_REQUEST_STATUS_PENDING" => Some(Self::Pending),
983 "PRIVACY_REQUEST_STATUS_PROCESSING" => Some(Self::Processing),
984 "PRIVACY_REQUEST_STATUS_COMPLETED" => Some(Self::Completed),
985 "PRIVACY_REQUEST_STATUS_FAILED" => Some(Self::Failed),
986 _ => None,
987 }
988 }
989}
990#[derive(Clone, PartialEq, ::prost::Message)]
995pub struct AuditEvent {
996 #[prost(string, tag="1")]
999 pub id: ::prost::alloc::string::String,
1000 #[prost(string, tag="2")]
1003 pub org_id: ::prost::alloc::string::String,
1004 #[prost(string, tag="3")]
1007 pub actor_id: ::prost::alloc::string::String,
1008 #[prost(enumeration="AuditEventType", tag="4")]
1010 pub event_type: i32,
1011 #[prost(string, tag="5")]
1014 pub entity_type: ::prost::alloc::string::String,
1015 #[prost(string, tag="6")]
1018 pub entity_id: ::prost::alloc::string::String,
1019 #[prost(map="string, string", tag="7")]
1022 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1023 #[prost(message, optional, tag="10")]
1025 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1026}
1027#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1030pub struct ListAuditEventsRequest {
1031 #[prost(string, tag="1")]
1033 pub page_token: ::prost::alloc::string::String,
1034 #[prost(int32, tag="2")]
1037 pub page_size: i32,
1038 #[prost(enumeration="AuditEventType", tag="3")]
1040 pub event_type: i32,
1041 #[prost(string, tag="4")]
1044 pub actor_id: ::prost::alloc::string::String,
1045 #[prost(message, optional, tag="5")]
1047 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1048 #[prost(message, optional, tag="6")]
1050 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1051}
1052#[derive(Clone, PartialEq, ::prost::Message)]
1054pub struct ListAuditEventsResponse {
1055 #[prost(message, repeated, tag="1")]
1057 pub events: ::prost::alloc::vec::Vec<AuditEvent>,
1058 #[prost(string, tag="2")]
1060 pub next_page_token: ::prost::alloc::string::String,
1061}
1062#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1065pub struct ExportAuditTrailRequest {
1066 #[prost(enumeration="AuditExportFormat", tag="1")]
1068 pub format: i32,
1069 #[prost(message, optional, tag="2")]
1071 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
1072 #[prost(message, optional, tag="3")]
1074 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
1075}
1076#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1078pub struct ExportAuditTrailResponse {
1079 #[prost(string, tag="1")]
1082 pub export_url: ::prost::alloc::string::String,
1083 #[prost(enumeration="PrivacyRequestStatus", tag="2")]
1085 pub status: i32,
1086}
1087#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1089pub struct AuditExport {
1090 #[prost(string, tag="1")]
1092 pub id: ::prost::alloc::string::String,
1093 #[prost(string, tag="2")]
1095 pub format: ::prost::alloc::string::String,
1096 #[prost(enumeration="PrivacyRequestStatus", tag="3")]
1098 pub status: i32,
1099 #[prost(string, tag="4")]
1101 pub result_url: ::prost::alloc::string::String,
1102 #[prost(string, tag="5")]
1104 pub error_message: ::prost::alloc::string::String,
1105 #[prost(string, tag="6")]
1107 pub requested_by_email: ::prost::alloc::string::String,
1108 #[prost(message, optional, tag="7")]
1110 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1111 #[prost(message, optional, tag="8")]
1113 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1114}
1115#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1118pub struct ListAuditExportsRequest {
1119}
1120#[derive(Clone, PartialEq, ::prost::Message)]
1122pub struct ListAuditExportsResponse {
1123 #[prost(message, repeated, tag="1")]
1125 pub exports: ::prost::alloc::vec::Vec<AuditExport>,
1126}
1127#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1131#[repr(i32)]
1132pub enum AuditEventType {
1133 Unspecified = 0,
1135 CampaignCreated = 1,
1138 MessageSent = 2,
1140 MessageOpened = 3,
1142 AckRegistered = 4,
1144 EscalationExecuted = 5,
1146 CampaignStarted = 12,
1148 CampaignCancelled = 13,
1150 CampaignUpdated = 14,
1152 UserInvited = 6,
1155 UserDeactivated = 7,
1157 UserReactivated = 15,
1159 RoleChanged = 10,
1161 InviteRevoked = 16,
1163 ProfileUpdated = 17,
1165 SettingsUpdated = 18,
1167 PasskeyEnrolled = 19,
1169 DataExportRequested = 8,
1172 DataDeletionRequested = 9,
1174 DataRectified = 20,
1176 ProcessingRestricted = 21,
1178 DeletionCancelled = 22,
1180 DeletionImmediate = 23,
1182 SsoConfigured = 11,
1185 SsoProviderCreated = 24,
1187 SsoProviderDeleted = 25,
1189 OrgUpdated = 26,
1191 RoleCreated = 27,
1194 RoleUpdated = 28,
1196 RoleDeleted = 29,
1198 TemplateCreated = 30,
1201 TemplateUpdated = 31,
1203 ApiKeyCreated = 32,
1206 ApiKeyRevoked = 33,
1208 InviteLinkCreated = 34,
1211 InviteLinkRevoked = 35,
1213 GroupCreated = 36,
1216 GroupUpdated = 37,
1218 GroupDeleted = 38,
1220 GroupMembersAdded = 39,
1222 GroupMembersRemoved = 40,
1224 TeamCreated = 41,
1227 TeamUpdated = 42,
1229 TeamDeleted = 43,
1231 TeamMembersAdded = 44,
1233 TeamMembersRemoved = 45,
1235}
1236impl AuditEventType {
1237 pub fn as_str_name(&self) -> &'static str {
1242 match self {
1243 Self::Unspecified => "AUDIT_EVENT_TYPE_UNSPECIFIED",
1244 Self::CampaignCreated => "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED",
1245 Self::MessageSent => "AUDIT_EVENT_TYPE_MESSAGE_SENT",
1246 Self::MessageOpened => "AUDIT_EVENT_TYPE_MESSAGE_OPENED",
1247 Self::AckRegistered => "AUDIT_EVENT_TYPE_ACK_REGISTERED",
1248 Self::EscalationExecuted => "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED",
1249 Self::CampaignStarted => "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED",
1250 Self::CampaignCancelled => "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED",
1251 Self::CampaignUpdated => "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED",
1252 Self::UserInvited => "AUDIT_EVENT_TYPE_USER_INVITED",
1253 Self::UserDeactivated => "AUDIT_EVENT_TYPE_USER_DEACTIVATED",
1254 Self::UserReactivated => "AUDIT_EVENT_TYPE_USER_REACTIVATED",
1255 Self::RoleChanged => "AUDIT_EVENT_TYPE_ROLE_CHANGED",
1256 Self::InviteRevoked => "AUDIT_EVENT_TYPE_INVITE_REVOKED",
1257 Self::ProfileUpdated => "AUDIT_EVENT_TYPE_PROFILE_UPDATED",
1258 Self::SettingsUpdated => "AUDIT_EVENT_TYPE_SETTINGS_UPDATED",
1259 Self::PasskeyEnrolled => "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED",
1260 Self::DataExportRequested => "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED",
1261 Self::DataDeletionRequested => "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED",
1262 Self::DataRectified => "AUDIT_EVENT_TYPE_DATA_RECTIFIED",
1263 Self::ProcessingRestricted => "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED",
1264 Self::DeletionCancelled => "AUDIT_EVENT_TYPE_DELETION_CANCELLED",
1265 Self::DeletionImmediate => "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE",
1266 Self::SsoConfigured => "AUDIT_EVENT_TYPE_SSO_CONFIGURED",
1267 Self::SsoProviderCreated => "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED",
1268 Self::SsoProviderDeleted => "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED",
1269 Self::OrgUpdated => "AUDIT_EVENT_TYPE_ORG_UPDATED",
1270 Self::RoleCreated => "AUDIT_EVENT_TYPE_ROLE_CREATED",
1271 Self::RoleUpdated => "AUDIT_EVENT_TYPE_ROLE_UPDATED",
1272 Self::RoleDeleted => "AUDIT_EVENT_TYPE_ROLE_DELETED",
1273 Self::TemplateCreated => "AUDIT_EVENT_TYPE_TEMPLATE_CREATED",
1274 Self::TemplateUpdated => "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED",
1275 Self::ApiKeyCreated => "AUDIT_EVENT_TYPE_API_KEY_CREATED",
1276 Self::ApiKeyRevoked => "AUDIT_EVENT_TYPE_API_KEY_REVOKED",
1277 Self::InviteLinkCreated => "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED",
1278 Self::InviteLinkRevoked => "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED",
1279 Self::GroupCreated => "AUDIT_EVENT_TYPE_GROUP_CREATED",
1280 Self::GroupUpdated => "AUDIT_EVENT_TYPE_GROUP_UPDATED",
1281 Self::GroupDeleted => "AUDIT_EVENT_TYPE_GROUP_DELETED",
1282 Self::GroupMembersAdded => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED",
1283 Self::GroupMembersRemoved => "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED",
1284 Self::TeamCreated => "AUDIT_EVENT_TYPE_TEAM_CREATED",
1285 Self::TeamUpdated => "AUDIT_EVENT_TYPE_TEAM_UPDATED",
1286 Self::TeamDeleted => "AUDIT_EVENT_TYPE_TEAM_DELETED",
1287 Self::TeamMembersAdded => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED",
1288 Self::TeamMembersRemoved => "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED",
1289 }
1290 }
1291 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1293 match value {
1294 "AUDIT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1295 "AUDIT_EVENT_TYPE_CAMPAIGN_CREATED" => Some(Self::CampaignCreated),
1296 "AUDIT_EVENT_TYPE_MESSAGE_SENT" => Some(Self::MessageSent),
1297 "AUDIT_EVENT_TYPE_MESSAGE_OPENED" => Some(Self::MessageOpened),
1298 "AUDIT_EVENT_TYPE_ACK_REGISTERED" => Some(Self::AckRegistered),
1299 "AUDIT_EVENT_TYPE_ESCALATION_EXECUTED" => Some(Self::EscalationExecuted),
1300 "AUDIT_EVENT_TYPE_CAMPAIGN_STARTED" => Some(Self::CampaignStarted),
1301 "AUDIT_EVENT_TYPE_CAMPAIGN_CANCELLED" => Some(Self::CampaignCancelled),
1302 "AUDIT_EVENT_TYPE_CAMPAIGN_UPDATED" => Some(Self::CampaignUpdated),
1303 "AUDIT_EVENT_TYPE_USER_INVITED" => Some(Self::UserInvited),
1304 "AUDIT_EVENT_TYPE_USER_DEACTIVATED" => Some(Self::UserDeactivated),
1305 "AUDIT_EVENT_TYPE_USER_REACTIVATED" => Some(Self::UserReactivated),
1306 "AUDIT_EVENT_TYPE_ROLE_CHANGED" => Some(Self::RoleChanged),
1307 "AUDIT_EVENT_TYPE_INVITE_REVOKED" => Some(Self::InviteRevoked),
1308 "AUDIT_EVENT_TYPE_PROFILE_UPDATED" => Some(Self::ProfileUpdated),
1309 "AUDIT_EVENT_TYPE_SETTINGS_UPDATED" => Some(Self::SettingsUpdated),
1310 "AUDIT_EVENT_TYPE_PASSKEY_ENROLLED" => Some(Self::PasskeyEnrolled),
1311 "AUDIT_EVENT_TYPE_DATA_EXPORT_REQUESTED" => Some(Self::DataExportRequested),
1312 "AUDIT_EVENT_TYPE_DATA_DELETION_REQUESTED" => Some(Self::DataDeletionRequested),
1313 "AUDIT_EVENT_TYPE_DATA_RECTIFIED" => Some(Self::DataRectified),
1314 "AUDIT_EVENT_TYPE_PROCESSING_RESTRICTED" => Some(Self::ProcessingRestricted),
1315 "AUDIT_EVENT_TYPE_DELETION_CANCELLED" => Some(Self::DeletionCancelled),
1316 "AUDIT_EVENT_TYPE_DELETION_IMMEDIATE" => Some(Self::DeletionImmediate),
1317 "AUDIT_EVENT_TYPE_SSO_CONFIGURED" => Some(Self::SsoConfigured),
1318 "AUDIT_EVENT_TYPE_SSO_PROVIDER_CREATED" => Some(Self::SsoProviderCreated),
1319 "AUDIT_EVENT_TYPE_SSO_PROVIDER_DELETED" => Some(Self::SsoProviderDeleted),
1320 "AUDIT_EVENT_TYPE_ORG_UPDATED" => Some(Self::OrgUpdated),
1321 "AUDIT_EVENT_TYPE_ROLE_CREATED" => Some(Self::RoleCreated),
1322 "AUDIT_EVENT_TYPE_ROLE_UPDATED" => Some(Self::RoleUpdated),
1323 "AUDIT_EVENT_TYPE_ROLE_DELETED" => Some(Self::RoleDeleted),
1324 "AUDIT_EVENT_TYPE_TEMPLATE_CREATED" => Some(Self::TemplateCreated),
1325 "AUDIT_EVENT_TYPE_TEMPLATE_UPDATED" => Some(Self::TemplateUpdated),
1326 "AUDIT_EVENT_TYPE_API_KEY_CREATED" => Some(Self::ApiKeyCreated),
1327 "AUDIT_EVENT_TYPE_API_KEY_REVOKED" => Some(Self::ApiKeyRevoked),
1328 "AUDIT_EVENT_TYPE_INVITE_LINK_CREATED" => Some(Self::InviteLinkCreated),
1329 "AUDIT_EVENT_TYPE_INVITE_LINK_REVOKED" => Some(Self::InviteLinkRevoked),
1330 "AUDIT_EVENT_TYPE_GROUP_CREATED" => Some(Self::GroupCreated),
1331 "AUDIT_EVENT_TYPE_GROUP_UPDATED" => Some(Self::GroupUpdated),
1332 "AUDIT_EVENT_TYPE_GROUP_DELETED" => Some(Self::GroupDeleted),
1333 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_ADDED" => Some(Self::GroupMembersAdded),
1334 "AUDIT_EVENT_TYPE_GROUP_MEMBERS_REMOVED" => Some(Self::GroupMembersRemoved),
1335 "AUDIT_EVENT_TYPE_TEAM_CREATED" => Some(Self::TeamCreated),
1336 "AUDIT_EVENT_TYPE_TEAM_UPDATED" => Some(Self::TeamUpdated),
1337 "AUDIT_EVENT_TYPE_TEAM_DELETED" => Some(Self::TeamDeleted),
1338 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_ADDED" => Some(Self::TeamMembersAdded),
1339 "AUDIT_EVENT_TYPE_TEAM_MEMBERS_REMOVED" => Some(Self::TeamMembersRemoved),
1340 _ => None,
1341 }
1342 }
1343}
1344#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1346#[repr(i32)]
1347pub enum AuditExportFormat {
1348 Unspecified = 0,
1350 Csv = 1,
1352 Json = 2,
1354 Parquet = 3,
1356}
1357impl AuditExportFormat {
1358 pub fn as_str_name(&self) -> &'static str {
1363 match self {
1364 Self::Unspecified => "AUDIT_EXPORT_FORMAT_UNSPECIFIED",
1365 Self::Csv => "AUDIT_EXPORT_FORMAT_CSV",
1366 Self::Json => "AUDIT_EXPORT_FORMAT_JSON",
1367 Self::Parquet => "AUDIT_EXPORT_FORMAT_PARQUET",
1368 }
1369 }
1370 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1372 match value {
1373 "AUDIT_EXPORT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
1374 "AUDIT_EXPORT_FORMAT_CSV" => Some(Self::Csv),
1375 "AUDIT_EXPORT_FORMAT_JSON" => Some(Self::Json),
1376 "AUDIT_EXPORT_FORMAT_PARQUET" => Some(Self::Parquet),
1377 _ => None,
1378 }
1379 }
1380}
1381#[derive(Clone, PartialEq, ::prost::Message)]
1386pub struct Campaign {
1387 #[prost(string, tag="1")]
1390 pub id: ::prost::alloc::string::String,
1391 #[prost(string, tag="2")]
1394 pub name: ::prost::alloc::string::String,
1395 #[prost(string, tag="3")]
1398 pub template_id: ::prost::alloc::string::String,
1399 #[prost(int32, tag="4")]
1401 pub template_version: i32,
1402 #[prost(string, tag="5")]
1404 pub audience_snapshot_ref: ::prost::alloc::string::String,
1405 #[prost(enumeration="CampaignStatus", tag="6")]
1407 pub status: i32,
1408 #[prost(message, optional, tag="7")]
1410 pub workflow: ::core::option::Option<WorkflowDefinition>,
1411 #[prost(int32, tag="8")]
1413 pub total_recipients: i32,
1414 #[prost(int32, tag="9")]
1416 pub action_completed_count: i32,
1417 #[prost(int32, tag="10")]
1419 pub missed_count: i32,
1420 #[prost(message, optional, tag="11")]
1422 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1423 #[prost(message, optional, tag="12")]
1425 pub started_at: ::core::option::Option<::prost_types::Timestamp>,
1426 #[prost(message, optional, tag="13")]
1428 pub completed_at: ::core::option::Option<::prost_types::Timestamp>,
1429 #[prost(string, tag="14")]
1432 pub sender_name: ::prost::alloc::string::String,
1433 #[prost(string, tag="15")]
1436 pub title: ::prost::alloc::string::String,
1437 #[prost(bool, tag="16")]
1439 pub critical: bool,
1440}
1441#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct AudienceMember {
1444 #[prost(string, tag="1")]
1446 pub user_id: ::prost::alloc::string::String,
1447 #[prost(map="string, string", tag="2")]
1449 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1450}
1451#[derive(Clone, PartialEq, ::prost::Message)]
1453pub struct CreateCampaignRequest {
1454 #[prost(string, tag="1")]
1457 pub name: ::prost::alloc::string::String,
1458 #[prost(string, tag="2")]
1461 pub template_id: ::prost::alloc::string::String,
1462 #[prost(int32, tag="3")]
1464 pub template_version: i32,
1465 #[prost(string, repeated, tag="4")]
1468 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1469 #[prost(message, optional, tag="5")]
1471 pub workflow: ::core::option::Option<WorkflowDefinition>,
1472 #[prost(string, tag="6")]
1475 pub sender_name: ::prost::alloc::string::String,
1476 #[prost(string, tag="7")]
1479 pub title: ::prost::alloc::string::String,
1480 #[prost(message, repeated, tag="8")]
1484 pub audience: ::prost::alloc::vec::Vec<AudienceMember>,
1485 #[prost(bool, tag="9")]
1488 pub include_restricted: bool,
1489 #[prost(bool, tag="10")]
1491 pub critical: bool,
1492}
1493#[derive(Clone, PartialEq, ::prost::Message)]
1495pub struct CreateCampaignResponse {
1496 #[prost(message, optional, tag="1")]
1498 pub campaign: ::core::option::Option<Campaign>,
1499}
1500#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1502pub struct StartCampaignRequest {
1503 #[prost(string, tag="1")]
1506 pub campaign_id: ::prost::alloc::string::String,
1507}
1508#[derive(Clone, PartialEq, ::prost::Message)]
1510pub struct StartCampaignResponse {
1511 #[prost(message, optional, tag="1")]
1513 pub campaign: ::core::option::Option<Campaign>,
1514}
1515#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1517pub struct GetCampaignRequest {
1518 #[prost(string, tag="1")]
1521 pub campaign_id: ::prost::alloc::string::String,
1522}
1523#[derive(Clone, PartialEq, ::prost::Message)]
1525pub struct GetCampaignResponse {
1526 #[prost(message, optional, tag="1")]
1528 pub campaign: ::core::option::Option<Campaign>,
1529}
1530#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1532pub struct ListCampaignsRequest {
1533 #[prost(message, optional, tag="1")]
1535 pub pagination: ::core::option::Option<Pagination>,
1536}
1537#[derive(Clone, PartialEq, ::prost::Message)]
1539pub struct ListCampaignsResponse {
1540 #[prost(message, repeated, tag="1")]
1542 pub campaigns: ::prost::alloc::vec::Vec<Campaign>,
1543 #[prost(message, optional, tag="2")]
1545 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1546}
1547#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1549pub struct CancelCampaignRequest {
1550 #[prost(string, tag="1")]
1553 pub campaign_id: ::prost::alloc::string::String,
1554}
1555#[derive(Clone, PartialEq, ::prost::Message)]
1557pub struct CancelCampaignResponse {
1558 #[prost(message, optional, tag="1")]
1560 pub campaign: ::core::option::Option<Campaign>,
1561}
1562#[derive(Clone, PartialEq, ::prost::Message)]
1565pub struct UpdateCampaignRequest {
1566 #[prost(string, tag="1")]
1569 pub campaign_id: ::prost::alloc::string::String,
1570 #[prost(string, tag="2")]
1573 pub name: ::prost::alloc::string::String,
1574 #[prost(string, tag="3")]
1577 pub sender_name: ::prost::alloc::string::String,
1578 #[prost(string, tag="4")]
1581 pub title: ::prost::alloc::string::String,
1582 #[prost(string, tag="5")]
1585 pub template_id: ::prost::alloc::string::String,
1586 #[prost(int32, tag="6")]
1588 pub template_version: i32,
1589 #[prost(message, optional, tag="7")]
1591 pub workflow: ::core::option::Option<WorkflowDefinition>,
1592}
1593#[derive(Clone, PartialEq, ::prost::Message)]
1595pub struct UpdateCampaignResponse {
1596 #[prost(message, optional, tag="1")]
1598 pub campaign: ::core::option::Option<Campaign>,
1599}
1600#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1602pub struct Delivery {
1603 #[prost(string, tag="1")]
1606 pub id: ::prost::alloc::string::String,
1607 #[prost(string, tag="2")]
1610 pub user_id: ::prost::alloc::string::String,
1611 #[prost(string, tag="3")]
1614 pub campaign_id: ::prost::alloc::string::String,
1615 #[prost(enumeration="DeliveryStatus", tag="4")]
1617 pub status: i32,
1618 #[prost(message, optional, tag="5")]
1620 pub delivered_at: ::core::option::Option<::prost_types::Timestamp>,
1621 #[prost(message, optional, tag="6")]
1623 pub read_at: ::core::option::Option<::prost_types::Timestamp>,
1624 #[prost(message, optional, tag="7")]
1626 pub acted_at: ::core::option::Option<::prost_types::Timestamp>,
1627 #[prost(string, tag="8")]
1629 pub recipient_email: ::prost::alloc::string::String,
1630}
1631#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1633pub struct ListDeliveriesRequest {
1634 #[prost(string, tag="1")]
1637 pub campaign_id: ::prost::alloc::string::String,
1638 #[prost(enumeration="DeliveryStatus", tag="2")]
1640 pub status_filter: i32,
1641 #[prost(message, optional, tag="3")]
1643 pub pagination: ::core::option::Option<Pagination>,
1644}
1645#[derive(Clone, PartialEq, ::prost::Message)]
1647pub struct ListDeliveriesResponse {
1648 #[prost(message, repeated, tag="1")]
1650 pub deliveries: ::prost::alloc::vec::Vec<Delivery>,
1651 #[prost(message, optional, tag="2")]
1653 pub pagination_meta: ::core::option::Option<PaginationMeta>,
1654}
1655#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1660pub struct Device {
1661 #[prost(string, tag="1")]
1664 pub device_id: ::prost::alloc::string::String,
1665 #[prost(string, tag="2")]
1668 pub user_id: ::prost::alloc::string::String,
1669 #[prost(enumeration="Platform", tag="3")]
1671 pub platform: i32,
1672 #[prost(string, tag="4")]
1674 pub push_token: ::prost::alloc::string::String,
1675 #[prost(bool, tag="5")]
1677 pub active: bool,
1678 #[prost(message, optional, tag="6")]
1680 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1681 #[prost(message, optional, tag="7")]
1683 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1684}
1685#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1687pub struct DeviceSummary {
1688 #[prost(string, tag="1")]
1690 pub device_id: ::prost::alloc::string::String,
1691 #[prost(string, tag="2")]
1693 pub user_id: ::prost::alloc::string::String,
1694 #[prost(enumeration="Platform", tag="3")]
1696 pub platform: i32,
1697 #[prost(bool, tag="4")]
1699 pub active: bool,
1700 #[prost(message, optional, tag="5")]
1702 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1703 #[prost(message, optional, tag="6")]
1705 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1706}
1707#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1709pub struct RegisterRequest {
1710 #[prost(string, tag="1")]
1713 pub device_id: ::prost::alloc::string::String,
1714 #[prost(enumeration="Platform", tag="2")]
1716 pub platform: i32,
1717 #[prost(string, tag="3")]
1720 pub push_token: ::prost::alloc::string::String,
1721}
1722#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1724pub struct RegisterResponse {
1725 #[prost(message, optional, tag="1")]
1727 pub device: ::core::option::Option<DeviceSummary>,
1728}
1729#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1731pub struct DeactivateRequest {
1732 #[prost(string, tag="1")]
1735 pub device_id: ::prost::alloc::string::String,
1736}
1737#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1739pub struct DeactivateResponse {
1740 #[prost(bool, tag="1")]
1742 pub success: bool,
1743}
1744#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1746pub struct ListDevicesRequest {
1747}
1748#[derive(Clone, PartialEq, ::prost::Message)]
1750pub struct ListDevicesResponse {
1751 #[prost(message, repeated, tag="1")]
1753 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1754}
1755#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1757pub struct ListMemberDevicesRequest {
1758 #[prost(string, tag="1")]
1761 pub user_id: ::prost::alloc::string::String,
1762}
1763#[derive(Clone, PartialEq, ::prost::Message)]
1765pub struct ListMemberDevicesResponse {
1766 #[prost(message, repeated, tag="1")]
1768 pub devices: ::prost::alloc::vec::Vec<DeviceSummary>,
1769}
1770#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1775pub struct UserSettings {
1776 #[prost(enumeration="ThemePreference", tag="1")]
1778 pub theme_preference: i32,
1779 #[prost(string, tag="2")]
1783 pub preferred_locale: ::prost::alloc::string::String,
1784}
1785#[derive(Clone, PartialEq, ::prost::Message)]
1788pub struct UserProfile {
1789 #[prost(string, tag="1")]
1792 pub first_name: ::prost::alloc::string::String,
1793 #[prost(string, tag="2")]
1796 pub last_name: ::prost::alloc::string::String,
1797 #[prost(string, tag="3")]
1800 pub department: ::prost::alloc::string::String,
1801 #[prost(string, tag="4")]
1804 pub title: ::prost::alloc::string::String,
1805 #[prost(string, tag="5")]
1808 pub phone: ::prost::alloc::string::String,
1809 #[prost(string, tag="6")]
1812 pub location: ::prost::alloc::string::String,
1813 #[prost(string, tag="7")]
1816 pub employee_id: ::prost::alloc::string::String,
1817 #[prost(string, tag="8")]
1820 pub manager_name: ::prost::alloc::string::String,
1821 #[prost(string, tag="9")]
1824 pub start_date: ::prost::alloc::string::String,
1825 #[prost(map="string, string", tag="10")]
1828 pub custom_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1829}
1830#[derive(Clone, PartialEq, ::prost::Message)]
1832pub struct User {
1833 #[prost(string, tag="1")]
1835 pub id: ::prost::alloc::string::String,
1836 #[prost(string, tag="2")]
1839 pub email: ::prost::alloc::string::String,
1840 #[prost(string, tag="3")]
1843 pub name: ::prost::alloc::string::String,
1844 #[prost(enumeration="UserStatus", tag="5")]
1846 pub status: i32,
1847 #[prost(message, optional, tag="6")]
1849 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1850 #[prost(message, optional, tag="7")]
1852 pub role: ::core::option::Option<Role>,
1853 #[prost(string, tag="8")]
1855 pub role_id: ::prost::alloc::string::String,
1856 #[prost(message, optional, tag="9")]
1859 pub profile: ::core::option::Option<UserProfile>,
1860 #[prost(bool, tag="10")]
1863 pub processing_restricted: bool,
1864}
1865#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1869#[repr(i32)]
1870pub enum UserStatus {
1871 Unspecified = 0,
1873 Invited = 1,
1875 Active = 2,
1877 Deactivated = 3,
1879}
1880impl UserStatus {
1881 pub fn as_str_name(&self) -> &'static str {
1886 match self {
1887 Self::Unspecified => "USER_STATUS_UNSPECIFIED",
1888 Self::Invited => "USER_STATUS_INVITED",
1889 Self::Active => "USER_STATUS_ACTIVE",
1890 Self::Deactivated => "USER_STATUS_DEACTIVATED",
1891 }
1892 }
1893 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1895 match value {
1896 "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1897 "USER_STATUS_INVITED" => Some(Self::Invited),
1898 "USER_STATUS_ACTIVE" => Some(Self::Active),
1899 "USER_STATUS_DEACTIVATED" => Some(Self::Deactivated),
1900 _ => None,
1901 }
1902 }
1903}
1904#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1906#[repr(i32)]
1907pub enum ThemePreference {
1908 Unspecified = 0,
1910 Light = 1,
1912 Dark = 2,
1914 System = 3,
1916}
1917impl ThemePreference {
1918 pub fn as_str_name(&self) -> &'static str {
1923 match self {
1924 Self::Unspecified => "THEME_PREFERENCE_UNSPECIFIED",
1925 Self::Light => "THEME_PREFERENCE_LIGHT",
1926 Self::Dark => "THEME_PREFERENCE_DARK",
1927 Self::System => "THEME_PREFERENCE_SYSTEM",
1928 }
1929 }
1930 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1932 match value {
1933 "THEME_PREFERENCE_UNSPECIFIED" => Some(Self::Unspecified),
1934 "THEME_PREFERENCE_LIGHT" => Some(Self::Light),
1935 "THEME_PREFERENCE_DARK" => Some(Self::Dark),
1936 "THEME_PREFERENCE_SYSTEM" => Some(Self::System),
1937 _ => None,
1938 }
1939 }
1940}
1941#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1946pub struct Group {
1947 #[prost(string, tag="1")]
1949 pub id: ::prost::alloc::string::String,
1950 #[prost(string, tag="2")]
1953 pub name: ::prost::alloc::string::String,
1954 #[prost(string, tag="3")]
1957 pub description: ::prost::alloc::string::String,
1958 #[prost(int32, tag="4")]
1960 pub member_count: i32,
1961 #[prost(message, optional, tag="5")]
1963 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
1964 #[prost(message, optional, tag="6")]
1966 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
1967 #[prost(bool, tag="7")]
1969 pub is_default: bool,
1970 #[prost(string, tag="8")]
1972 pub created_by: ::prost::alloc::string::String,
1973}
1974#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1976pub struct CreateGroupRequest {
1977 #[prost(string, tag="1")]
1980 pub name: ::prost::alloc::string::String,
1981 #[prost(string, tag="2")]
1984 pub description: ::prost::alloc::string::String,
1985}
1986#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1988pub struct CreateGroupResponse {
1989 #[prost(message, optional, tag="1")]
1991 pub group: ::core::option::Option<Group>,
1992}
1993#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1995pub struct GetGroupRequest {
1996 #[prost(string, tag="1")]
1998 pub group_id: ::prost::alloc::string::String,
1999}
2000#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2002pub struct GetGroupResponse {
2003 #[prost(message, optional, tag="1")]
2005 pub group: ::core::option::Option<Group>,
2006}
2007#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2009pub struct ListGroupsRequest {
2010 #[prost(message, optional, tag="1")]
2012 pub pagination: ::core::option::Option<Pagination>,
2013}
2014#[derive(Clone, PartialEq, ::prost::Message)]
2016pub struct ListGroupsResponse {
2017 #[prost(message, repeated, tag="1")]
2019 pub groups: ::prost::alloc::vec::Vec<Group>,
2020 #[prost(message, optional, tag="2")]
2022 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2023}
2024#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2026pub struct UpdateGroupRequest {
2027 #[prost(string, tag="1")]
2029 pub group_id: ::prost::alloc::string::String,
2030 #[prost(string, tag="2")]
2034 pub name: ::prost::alloc::string::String,
2035 #[prost(string, tag="3")]
2038 pub description: ::prost::alloc::string::String,
2039}
2040#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2042pub struct UpdateGroupResponse {
2043 #[prost(message, optional, tag="1")]
2045 pub group: ::core::option::Option<Group>,
2046}
2047#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2049pub struct DeleteGroupRequest {
2050 #[prost(string, tag="1")]
2053 pub group_id: ::prost::alloc::string::String,
2054}
2055#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2057pub struct DeleteGroupResponse {
2058}
2059#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2061pub struct AddGroupMembersRequest {
2062 #[prost(string, tag="1")]
2064 pub group_id: ::prost::alloc::string::String,
2065 #[prost(string, repeated, tag="2")]
2069 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2070}
2071#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2073pub struct AddGroupMembersResponse {
2074 #[prost(message, optional, tag="1")]
2076 pub group: ::core::option::Option<Group>,
2077}
2078#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2080pub struct RemoveGroupMembersRequest {
2081 #[prost(string, tag="1")]
2083 pub group_id: ::prost::alloc::string::String,
2084 #[prost(string, repeated, tag="2")]
2087 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2088}
2089#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2091pub struct RemoveGroupMembersResponse {
2092 #[prost(message, optional, tag="1")]
2094 pub group: ::core::option::Option<Group>,
2095}
2096#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2098pub struct ListGroupMembersRequest {
2099 #[prost(string, tag="1")]
2101 pub group_id: ::prost::alloc::string::String,
2102 #[prost(message, optional, tag="2")]
2104 pub pagination: ::core::option::Option<Pagination>,
2105}
2106#[derive(Clone, PartialEq, ::prost::Message)]
2108pub struct ListGroupMembersResponse {
2109 #[prost(message, repeated, tag="1")]
2111 pub users: ::prost::alloc::vec::Vec<User>,
2112 #[prost(message, optional, tag="2")]
2114 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2115}
2116#[derive(Clone, PartialEq, ::prost::Message)]
2118pub struct UserGroupMembership {
2119 #[prost(string, tag="1")]
2121 pub user_id: ::prost::alloc::string::String,
2122 #[prost(message, repeated, tag="2")]
2124 pub groups: ::prost::alloc::vec::Vec<Group>,
2125}
2126#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2128pub struct GetUserGroupMembershipsRequest {
2129 #[prost(string, repeated, tag="1")]
2132 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2133}
2134#[derive(Clone, PartialEq, ::prost::Message)]
2136pub struct GetUserGroupMembershipsResponse {
2137 #[prost(message, repeated, tag="1")]
2139 pub memberships: ::prost::alloc::vec::Vec<UserGroupMembership>,
2140}
2141#[derive(Clone, PartialEq, ::prost::Message)]
2145pub struct TouchEvent {
2146 #[prost(string, tag="1")]
2149 pub screen_name: ::prost::alloc::string::String,
2150 #[prost(float, tag="2")]
2153 pub x_pct: f32,
2154 #[prost(float, tag="3")]
2157 pub y_pct: f32,
2158 #[prost(enumeration="TouchEventType", tag="4")]
2160 pub event_type: i32,
2161 #[prost(int32, tag="5")]
2163 pub screen_width: i32,
2164 #[prost(int32, tag="6")]
2166 pub screen_height: i32,
2167 #[prost(message, optional, tag="7")]
2169 pub client_timestamp: ::core::option::Option<::prost_types::Timestamp>,
2170 #[prost(string, tag="8")]
2173 pub campaign_id: ::prost::alloc::string::String,
2174}
2175#[derive(Clone, PartialEq, ::prost::Message)]
2177pub struct IngestTouchEventsRequest {
2178 #[prost(message, repeated, tag="1")]
2181 pub events: ::prost::alloc::vec::Vec<TouchEvent>,
2182}
2183#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2185pub struct IngestTouchEventsResponse {
2186 #[prost(int32, tag="1")]
2188 pub ingested_count: i32,
2189}
2190#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2192pub struct HeatmapDataPoint {
2193 #[prost(float, tag="1")]
2195 pub x_pct: f32,
2196 #[prost(float, tag="2")]
2198 pub y_pct: f32,
2199 #[prost(float, tag="3")]
2201 pub value: f32,
2202}
2203#[derive(Clone, PartialEq, ::prost::Message)]
2205pub struct QueryHeatmapDataRequest {
2206 #[prost(string, tag="1")]
2209 pub screen_name: ::prost::alloc::string::String,
2210 #[prost(message, optional, tag="2")]
2212 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
2213 #[prost(message, optional, tag="3")]
2215 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
2216 #[prost(string, tag="4")]
2219 pub campaign_id: ::prost::alloc::string::String,
2220 #[prost(float, tag="6")]
2223 pub grid_resolution: f32,
2224 #[prost(enumeration="HeatmapMode", tag="7")]
2226 pub mode: i32,
2227 #[prost(enumeration="TouchEventType", repeated, tag="8")]
2229 pub event_types: ::prost::alloc::vec::Vec<i32>,
2230}
2231#[derive(Clone, PartialEq, ::prost::Message)]
2233pub struct QueryHeatmapDataResponse {
2234 #[prost(message, repeated, tag="1")]
2236 pub data_points: ::prost::alloc::vec::Vec<HeatmapDataPoint>,
2237 #[prost(string, tag="3")]
2240 pub screenshot_url: ::prost::alloc::string::String,
2241 #[prost(bool, tag="4")]
2243 pub cohort_enabled: bool,
2244}
2245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2247pub struct UploadScreenshotRequest {
2248 #[prost(string, tag="1")]
2251 pub screen_name: ::prost::alloc::string::String,
2252 #[prost(string, tag="2")]
2254 pub app_version: ::prost::alloc::string::String,
2255 #[prost(bytes="vec", tag="3")]
2258 pub image_data: ::prost::alloc::vec::Vec<u8>,
2259}
2260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2262pub struct UploadScreenshotResponse {
2263 #[prost(string, tag="1")]
2265 pub url: ::prost::alloc::string::String,
2266}
2267#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2269pub struct ScreenScreenshot {
2270 #[prost(string, tag="1")]
2272 pub screen_name: ::prost::alloc::string::String,
2273 #[prost(string, tag="2")]
2275 pub url: ::prost::alloc::string::String,
2276 #[prost(string, tag="3")]
2278 pub app_version: ::prost::alloc::string::String,
2279}
2280#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2282pub struct ListScreenshotsRequest {
2283}
2284#[derive(Clone, PartialEq, ::prost::Message)]
2286pub struct ListScreenshotsResponse {
2287 #[prost(message, repeated, tag="1")]
2289 pub screenshots: ::prost::alloc::vec::Vec<ScreenScreenshot>,
2290}
2291#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2295#[repr(i32)]
2296pub enum TouchEventType {
2297 Unspecified = 0,
2299 Tap = 1,
2301 LongPress = 2,
2303 Scroll = 3,
2305 ActionClick = 4,
2307}
2308impl TouchEventType {
2309 pub fn as_str_name(&self) -> &'static str {
2314 match self {
2315 Self::Unspecified => "TOUCH_EVENT_TYPE_UNSPECIFIED",
2316 Self::Tap => "TOUCH_EVENT_TYPE_TAP",
2317 Self::LongPress => "TOUCH_EVENT_TYPE_LONG_PRESS",
2318 Self::Scroll => "TOUCH_EVENT_TYPE_SCROLL",
2319 Self::ActionClick => "TOUCH_EVENT_TYPE_ACTION_CLICK",
2320 }
2321 }
2322 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2324 match value {
2325 "TOUCH_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2326 "TOUCH_EVENT_TYPE_TAP" => Some(Self::Tap),
2327 "TOUCH_EVENT_TYPE_LONG_PRESS" => Some(Self::LongPress),
2328 "TOUCH_EVENT_TYPE_SCROLL" => Some(Self::Scroll),
2329 "TOUCH_EVENT_TYPE_ACTION_CLICK" => Some(Self::ActionClick),
2330 _ => None,
2331 }
2332 }
2333}
2334#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2336#[repr(i32)]
2337pub enum HeatmapMode {
2338 Unspecified = 0,
2340 Total = 1,
2342 Median = 2,
2344}
2345impl HeatmapMode {
2346 pub fn as_str_name(&self) -> &'static str {
2351 match self {
2352 Self::Unspecified => "HEATMAP_MODE_UNSPECIFIED",
2353 Self::Total => "HEATMAP_MODE_TOTAL",
2354 Self::Median => "HEATMAP_MODE_MEDIAN",
2355 }
2356 }
2357 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2359 match value {
2360 "HEATMAP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2361 "HEATMAP_MODE_TOTAL" => Some(Self::Total),
2362 "HEATMAP_MODE_MEDIAN" => Some(Self::Median),
2363 _ => None,
2364 }
2365 }
2366}
2367#[derive(Clone, PartialEq, ::prost::Message)]
2371pub struct InboxEntry {
2372 #[prost(string, tag="1")]
2375 pub delivery_id: ::prost::alloc::string::String,
2376 #[prost(message, optional, tag="2")]
2378 pub message: ::core::option::Option<Message>,
2379 #[prost(enumeration="DeliveryStatus", tag="3")]
2381 pub status: i32,
2382 #[prost(bool, tag="4")]
2384 pub read: bool,
2385 #[prost(message, optional, tag="5")]
2387 pub received_at: ::core::option::Option<::prost_types::Timestamp>,
2388}
2389#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2391pub struct SyncRequest {
2392 #[prost(message, optional, tag="1")]
2394 pub since: ::core::option::Option<::prost_types::Timestamp>,
2395 #[prost(int32, tag="2")]
2398 pub limit: i32,
2399}
2400#[derive(Clone, PartialEq, ::prost::Message)]
2402pub struct SyncResponse {
2403 #[prost(message, repeated, tag="1")]
2405 pub entries: ::prost::alloc::vec::Vec<InboxEntry>,
2406 #[prost(message, optional, tag="2")]
2408 pub next_since: ::core::option::Option<::prost_types::Timestamp>,
2409}
2410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2412pub struct MarkReadRequest {
2413 #[prost(string, tag="1")]
2416 pub delivery_id: ::prost::alloc::string::String,
2417}
2418#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2420pub struct MarkReadResponse {
2421 #[prost(bool, tag="1")]
2423 pub success: bool,
2424}
2425#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2427pub struct GetMessageRequest {
2428 #[prost(string, tag="1")]
2431 pub delivery_id: ::prost::alloc::string::String,
2432}
2433#[derive(Clone, PartialEq, ::prost::Message)]
2435pub struct GetMessageResponse {
2436 #[prost(message, optional, tag="1")]
2438 pub entry: ::core::option::Option<InboxEntry>,
2439}
2440#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2445pub struct InviteLink {
2446 #[prost(string, tag="1")]
2448 pub id: ::prost::alloc::string::String,
2449 #[prost(string, tag="2")]
2451 pub token: ::prost::alloc::string::String,
2452 #[prost(string, tag="3")]
2454 pub role_id: ::prost::alloc::string::String,
2455 #[prost(int32, tag="4")]
2458 pub max_uses: i32,
2459 #[prost(int32, tag="5")]
2461 pub use_count: i32,
2462 #[prost(message, optional, tag="6")]
2464 pub expires_at: ::core::option::Option<::prost_types::Timestamp>,
2465 #[prost(message, optional, tag="7")]
2467 pub revoked_at: ::core::option::Option<::prost_types::Timestamp>,
2468 #[prost(string, tag="8")]
2470 pub created_by: ::prost::alloc::string::String,
2471 #[prost(message, optional, tag="9")]
2473 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2474}
2475#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2477pub struct CreateInviteLinkRequest {
2478 #[prost(string, tag="1")]
2480 pub role_id: ::prost::alloc::string::String,
2481 #[prost(int32, tag="2")]
2483 pub max_uses: i32,
2484 #[prost(int32, tag="3")]
2487 pub expires_in_hours: i32,
2488}
2489#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2491pub struct CreateInviteLinkResponse {
2492 #[prost(message, optional, tag="1")]
2494 pub invite_link: ::core::option::Option<InviteLink>,
2495 #[prost(string, tag="2")]
2497 pub url: ::prost::alloc::string::String,
2498}
2499#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2501pub struct ListInviteLinksRequest {
2502}
2503#[derive(Clone, PartialEq, ::prost::Message)]
2505pub struct ListInviteLinksResponse {
2506 #[prost(message, repeated, tag="1")]
2508 pub invite_links: ::prost::alloc::vec::Vec<InviteLink>,
2509}
2510#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2512pub struct RevokeInviteLinkRequest {
2513 #[prost(string, tag="1")]
2515 pub invite_link_id: ::prost::alloc::string::String,
2516}
2517#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2519pub struct RevokeInviteLinkResponse {
2520}
2521#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2523pub struct RedeemInviteLinkRequest {
2524 #[prost(string, tag="1")]
2526 pub token: ::prost::alloc::string::String,
2527}
2528#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2530pub struct RedeemInviteLinkResponse {
2531 #[prost(string, tag="1")]
2533 pub organization_name: ::prost::alloc::string::String,
2534}
2535#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2537pub struct ValidateInviteLinkRequest {
2538 #[prost(string, tag="1")]
2540 pub token: ::prost::alloc::string::String,
2541 #[prost(string, tag="2")]
2544 pub email: ::prost::alloc::string::String,
2545}
2546#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2548pub struct ValidateInviteLinkResponse {
2549 #[prost(string, tag="1")]
2551 pub organization_name: ::prost::alloc::string::String,
2552}
2553#[derive(Clone, PartialEq, ::prost::Message)]
2557pub struct InviteUserRequest {
2558 #[prost(string, tag="1")]
2561 pub email: ::prost::alloc::string::String,
2562 #[prost(string, tag="2")]
2565 pub name: ::prost::alloc::string::String,
2566 #[prost(string, tag="4")]
2568 pub role_id: ::prost::alloc::string::String,
2569 #[prost(message, optional, tag="5")]
2571 pub profile: ::core::option::Option<UserProfile>,
2572}
2573#[derive(Clone, PartialEq, ::prost::Message)]
2575pub struct InviteUserResponse {
2576 #[prost(message, optional, tag="1")]
2578 pub user: ::core::option::Option<User>,
2579}
2580#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2582pub struct GetUserRequest {
2583 #[prost(string, tag="1")]
2585 pub user_id: ::prost::alloc::string::String,
2586}
2587#[derive(Clone, PartialEq, ::prost::Message)]
2589pub struct GetUserResponse {
2590 #[prost(message, optional, tag="1")]
2592 pub user: ::core::option::Option<User>,
2593}
2594#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2596pub struct ListUsersRequest {
2597 #[prost(message, optional, tag="1")]
2599 pub pagination: ::core::option::Option<Pagination>,
2600}
2601#[derive(Clone, PartialEq, ::prost::Message)]
2603pub struct ListUsersResponse {
2604 #[prost(message, repeated, tag="1")]
2606 pub users: ::prost::alloc::vec::Vec<User>,
2607 #[prost(message, optional, tag="2")]
2609 pub pagination_meta: ::core::option::Option<PaginationMeta>,
2610}
2611#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2613pub struct UpdateUserRoleRequest {
2614 #[prost(string, tag="1")]
2616 pub user_id: ::prost::alloc::string::String,
2617 #[prost(string, tag="2")]
2619 pub role_id: ::prost::alloc::string::String,
2620}
2621#[derive(Clone, PartialEq, ::prost::Message)]
2623pub struct UpdateUserRoleResponse {
2624 #[prost(message, optional, tag="1")]
2626 pub user: ::core::option::Option<User>,
2627}
2628#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2630pub struct DeactivateUserRequest {
2631 #[prost(string, tag="1")]
2633 pub user_id: ::prost::alloc::string::String,
2634}
2635#[derive(Clone, PartialEq, ::prost::Message)]
2637pub struct DeactivateUserResponse {
2638 #[prost(message, optional, tag="1")]
2640 pub user: ::core::option::Option<User>,
2641}
2642#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2644pub struct ReactivateUserRequest {
2645 #[prost(string, tag="1")]
2647 pub user_id: ::prost::alloc::string::String,
2648}
2649#[derive(Clone, PartialEq, ::prost::Message)]
2651pub struct ReactivateUserResponse {
2652 #[prost(message, optional, tag="1")]
2654 pub user: ::core::option::Option<User>,
2655}
2656#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2658pub struct RevokeInviteRequest {
2659 #[prost(string, tag="1")]
2662 pub user_id: ::prost::alloc::string::String,
2663}
2664#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2666pub struct RevokeInviteResponse {
2667}
2668#[derive(Clone, PartialEq, ::prost::Message)]
2670pub struct UpdateUserProfileRequest {
2671 #[prost(string, tag="1")]
2674 pub user_id: ::prost::alloc::string::String,
2675 #[prost(message, optional, tag="2")]
2677 pub profile: ::core::option::Option<UserProfile>,
2678}
2679#[derive(Clone, PartialEq, ::prost::Message)]
2681pub struct UpdateUserProfileResponse {
2682 #[prost(message, optional, tag="1")]
2684 pub user: ::core::option::Option<User>,
2685}
2686#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2688pub struct GetUserSettingsRequest {
2689}
2690#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2692pub struct GetUserSettingsResponse {
2693 #[prost(message, optional, tag="1")]
2695 pub settings: ::core::option::Option<UserSettings>,
2696}
2697#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2699pub struct UpdateUserSettingsRequest {
2700 #[prost(message, optional, tag="1")]
2703 pub settings: ::core::option::Option<UserSettings>,
2704}
2705#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2707pub struct UpdateUserSettingsResponse {
2708 #[prost(message, optional, tag="1")]
2710 pub settings: ::core::option::Option<UserSettings>,
2711}
2712#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2714pub struct BulkInviteUsersRequest {
2715 #[prost(string, repeated, tag="1")]
2718 pub emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2719 #[prost(string, tag="2")]
2721 pub role_id: ::prost::alloc::string::String,
2722}
2723#[derive(Clone, PartialEq, ::prost::Message)]
2725pub struct BulkInviteResult {
2726 #[prost(string, tag="1")]
2728 pub email: ::prost::alloc::string::String,
2729 #[prost(bool, tag="2")]
2731 pub success: bool,
2732 #[prost(string, tag="3")]
2735 pub error: ::prost::alloc::string::String,
2736 #[prost(message, optional, tag="4")]
2738 pub user: ::core::option::Option<User>,
2739}
2740#[derive(Clone, PartialEq, ::prost::Message)]
2742pub struct BulkInviteUsersResponse {
2743 #[prost(message, repeated, tag="1")]
2745 pub results: ::prost::alloc::vec::Vec<BulkInviteResult>,
2746 #[prost(int32, tag="2")]
2748 pub invited_count: i32,
2749 #[prost(int32, tag="3")]
2751 pub failed_count: i32,
2752}
2753#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2757pub struct ConfirmPasskeyEnrollmentRequest {
2758}
2759#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2761pub struct ConfirmPasskeyEnrollmentResponse {
2762 #[prost(bool, tag="1")]
2764 pub confirmed: bool,
2765}
2766#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2771pub struct SsoAttributeMapping {
2772 #[prost(string, tag="1")]
2775 pub idp_claim: ::prost::alloc::string::String,
2776 #[prost(string, tag="2")]
2780 pub profile_field: ::prost::alloc::string::String,
2781}
2782#[derive(Clone, PartialEq, ::prost::Message)]
2784pub struct Organization {
2785 #[prost(string, tag="1")]
2787 pub id: ::prost::alloc::string::String,
2788 #[prost(string, tag="2")]
2791 pub name: ::prost::alloc::string::String,
2792 #[prost(message, optional, tag="3")]
2794 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2795 #[prost(message, optional, tag="4")]
2797 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2798 #[prost(enumeration="Industry", tag="5")]
2800 pub industry: i32,
2801 #[prost(enumeration="CompanySize", tag="6")]
2803 pub company_size: i32,
2804 #[prost(message, repeated, tag="7")]
2807 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2808 #[prost(string, tag="8")]
2812 pub default_locale: ::prost::alloc::string::String,
2813}
2814#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2817pub struct CreateOrganizationRequest {
2818 #[prost(string, tag="1")]
2821 pub name: ::prost::alloc::string::String,
2822 #[prost(string, tag="2")]
2825 pub admin_email: ::prost::alloc::string::String,
2826 #[prost(enumeration="Industry", tag="3")]
2828 pub industry: i32,
2829 #[prost(enumeration="CompanySize", tag="4")]
2831 pub company_size: i32,
2832 #[prost(string, tag="5")]
2835 pub access_code: ::prost::alloc::string::String,
2836}
2837#[derive(Clone, PartialEq, ::prost::Message)]
2839pub struct CreateOrganizationResponse {
2840 #[prost(message, optional, tag="1")]
2842 pub organization: ::core::option::Option<Organization>,
2843 #[prost(message, optional, tag="2")]
2845 pub admin_user: ::core::option::Option<User>,
2846}
2847#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2849pub struct GetOrganizationRequest {
2850}
2851#[derive(Clone, PartialEq, ::prost::Message)]
2853pub struct GetOrganizationResponse {
2854 #[prost(message, optional, tag="1")]
2856 pub organization: ::core::option::Option<Organization>,
2857}
2858#[derive(Clone, PartialEq, ::prost::Message)]
2860pub struct UpdateOrganizationRequest {
2861 #[prost(string, tag="1")]
2864 pub name: ::prost::alloc::string::String,
2865 #[prost(message, optional, tag="2")]
2867 pub default_workflow: ::core::option::Option<WorkflowDefinition>,
2868 #[prost(enumeration="Industry", tag="3")]
2870 pub industry: i32,
2871 #[prost(enumeration="CompanySize", tag="4")]
2873 pub company_size: i32,
2874 #[prost(string, tag="5")]
2877 pub default_locale: ::prost::alloc::string::String,
2878}
2879#[derive(Clone, PartialEq, ::prost::Message)]
2881pub struct UpdateOrganizationResponse {
2882 #[prost(message, optional, tag="1")]
2884 pub organization: ::core::option::Option<Organization>,
2885}
2886#[derive(Clone, PartialEq, ::prost::Message)]
2888pub struct UpdateSsoAttributeMappingsRequest {
2889 #[prost(message, repeated, tag="1")]
2891 pub sso_attribute_mappings: ::prost::alloc::vec::Vec<SsoAttributeMapping>,
2892}
2893#[derive(Clone, PartialEq, ::prost::Message)]
2895pub struct UpdateSsoAttributeMappingsResponse {
2896 #[prost(message, optional, tag="1")]
2898 pub organization: ::core::option::Option<Organization>,
2899}
2900#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2902pub struct RotateAnalyticsSaltRequest {
2903 #[prost(int32, tag="1")]
2905 pub new_bucket_count: i32,
2906}
2907#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2909pub struct RotateAnalyticsSaltResponse {
2910 #[prost(int32, tag="1")]
2912 pub bucket_count: i32,
2913}
2914#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2916pub struct UpdateAnalyticsEpsilonRequest {
2917 #[prost(float, tag="1")]
2919 pub epsilon: f32,
2920}
2921#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2923pub struct UpdateAnalyticsEpsilonResponse {
2924 #[prost(float, tag="1")]
2926 pub epsilon: f32,
2927}
2928#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2932#[repr(i32)]
2933pub enum Industry {
2934 Unspecified = 0,
2935 Technology = 1,
2936 Finance = 2,
2937 Healthcare = 3,
2938 Education = 4,
2939 Retail = 5,
2940 Manufacturing = 6,
2941 Media = 7,
2942 Other = 8,
2943}
2944impl Industry {
2945 pub fn as_str_name(&self) -> &'static str {
2950 match self {
2951 Self::Unspecified => "INDUSTRY_UNSPECIFIED",
2952 Self::Technology => "INDUSTRY_TECHNOLOGY",
2953 Self::Finance => "INDUSTRY_FINANCE",
2954 Self::Healthcare => "INDUSTRY_HEALTHCARE",
2955 Self::Education => "INDUSTRY_EDUCATION",
2956 Self::Retail => "INDUSTRY_RETAIL",
2957 Self::Manufacturing => "INDUSTRY_MANUFACTURING",
2958 Self::Media => "INDUSTRY_MEDIA",
2959 Self::Other => "INDUSTRY_OTHER",
2960 }
2961 }
2962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2964 match value {
2965 "INDUSTRY_UNSPECIFIED" => Some(Self::Unspecified),
2966 "INDUSTRY_TECHNOLOGY" => Some(Self::Technology),
2967 "INDUSTRY_FINANCE" => Some(Self::Finance),
2968 "INDUSTRY_HEALTHCARE" => Some(Self::Healthcare),
2969 "INDUSTRY_EDUCATION" => Some(Self::Education),
2970 "INDUSTRY_RETAIL" => Some(Self::Retail),
2971 "INDUSTRY_MANUFACTURING" => Some(Self::Manufacturing),
2972 "INDUSTRY_MEDIA" => Some(Self::Media),
2973 "INDUSTRY_OTHER" => Some(Self::Other),
2974 _ => None,
2975 }
2976 }
2977}
2978#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2980#[repr(i32)]
2981pub enum CompanySize {
2982 Unspecified = 0,
2983 CompanySize1200 = 1,
2984 CompanySize200500 = 2,
2985 CompanySize5001000 = 3,
2986 CompanySize10005000 = 4,
2987 CompanySize5000Plus = 5,
2988}
2989impl CompanySize {
2990 pub fn as_str_name(&self) -> &'static str {
2995 match self {
2996 Self::Unspecified => "COMPANY_SIZE_UNSPECIFIED",
2997 Self::CompanySize1200 => "COMPANY_SIZE_1_200",
2998 Self::CompanySize200500 => "COMPANY_SIZE_200_500",
2999 Self::CompanySize5001000 => "COMPANY_SIZE_500_1000",
3000 Self::CompanySize10005000 => "COMPANY_SIZE_1000_5000",
3001 Self::CompanySize5000Plus => "COMPANY_SIZE_5000_PLUS",
3002 }
3003 }
3004 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3006 match value {
3007 "COMPANY_SIZE_UNSPECIFIED" => Some(Self::Unspecified),
3008 "COMPANY_SIZE_1_200" => Some(Self::CompanySize1200),
3009 "COMPANY_SIZE_200_500" => Some(Self::CompanySize200500),
3010 "COMPANY_SIZE_500_1000" => Some(Self::CompanySize5001000),
3011 "COMPANY_SIZE_1000_5000" => Some(Self::CompanySize10005000),
3012 "COMPANY_SIZE_5000_PLUS" => Some(Self::CompanySize5000Plus),
3013 _ => None,
3014 }
3015 }
3016}
3017#[derive(Clone, PartialEq, ::prost::Message)]
3021pub struct UserRenderContext {
3022 #[prost(string, tag="1")]
3024 pub user_id: ::prost::alloc::string::String,
3025 #[prost(map="string, string", tag="2")]
3028 pub variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3029}
3030#[derive(Clone, PartialEq, ::prost::Message)]
3032pub struct RenderBatchRequest {
3033 #[prost(string, tag="1")]
3035 pub template_id: ::prost::alloc::string::String,
3036 #[prost(int32, tag="2")]
3038 pub version: i32,
3039 #[prost(message, repeated, tag="3")]
3042 pub users: ::prost::alloc::vec::Vec<UserRenderContext>,
3043}
3044#[derive(Clone, PartialEq, ::prost::Message)]
3047pub struct RenderBatchResponse {
3048 #[prost(string, tag="1")]
3050 pub user_id: ::prost::alloc::string::String,
3051 #[prost(message, optional, tag="2")]
3053 pub message: ::core::option::Option<Message>,
3054 #[prost(string, tag="3")]
3056 pub error: ::prost::alloc::string::String,
3057}
3058#[derive(Clone, PartialEq, ::prost::Message)]
3063pub struct SessionRecording {
3064 #[prost(string, tag="1")]
3066 pub id: ::prost::alloc::string::String,
3067 #[prost(message, optional, tag="2")]
3069 pub start_time: ::core::option::Option<::prost_types::Timestamp>,
3070 #[prost(message, optional, tag="3")]
3072 pub end_time: ::core::option::Option<::prost_types::Timestamp>,
3073 #[prost(int32, tag="4")]
3075 pub duration_seconds: i32,
3076 #[prost(float, tag="5")]
3078 pub activity_score: f32,
3079}
3080#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3082pub struct ListSessionRecordingsRequest {
3083 #[prost(string, tag="1")]
3086 pub campaign_id: ::prost::alloc::string::String,
3087 #[prost(message, optional, tag="2")]
3089 pub date_from: ::core::option::Option<::prost_types::Timestamp>,
3090 #[prost(message, optional, tag="3")]
3092 pub date_to: ::core::option::Option<::prost_types::Timestamp>,
3093 #[prost(message, optional, tag="4")]
3095 pub pagination: ::core::option::Option<Pagination>,
3096}
3097#[derive(Clone, PartialEq, ::prost::Message)]
3099pub struct ListSessionRecordingsResponse {
3100 #[prost(message, repeated, tag="1")]
3102 pub recordings: ::prost::alloc::vec::Vec<SessionRecording>,
3103 #[prost(message, optional, tag="2")]
3105 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3106}
3107#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3109pub struct GetSessionSnapshotsRequest {
3110 #[prost(string, tag="1")]
3113 pub recording_id: ::prost::alloc::string::String,
3114}
3115#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3117pub struct GetSessionSnapshotsResponse {
3118 #[prost(string, tag="1")]
3121 pub snapshot_data: ::prost::alloc::string::String,
3122}
3123#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3127pub struct ListRolesRequest {
3128}
3129#[derive(Clone, PartialEq, ::prost::Message)]
3131pub struct ListRolesResponse {
3132 #[prost(message, repeated, tag="1")]
3134 pub roles: ::prost::alloc::vec::Vec<Role>,
3135}
3136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3138pub struct CreateRoleRequest {
3139 #[prost(string, tag="1")]
3142 pub name: ::prost::alloc::string::String,
3143 #[prost(enumeration="Permission", repeated, tag="2")]
3146 pub permissions: ::prost::alloc::vec::Vec<i32>,
3147}
3148#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3150pub struct CreateRoleResponse {
3151 #[prost(message, optional, tag="1")]
3153 pub role: ::core::option::Option<Role>,
3154}
3155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3157pub struct UpdateRoleRequest {
3158 #[prost(string, tag="1")]
3160 pub role_id: ::prost::alloc::string::String,
3161 #[prost(string, tag="2")]
3163 pub name: ::prost::alloc::string::String,
3164 #[prost(enumeration="Permission", repeated, tag="3")]
3168 pub permissions: ::prost::alloc::vec::Vec<i32>,
3169}
3170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3172pub struct UpdateRoleResponse {
3173 #[prost(message, optional, tag="1")]
3175 pub role: ::core::option::Option<Role>,
3176}
3177#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3179pub struct DeleteRoleRequest {
3180 #[prost(string, tag="1")]
3182 pub role_id: ::prost::alloc::string::String,
3183}
3184#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3186pub struct DeleteRoleResponse {
3187}
3188#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3194pub struct SamlAttributeNames {
3195 #[prost(string, tag="1")]
3197 pub email: ::prost::alloc::string::String,
3198 #[prost(string, tag="2")]
3200 pub given_name: ::prost::alloc::string::String,
3201 #[prost(string, tag="3")]
3203 pub family_name: ::prost::alloc::string::String,
3204}
3205#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3207pub struct SsoProvider {
3208 #[prost(string, tag="1")]
3210 pub id: ::prost::alloc::string::String,
3211 #[prost(string, tag="2")]
3214 pub domain: ::prost::alloc::string::String,
3215 #[prost(enumeration="SsoProviderType", tag="3")]
3217 pub r#type: i32,
3218 #[prost(string, tag="4")]
3221 pub metadata_url: ::prost::alloc::string::String,
3222 #[prost(string, tag="5")]
3225 pub idp_provider_name: ::prost::alloc::string::String,
3226 #[prost(message, optional, tag="6")]
3228 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3229 #[prost(message, optional, tag="7")]
3231 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3232 #[prost(message, optional, tag="8")]
3234 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3235}
3236#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3239pub struct CheckSsoByDomainRequest {
3240 #[prost(string, tag="1")]
3243 pub email: ::prost::alloc::string::String,
3244}
3245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3247pub struct CheckSsoByDomainResponse {
3248 #[prost(bool, tag="1")]
3250 pub sso_enabled: bool,
3251 #[prost(string, tag="2")]
3254 pub provider_name: ::prost::alloc::string::String,
3255}
3256#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3258pub struct CreateSsoProviderRequest {
3259 #[prost(string, tag="1")]
3262 pub domain: ::prost::alloc::string::String,
3263 #[prost(enumeration="SsoProviderType", tag="2")]
3265 pub r#type: i32,
3266 #[prost(string, tag="3")]
3269 pub metadata_url: ::prost::alloc::string::String,
3270 #[prost(message, optional, tag="4")]
3273 pub attribute_mapping: ::core::option::Option<SamlAttributeNames>,
3274}
3275#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3277pub struct CreateSsoProviderResponse {
3278 #[prost(message, optional, tag="1")]
3280 pub provider: ::core::option::Option<SsoProvider>,
3281}
3282#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3285pub struct GetSsoProviderRequest {
3286}
3287#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3289pub struct GetSsoProviderResponse {
3290 #[prost(message, optional, tag="1")]
3292 pub provider: ::core::option::Option<SsoProvider>,
3293}
3294#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3296pub struct DeleteSsoProviderRequest {
3297 #[prost(string, tag="1")]
3299 pub provider_id: ::prost::alloc::string::String,
3300}
3301#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3303pub struct DeleteSsoProviderResponse {
3304}
3305#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3309#[repr(i32)]
3310pub enum SsoProviderType {
3311 Unspecified = 0,
3313 Saml = 1,
3315 Oidc = 2,
3317}
3318impl SsoProviderType {
3319 pub fn as_str_name(&self) -> &'static str {
3324 match self {
3325 Self::Unspecified => "SSO_PROVIDER_TYPE_UNSPECIFIED",
3326 Self::Saml => "SSO_PROVIDER_TYPE_SAML",
3327 Self::Oidc => "SSO_PROVIDER_TYPE_OIDC",
3328 }
3329 }
3330 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3332 match value {
3333 "SSO_PROVIDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3334 "SSO_PROVIDER_TYPE_SAML" => Some(Self::Saml),
3335 "SSO_PROVIDER_TYPE_OIDC" => Some(Self::Oidc),
3336 _ => None,
3337 }
3338 }
3339}
3340#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3346pub struct Team {
3347 #[prost(string, tag="1")]
3349 pub id: ::prost::alloc::string::String,
3350 #[prost(string, tag="2")]
3353 pub name: ::prost::alloc::string::String,
3354 #[prost(string, tag="3")]
3357 pub description: ::prost::alloc::string::String,
3358 #[prost(int32, tag="4")]
3360 pub member_count: i32,
3361 #[prost(message, optional, tag="5")]
3363 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3364 #[prost(message, optional, tag="6")]
3366 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3367 #[prost(bool, tag="7")]
3369 pub is_default: bool,
3370 #[prost(string, tag="8")]
3372 pub created_by: ::prost::alloc::string::String,
3373}
3374#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3376pub struct CreateTeamRequest {
3377 #[prost(string, tag="1")]
3380 pub name: ::prost::alloc::string::String,
3381 #[prost(string, tag="2")]
3384 pub description: ::prost::alloc::string::String,
3385}
3386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3388pub struct CreateTeamResponse {
3389 #[prost(message, optional, tag="1")]
3391 pub team: ::core::option::Option<Team>,
3392}
3393#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3395pub struct GetTeamRequest {
3396 #[prost(string, tag="1")]
3398 pub team_id: ::prost::alloc::string::String,
3399}
3400#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3402pub struct GetTeamResponse {
3403 #[prost(message, optional, tag="1")]
3405 pub team: ::core::option::Option<Team>,
3406}
3407#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3409pub struct ListTeamsRequest {
3410 #[prost(message, optional, tag="1")]
3412 pub pagination: ::core::option::Option<Pagination>,
3413}
3414#[derive(Clone, PartialEq, ::prost::Message)]
3416pub struct ListTeamsResponse {
3417 #[prost(message, repeated, tag="1")]
3419 pub teams: ::prost::alloc::vec::Vec<Team>,
3420 #[prost(message, optional, tag="2")]
3422 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3423}
3424#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3426pub struct UpdateTeamRequest {
3427 #[prost(string, tag="1")]
3429 pub team_id: ::prost::alloc::string::String,
3430 #[prost(string, tag="2")]
3434 pub name: ::prost::alloc::string::String,
3435 #[prost(string, tag="3")]
3438 pub description: ::prost::alloc::string::String,
3439}
3440#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3442pub struct UpdateTeamResponse {
3443 #[prost(message, optional, tag="1")]
3445 pub team: ::core::option::Option<Team>,
3446}
3447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3449pub struct DeleteTeamRequest {
3450 #[prost(string, tag="1")]
3453 pub team_id: ::prost::alloc::string::String,
3454}
3455#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3457pub struct DeleteTeamResponse {
3458}
3459#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3461pub struct AddTeamMembersRequest {
3462 #[prost(string, tag="1")]
3464 pub team_id: ::prost::alloc::string::String,
3465 #[prost(string, repeated, tag="2")]
3469 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3470}
3471#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3473pub struct AddTeamMembersResponse {
3474 #[prost(message, optional, tag="1")]
3476 pub team: ::core::option::Option<Team>,
3477}
3478#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3480pub struct RemoveTeamMembersRequest {
3481 #[prost(string, tag="1")]
3483 pub team_id: ::prost::alloc::string::String,
3484 #[prost(string, repeated, tag="2")]
3487 pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3488}
3489#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3491pub struct RemoveTeamMembersResponse {
3492 #[prost(message, optional, tag="1")]
3494 pub team: ::core::option::Option<Team>,
3495}
3496#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3498pub struct ListTeamMembersRequest {
3499 #[prost(string, tag="1")]
3501 pub team_id: ::prost::alloc::string::String,
3502 #[prost(message, optional, tag="2")]
3504 pub pagination: ::core::option::Option<Pagination>,
3505}
3506#[derive(Clone, PartialEq, ::prost::Message)]
3508pub struct ListTeamMembersResponse {
3509 #[prost(message, repeated, tag="1")]
3511 pub users: ::prost::alloc::vec::Vec<User>,
3512 #[prost(message, optional, tag="2")]
3514 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3515}
3516#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3520pub struct TemplateVariable {
3521 #[prost(string, tag="1")]
3524 pub name: ::prost::alloc::string::String,
3525 #[prost(string, tag="2")]
3528 pub description: ::prost::alloc::string::String,
3529 #[prost(bool, tag="3")]
3531 pub required: bool,
3532 #[prost(enumeration="TemplateVariableSource", tag="4")]
3534 pub source: i32,
3535 #[prost(string, tag="5")]
3538 pub default_value: ::prost::alloc::string::String,
3539 #[prost(bool, tag="6")]
3542 pub pii: bool,
3543}
3544#[derive(Clone, PartialEq, ::prost::Message)]
3547pub struct Template {
3548 #[prost(string, tag="1")]
3550 pub id: ::prost::alloc::string::String,
3551 #[prost(string, tag="2")]
3554 pub name: ::prost::alloc::string::String,
3555 #[prost(string, tag="3")]
3558 pub body: ::prost::alloc::string::String,
3559 #[prost(message, repeated, tag="4")]
3561 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3562 #[prost(int32, tag="5")]
3564 pub version: i32,
3565 #[prost(message, optional, tag="6")]
3567 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
3568 #[prost(message, optional, tag="7")]
3570 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
3571 #[prost(string, tag="8")]
3575 pub title: ::prost::alloc::string::String,
3576 #[prost(enumeration="TemplateType", tag="9")]
3579 pub r#type: i32,
3580}
3581#[derive(Clone, PartialEq, ::prost::Message)]
3583pub struct CreateTemplateRequest {
3584 #[prost(string, tag="1")]
3587 pub name: ::prost::alloc::string::String,
3588 #[prost(string, tag="2")]
3591 pub body: ::prost::alloc::string::String,
3592 #[prost(message, repeated, tag="3")]
3594 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3595 #[prost(string, tag="4")]
3598 pub title: ::prost::alloc::string::String,
3599 #[prost(enumeration="TemplateType", tag="5")]
3601 pub r#type: i32,
3602}
3603#[derive(Clone, PartialEq, ::prost::Message)]
3605pub struct CreateTemplateResponse {
3606 #[prost(message, optional, tag="1")]
3608 pub template: ::core::option::Option<Template>,
3609}
3610#[derive(Clone, PartialEq, ::prost::Message)]
3612pub struct UpdateTemplateRequest {
3613 #[prost(string, tag="1")]
3615 pub template_id: ::prost::alloc::string::String,
3616 #[prost(string, tag="2")]
3619 pub body: ::prost::alloc::string::String,
3620 #[prost(message, repeated, tag="3")]
3622 pub variables: ::prost::alloc::vec::Vec<TemplateVariable>,
3623}
3624#[derive(Clone, PartialEq, ::prost::Message)]
3626pub struct UpdateTemplateResponse {
3627 #[prost(message, optional, tag="1")]
3629 pub template: ::core::option::Option<Template>,
3630}
3631#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3633pub struct GetTemplateRequest {
3634 #[prost(string, tag="1")]
3636 pub template_id: ::prost::alloc::string::String,
3637 #[prost(int32, tag="2")]
3639 pub version: i32,
3640}
3641#[derive(Clone, PartialEq, ::prost::Message)]
3643pub struct GetTemplateResponse {
3644 #[prost(message, optional, tag="1")]
3646 pub template: ::core::option::Option<Template>,
3647}
3648#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3650pub struct ListTemplatesRequest {
3651 #[prost(message, optional, tag="1")]
3653 pub pagination: ::core::option::Option<Pagination>,
3654 #[prost(enumeration="TemplateType", tag="2")]
3656 pub r#type: i32,
3657}
3658#[derive(Clone, PartialEq, ::prost::Message)]
3660pub struct ListTemplatesResponse {
3661 #[prost(message, repeated, tag="1")]
3663 pub templates: ::prost::alloc::vec::Vec<Template>,
3664 #[prost(message, optional, tag="2")]
3666 pub pagination_meta: ::core::option::Option<PaginationMeta>,
3667}
3668#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3672#[repr(i32)]
3673pub enum TemplateType {
3674 Unspecified = 0,
3676 Markdown = 1,
3678 Rich = 2,
3680 Html = 3,
3682}
3683impl TemplateType {
3684 pub fn as_str_name(&self) -> &'static str {
3689 match self {
3690 Self::Unspecified => "TEMPLATE_TYPE_UNSPECIFIED",
3691 Self::Markdown => "TEMPLATE_TYPE_MARKDOWN",
3692 Self::Rich => "TEMPLATE_TYPE_RICH",
3693 Self::Html => "TEMPLATE_TYPE_HTML",
3694 }
3695 }
3696 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3698 match value {
3699 "TEMPLATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
3700 "TEMPLATE_TYPE_MARKDOWN" => Some(Self::Markdown),
3701 "TEMPLATE_TYPE_RICH" => Some(Self::Rich),
3702 "TEMPLATE_TYPE_HTML" => Some(Self::Html),
3703 _ => None,
3704 }
3705 }
3706}
3707#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3709#[repr(i32)]
3710pub enum TemplateVariableSource {
3711 Unspecified = 0,
3713 Profile = 1,
3715 Custom = 2,
3717}
3718impl TemplateVariableSource {
3719 pub fn as_str_name(&self) -> &'static str {
3724 match self {
3725 Self::Unspecified => "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED",
3726 Self::Profile => "TEMPLATE_VARIABLE_SOURCE_PROFILE",
3727 Self::Custom => "TEMPLATE_VARIABLE_SOURCE_CUSTOM",
3728 }
3729 }
3730 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3732 match value {
3733 "TEMPLATE_VARIABLE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
3734 "TEMPLATE_VARIABLE_SOURCE_PROFILE" => Some(Self::Profile),
3735 "TEMPLATE_VARIABLE_SOURCE_CUSTOM" => Some(Self::Custom),
3736 _ => None,
3737 }
3738 }
3739}
3740include!("pidgr.v1.tonic.rs");
3741