Skip to main content

anytype_rpc/gen/
anytype.model.rs

1// This file is @generated by prost-build.
2// Generated on 2026-08-17 UTC from anytype-heart ref 0.50.10.
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct SmartBlockSnapshotBase {
5    #[prost(message, repeated, tag = "1")]
6    pub blocks: ::prost::alloc::vec::Vec<Block>,
7    #[prost(message, optional, tag = "2")]
8    pub details: ::core::option::Option<::prost_types::Struct>,
9    #[deprecated]
10    #[prost(message, optional, tag = "3")]
11    pub file_keys: ::core::option::Option<::prost_types::Struct>,
12    #[deprecated]
13    #[prost(message, repeated, tag = "4")]
14    pub extra_relations: ::prost::alloc::vec::Vec<Relation>,
15    #[prost(string, repeated, tag = "5")]
16    pub object_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
17    #[prost(message, optional, tag = "6")]
18    pub collections: ::core::option::Option<::prost_types::Struct>,
19    #[prost(string, repeated, tag = "8")]
20    pub removed_collection_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
21    #[prost(message, repeated, tag = "7")]
22    pub relation_links: ::prost::alloc::vec::Vec<RelationLink>,
23    /// only used for pb backup purposes, ignored in other cases
24    #[prost(string, tag = "9")]
25    pub key: ::prost::alloc::string::String,
26    /// ignored in import/export in favor of createdDate relation. Used to store original user-side object creation timestamp
27    #[prost(int64, tag = "10")]
28    pub original_created_timestamp: i64,
29    #[prost(message, optional, tag = "11")]
30    pub file_info: ::core::option::Option<FileInfo>,
31}
32#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
33pub struct Search {}
34/// Nested message and enum types in `Search`.
35pub mod search {
36    #[derive(Clone, PartialEq, ::prost::Message)]
37    pub struct Result {
38        #[prost(string, tag = "1")]
39        pub object_id: ::prost::alloc::string::String,
40        #[prost(message, optional, tag = "2")]
41        pub details: ::core::option::Option<::prost_types::Struct>,
42        /// meta information about the search result
43        #[prost(message, repeated, tag = "3")]
44        pub meta: ::prost::alloc::vec::Vec<Meta>,
45    }
46    #[derive(Clone, PartialEq, ::prost::Message)]
47    pub struct Meta {
48        /// truncated text with highlights
49        #[prost(string, tag = "1")]
50        pub highlight: ::prost::alloc::string::String,
51        /// ranges of the highlight in the text (using utf-16 runes)
52        #[prost(message, repeated, tag = "2")]
53        pub highlight_ranges: ::prost::alloc::vec::Vec<super::Range>,
54        /// block id where the highlight has been found
55        #[prost(string, tag = "3")]
56        pub block_id: ::prost::alloc::string::String,
57        /// relation key of the block where the highlight has been found
58        #[prost(string, tag = "4")]
59        pub relation_key: ::prost::alloc::string::String,
60        /// contains details for dependent object. E.g. relation option or type. todo: rename to dependantDetails
61        #[prost(message, optional, tag = "5")]
62        pub relation_details: ::core::option::Option<::prost_types::Struct>,
63    }
64    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
65    pub struct Message {}
66    /// Nested message and enum types in `Message`.
67    pub mod message {
68        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
69        pub struct Sort {
70            #[prost(enumeration = "sort::Key", tag = "1")]
71            pub key: i32,
72            #[prost(enumeration = "sort::Type", tag = "2")]
73            pub r#type: i32,
74        }
75        /// Nested message and enum types in `Sort`.
76        pub mod sort {
77            #[derive(
78                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
79            )]
80            #[repr(i32)]
81            pub enum Key {
82                OrderId = 0,
83                Score = 1,
84                CreatedAt = 2,
85                ModifiedAt = 3,
86            }
87            impl Key {
88                /// String value of the enum field names used in the ProtoBuf definition.
89                ///
90                /// The values are not transformed in any way and thus are considered stable
91                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
92                pub fn as_str_name(&self) -> &'static str {
93                    match self {
94                        Self::OrderId => "ORDER_ID",
95                        Self::Score => "SCORE",
96                        Self::CreatedAt => "CREATED_AT",
97                        Self::ModifiedAt => "MODIFIED_AT",
98                    }
99                }
100                /// Creates an enum from field names used in the ProtoBuf definition.
101                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
102                    match value {
103                        "ORDER_ID" => Some(Self::OrderId),
104                        "SCORE" => Some(Self::Score),
105                        "CREATED_AT" => Some(Self::CreatedAt),
106                        "MODIFIED_AT" => Some(Self::ModifiedAt),
107                        _ => None,
108                    }
109                }
110            }
111            #[derive(
112                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
113            )]
114            #[repr(i32)]
115            pub enum Type {
116                Asc = 0,
117                Desc = 1,
118            }
119            impl Type {
120                /// String value of the enum field names used in the ProtoBuf definition.
121                ///
122                /// The values are not transformed in any way and thus are considered stable
123                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
124                pub fn as_str_name(&self) -> &'static str {
125                    match self {
126                        Self::Asc => "Asc",
127                        Self::Desc => "Desc",
128                    }
129                }
130                /// Creates an enum from field names used in the ProtoBuf definition.
131                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
132                    match value {
133                        "Asc" => Some(Self::Asc),
134                        "Desc" => Some(Self::Desc),
135                        _ => None,
136                    }
137                }
138            }
139        }
140        #[derive(Clone, PartialEq, ::prost::Message)]
141        pub struct Result {
142            #[prost(string, tag = "1")]
143            pub chat_id: ::prost::alloc::string::String,
144            #[prost(string, tag = "2")]
145            pub message_id: ::prost::alloc::string::String,
146            #[prost(int64, tag = "3")]
147            pub score: i64,
148            /// truncated text with highlights
149            #[prost(string, tag = "4")]
150            pub highlight: ::prost::alloc::string::String,
151            /// ranges of the highlight in the text (using utf-16 runes)
152            #[prost(message, repeated, tag = "5")]
153            pub highlight_ranges: ::prost::alloc::vec::Vec<super::super::Range>,
154            #[prost(message, optional, tag = "6")]
155            pub message: ::core::option::Option<super::super::ChatMessage>,
156        }
157    }
158}
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct Block {
161    #[prost(string, tag = "1")]
162    pub id: ::prost::alloc::string::String,
163    #[prost(message, optional, tag = "2")]
164    pub fields: ::core::option::Option<::prost_types::Struct>,
165    #[prost(message, optional, tag = "3")]
166    pub restrictions: ::core::option::Option<block::Restrictions>,
167    #[prost(string, repeated, tag = "4")]
168    pub children_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
169    #[prost(string, tag = "5")]
170    pub background_color: ::prost::alloc::string::String,
171    #[prost(enumeration = "block::Align", tag = "6")]
172    pub align: i32,
173    #[prost(enumeration = "block::VerticalAlign", tag = "7")]
174    pub vertical_align: i32,
175    #[prost(
176        oneof = "block::ContentValue",
177        tags = "11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30"
178    )]
179    pub content_value: ::core::option::Option<block::ContentValue>,
180}
181/// Nested message and enum types in `Block`.
182pub mod block {
183    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
184    pub struct Restrictions {
185        #[prost(bool, tag = "1")]
186        pub read: bool,
187        #[prost(bool, tag = "2")]
188        pub edit: bool,
189        #[prost(bool, tag = "3")]
190        pub remove: bool,
191        #[prost(bool, tag = "4")]
192        pub drag: bool,
193        #[prost(bool, tag = "5")]
194        pub drop_on: bool,
195    }
196    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
197    pub struct Content {}
198    /// Nested message and enum types in `Content`.
199    pub mod content {
200        /// Layout have no visual representation, but affects on blocks, that it contains.
201        /// Row/Column layout blocks creates only automatically, after some of a D&D operations, for example
202        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
203        pub struct Layout {
204            #[prost(enumeration = "layout::Style", tag = "1")]
205            pub style: i32,
206        }
207        /// Nested message and enum types in `Layout`.
208        pub mod layout {
209            #[derive(
210                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
211            )]
212            #[repr(i32)]
213            pub enum Style {
214                Row = 0,
215                Column = 1,
216                Div = 2,
217                Header = 3,
218                TableRows = 4,
219                TableColumns = 5,
220            }
221            impl Style {
222                /// String value of the enum field names used in the ProtoBuf definition.
223                ///
224                /// The values are not transformed in any way and thus are considered stable
225                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
226                pub fn as_str_name(&self) -> &'static str {
227                    match self {
228                        Self::Row => "Row",
229                        Self::Column => "Column",
230                        Self::Div => "Div",
231                        Self::Header => "Header",
232                        Self::TableRows => "TableRows",
233                        Self::TableColumns => "TableColumns",
234                    }
235                }
236                /// Creates an enum from field names used in the ProtoBuf definition.
237                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
238                    match value {
239                        "Row" => Some(Self::Row),
240                        "Column" => Some(Self::Column),
241                        "Div" => Some(Self::Div),
242                        "Header" => Some(Self::Header),
243                        "TableRows" => Some(Self::TableRows),
244                        "TableColumns" => Some(Self::TableColumns),
245                        _ => None,
246                    }
247                }
248            }
249        }
250        /// Link: block to link some content from an external sources.
251        #[derive(Clone, PartialEq, ::prost::Message)]
252        pub struct Link {
253            /// id of the target block
254            #[prost(string, tag = "1")]
255            pub target_block_id: ::prost::alloc::string::String,
256            /// deprecated
257            #[prost(enumeration = "link::Style", tag = "2")]
258            pub style: i32,
259            #[prost(message, optional, tag = "3")]
260            pub fields: ::core::option::Option<::prost_types::Struct>,
261            #[prost(enumeration = "link::IconSize", tag = "4")]
262            pub icon_size: i32,
263            #[prost(enumeration = "link::CardStyle", tag = "5")]
264            pub card_style: i32,
265            #[prost(enumeration = "link::Description", tag = "6")]
266            pub description: i32,
267            #[prost(string, repeated, tag = "7")]
268            pub relations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
269        }
270        /// Nested message and enum types in `Link`.
271        pub mod link {
272            #[derive(
273                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
274            )]
275            #[repr(i32)]
276            pub enum IconSize {
277                SizeNone = 0,
278                SizeSmall = 1,
279                SizeMedium = 2,
280            }
281            impl IconSize {
282                /// String value of the enum field names used in the ProtoBuf definition.
283                ///
284                /// The values are not transformed in any way and thus are considered stable
285                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
286                pub fn as_str_name(&self) -> &'static str {
287                    match self {
288                        Self::SizeNone => "SizeNone",
289                        Self::SizeSmall => "SizeSmall",
290                        Self::SizeMedium => "SizeMedium",
291                    }
292                }
293                /// Creates an enum from field names used in the ProtoBuf definition.
294                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
295                    match value {
296                        "SizeNone" => Some(Self::SizeNone),
297                        "SizeSmall" => Some(Self::SizeSmall),
298                        "SizeMedium" => Some(Self::SizeMedium),
299                        _ => None,
300                    }
301                }
302            }
303            #[derive(
304                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
305            )]
306            #[repr(i32)]
307            pub enum Style {
308                Page = 0,
309                Dataview = 1,
310                Dashboard = 2,
311                /// ...
312                Archive = 3,
313            }
314            impl Style {
315                /// String value of the enum field names used in the ProtoBuf definition.
316                ///
317                /// The values are not transformed in any way and thus are considered stable
318                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
319                pub fn as_str_name(&self) -> &'static str {
320                    match self {
321                        Self::Page => "Page",
322                        Self::Dataview => "Dataview",
323                        Self::Dashboard => "Dashboard",
324                        Self::Archive => "Archive",
325                    }
326                }
327                /// Creates an enum from field names used in the ProtoBuf definition.
328                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
329                    match value {
330                        "Page" => Some(Self::Page),
331                        "Dataview" => Some(Self::Dataview),
332                        "Dashboard" => Some(Self::Dashboard),
333                        "Archive" => Some(Self::Archive),
334                        _ => None,
335                    }
336                }
337            }
338            #[derive(
339                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
340            )]
341            #[repr(i32)]
342            pub enum Description {
343                None = 0,
344                Added = 1,
345                Content = 2,
346            }
347            impl Description {
348                /// String value of the enum field names used in the ProtoBuf definition.
349                ///
350                /// The values are not transformed in any way and thus are considered stable
351                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
352                pub fn as_str_name(&self) -> &'static str {
353                    match self {
354                        Self::None => "None",
355                        Self::Added => "Added",
356                        Self::Content => "Content",
357                    }
358                }
359                /// Creates an enum from field names used in the ProtoBuf definition.
360                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
361                    match value {
362                        "None" => Some(Self::None),
363                        "Added" => Some(Self::Added),
364                        "Content" => Some(Self::Content),
365                        _ => None,
366                    }
367                }
368            }
369            #[derive(
370                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
371            )]
372            #[repr(i32)]
373            pub enum CardStyle {
374                Text = 0,
375                Card = 1,
376                Inline = 2,
377            }
378            impl CardStyle {
379                /// String value of the enum field names used in the ProtoBuf definition.
380                ///
381                /// The values are not transformed in any way and thus are considered stable
382                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
383                pub fn as_str_name(&self) -> &'static str {
384                    match self {
385                        Self::Text => "Text",
386                        Self::Card => "Card",
387                        Self::Inline => "Inline",
388                    }
389                }
390                /// Creates an enum from field names used in the ProtoBuf definition.
391                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
392                    match value {
393                        "Text" => Some(Self::Text),
394                        "Card" => Some(Self::Card),
395                        "Inline" => Some(Self::Inline),
396                        _ => None,
397                    }
398                }
399            }
400        }
401        /// Divider: block, that contains only one horizontal thin line
402        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
403        pub struct Div {
404            #[prost(enumeration = "div::Style", tag = "1")]
405            pub style: i32,
406        }
407        /// Nested message and enum types in `Div`.
408        pub mod div {
409            #[derive(
410                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
411            )]
412            #[repr(i32)]
413            pub enum Style {
414                Line = 0,
415                Dots = 1,
416            }
417            impl Style {
418                /// String value of the enum field names used in the ProtoBuf definition.
419                ///
420                /// The values are not transformed in any way and thus are considered stable
421                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
422                pub fn as_str_name(&self) -> &'static str {
423                    match self {
424                        Self::Line => "Line",
425                        Self::Dots => "Dots",
426                    }
427                }
428                /// Creates an enum from field names used in the ProtoBuf definition.
429                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
430                    match value {
431                        "Line" => Some(Self::Line),
432                        "Dots" => Some(Self::Dots),
433                        _ => None,
434                    }
435                }
436            }
437        }
438        /// Bookmark is to keep a web-link and to preview a content.
439        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
440        pub struct Bookmark {
441            #[prost(string, tag = "1")]
442            pub url: ::prost::alloc::string::String,
443            /// Deprecated. Get this data from the target object.
444            #[prost(string, tag = "2")]
445            pub title: ::prost::alloc::string::String,
446            /// Deprecated. Get this data from the target object.
447            #[prost(string, tag = "3")]
448            pub description: ::prost::alloc::string::String,
449            /// Deprecated. Get this data from the target object.
450            #[prost(string, tag = "4")]
451            pub image_hash: ::prost::alloc::string::String,
452            /// Deprecated. Get this data from the target object.
453            #[prost(string, tag = "5")]
454            pub favicon_hash: ::prost::alloc::string::String,
455            #[prost(enumeration = "super::super::link_preview::Type", tag = "6")]
456            pub r#type: i32,
457            #[prost(string, tag = "7")]
458            pub target_object_id: ::prost::alloc::string::String,
459            #[prost(enumeration = "bookmark::State", tag = "8")]
460            pub state: i32,
461        }
462        /// Nested message and enum types in `Bookmark`.
463        pub mod bookmark {
464            #[derive(
465                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
466            )]
467            #[repr(i32)]
468            pub enum State {
469                Empty = 0,
470                Fetching = 1,
471                Done = 2,
472                Error = 3,
473            }
474            impl State {
475                /// String value of the enum field names used in the ProtoBuf definition.
476                ///
477                /// The values are not transformed in any way and thus are considered stable
478                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
479                pub fn as_str_name(&self) -> &'static str {
480                    match self {
481                        Self::Empty => "Empty",
482                        Self::Fetching => "Fetching",
483                        Self::Done => "Done",
484                        Self::Error => "Error",
485                    }
486                }
487                /// Creates an enum from field names used in the ProtoBuf definition.
488                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
489                    match value {
490                        "Empty" => Some(Self::Empty),
491                        "Fetching" => Some(Self::Fetching),
492                        "Done" => Some(Self::Done),
493                        "Error" => Some(Self::Error),
494                        _ => None,
495                    }
496                }
497            }
498        }
499        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
500        pub struct Icon {
501            #[prost(string, tag = "1")]
502            pub name: ::prost::alloc::string::String,
503        }
504        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
505        pub struct FeaturedRelations {}
506        #[derive(Clone, PartialEq, ::prost::Message)]
507        pub struct Text {
508            #[prost(string, tag = "1")]
509            pub text: ::prost::alloc::string::String,
510            #[prost(enumeration = "text::Style", tag = "2")]
511            pub style: i32,
512            /// list of marks to apply to the text
513            #[prost(message, optional, tag = "3")]
514            pub marks: ::core::option::Option<text::Marks>,
515            #[prost(bool, tag = "4")]
516            pub checked: bool,
517            #[prost(string, tag = "5")]
518            pub color: ::prost::alloc::string::String,
519            /// used with style Callout
520            #[prost(string, tag = "6")]
521            pub icon_emoji: ::prost::alloc::string::String,
522            /// in case both image and emoji are set, image should has a priority in the UI
523            #[prost(string, tag = "7")]
524            pub icon_image: ::prost::alloc::string::String,
525        }
526        /// Nested message and enum types in `Text`.
527        pub mod text {
528            #[derive(Clone, PartialEq, ::prost::Message)]
529            pub struct Marks {
530                #[prost(message, repeated, tag = "1")]
531                pub marks: ::prost::alloc::vec::Vec<Mark>,
532            }
533            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
534            pub struct Mark {
535                /// range of symbols to apply this mark. From(symbol) To(symbol)
536                #[prost(message, optional, tag = "1")]
537                pub range: ::core::option::Option<super::super::super::Range>,
538                #[prost(enumeration = "mark::Type", tag = "2")]
539                pub r#type: i32,
540                /// link, color, etc
541                #[prost(string, tag = "3")]
542                pub param: ::prost::alloc::string::String,
543            }
544            /// Nested message and enum types in `Mark`.
545            pub mod mark {
546                #[derive(
547                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
548                )]
549                #[repr(i32)]
550                pub enum Type {
551                    Strikethrough = 0,
552                    Keyboard = 1,
553                    Italic = 2,
554                    Bold = 3,
555                    Underscored = 4,
556                    Link = 5,
557                    TextColor = 6,
558                    BackgroundColor = 7,
559                    Mention = 8,
560                    Emoji = 9,
561                    Object = 10,
562                }
563                impl Type {
564                    /// String value of the enum field names used in the ProtoBuf definition.
565                    ///
566                    /// The values are not transformed in any way and thus are considered stable
567                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
568                    pub fn as_str_name(&self) -> &'static str {
569                        match self {
570                            Self::Strikethrough => "Strikethrough",
571                            Self::Keyboard => "Keyboard",
572                            Self::Italic => "Italic",
573                            Self::Bold => "Bold",
574                            Self::Underscored => "Underscored",
575                            Self::Link => "Link",
576                            Self::TextColor => "TextColor",
577                            Self::BackgroundColor => "BackgroundColor",
578                            Self::Mention => "Mention",
579                            Self::Emoji => "Emoji",
580                            Self::Object => "Object",
581                        }
582                    }
583                    /// Creates an enum from field names used in the ProtoBuf definition.
584                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
585                        match value {
586                            "Strikethrough" => Some(Self::Strikethrough),
587                            "Keyboard" => Some(Self::Keyboard),
588                            "Italic" => Some(Self::Italic),
589                            "Bold" => Some(Self::Bold),
590                            "Underscored" => Some(Self::Underscored),
591                            "Link" => Some(Self::Link),
592                            "TextColor" => Some(Self::TextColor),
593                            "BackgroundColor" => Some(Self::BackgroundColor),
594                            "Mention" => Some(Self::Mention),
595                            "Emoji" => Some(Self::Emoji),
596                            "Object" => Some(Self::Object),
597                            _ => None,
598                        }
599                    }
600                }
601            }
602            #[derive(
603                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
604            )]
605            #[repr(i32)]
606            pub enum Style {
607                Paragraph = 0,
608                Header1 = 1,
609                Header2 = 2,
610                Header3 = 3,
611                /// deprecated
612                Header4 = 4,
613                Quote = 5,
614                Code = 6,
615                /// currently only one block of this style can exists on a page
616                Title = 7,
617                Checkbox = 8,
618                Marked = 9,
619                Numbered = 10,
620                Toggle = 11,
621                /// currently only one block of this style can exists on a page
622                Description = 12,
623                Callout = 13,
624                ToggleHeader1 = 14,
625                ToggleHeader2 = 15,
626                ToggleHeader3 = 16,
627            }
628            impl Style {
629                /// String value of the enum field names used in the ProtoBuf definition.
630                ///
631                /// The values are not transformed in any way and thus are considered stable
632                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
633                pub fn as_str_name(&self) -> &'static str {
634                    match self {
635                        Self::Paragraph => "Paragraph",
636                        Self::Header1 => "Header1",
637                        Self::Header2 => "Header2",
638                        Self::Header3 => "Header3",
639                        Self::Header4 => "Header4",
640                        Self::Quote => "Quote",
641                        Self::Code => "Code",
642                        Self::Title => "Title",
643                        Self::Checkbox => "Checkbox",
644                        Self::Marked => "Marked",
645                        Self::Numbered => "Numbered",
646                        Self::Toggle => "Toggle",
647                        Self::Description => "Description",
648                        Self::Callout => "Callout",
649                        Self::ToggleHeader1 => "ToggleHeader1",
650                        Self::ToggleHeader2 => "ToggleHeader2",
651                        Self::ToggleHeader3 => "ToggleHeader3",
652                    }
653                }
654                /// Creates an enum from field names used in the ProtoBuf definition.
655                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
656                    match value {
657                        "Paragraph" => Some(Self::Paragraph),
658                        "Header1" => Some(Self::Header1),
659                        "Header2" => Some(Self::Header2),
660                        "Header3" => Some(Self::Header3),
661                        "Header4" => Some(Self::Header4),
662                        "Quote" => Some(Self::Quote),
663                        "Code" => Some(Self::Code),
664                        "Title" => Some(Self::Title),
665                        "Checkbox" => Some(Self::Checkbox),
666                        "Marked" => Some(Self::Marked),
667                        "Numbered" => Some(Self::Numbered),
668                        "Toggle" => Some(Self::Toggle),
669                        "Description" => Some(Self::Description),
670                        "Callout" => Some(Self::Callout),
671                        "ToggleHeader1" => Some(Self::ToggleHeader1),
672                        "ToggleHeader2" => Some(Self::ToggleHeader2),
673                        "ToggleHeader3" => Some(Self::ToggleHeader3),
674                        _ => None,
675                    }
676                }
677            }
678        }
679        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
680        pub struct File {
681            #[prost(string, tag = "1")]
682            pub hash: ::prost::alloc::string::String,
683            #[prost(string, tag = "2")]
684            pub name: ::prost::alloc::string::String,
685            #[prost(enumeration = "file::Type", tag = "3")]
686            pub r#type: i32,
687            #[prost(string, tag = "4")]
688            pub mime: ::prost::alloc::string::String,
689            #[prost(int64, tag = "5")]
690            pub size: i64,
691            #[prost(int64, tag = "6")]
692            pub added_at: i64,
693            #[prost(string, tag = "9")]
694            pub target_object_id: ::prost::alloc::string::String,
695            #[prost(enumeration = "file::State", tag = "7")]
696            pub state: i32,
697            #[prost(enumeration = "file::Style", tag = "8")]
698            pub style: i32,
699        }
700        /// Nested message and enum types in `File`.
701        pub mod file {
702            #[derive(
703                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
704            )]
705            #[repr(i32)]
706            pub enum Type {
707                None = 0,
708                File = 1,
709                Image = 2,
710                Video = 3,
711                Audio = 4,
712                Pdf = 5,
713            }
714            impl Type {
715                /// String value of the enum field names used in the ProtoBuf definition.
716                ///
717                /// The values are not transformed in any way and thus are considered stable
718                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
719                pub fn as_str_name(&self) -> &'static str {
720                    match self {
721                        Self::None => "None",
722                        Self::File => "File",
723                        Self::Image => "Image",
724                        Self::Video => "Video",
725                        Self::Audio => "Audio",
726                        Self::Pdf => "PDF",
727                    }
728                }
729                /// Creates an enum from field names used in the ProtoBuf definition.
730                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
731                    match value {
732                        "None" => Some(Self::None),
733                        "File" => Some(Self::File),
734                        "Image" => Some(Self::Image),
735                        "Video" => Some(Self::Video),
736                        "Audio" => Some(Self::Audio),
737                        "PDF" => Some(Self::Pdf),
738                        _ => None,
739                    }
740                }
741            }
742            #[derive(
743                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
744            )]
745            #[repr(i32)]
746            pub enum Style {
747                /// all types expect File and None has Embed style by default
748                Auto = 0,
749                Link = 1,
750                Embed = 2,
751            }
752            impl Style {
753                /// String value of the enum field names used in the ProtoBuf definition.
754                ///
755                /// The values are not transformed in any way and thus are considered stable
756                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
757                pub fn as_str_name(&self) -> &'static str {
758                    match self {
759                        Self::Auto => "Auto",
760                        Self::Link => "Link",
761                        Self::Embed => "Embed",
762                    }
763                }
764                /// Creates an enum from field names used in the ProtoBuf definition.
765                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
766                    match value {
767                        "Auto" => Some(Self::Auto),
768                        "Link" => Some(Self::Link),
769                        "Embed" => Some(Self::Embed),
770                        _ => None,
771                    }
772                }
773            }
774            #[derive(
775                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
776            )]
777            #[repr(i32)]
778            pub enum State {
779                /// There is no file and preview, it's an empty block, that waits files.
780                Empty = 0,
781                /// There is still no file/preview, but file already uploading
782                Uploading = 1,
783                /// File and preview downloaded
784                Done = 2,
785                /// Error while uploading
786                Error = 3,
787            }
788            impl State {
789                /// String value of the enum field names used in the ProtoBuf definition.
790                ///
791                /// The values are not transformed in any way and thus are considered stable
792                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
793                pub fn as_str_name(&self) -> &'static str {
794                    match self {
795                        Self::Empty => "Empty",
796                        Self::Uploading => "Uploading",
797                        Self::Done => "Done",
798                        Self::Error => "Error",
799                    }
800                }
801                /// Creates an enum from field names used in the ProtoBuf definition.
802                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
803                    match value {
804                        "Empty" => Some(Self::Empty),
805                        "Uploading" => Some(Self::Uploading),
806                        "Done" => Some(Self::Done),
807                        "Error" => Some(Self::Error),
808                        _ => None,
809                    }
810                }
811            }
812        }
813        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
814        pub struct Smartblock {}
815        #[derive(Clone, PartialEq, ::prost::Message)]
816        pub struct Dataview {
817            /// can be set for detached(without TargetObjectId) inline sets
818            #[prost(string, repeated, tag = "1")]
819            pub source: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
820            #[prost(message, repeated, tag = "2")]
821            pub views: ::prost::alloc::vec::Vec<dataview::View>,
822            /// do not generate changes for this field
823            #[prost(string, tag = "3")]
824            pub active_view: ::prost::alloc::string::String,
825            /// deprecated
826            #[prost(message, repeated, tag = "4")]
827            pub relations: ::prost::alloc::vec::Vec<super::super::Relation>,
828            #[prost(message, repeated, tag = "12")]
829            pub group_orders: ::prost::alloc::vec::Vec<dataview::GroupOrder>,
830            #[prost(message, repeated, tag = "13")]
831            pub object_orders: ::prost::alloc::vec::Vec<dataview::ObjectOrder>,
832            #[prost(message, repeated, tag = "5")]
833            pub relation_links: ::prost::alloc::vec::Vec<super::super::RelationLink>,
834            /// empty for original set/collection objects and for detached inline sets
835            #[prost(string, tag = "6")]
836            pub target_object_id: ::prost::alloc::string::String,
837            #[prost(bool, tag = "14")]
838            pub is_collection: bool,
839        }
840        /// Nested message and enum types in `Dataview`.
841        pub mod dataview {
842            #[derive(Clone, PartialEq, ::prost::Message)]
843            pub struct View {
844                #[prost(string, tag = "1")]
845                pub id: ::prost::alloc::string::String,
846                #[prost(enumeration = "view::Type", tag = "2")]
847                pub r#type: i32,
848                #[prost(string, tag = "3")]
849                pub name: ::prost::alloc::string::String,
850                #[prost(message, repeated, tag = "4")]
851                pub sorts: ::prost::alloc::vec::Vec<Sort>,
852                #[prost(message, repeated, tag = "5")]
853                pub filters: ::prost::alloc::vec::Vec<Filter>,
854                /// relations fields/columns options, also used to provide the order
855                #[prost(message, repeated, tag = "6")]
856                pub relations: ::prost::alloc::vec::Vec<Relation>,
857                /// Relation used for cover in gallery
858                #[prost(string, tag = "7")]
859                pub cover_relation_key: ::prost::alloc::string::String,
860                /// Hide icon near name
861                #[prost(bool, tag = "8")]
862                pub hide_icon: bool,
863                /// Gallery card size
864                #[prost(enumeration = "view::Size", tag = "9")]
865                pub card_size: i32,
866                /// Image fits container
867                #[prost(bool, tag = "10")]
868                pub cover_fit: bool,
869                /// Group view by this relationKey
870                #[prost(string, tag = "11")]
871                pub group_relation_key: ::prost::alloc::string::String,
872                /// Enable backgrounds in groups
873                #[prost(bool, tag = "12")]
874                pub group_background_colors: bool,
875                /// Limit of objects shown in widget
876                #[prost(int32, tag = "13")]
877                pub page_limit: i32,
878                /// Default template that is chosen for new object created within the view
879                #[prost(string, tag = "14")]
880                pub default_template_id: ::prost::alloc::string::String,
881                /// Default object type that is chosen for new object created within the view
882                #[prost(string, tag = "15")]
883                pub default_object_type_id: ::prost::alloc::string::String,
884                /// Group view by this relationKey
885                #[prost(string, tag = "16")]
886                pub end_relation_key: ::prost::alloc::string::String,
887                /// Wrap content in view
888                #[prost(bool, tag = "17")]
889                pub wrap_content: bool,
890                /// List view size setting
891                #[prost(enumeration = "view::ListSize", tag = "18")]
892                pub list_size: i32,
893                /// Alternate row background colors in grid view
894                #[prost(bool, tag = "19")]
895                pub alternate_rows: bool,
896            }
897            /// Nested message and enum types in `View`.
898            pub mod view {
899                #[derive(
900                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
901                )]
902                #[repr(i32)]
903                pub enum Type {
904                    Table = 0,
905                    List = 1,
906                    Gallery = 2,
907                    Kanban = 3,
908                    Calendar = 4,
909                    Graph = 5,
910                }
911                impl Type {
912                    /// String value of the enum field names used in the ProtoBuf definition.
913                    ///
914                    /// The values are not transformed in any way and thus are considered stable
915                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
916                    pub fn as_str_name(&self) -> &'static str {
917                        match self {
918                            Self::Table => "Table",
919                            Self::List => "List",
920                            Self::Gallery => "Gallery",
921                            Self::Kanban => "Kanban",
922                            Self::Calendar => "Calendar",
923                            Self::Graph => "Graph",
924                        }
925                    }
926                    /// Creates an enum from field names used in the ProtoBuf definition.
927                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
928                        match value {
929                            "Table" => Some(Self::Table),
930                            "List" => Some(Self::List),
931                            "Gallery" => Some(Self::Gallery),
932                            "Kanban" => Some(Self::Kanban),
933                            "Calendar" => Some(Self::Calendar),
934                            "Graph" => Some(Self::Graph),
935                            _ => None,
936                        }
937                    }
938                }
939                #[derive(
940                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
941                )]
942                #[repr(i32)]
943                pub enum Size {
944                    Small = 0,
945                    Medium = 1,
946                    Large = 2,
947                }
948                impl Size {
949                    /// String value of the enum field names used in the ProtoBuf definition.
950                    ///
951                    /// The values are not transformed in any way and thus are considered stable
952                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
953                    pub fn as_str_name(&self) -> &'static str {
954                        match self {
955                            Self::Small => "Small",
956                            Self::Medium => "Medium",
957                            Self::Large => "Large",
958                        }
959                    }
960                    /// Creates an enum from field names used in the ProtoBuf definition.
961                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
962                        match value {
963                            "Small" => Some(Self::Small),
964                            "Medium" => Some(Self::Medium),
965                            "Large" => Some(Self::Large),
966                            _ => None,
967                        }
968                    }
969                }
970                #[derive(
971                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
972                )]
973                #[repr(i32)]
974                pub enum ListSize {
975                    /// Single-line display (default)
976                    Compact = 0,
977                    /// Two-line display with description
978                    Regular = 1,
979                }
980                impl ListSize {
981                    /// String value of the enum field names used in the ProtoBuf definition.
982                    ///
983                    /// The values are not transformed in any way and thus are considered stable
984                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
985                    pub fn as_str_name(&self) -> &'static str {
986                        match self {
987                            Self::Compact => "Compact",
988                            Self::Regular => "Regular",
989                        }
990                    }
991                    /// Creates an enum from field names used in the ProtoBuf definition.
992                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
993                        match value {
994                            "Compact" => Some(Self::Compact),
995                            "Regular" => Some(Self::Regular),
996                            _ => None,
997                        }
998                    }
999                }
1000            }
1001            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1002            pub struct Relation {
1003                #[prost(string, tag = "1")]
1004                pub key: ::prost::alloc::string::String,
1005                #[prost(bool, tag = "2")]
1006                pub is_visible: bool,
1007                /// the displayed column % calculated based on other visible relations
1008                #[prost(int32, tag = "3")]
1009                pub width: i32,
1010                /// bool isReadOnly = 4; // deprecated
1011                ///
1012                /// deprecated
1013                #[prost(bool, tag = "5")]
1014                pub date_include_time: bool,
1015                /// deprecated
1016                #[prost(enumeration = "relation::TimeFormat", tag = "6")]
1017                pub time_format: i32,
1018                /// deprecated
1019                #[prost(enumeration = "relation::DateFormat", tag = "7")]
1020                pub date_format: i32,
1021                #[prost(enumeration = "relation::FormulaType", tag = "8")]
1022                pub formula: i32,
1023                #[prost(enumeration = "super::super::Align", tag = "9")]
1024                pub align: i32,
1025            }
1026            /// Nested message and enum types in `Relation`.
1027            pub mod relation {
1028                #[derive(
1029                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1030                )]
1031                #[repr(i32)]
1032                pub enum DateFormat {
1033                    /// Jul 30, 2020
1034                    MonthAbbrBeforeDay = 0,
1035                    /// 30 Jul 2020
1036                    MonthAbbrAfterDay = 1,
1037                    /// 30/07/2020
1038                    Short = 2,
1039                    /// 07/30/2020
1040                    ShortUs = 3,
1041                    /// 2020-07-30
1042                    Iso = 4,
1043                }
1044                impl DateFormat {
1045                    /// String value of the enum field names used in the ProtoBuf definition.
1046                    ///
1047                    /// The values are not transformed in any way and thus are considered stable
1048                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1049                    pub fn as_str_name(&self) -> &'static str {
1050                        match self {
1051                            Self::MonthAbbrBeforeDay => "MonthAbbrBeforeDay",
1052                            Self::MonthAbbrAfterDay => "MonthAbbrAfterDay",
1053                            Self::Short => "Short",
1054                            Self::ShortUs => "ShortUS",
1055                            Self::Iso => "ISO",
1056                        }
1057                    }
1058                    /// Creates an enum from field names used in the ProtoBuf definition.
1059                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1060                        match value {
1061                            "MonthAbbrBeforeDay" => Some(Self::MonthAbbrBeforeDay),
1062                            "MonthAbbrAfterDay" => Some(Self::MonthAbbrAfterDay),
1063                            "Short" => Some(Self::Short),
1064                            "ShortUS" => Some(Self::ShortUs),
1065                            "ISO" => Some(Self::Iso),
1066                            _ => None,
1067                        }
1068                    }
1069                }
1070                #[derive(
1071                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1072                )]
1073                #[repr(i32)]
1074                pub enum TimeFormat {
1075                    Format12 = 0,
1076                    Format24 = 1,
1077                }
1078                impl TimeFormat {
1079                    /// String value of the enum field names used in the ProtoBuf definition.
1080                    ///
1081                    /// The values are not transformed in any way and thus are considered stable
1082                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1083                    pub fn as_str_name(&self) -> &'static str {
1084                        match self {
1085                            Self::Format12 => "Format12",
1086                            Self::Format24 => "Format24",
1087                        }
1088                    }
1089                    /// Creates an enum from field names used in the ProtoBuf definition.
1090                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1091                        match value {
1092                            "Format12" => Some(Self::Format12),
1093                            "Format24" => Some(Self::Format24),
1094                            _ => None,
1095                        }
1096                    }
1097                }
1098                #[derive(
1099                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1100                )]
1101                #[repr(i32)]
1102                pub enum FormulaType {
1103                    None = 0,
1104                    Count = 1,
1105                    CountValue = 2,
1106                    CountDistinct = 3,
1107                    CountEmpty = 4,
1108                    CountNotEmpty = 5,
1109                    PercentEmpty = 6,
1110                    PercentNotEmpty = 7,
1111                    MathSum = 8,
1112                    MathAverage = 9,
1113                    MathMedian = 10,
1114                    MathMin = 11,
1115                    MathMax = 12,
1116                    Range = 13,
1117                }
1118                impl FormulaType {
1119                    /// String value of the enum field names used in the ProtoBuf definition.
1120                    ///
1121                    /// The values are not transformed in any way and thus are considered stable
1122                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1123                    pub fn as_str_name(&self) -> &'static str {
1124                        match self {
1125                            Self::None => "None",
1126                            Self::Count => "Count",
1127                            Self::CountValue => "CountValue",
1128                            Self::CountDistinct => "CountDistinct",
1129                            Self::CountEmpty => "CountEmpty",
1130                            Self::CountNotEmpty => "CountNotEmpty",
1131                            Self::PercentEmpty => "PercentEmpty",
1132                            Self::PercentNotEmpty => "PercentNotEmpty",
1133                            Self::MathSum => "MathSum",
1134                            Self::MathAverage => "MathAverage",
1135                            Self::MathMedian => "MathMedian",
1136                            Self::MathMin => "MathMin",
1137                            Self::MathMax => "MathMax",
1138                            Self::Range => "Range",
1139                        }
1140                    }
1141                    /// Creates an enum from field names used in the ProtoBuf definition.
1142                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1143                        match value {
1144                            "None" => Some(Self::None),
1145                            "Count" => Some(Self::Count),
1146                            "CountValue" => Some(Self::CountValue),
1147                            "CountDistinct" => Some(Self::CountDistinct),
1148                            "CountEmpty" => Some(Self::CountEmpty),
1149                            "CountNotEmpty" => Some(Self::CountNotEmpty),
1150                            "PercentEmpty" => Some(Self::PercentEmpty),
1151                            "PercentNotEmpty" => Some(Self::PercentNotEmpty),
1152                            "MathSum" => Some(Self::MathSum),
1153                            "MathAverage" => Some(Self::MathAverage),
1154                            "MathMedian" => Some(Self::MathMedian),
1155                            "MathMin" => Some(Self::MathMin),
1156                            "MathMax" => Some(Self::MathMax),
1157                            "Range" => Some(Self::Range),
1158                            _ => None,
1159                        }
1160                    }
1161                }
1162            }
1163            #[derive(Clone, PartialEq, ::prost::Message)]
1164            pub struct Sort {
1165                #[prost(string, tag = "1")]
1166                pub relation_key: ::prost::alloc::string::String,
1167                #[prost(enumeration = "sort::Type", tag = "2")]
1168                pub r#type: i32,
1169                #[prost(message, repeated, tag = "3")]
1170                pub custom_order: ::prost::alloc::vec::Vec<::prost_types::Value>,
1171                #[prost(enumeration = "super::super::super::RelationFormat", tag = "4")]
1172                pub format: i32,
1173                #[prost(bool, tag = "5")]
1174                pub include_time: bool,
1175                #[prost(string, tag = "6")]
1176                pub id: ::prost::alloc::string::String,
1177                #[prost(enumeration = "sort::EmptyType", tag = "7")]
1178                pub empty_placement: i32,
1179                #[prost(bool, tag = "8")]
1180                pub no_collate: bool,
1181            }
1182            /// Nested message and enum types in `Sort`.
1183            pub mod sort {
1184                #[derive(
1185                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1186                )]
1187                #[repr(i32)]
1188                pub enum Type {
1189                    Asc = 0,
1190                    Desc = 1,
1191                    Custom = 2,
1192                }
1193                impl Type {
1194                    /// String value of the enum field names used in the ProtoBuf definition.
1195                    ///
1196                    /// The values are not transformed in any way and thus are considered stable
1197                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1198                    pub fn as_str_name(&self) -> &'static str {
1199                        match self {
1200                            Self::Asc => "Asc",
1201                            Self::Desc => "Desc",
1202                            Self::Custom => "Custom",
1203                        }
1204                    }
1205                    /// Creates an enum from field names used in the ProtoBuf definition.
1206                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1207                        match value {
1208                            "Asc" => Some(Self::Asc),
1209                            "Desc" => Some(Self::Desc),
1210                            "Custom" => Some(Self::Custom),
1211                            _ => None,
1212                        }
1213                    }
1214                }
1215                #[derive(
1216                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1217                )]
1218                #[repr(i32)]
1219                pub enum EmptyType {
1220                    NotSpecified = 0,
1221                    Start = 1,
1222                    End = 2,
1223                }
1224                impl EmptyType {
1225                    /// String value of the enum field names used in the ProtoBuf definition.
1226                    ///
1227                    /// The values are not transformed in any way and thus are considered stable
1228                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1229                    pub fn as_str_name(&self) -> &'static str {
1230                        match self {
1231                            Self::NotSpecified => "NotSpecified",
1232                            Self::Start => "Start",
1233                            Self::End => "End",
1234                        }
1235                    }
1236                    /// Creates an enum from field names used in the ProtoBuf definition.
1237                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1238                        match value {
1239                            "NotSpecified" => Some(Self::NotSpecified),
1240                            "Start" => Some(Self::Start),
1241                            "End" => Some(Self::End),
1242                            _ => None,
1243                        }
1244                    }
1245                }
1246            }
1247            #[derive(Clone, PartialEq, ::prost::Message)]
1248            pub struct Filter {
1249                #[prost(string, tag = "9")]
1250                pub id: ::prost::alloc::string::String,
1251                /// looks not applicable?
1252                #[prost(enumeration = "filter::Operator", tag = "1")]
1253                pub operator: i32,
1254                #[prost(string, tag = "2")]
1255                pub relation_key: ::prost::alloc::string::String,
1256                #[prost(string, tag = "5")]
1257                pub relation_property: ::prost::alloc::string::String,
1258                #[prost(enumeration = "filter::Condition", tag = "3")]
1259                pub condition: i32,
1260                #[prost(message, optional, tag = "4")]
1261                pub value: ::core::option::Option<::prost_types::Value>,
1262                #[prost(enumeration = "filter::QuickOption", tag = "6")]
1263                pub quick_option: i32,
1264                #[prost(enumeration = "super::super::super::RelationFormat", tag = "7")]
1265                pub format: i32,
1266                #[prost(bool, tag = "8")]
1267                pub include_time: bool,
1268                #[prost(message, repeated, tag = "10")]
1269                pub nested_filters: ::prost::alloc::vec::Vec<Filter>,
1270            }
1271            /// Nested message and enum types in `Filter`.
1272            pub mod filter {
1273                #[derive(
1274                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1275                )]
1276                #[repr(i32)]
1277                pub enum Operator {
1278                    No = 0,
1279                    Or = 1,
1280                    And = 2,
1281                }
1282                impl Operator {
1283                    /// String value of the enum field names used in the ProtoBuf definition.
1284                    ///
1285                    /// The values are not transformed in any way and thus are considered stable
1286                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1287                    pub fn as_str_name(&self) -> &'static str {
1288                        match self {
1289                            Self::No => "No",
1290                            Self::Or => "Or",
1291                            Self::And => "And",
1292                        }
1293                    }
1294                    /// Creates an enum from field names used in the ProtoBuf definition.
1295                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1296                        match value {
1297                            "No" => Some(Self::No),
1298                            "Or" => Some(Self::Or),
1299                            "And" => Some(Self::And),
1300                            _ => None,
1301                        }
1302                    }
1303                }
1304                #[derive(
1305                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1306                )]
1307                #[repr(i32)]
1308                pub enum Condition {
1309                    None = 0,
1310                    Equal = 1,
1311                    NotEqual = 2,
1312                    Greater = 3,
1313                    Less = 4,
1314                    GreaterOrEqual = 5,
1315                    LessOrEqual = 6,
1316                    Like = 7,
1317                    NotLike = 8,
1318                    /// "at least one value(from the provided list) is IN"
1319                    In = 9,
1320                    /// "none of provided values are IN"
1321                    NotIn = 10,
1322                    Empty = 11,
1323                    NotEmpty = 12,
1324                    AllIn = 13,
1325                    NotAllIn = 14,
1326                    ExactIn = 15,
1327                    NotExactIn = 16,
1328                    Exists = 17,
1329                }
1330                impl Condition {
1331                    /// String value of the enum field names used in the ProtoBuf definition.
1332                    ///
1333                    /// The values are not transformed in any way and thus are considered stable
1334                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1335                    pub fn as_str_name(&self) -> &'static str {
1336                        match self {
1337                            Self::None => "None",
1338                            Self::Equal => "Equal",
1339                            Self::NotEqual => "NotEqual",
1340                            Self::Greater => "Greater",
1341                            Self::Less => "Less",
1342                            Self::GreaterOrEqual => "GreaterOrEqual",
1343                            Self::LessOrEqual => "LessOrEqual",
1344                            Self::Like => "Like",
1345                            Self::NotLike => "NotLike",
1346                            Self::In => "In",
1347                            Self::NotIn => "NotIn",
1348                            Self::Empty => "Empty",
1349                            Self::NotEmpty => "NotEmpty",
1350                            Self::AllIn => "AllIn",
1351                            Self::NotAllIn => "NotAllIn",
1352                            Self::ExactIn => "ExactIn",
1353                            Self::NotExactIn => "NotExactIn",
1354                            Self::Exists => "Exists",
1355                        }
1356                    }
1357                    /// Creates an enum from field names used in the ProtoBuf definition.
1358                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1359                        match value {
1360                            "None" => Some(Self::None),
1361                            "Equal" => Some(Self::Equal),
1362                            "NotEqual" => Some(Self::NotEqual),
1363                            "Greater" => Some(Self::Greater),
1364                            "Less" => Some(Self::Less),
1365                            "GreaterOrEqual" => Some(Self::GreaterOrEqual),
1366                            "LessOrEqual" => Some(Self::LessOrEqual),
1367                            "Like" => Some(Self::Like),
1368                            "NotLike" => Some(Self::NotLike),
1369                            "In" => Some(Self::In),
1370                            "NotIn" => Some(Self::NotIn),
1371                            "Empty" => Some(Self::Empty),
1372                            "NotEmpty" => Some(Self::NotEmpty),
1373                            "AllIn" => Some(Self::AllIn),
1374                            "NotAllIn" => Some(Self::NotAllIn),
1375                            "ExactIn" => Some(Self::ExactIn),
1376                            "NotExactIn" => Some(Self::NotExactIn),
1377                            "Exists" => Some(Self::Exists),
1378                            _ => None,
1379                        }
1380                    }
1381                }
1382                #[derive(
1383                    Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1384                )]
1385                #[repr(i32)]
1386                pub enum QuickOption {
1387                    ExactDate = 0,
1388                    Yesterday = 1,
1389                    Today = 2,
1390                    Tomorrow = 3,
1391                    LastWeek = 4,
1392                    CurrentWeek = 5,
1393                    NextWeek = 6,
1394                    LastMonth = 7,
1395                    CurrentMonth = 8,
1396                    NextMonth = 9,
1397                    NumberOfDaysAgo = 10,
1398                    NumberOfDaysNow = 11,
1399                    LastYear = 12,
1400                    CurrentYear = 13,
1401                    NextYear = 14,
1402                }
1403                impl QuickOption {
1404                    /// String value of the enum field names used in the ProtoBuf definition.
1405                    ///
1406                    /// The values are not transformed in any way and thus are considered stable
1407                    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1408                    pub fn as_str_name(&self) -> &'static str {
1409                        match self {
1410                            Self::ExactDate => "ExactDate",
1411                            Self::Yesterday => "Yesterday",
1412                            Self::Today => "Today",
1413                            Self::Tomorrow => "Tomorrow",
1414                            Self::LastWeek => "LastWeek",
1415                            Self::CurrentWeek => "CurrentWeek",
1416                            Self::NextWeek => "NextWeek",
1417                            Self::LastMonth => "LastMonth",
1418                            Self::CurrentMonth => "CurrentMonth",
1419                            Self::NextMonth => "NextMonth",
1420                            Self::NumberOfDaysAgo => "NumberOfDaysAgo",
1421                            Self::NumberOfDaysNow => "NumberOfDaysNow",
1422                            Self::LastYear => "LastYear",
1423                            Self::CurrentYear => "CurrentYear",
1424                            Self::NextYear => "NextYear",
1425                        }
1426                    }
1427                    /// Creates an enum from field names used in the ProtoBuf definition.
1428                    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1429                        match value {
1430                            "ExactDate" => Some(Self::ExactDate),
1431                            "Yesterday" => Some(Self::Yesterday),
1432                            "Today" => Some(Self::Today),
1433                            "Tomorrow" => Some(Self::Tomorrow),
1434                            "LastWeek" => Some(Self::LastWeek),
1435                            "CurrentWeek" => Some(Self::CurrentWeek),
1436                            "NextWeek" => Some(Self::NextWeek),
1437                            "LastMonth" => Some(Self::LastMonth),
1438                            "CurrentMonth" => Some(Self::CurrentMonth),
1439                            "NextMonth" => Some(Self::NextMonth),
1440                            "NumberOfDaysAgo" => Some(Self::NumberOfDaysAgo),
1441                            "NumberOfDaysNow" => Some(Self::NumberOfDaysNow),
1442                            "LastYear" => Some(Self::LastYear),
1443                            "CurrentYear" => Some(Self::CurrentYear),
1444                            "NextYear" => Some(Self::NextYear),
1445                            _ => None,
1446                        }
1447                    }
1448                }
1449            }
1450            #[derive(Clone, PartialEq, ::prost::Message)]
1451            pub struct GroupOrder {
1452                #[prost(string, tag = "1")]
1453                pub view_id: ::prost::alloc::string::String,
1454                #[prost(message, repeated, tag = "2")]
1455                pub view_groups: ::prost::alloc::vec::Vec<ViewGroup>,
1456            }
1457            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1458            pub struct ViewGroup {
1459                #[prost(string, tag = "1")]
1460                pub group_id: ::prost::alloc::string::String,
1461                #[prost(int32, tag = "2")]
1462                pub index: i32,
1463                #[prost(bool, tag = "3")]
1464                pub hidden: bool,
1465                #[prost(string, tag = "4")]
1466                pub background_color: ::prost::alloc::string::String,
1467            }
1468            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1469            pub struct ObjectOrder {
1470                #[prost(string, tag = "1")]
1471                pub view_id: ::prost::alloc::string::String,
1472                #[prost(string, tag = "2")]
1473                pub group_id: ::prost::alloc::string::String,
1474                #[prost(string, repeated, tag = "3")]
1475                pub object_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1476            }
1477            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1478            pub struct Group {
1479                #[prost(string, tag = "1")]
1480                pub id: ::prost::alloc::string::String,
1481                #[prost(oneof = "group::Value", tags = "2, 3, 4, 5")]
1482                pub value: ::core::option::Option<group::Value>,
1483            }
1484            /// Nested message and enum types in `Group`.
1485            pub mod group {
1486                #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1487                pub enum Value {
1488                    #[prost(message, tag = "2")]
1489                    Status(super::Status),
1490                    #[prost(message, tag = "3")]
1491                    Tag(super::Tag),
1492                    #[prost(message, tag = "4")]
1493                    Checkbox(super::Checkbox),
1494                    #[prost(message, tag = "5")]
1495                    Date(super::Date),
1496                }
1497            }
1498            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1499            pub struct Status {
1500                #[prost(string, tag = "1")]
1501                pub id: ::prost::alloc::string::String,
1502            }
1503            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1504            pub struct Tag {
1505                #[prost(string, repeated, tag = "1")]
1506                pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1507            }
1508            #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1509            pub struct Checkbox {
1510                #[prost(bool, tag = "1")]
1511                pub checked: bool,
1512            }
1513            #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1514            pub struct Date {}
1515        }
1516        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1517        pub struct Relation {
1518            #[prost(string, tag = "1")]
1519            pub key: ::prost::alloc::string::String,
1520        }
1521        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1522        pub struct Latex {
1523            #[prost(string, tag = "1")]
1524            pub text: ::prost::alloc::string::String,
1525            #[prost(enumeration = "latex::Processor", tag = "2")]
1526            pub processor: i32,
1527        }
1528        /// Nested message and enum types in `Latex`.
1529        pub mod latex {
1530            #[derive(
1531                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1532            )]
1533            #[repr(i32)]
1534            pub enum Processor {
1535                Latex = 0,
1536                Mermaid = 1,
1537                Chart = 2,
1538                Youtube = 3,
1539                Vimeo = 4,
1540                Soundcloud = 5,
1541                GoogleMaps = 6,
1542                Miro = 7,
1543                Figma = 8,
1544                Twitter = 9,
1545                OpenStreetMap = 10,
1546                Reddit = 11,
1547                Facebook = 12,
1548                Instagram = 13,
1549                Telegram = 14,
1550                GithubGist = 15,
1551                Codepen = 16,
1552                Bilibili = 17,
1553                Excalidraw = 18,
1554                Kroki = 19,
1555                Graphviz = 20,
1556                Sketchfab = 21,
1557                Image = 22,
1558                Drawio = 23,
1559                Spotify = 24,
1560            }
1561            impl Processor {
1562                /// String value of the enum field names used in the ProtoBuf definition.
1563                ///
1564                /// The values are not transformed in any way and thus are considered stable
1565                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1566                pub fn as_str_name(&self) -> &'static str {
1567                    match self {
1568                        Self::Latex => "Latex",
1569                        Self::Mermaid => "Mermaid",
1570                        Self::Chart => "Chart",
1571                        Self::Youtube => "Youtube",
1572                        Self::Vimeo => "Vimeo",
1573                        Self::Soundcloud => "Soundcloud",
1574                        Self::GoogleMaps => "GoogleMaps",
1575                        Self::Miro => "Miro",
1576                        Self::Figma => "Figma",
1577                        Self::Twitter => "Twitter",
1578                        Self::OpenStreetMap => "OpenStreetMap",
1579                        Self::Reddit => "Reddit",
1580                        Self::Facebook => "Facebook",
1581                        Self::Instagram => "Instagram",
1582                        Self::Telegram => "Telegram",
1583                        Self::GithubGist => "GithubGist",
1584                        Self::Codepen => "Codepen",
1585                        Self::Bilibili => "Bilibili",
1586                        Self::Excalidraw => "Excalidraw",
1587                        Self::Kroki => "Kroki",
1588                        Self::Graphviz => "Graphviz",
1589                        Self::Sketchfab => "Sketchfab",
1590                        Self::Image => "Image",
1591                        Self::Drawio => "Drawio",
1592                        Self::Spotify => "Spotify",
1593                    }
1594                }
1595                /// Creates an enum from field names used in the ProtoBuf definition.
1596                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1597                    match value {
1598                        "Latex" => Some(Self::Latex),
1599                        "Mermaid" => Some(Self::Mermaid),
1600                        "Chart" => Some(Self::Chart),
1601                        "Youtube" => Some(Self::Youtube),
1602                        "Vimeo" => Some(Self::Vimeo),
1603                        "Soundcloud" => Some(Self::Soundcloud),
1604                        "GoogleMaps" => Some(Self::GoogleMaps),
1605                        "Miro" => Some(Self::Miro),
1606                        "Figma" => Some(Self::Figma),
1607                        "Twitter" => Some(Self::Twitter),
1608                        "OpenStreetMap" => Some(Self::OpenStreetMap),
1609                        "Reddit" => Some(Self::Reddit),
1610                        "Facebook" => Some(Self::Facebook),
1611                        "Instagram" => Some(Self::Instagram),
1612                        "Telegram" => Some(Self::Telegram),
1613                        "GithubGist" => Some(Self::GithubGist),
1614                        "Codepen" => Some(Self::Codepen),
1615                        "Bilibili" => Some(Self::Bilibili),
1616                        "Excalidraw" => Some(Self::Excalidraw),
1617                        "Kroki" => Some(Self::Kroki),
1618                        "Graphviz" => Some(Self::Graphviz),
1619                        "Sketchfab" => Some(Self::Sketchfab),
1620                        "Image" => Some(Self::Image),
1621                        "Drawio" => Some(Self::Drawio),
1622                        "Spotify" => Some(Self::Spotify),
1623                        _ => None,
1624                    }
1625                }
1626            }
1627        }
1628        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1629        pub struct TableOfContents {}
1630        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1631        pub struct Table {}
1632        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1633        pub struct TableColumn {}
1634        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1635        pub struct TableRow {
1636            #[prost(bool, tag = "1")]
1637            pub is_header: bool,
1638        }
1639        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1640        pub struct Widget {
1641            #[prost(enumeration = "widget::Layout", tag = "1")]
1642            pub layout: i32,
1643            #[prost(int32, tag = "2")]
1644            pub limit: i32,
1645            #[prost(string, tag = "3")]
1646            pub view_id: ::prost::alloc::string::String,
1647            #[prost(bool, tag = "4")]
1648            pub auto_added: bool,
1649        }
1650        /// Nested message and enum types in `Widget`.
1651        pub mod widget {
1652            #[derive(
1653                Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1654            )]
1655            #[repr(i32)]
1656            pub enum Layout {
1657                Link = 0,
1658                Tree = 1,
1659                List = 2,
1660                CompactList = 3,
1661                View = 4,
1662            }
1663            impl Layout {
1664                /// String value of the enum field names used in the ProtoBuf definition.
1665                ///
1666                /// The values are not transformed in any way and thus are considered stable
1667                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1668                pub fn as_str_name(&self) -> &'static str {
1669                    match self {
1670                        Self::Link => "Link",
1671                        Self::Tree => "Tree",
1672                        Self::List => "List",
1673                        Self::CompactList => "CompactList",
1674                        Self::View => "View",
1675                    }
1676                }
1677                /// Creates an enum from field names used in the ProtoBuf definition.
1678                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1679                    match value {
1680                        "Link" => Some(Self::Link),
1681                        "Tree" => Some(Self::Tree),
1682                        "List" => Some(Self::List),
1683                        "CompactList" => Some(Self::CompactList),
1684                        "View" => Some(Self::View),
1685                        _ => None,
1686                    }
1687                }
1688            }
1689        }
1690        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1691        pub struct Chat {}
1692    }
1693    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1694    #[repr(i32)]
1695    pub enum Position {
1696        None = 0,
1697        /// above target block
1698        Top = 1,
1699        /// under target block
1700        Bottom = 2,
1701        /// to left of target block
1702        Left = 3,
1703        /// to right of target block
1704        Right = 4,
1705        /// inside target block, as last block
1706        Inner = 5,
1707        /// replace target block
1708        Replace = 6,
1709        /// inside target block, as first block
1710        InnerFirst = 7,
1711    }
1712    impl Position {
1713        /// String value of the enum field names used in the ProtoBuf definition.
1714        ///
1715        /// The values are not transformed in any way and thus are considered stable
1716        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1717        pub fn as_str_name(&self) -> &'static str {
1718            match self {
1719                Self::None => "None",
1720                Self::Top => "Top",
1721                Self::Bottom => "Bottom",
1722                Self::Left => "Left",
1723                Self::Right => "Right",
1724                Self::Inner => "Inner",
1725                Self::Replace => "Replace",
1726                Self::InnerFirst => "InnerFirst",
1727            }
1728        }
1729        /// Creates an enum from field names used in the ProtoBuf definition.
1730        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1731            match value {
1732                "None" => Some(Self::None),
1733                "Top" => Some(Self::Top),
1734                "Bottom" => Some(Self::Bottom),
1735                "Left" => Some(Self::Left),
1736                "Right" => Some(Self::Right),
1737                "Inner" => Some(Self::Inner),
1738                "Replace" => Some(Self::Replace),
1739                "InnerFirst" => Some(Self::InnerFirst),
1740                _ => None,
1741            }
1742        }
1743    }
1744    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1745    #[repr(i32)]
1746    pub enum Align {
1747        Left = 0,
1748        Center = 1,
1749        Right = 2,
1750        Justify = 3,
1751    }
1752    impl Align {
1753        /// String value of the enum field names used in the ProtoBuf definition.
1754        ///
1755        /// The values are not transformed in any way and thus are considered stable
1756        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1757        pub fn as_str_name(&self) -> &'static str {
1758            match self {
1759                Self::Left => "AlignLeft",
1760                Self::Center => "AlignCenter",
1761                Self::Right => "AlignRight",
1762                Self::Justify => "AlignJustify",
1763            }
1764        }
1765        /// Creates an enum from field names used in the ProtoBuf definition.
1766        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1767            match value {
1768                "AlignLeft" => Some(Self::Left),
1769                "AlignCenter" => Some(Self::Center),
1770                "AlignRight" => Some(Self::Right),
1771                "AlignJustify" => Some(Self::Justify),
1772                _ => None,
1773            }
1774        }
1775    }
1776    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1777    #[repr(i32)]
1778    pub enum VerticalAlign {
1779        Top = 0,
1780        Middle = 1,
1781        Bottom = 2,
1782    }
1783    impl VerticalAlign {
1784        /// String value of the enum field names used in the ProtoBuf definition.
1785        ///
1786        /// The values are not transformed in any way and thus are considered stable
1787        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1788        pub fn as_str_name(&self) -> &'static str {
1789            match self {
1790                Self::Top => "VerticalAlignTop",
1791                Self::Middle => "VerticalAlignMiddle",
1792                Self::Bottom => "VerticalAlignBottom",
1793            }
1794        }
1795        /// Creates an enum from field names used in the ProtoBuf definition.
1796        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1797            match value {
1798                "VerticalAlignTop" => Some(Self::Top),
1799                "VerticalAlignMiddle" => Some(Self::Middle),
1800                "VerticalAlignBottom" => Some(Self::Bottom),
1801                _ => None,
1802            }
1803        }
1804    }
1805    #[derive(Clone, PartialEq, ::prost::Oneof)]
1806    pub enum ContentValue {
1807        #[prost(message, tag = "11")]
1808        Smartblock(content::Smartblock),
1809        #[prost(message, tag = "14")]
1810        Text(content::Text),
1811        #[prost(message, tag = "15")]
1812        File(content::File),
1813        #[prost(message, tag = "16")]
1814        Layout(content::Layout),
1815        #[prost(message, tag = "17")]
1816        Div(content::Div),
1817        #[prost(message, tag = "18")]
1818        Bookmark(content::Bookmark),
1819        #[prost(message, tag = "19")]
1820        Icon(content::Icon),
1821        #[prost(message, tag = "20")]
1822        Link(content::Link),
1823        #[prost(message, tag = "21")]
1824        Dataview(content::Dataview),
1825        #[prost(message, tag = "22")]
1826        Relation(content::Relation),
1827        #[prost(message, tag = "23")]
1828        FeaturedRelations(content::FeaturedRelations),
1829        #[prost(message, tag = "24")]
1830        Latex(content::Latex),
1831        #[prost(message, tag = "25")]
1832        TableOfContents(content::TableOfContents),
1833        #[prost(message, tag = "26")]
1834        Table(content::Table),
1835        #[prost(message, tag = "27")]
1836        TableColumn(content::TableColumn),
1837        #[prost(message, tag = "28")]
1838        TableRow(content::TableRow),
1839        #[prost(message, tag = "29")]
1840        Widget(content::Widget),
1841        #[prost(message, tag = "30")]
1842        Chat(content::Chat),
1843    }
1844}
1845/// Used to decode block meta only, without the content itself
1846#[derive(Clone, PartialEq, ::prost::Message)]
1847pub struct BlockMetaOnly {
1848    #[prost(string, tag = "1")]
1849    pub id: ::prost::alloc::string::String,
1850    #[prost(message, optional, tag = "2")]
1851    pub fields: ::core::option::Option<::prost_types::Struct>,
1852}
1853/// General purpose structure, uses in Mark.
1854#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1855pub struct Range {
1856    #[prost(int32, tag = "1")]
1857    pub from: i32,
1858    #[prost(int32, tag = "2")]
1859    pub to: i32,
1860}
1861/// *
1862///
1863/// Contains basic information about a user account
1864#[derive(Clone, PartialEq, ::prost::Message)]
1865pub struct Account {
1866    /// User's thread id
1867    #[prost(string, tag = "1")]
1868    pub id: ::prost::alloc::string::String,
1869    #[prost(message, optional, tag = "4")]
1870    pub config: ::core::option::Option<account::Config>,
1871    #[prost(message, optional, tag = "5")]
1872    pub status: ::core::option::Option<account::Status>,
1873    #[prost(message, optional, tag = "6")]
1874    pub info: ::core::option::Option<account::Info>,
1875}
1876/// Nested message and enum types in `Account`.
1877pub mod account {
1878    #[derive(Clone, PartialEq, ::prost::Message)]
1879    pub struct Config {
1880        #[prost(bool, tag = "1")]
1881        pub enable_dataview: bool,
1882        #[prost(bool, tag = "2")]
1883        pub enable_debug: bool,
1884        #[prost(bool, tag = "3")]
1885        pub enable_prerelease_channel: bool,
1886        #[prost(bool, tag = "4")]
1887        pub enable_spaces: bool,
1888        #[prost(message, optional, tag = "100")]
1889        pub extra: ::core::option::Option<::prost_types::Struct>,
1890    }
1891    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1892    pub struct Status {
1893        #[prost(enumeration = "StatusType", tag = "1")]
1894        pub status_type: i32,
1895        #[prost(int64, tag = "2")]
1896        pub deletion_date: i64,
1897    }
1898    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1899    pub struct Info {
1900        /// home dashboard block id
1901        #[prost(string, tag = "2")]
1902        pub home_object_id: ::prost::alloc::string::String,
1903        /// archive block id
1904        #[prost(string, tag = "3")]
1905        pub archive_object_id: ::prost::alloc::string::String,
1906        /// profile block id
1907        #[prost(string, tag = "4")]
1908        pub profile_object_id: ::prost::alloc::string::String,
1909        /// marketplace workspace id
1910        #[prost(string, tag = "11")]
1911        pub marketplace_workspace_id: ::prost::alloc::string::String,
1912        /// workspace object id. used for space-level chat
1913        #[prost(string, tag = "15")]
1914        pub workspace_object_id: ::prost::alloc::string::String,
1915        /// space-level chat if exists
1916        #[prost(string, tag = "16")]
1917        pub space_chat_id: ::prost::alloc::string::String,
1918        #[prost(string, tag = "8")]
1919        pub device_id: ::prost::alloc::string::String,
1920        /// the first created private space. It's filled only when account is created
1921        #[prost(string, tag = "9")]
1922        pub account_space_id: ::prost::alloc::string::String,
1923        #[prost(string, tag = "10")]
1924        pub widgets_id: ::prost::alloc::string::String,
1925        #[prost(string, tag = "13")]
1926        pub space_view_id: ::prost::alloc::string::String,
1927        #[prost(string, tag = "14")]
1928        pub tech_space_id: ::prost::alloc::string::String,
1929        /// gateway url for fetching static files
1930        #[prost(string, tag = "101")]
1931        pub gateway_url: ::prost::alloc::string::String,
1932        /// path to local storage
1933        #[prost(string, tag = "103")]
1934        pub local_storage_path: ::prost::alloc::string::String,
1935        /// time zone from config
1936        #[prost(string, tag = "104")]
1937        pub time_zone: ::prost::alloc::string::String,
1938        #[prost(string, tag = "105")]
1939        pub analytics_id: ::prost::alloc::string::String,
1940        /// network id to which anytype is connected
1941        #[prost(string, tag = "106")]
1942        pub network_id: ::prost::alloc::string::String,
1943        /// we have Any PK AND Ethereum PK derived from one seed phrase
1944        #[prost(string, tag = "107")]
1945        pub ethereum_address: ::prost::alloc::string::String,
1946        /// symmetric key for encrypting profile metadata
1947        #[prost(string, tag = "108")]
1948        pub meta_data_key: ::prost::alloc::string::String,
1949    }
1950    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1951    pub struct Auth {}
1952    /// Nested message and enum types in `Auth`.
1953    pub mod auth {
1954        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1955        pub struct AppInfo {
1956            #[prost(string, tag = "1")]
1957            pub app_hash: ::prost::alloc::string::String,
1958            /// either from process or specified manually when creating
1959            #[prost(string, tag = "2")]
1960            pub app_name: ::prost::alloc::string::String,
1961            #[prost(string, tag = "4")]
1962            pub app_key: ::prost::alloc::string::String,
1963            #[prost(int64, tag = "5")]
1964            pub created_at: i64,
1965            #[prost(int64, tag = "6")]
1966            pub expire_at: i64,
1967            #[prost(enumeration = "LocalApiScope", tag = "7")]
1968            pub scope: i32,
1969            #[prost(bool, tag = "8")]
1970            pub is_active: bool,
1971        }
1972        #[derive(
1973            Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
1974        )]
1975        #[repr(i32)]
1976        pub enum LocalApiScope {
1977            /// Used in WebClipper; AccountSelect(to be deprecated), ObjectSearch, ObjectShow, ObjectCreate, ObjectCreateFromURL, BlockPreview, BlockPaste, BroadcastPayloadEvent
1978            Limited = 0,
1979            /// JSON API only, no direct grpc api calls allowed
1980            JsonApi = 1,
1981            /// Full access, not available via LocalLink
1982            Full = 2,
1983        }
1984        impl LocalApiScope {
1985            /// String value of the enum field names used in the ProtoBuf definition.
1986            ///
1987            /// The values are not transformed in any way and thus are considered stable
1988            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1989            pub fn as_str_name(&self) -> &'static str {
1990                match self {
1991                    Self::Limited => "Limited",
1992                    Self::JsonApi => "JsonAPI",
1993                    Self::Full => "Full",
1994                }
1995            }
1996            /// Creates an enum from field names used in the ProtoBuf definition.
1997            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1998                match value {
1999                    "Limited" => Some(Self::Limited),
2000                    "JsonAPI" => Some(Self::JsonApi),
2001                    "Full" => Some(Self::Full),
2002                    _ => None,
2003                }
2004            }
2005        }
2006    }
2007    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2008    #[repr(i32)]
2009    pub enum StatusType {
2010        Active = 0,
2011        PendingDeletion = 1,
2012        StartedDeletion = 2,
2013        Deleted = 3,
2014    }
2015    impl StatusType {
2016        /// String value of the enum field names used in the ProtoBuf definition.
2017        ///
2018        /// The values are not transformed in any way and thus are considered stable
2019        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2020        pub fn as_str_name(&self) -> &'static str {
2021            match self {
2022                Self::Active => "Active",
2023                Self::PendingDeletion => "PendingDeletion",
2024                Self::StartedDeletion => "StartedDeletion",
2025                Self::Deleted => "Deleted",
2026            }
2027        }
2028        /// Creates an enum from field names used in the ProtoBuf definition.
2029        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2030            match value {
2031                "Active" => Some(Self::Active),
2032                "PendingDeletion" => Some(Self::PendingDeletion),
2033                "StartedDeletion" => Some(Self::StartedDeletion),
2034                "Deleted" => Some(Self::Deleted),
2035                _ => None,
2036            }
2037        }
2038    }
2039}
2040#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2041pub struct LinkPreview {
2042    #[prost(string, tag = "1")]
2043    pub url: ::prost::alloc::string::String,
2044    #[prost(string, tag = "2")]
2045    pub title: ::prost::alloc::string::String,
2046    #[prost(string, tag = "3")]
2047    pub description: ::prost::alloc::string::String,
2048    #[prost(string, tag = "4")]
2049    pub image_url: ::prost::alloc::string::String,
2050    #[prost(string, tag = "5")]
2051    pub favicon_url: ::prost::alloc::string::String,
2052    #[prost(enumeration = "link_preview::Type", tag = "6")]
2053    pub r#type: i32,
2054}
2055/// Nested message and enum types in `LinkPreview`.
2056pub mod link_preview {
2057    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2058    #[repr(i32)]
2059    pub enum Type {
2060        Unknown = 0,
2061        Page = 1,
2062        Image = 2,
2063        Text = 3,
2064    }
2065    impl Type {
2066        /// String value of the enum field names used in the ProtoBuf definition.
2067        ///
2068        /// The values are not transformed in any way and thus are considered stable
2069        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2070        pub fn as_str_name(&self) -> &'static str {
2071            match self {
2072                Self::Unknown => "Unknown",
2073                Self::Page => "Page",
2074                Self::Image => "Image",
2075                Self::Text => "Text",
2076            }
2077        }
2078        /// Creates an enum from field names used in the ProtoBuf definition.
2079        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2080            match value {
2081                "Unknown" => Some(Self::Unknown),
2082                "Page" => Some(Self::Page),
2083                "Image" => Some(Self::Image),
2084                "Text" => Some(Self::Text),
2085                _ => None,
2086            }
2087        }
2088    }
2089}
2090#[derive(Clone, PartialEq, ::prost::Message)]
2091pub struct Restrictions {
2092    #[prost(enumeration = "restrictions::ObjectRestriction", repeated, tag = "1")]
2093    pub object: ::prost::alloc::vec::Vec<i32>,
2094    #[prost(message, repeated, tag = "2")]
2095    pub dataview: ::prost::alloc::vec::Vec<restrictions::DataviewRestrictions>,
2096}
2097/// Nested message and enum types in `Restrictions`.
2098pub mod restrictions {
2099    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2100    pub struct DataviewRestrictions {
2101        #[prost(string, tag = "1")]
2102        pub block_id: ::prost::alloc::string::String,
2103        #[prost(enumeration = "DataviewRestriction", repeated, tag = "2")]
2104        pub restrictions: ::prost::alloc::vec::Vec<i32>,
2105    }
2106    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2107    #[repr(i32)]
2108    pub enum ObjectRestriction {
2109        None = 0,
2110        /// restricts delete
2111        Delete = 1,
2112        /// restricts work with relations
2113        Relations = 2,
2114        /// restricts work with blocks
2115        Blocks = 3,
2116        /// restricts work with details
2117        Details = 4,
2118        /// restricts type changing
2119        TypeChange = 5,
2120        /// restricts layout changing
2121        LayoutChange = 6,
2122        /// restricts template creation from this object
2123        Template = 7,
2124        /// restricts duplicate object
2125        Duplicate = 8,
2126        /// can be set only for types. Restricts creating objects of this type
2127        CreateObjectOfThisType = 9,
2128        /// object is not allowed to publish
2129        Publish = 10,
2130    }
2131    impl ObjectRestriction {
2132        /// String value of the enum field names used in the ProtoBuf definition.
2133        ///
2134        /// The values are not transformed in any way and thus are considered stable
2135        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2136        pub fn as_str_name(&self) -> &'static str {
2137            match self {
2138                Self::None => "None",
2139                Self::Delete => "Delete",
2140                Self::Relations => "Relations",
2141                Self::Blocks => "Blocks",
2142                Self::Details => "Details",
2143                Self::TypeChange => "TypeChange",
2144                Self::LayoutChange => "LayoutChange",
2145                Self::Template => "Template",
2146                Self::Duplicate => "Duplicate",
2147                Self::CreateObjectOfThisType => "CreateObjectOfThisType",
2148                Self::Publish => "Publish",
2149            }
2150        }
2151        /// Creates an enum from field names used in the ProtoBuf definition.
2152        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2153            match value {
2154                "None" => Some(Self::None),
2155                "Delete" => Some(Self::Delete),
2156                "Relations" => Some(Self::Relations),
2157                "Blocks" => Some(Self::Blocks),
2158                "Details" => Some(Self::Details),
2159                "TypeChange" => Some(Self::TypeChange),
2160                "LayoutChange" => Some(Self::LayoutChange),
2161                "Template" => Some(Self::Template),
2162                "Duplicate" => Some(Self::Duplicate),
2163                "CreateObjectOfThisType" => Some(Self::CreateObjectOfThisType),
2164                "Publish" => Some(Self::Publish),
2165                _ => None,
2166            }
2167        }
2168    }
2169    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2170    #[repr(i32)]
2171    pub enum DataviewRestriction {
2172        DvNone = 0,
2173        DvRelation = 1,
2174        DvCreateObject = 2,
2175        DvViews = 3,
2176    }
2177    impl DataviewRestriction {
2178        /// String value of the enum field names used in the ProtoBuf definition.
2179        ///
2180        /// The values are not transformed in any way and thus are considered stable
2181        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2182        pub fn as_str_name(&self) -> &'static str {
2183            match self {
2184                Self::DvNone => "DVNone",
2185                Self::DvRelation => "DVRelation",
2186                Self::DvCreateObject => "DVCreateObject",
2187                Self::DvViews => "DVViews",
2188            }
2189        }
2190        /// Creates an enum from field names used in the ProtoBuf definition.
2191        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2192            match value {
2193                "DVNone" => Some(Self::DvNone),
2194                "DVRelation" => Some(Self::DvRelation),
2195                "DVCreateObject" => Some(Self::DvCreateObject),
2196                "DVViews" => Some(Self::DvViews),
2197                _ => None,
2198            }
2199        }
2200    }
2201}
2202#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2203pub struct Object {}
2204/// Nested message and enum types in `Object`.
2205pub mod object {
2206    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2207    pub struct ChangePayload {
2208        #[prost(enumeration = "super::SmartBlockType", tag = "1")]
2209        pub smart_block_type: i32,
2210        #[prost(string, tag = "2")]
2211        pub key: ::prost::alloc::string::String,
2212        #[prost(bytes = "vec", tag = "3")]
2213        pub data: ::prost::alloc::vec::Vec<u8>,
2214    }
2215}
2216#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2217pub struct SpaceObjectHeader {
2218    #[prost(string, tag = "1")]
2219    pub space_id: ::prost::alloc::string::String,
2220}
2221#[derive(Clone, PartialEq, ::prost::Message)]
2222pub struct ObjectType {
2223    /// leave empty in case you want to create the new one
2224    #[prost(string, tag = "1")]
2225    pub url: ::prost::alloc::string::String,
2226    /// name of objectType in singular form (can be localized for bundled types)
2227    #[prost(string, tag = "2")]
2228    pub name: ::prost::alloc::string::String,
2229    /// cannot contain more than one Relation with the same RelationType
2230    #[prost(message, repeated, tag = "3")]
2231    pub relation_links: ::prost::alloc::vec::Vec<RelationLink>,
2232    #[prost(enumeration = "object_type::Layout", tag = "4")]
2233    pub layout: i32,
2234    /// emoji symbol
2235    #[prost(string, tag = "5")]
2236    pub icon_emoji: ::prost::alloc::string::String,
2237    #[prost(string, tag = "6")]
2238    pub description: ::prost::alloc::string::String,
2239    #[prost(bool, tag = "7")]
2240    pub hidden: bool,
2241    #[prost(bool, tag = "10")]
2242    pub readonly: bool,
2243    #[prost(enumeration = "SmartBlockType", repeated, tag = "8")]
2244    pub types: ::prost::alloc::vec::Vec<i32>,
2245    /// sets locally to hide object type from set and some other places
2246    #[prost(bool, tag = "9")]
2247    pub is_archived: bool,
2248    #[prost(bool, tag = "11")]
2249    pub installed_by_default: bool,
2250    /// name of objectType (can be localized for bundled types)
2251    #[prost(string, tag = "12")]
2252    pub key: ::prost::alloc::string::String,
2253    /// revision of system objectType. Used to check if we should change type content or not
2254    #[prost(int64, tag = "13")]
2255    pub revision: i64,
2256    /// restricts creating objects of this type for users
2257    #[prost(bool, tag = "14")]
2258    pub restrict_object_creation: bool,
2259    /// color of object type icon
2260    #[prost(int64, tag = "15")]
2261    pub icon_color: i64,
2262    /// name of object type icon
2263    #[prost(string, tag = "16")]
2264    pub icon_name: ::prost::alloc::string::String,
2265    /// name of objectType in plural form (can be localized for bundled types)
2266    #[prost(string, tag = "17")]
2267    pub plural_name: ::prost::alloc::string::String,
2268}
2269/// Nested message and enum types in `ObjectType`.
2270pub mod object_type {
2271    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2272    #[repr(i32)]
2273    pub enum Layout {
2274        Basic = 0,
2275        Profile = 1,
2276        Todo = 2,
2277        Set = 3,
2278        ObjectType = 4,
2279        Relation = 5,
2280        File = 6,
2281        Dashboard = 7,
2282        Image = 8,
2283        Note = 9,
2284        Space = 10,
2285        Bookmark = 11,
2286        RelationOptionsList = 12,
2287        RelationOption = 13,
2288        Collection = 14,
2289        Audio = 15,
2290        Video = 16,
2291        Date = 17,
2292        SpaceView = 18,
2293        Participant = 19,
2294        Pdf = 20,
2295        /// deprecated
2296        ChatDeprecated = 21,
2297        ChatDerived = 22,
2298        Tag = 23,
2299        Notification = 24,
2300        MissingObject = 25,
2301        Devices = 26,
2302        Discussion = 27,
2303    }
2304    impl Layout {
2305        /// String value of the enum field names used in the ProtoBuf definition.
2306        ///
2307        /// The values are not transformed in any way and thus are considered stable
2308        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2309        pub fn as_str_name(&self) -> &'static str {
2310            match self {
2311                Self::Basic => "basic",
2312                Self::Profile => "profile",
2313                Self::Todo => "todo",
2314                Self::Set => "set",
2315                Self::ObjectType => "objectType",
2316                Self::Relation => "relation",
2317                Self::File => "file",
2318                Self::Dashboard => "dashboard",
2319                Self::Image => "image",
2320                Self::Note => "note",
2321                Self::Space => "space",
2322                Self::Bookmark => "bookmark",
2323                Self::RelationOptionsList => "relationOptionsList",
2324                Self::RelationOption => "relationOption",
2325                Self::Collection => "collection",
2326                Self::Audio => "audio",
2327                Self::Video => "video",
2328                Self::Date => "date",
2329                Self::SpaceView => "spaceView",
2330                Self::Participant => "participant",
2331                Self::Pdf => "pdf",
2332                Self::ChatDeprecated => "chatDeprecated",
2333                Self::ChatDerived => "chatDerived",
2334                Self::Tag => "tag",
2335                Self::Notification => "notification",
2336                Self::MissingObject => "missingObject",
2337                Self::Devices => "devices",
2338                Self::Discussion => "discussion",
2339            }
2340        }
2341        /// Creates an enum from field names used in the ProtoBuf definition.
2342        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2343            match value {
2344                "basic" => Some(Self::Basic),
2345                "profile" => Some(Self::Profile),
2346                "todo" => Some(Self::Todo),
2347                "set" => Some(Self::Set),
2348                "objectType" => Some(Self::ObjectType),
2349                "relation" => Some(Self::Relation),
2350                "file" => Some(Self::File),
2351                "dashboard" => Some(Self::Dashboard),
2352                "image" => Some(Self::Image),
2353                "note" => Some(Self::Note),
2354                "space" => Some(Self::Space),
2355                "bookmark" => Some(Self::Bookmark),
2356                "relationOptionsList" => Some(Self::RelationOptionsList),
2357                "relationOption" => Some(Self::RelationOption),
2358                "collection" => Some(Self::Collection),
2359                "audio" => Some(Self::Audio),
2360                "video" => Some(Self::Video),
2361                "date" => Some(Self::Date),
2362                "spaceView" => Some(Self::SpaceView),
2363                "participant" => Some(Self::Participant),
2364                "pdf" => Some(Self::Pdf),
2365                "chatDeprecated" => Some(Self::ChatDeprecated),
2366                "chatDerived" => Some(Self::ChatDerived),
2367                "tag" => Some(Self::Tag),
2368                "notification" => Some(Self::Notification),
2369                "missingObject" => Some(Self::MissingObject),
2370                "devices" => Some(Self::Devices),
2371                "discussion" => Some(Self::Discussion),
2372                _ => None,
2373            }
2374        }
2375    }
2376}
2377#[derive(Clone, PartialEq, ::prost::Message)]
2378pub struct Layout {
2379    #[prost(enumeration = "object_type::Layout", tag = "1")]
2380    pub id: i32,
2381    #[prost(string, tag = "2")]
2382    pub name: ::prost::alloc::string::String,
2383    /// relations required for this object type
2384    #[prost(message, repeated, tag = "3")]
2385    pub required_relations: ::prost::alloc::vec::Vec<Relation>,
2386}
2387#[derive(Clone, PartialEq, ::prost::Message)]
2388pub struct RelationWithValue {
2389    #[prost(message, optional, tag = "1")]
2390    pub relation: ::core::option::Option<Relation>,
2391    #[prost(message, optional, tag = "2")]
2392    pub value: ::core::option::Option<::prost_types::Value>,
2393}
2394/// Relation describe the human-interpreted relation type. It may be something like "Date of creation, format=date" or "Assignee, format=objectId, objectType=person"
2395#[derive(Clone, PartialEq, ::prost::Message)]
2396pub struct Relation {
2397    #[prost(string, tag = "100")]
2398    pub id: ::prost::alloc::string::String,
2399    /// Key under which the value is stored in the map. Must be unique for the object type.
2400    /// It usually auto-generated bsonid, but also may be something human-readable in case of prebuilt types.
2401    #[prost(string, tag = "1")]
2402    pub key: ::prost::alloc::string::String,
2403    /// format of the underlying data
2404    #[prost(enumeration = "RelationFormat", tag = "2")]
2405    pub format: i32,
2406    /// name to show (can be localized for bundled types)
2407    #[prost(string, tag = "3")]
2408    pub name: ::prost::alloc::string::String,
2409    #[prost(message, optional, tag = "4")]
2410    pub default_value: ::core::option::Option<::prost_types::Value>,
2411    /// where the data is stored
2412    #[prost(enumeration = "relation::DataSource", tag = "5")]
2413    pub data_source: i32,
2414    /// internal, not displayed to user (e.g. coverX, coverY)
2415    #[prost(bool, tag = "6")]
2416    pub hidden: bool,
2417    /// value not editable by user tobe renamed to readonlyValue
2418    #[prost(bool, tag = "7")]
2419    pub read_only: bool,
2420    /// relation metadata, eg name and format is not editable by user
2421    #[prost(bool, tag = "15")]
2422    pub read_only_relation: bool,
2423    /// allow multiple values (stored in pb list)
2424    #[prost(bool, tag = "8")]
2425    pub multi: bool,
2426    /// URL of object type, empty to allow link to any object
2427    #[prost(string, repeated, tag = "9")]
2428    pub object_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2429    /// index 10, 11 was used in internal-only builds. Can be reused, but may break some test accounts
2430    ///
2431    /// default dictionary with unique values to choose for select/multiSelect format
2432    #[prost(message, repeated, tag = "12")]
2433    pub select_dict: ::prost::alloc::vec::Vec<relation::Option>,
2434    /// max number of values can be set for this relation. 0 means no limit. 1 means the value can be stored in non-repeated field
2435    #[prost(int32, tag = "13")]
2436    pub max_count: i32,
2437    #[prost(string, tag = "14")]
2438    pub description: ::prost::alloc::string::String,
2439    /// on-store fields, injected only locally
2440    ///
2441    /// deprecated, to be removed
2442    #[prost(enumeration = "relation::Scope", tag = "20")]
2443    pub scope: i32,
2444    /// creator profile id
2445    #[prost(string, tag = "21")]
2446    pub creator: ::prost::alloc::string::String,
2447    /// revision of system relation. Used to check if we should change relation content or not
2448    #[prost(int64, tag = "22")]
2449    pub revision: i64,
2450    /// indicates whether value of relation with date format should be processed with seconds precision
2451    #[prost(bool, tag = "23")]
2452    pub include_time: bool,
2453}
2454/// Nested message and enum types in `Relation`.
2455pub mod relation {
2456    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2457    pub struct Option {
2458        /// id generated automatically if omitted
2459        #[prost(string, tag = "1")]
2460        pub id: ::prost::alloc::string::String,
2461        #[prost(string, tag = "2")]
2462        pub text: ::prost::alloc::string::String,
2463        /// stored
2464        #[prost(string, tag = "3")]
2465        pub color: ::prost::alloc::string::String,
2466        /// 4 is reserved for old relation format
2467        ///
2468        /// stored
2469        #[prost(string, tag = "5")]
2470        pub relation_key: ::prost::alloc::string::String,
2471        /// lexicographic id of relation option for ordering
2472        #[prost(string, tag = "6")]
2473        pub order_id: ::prost::alloc::string::String,
2474    }
2475    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2476    #[repr(i32)]
2477    pub enum Scope {
2478        /// stored within the object
2479        Object = 0,
2480        /// stored within the object type
2481        Type = 1,
2482        /// aggregated from the dataview of sets of the same object type
2483        SetOfTheSameType = 2,
2484        /// aggregated from the dataview of sets of the same object type
2485        ObjectsOfTheSameType = 3,
2486        /// aggregated from relations library
2487        Library = 4,
2488    }
2489    impl Scope {
2490        /// String value of the enum field names used in the ProtoBuf definition.
2491        ///
2492        /// The values are not transformed in any way and thus are considered stable
2493        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2494        pub fn as_str_name(&self) -> &'static str {
2495            match self {
2496                Self::Object => "object",
2497                Self::Type => "type",
2498                Self::SetOfTheSameType => "setOfTheSameType",
2499                Self::ObjectsOfTheSameType => "objectsOfTheSameType",
2500                Self::Library => "library",
2501            }
2502        }
2503        /// Creates an enum from field names used in the ProtoBuf definition.
2504        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2505            match value {
2506                "object" => Some(Self::Object),
2507                "type" => Some(Self::Type),
2508                "setOfTheSameType" => Some(Self::SetOfTheSameType),
2509                "objectsOfTheSameType" => Some(Self::ObjectsOfTheSameType),
2510                "library" => Some(Self::Library),
2511                _ => None,
2512            }
2513        }
2514    }
2515    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2516    #[repr(i32)]
2517    pub enum DataSource {
2518        /// default, stored inside the object's details
2519        Details = 0,
2520        /// stored locally, e.g. in badger or generated on the fly
2521        Derived = 1,
2522        /// stored in the account DB. means existing only for specific anytype account
2523        Account = 2,
2524        /// stored locally
2525        Local = 3,
2526    }
2527    impl DataSource {
2528        /// String value of the enum field names used in the ProtoBuf definition.
2529        ///
2530        /// The values are not transformed in any way and thus are considered stable
2531        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2532        pub fn as_str_name(&self) -> &'static str {
2533            match self {
2534                Self::Details => "details",
2535                Self::Derived => "derived",
2536                Self::Account => "account",
2537                Self::Local => "local",
2538            }
2539        }
2540        /// Creates an enum from field names used in the ProtoBuf definition.
2541        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2542            match value {
2543                "details" => Some(Self::Details),
2544                "derived" => Some(Self::Derived),
2545                "account" => Some(Self::Account),
2546                "local" => Some(Self::Local),
2547                _ => None,
2548            }
2549        }
2550    }
2551}
2552#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2553pub struct RelationLink {
2554    #[prost(string, tag = "1")]
2555    pub key: ::prost::alloc::string::String,
2556    #[prost(enumeration = "RelationFormat", tag = "2")]
2557    pub format: i32,
2558}
2559#[derive(Clone, PartialEq, ::prost::Message)]
2560pub struct Relations {
2561    #[prost(message, repeated, tag = "1")]
2562    pub relations: ::prost::alloc::vec::Vec<Relation>,
2563}
2564#[derive(Clone, PartialEq, ::prost::Message)]
2565pub struct RelationOptions {
2566    #[prost(message, repeated, tag = "1")]
2567    pub options: ::prost::alloc::vec::Vec<relation::Option>,
2568}
2569#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2570pub struct InternalFlag {
2571    #[prost(enumeration = "internal_flag::Value", tag = "1")]
2572    pub value: i32,
2573}
2574/// Nested message and enum types in `InternalFlag`.
2575pub mod internal_flag {
2576    /// Use such a weird construction due to the issue with imported repeated enum type
2577    /// Look <https://github.com/golang/protobuf/issues/1135> for more information.
2578    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2579    #[repr(i32)]
2580    pub enum Value {
2581        EditorDeleteEmpty = 0,
2582        EditorSelectType = 1,
2583        EditorSelectTemplate = 2,
2584        CollectionDontIndexLinks = 3,
2585    }
2586    impl Value {
2587        /// String value of the enum field names used in the ProtoBuf definition.
2588        ///
2589        /// The values are not transformed in any way and thus are considered stable
2590        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2591        pub fn as_str_name(&self) -> &'static str {
2592            match self {
2593                Self::EditorDeleteEmpty => "editorDeleteEmpty",
2594                Self::EditorSelectType => "editorSelectType",
2595                Self::EditorSelectTemplate => "editorSelectTemplate",
2596                Self::CollectionDontIndexLinks => "collectionDontIndexLinks",
2597            }
2598        }
2599        /// Creates an enum from field names used in the ProtoBuf definition.
2600        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2601            match value {
2602                "editorDeleteEmpty" => Some(Self::EditorDeleteEmpty),
2603                "editorSelectType" => Some(Self::EditorSelectType),
2604                "editorSelectTemplate" => Some(Self::EditorSelectTemplate),
2605                "collectionDontIndexLinks" => Some(Self::CollectionDontIndexLinks),
2606                _ => None,
2607            }
2608        }
2609    }
2610}
2611/// Works with a smart blocks: Page, Dashboard
2612/// Dashboard opened, click on a page, Rpc.Block.open, Block.ShowFullscreen(PageBlock)
2613#[derive(Clone, PartialEq, ::prost::Message)]
2614pub struct ObjectView {
2615    /// Root block id
2616    #[prost(string, tag = "1")]
2617    pub root_id: ::prost::alloc::string::String,
2618    /// dependent simple blocks (descendants)
2619    #[prost(message, repeated, tag = "2")]
2620    pub blocks: ::prost::alloc::vec::Vec<Block>,
2621    /// details for the current and dependent objects
2622    #[prost(message, repeated, tag = "3")]
2623    pub details: ::prost::alloc::vec::Vec<object_view::DetailsSet>,
2624    #[prost(enumeration = "SmartBlockType", tag = "4")]
2625    pub r#type: i32,
2626    /// DEPRECATED, use relationLinks instead
2627    #[prost(message, repeated, tag = "7")]
2628    pub relations: ::prost::alloc::vec::Vec<Relation>,
2629    #[prost(message, repeated, tag = "10")]
2630    pub relation_links: ::prost::alloc::vec::Vec<RelationLink>,
2631    /// object restrictions
2632    #[prost(message, optional, tag = "8")]
2633    pub restrictions: ::core::option::Option<Restrictions>,
2634    #[prost(message, optional, tag = "9")]
2635    pub history: ::core::option::Option<object_view::HistorySize>,
2636    #[prost(message, repeated, tag = "11")]
2637    pub block_participants: ::prost::alloc::vec::Vec<object_view::BlockParticipant>,
2638}
2639/// Nested message and enum types in `ObjectView`.
2640pub mod object_view {
2641    #[derive(Clone, PartialEq, ::prost::Message)]
2642    pub struct DetailsSet {
2643        /// context objectId
2644        #[prost(string, tag = "1")]
2645        pub id: ::prost::alloc::string::String,
2646        /// can not be a partial state. Should replace client details state
2647        #[prost(message, optional, tag = "2")]
2648        pub details: ::core::option::Option<::prost_types::Struct>,
2649        #[prost(string, repeated, tag = "3")]
2650        pub sub_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2651    }
2652    #[derive(Clone, PartialEq, ::prost::Message)]
2653    pub struct RelationWithValuePerObject {
2654        #[prost(string, tag = "1")]
2655        pub object_id: ::prost::alloc::string::String,
2656        #[prost(message, repeated, tag = "2")]
2657        pub relations: ::prost::alloc::vec::Vec<super::RelationWithValue>,
2658    }
2659    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2660    pub struct HistorySize {
2661        #[prost(int32, tag = "1")]
2662        pub undo: i32,
2663        #[prost(int32, tag = "2")]
2664        pub redo: i32,
2665    }
2666    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2667    pub struct BlockParticipant {
2668        #[prost(string, tag = "1")]
2669        pub block_id: ::prost::alloc::string::String,
2670        #[prost(string, tag = "2")]
2671        pub participant_id: ::prost::alloc::string::String,
2672    }
2673}
2674#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2675pub struct ParticipantPermissionChange {
2676    #[prost(string, tag = "1")]
2677    pub identity: ::prost::alloc::string::String,
2678    #[prost(enumeration = "ParticipantPermissions", tag = "2")]
2679    pub perms: i32,
2680}
2681#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2682pub struct Metadata {
2683    #[prost(oneof = "metadata::PayloadValue", tags = "1")]
2684    pub payload_value: ::core::option::Option<metadata::PayloadValue>,
2685}
2686/// Nested message and enum types in `Metadata`.
2687pub mod metadata {
2688    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2689    pub struct Payload {}
2690    /// Nested message and enum types in `Payload`.
2691    pub mod payload {
2692        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2693        pub struct IdentityPayload {
2694            #[prost(bytes = "vec", tag = "1")]
2695            pub profile_sym_key: ::prost::alloc::vec::Vec<u8>,
2696        }
2697    }
2698    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2699    pub enum PayloadValue {
2700        #[prost(message, tag = "1")]
2701        Identity(payload::IdentityPayload),
2702    }
2703}
2704#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2705pub struct Notification {
2706    #[prost(string, tag = "1")]
2707    pub id: ::prost::alloc::string::String,
2708    #[prost(int64, tag = "2")]
2709    pub create_time: i64,
2710    #[prost(enumeration = "notification::Status", tag = "4")]
2711    pub status: i32,
2712    #[prost(bool, tag = "5")]
2713    pub is_local: bool,
2714    #[prost(string, tag = "7")]
2715    pub space: ::prost::alloc::string::String,
2716    #[prost(string, tag = "14")]
2717    pub acl_head_id: ::prost::alloc::string::String,
2718    #[prost(
2719        oneof = "notification::Payload",
2720        tags = "6, 8, 9, 10, 11, 13, 15, 16, 17, 18"
2721    )]
2722    pub payload: ::core::option::Option<notification::Payload>,
2723}
2724/// Nested message and enum types in `Notification`.
2725pub mod notification {
2726    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2727    pub struct Import {
2728        #[prost(string, tag = "1")]
2729        pub process_id: ::prost::alloc::string::String,
2730        #[prost(enumeration = "super::import::ErrorCode", tag = "2")]
2731        pub error_code: i32,
2732        #[prost(enumeration = "super::import::Type", tag = "3")]
2733        pub import_type: i32,
2734        #[prost(string, tag = "4")]
2735        pub space_id: ::prost::alloc::string::String,
2736        #[prost(string, tag = "5")]
2737        pub name: ::prost::alloc::string::String,
2738        #[prost(string, tag = "6")]
2739        pub space_name: ::prost::alloc::string::String,
2740    }
2741    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2742    pub struct Export {
2743        #[prost(enumeration = "export::Code", tag = "2")]
2744        pub error_code: i32,
2745        #[prost(enumeration = "super::export::Format", tag = "3")]
2746        pub export_type: i32,
2747    }
2748    /// Nested message and enum types in `Export`.
2749    pub mod export {
2750        #[derive(
2751            Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
2752        )]
2753        #[repr(i32)]
2754        pub enum Code {
2755            Null = 0,
2756            UnknownError = 1,
2757            BadInput = 2,
2758        }
2759        impl Code {
2760            /// String value of the enum field names used in the ProtoBuf definition.
2761            ///
2762            /// The values are not transformed in any way and thus are considered stable
2763            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2764            pub fn as_str_name(&self) -> &'static str {
2765                match self {
2766                    Self::Null => "NULL",
2767                    Self::UnknownError => "UNKNOWN_ERROR",
2768                    Self::BadInput => "BAD_INPUT",
2769                }
2770            }
2771            /// Creates an enum from field names used in the ProtoBuf definition.
2772            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2773                match value {
2774                    "NULL" => Some(Self::Null),
2775                    "UNKNOWN_ERROR" => Some(Self::UnknownError),
2776                    "BAD_INPUT" => Some(Self::BadInput),
2777                    _ => None,
2778                }
2779            }
2780        }
2781    }
2782    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2783    pub struct GalleryImport {
2784        #[prost(string, tag = "1")]
2785        pub process_id: ::prost::alloc::string::String,
2786        #[prost(enumeration = "super::import::ErrorCode", tag = "2")]
2787        pub error_code: i32,
2788        #[prost(string, tag = "3")]
2789        pub space_id: ::prost::alloc::string::String,
2790        #[prost(string, tag = "4")]
2791        pub name: ::prost::alloc::string::String,
2792        #[prost(string, tag = "5")]
2793        pub space_name: ::prost::alloc::string::String,
2794    }
2795    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2796    pub struct RequestToJoin {
2797        #[prost(string, tag = "1")]
2798        pub space_id: ::prost::alloc::string::String,
2799        #[prost(string, tag = "2")]
2800        pub identity: ::prost::alloc::string::String,
2801        #[prost(string, tag = "3")]
2802        pub identity_name: ::prost::alloc::string::String,
2803        #[prost(string, tag = "4")]
2804        pub identity_icon: ::prost::alloc::string::String,
2805        #[prost(string, tag = "5")]
2806        pub space_name: ::prost::alloc::string::String,
2807    }
2808    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2809    pub struct Test {}
2810    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2811    pub struct ParticipantRequestApproved {
2812        #[prost(string, tag = "1")]
2813        pub space_id: ::prost::alloc::string::String,
2814        #[prost(enumeration = "super::ParticipantPermissions", tag = "2")]
2815        pub permissions: i32,
2816        #[prost(string, tag = "5")]
2817        pub space_name: ::prost::alloc::string::String,
2818    }
2819    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2820    pub struct RequestToLeave {
2821        #[prost(string, tag = "1")]
2822        pub space_id: ::prost::alloc::string::String,
2823        #[prost(string, tag = "2")]
2824        pub identity: ::prost::alloc::string::String,
2825        #[prost(string, tag = "3")]
2826        pub identity_name: ::prost::alloc::string::String,
2827        #[prost(string, tag = "4")]
2828        pub identity_icon: ::prost::alloc::string::String,
2829        #[prost(string, tag = "5")]
2830        pub space_name: ::prost::alloc::string::String,
2831    }
2832    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2833    pub struct ParticipantRemove {
2834        #[prost(string, tag = "1")]
2835        pub identity: ::prost::alloc::string::String,
2836        #[prost(string, tag = "2")]
2837        pub identity_name: ::prost::alloc::string::String,
2838        #[prost(string, tag = "3")]
2839        pub identity_icon: ::prost::alloc::string::String,
2840        #[prost(string, tag = "4")]
2841        pub space_id: ::prost::alloc::string::String,
2842        #[prost(string, tag = "5")]
2843        pub space_name: ::prost::alloc::string::String,
2844    }
2845    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2846    pub struct ParticipantRequestDecline {
2847        #[prost(string, tag = "1")]
2848        pub space_id: ::prost::alloc::string::String,
2849        #[prost(string, tag = "3")]
2850        pub space_name: ::prost::alloc::string::String,
2851    }
2852    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2853    pub struct ParticipantPermissionsChange {
2854        #[prost(string, tag = "1")]
2855        pub space_id: ::prost::alloc::string::String,
2856        #[prost(enumeration = "super::ParticipantPermissions", tag = "2")]
2857        pub permissions: i32,
2858        #[prost(string, tag = "3")]
2859        pub space_name: ::prost::alloc::string::String,
2860    }
2861    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2862    #[repr(i32)]
2863    pub enum Status {
2864        Created = 0,
2865        Shown = 1,
2866        Read = 2,
2867        Replied = 3,
2868    }
2869    impl Status {
2870        /// String value of the enum field names used in the ProtoBuf definition.
2871        ///
2872        /// The values are not transformed in any way and thus are considered stable
2873        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2874        pub fn as_str_name(&self) -> &'static str {
2875            match self {
2876                Self::Created => "Created",
2877                Self::Shown => "Shown",
2878                Self::Read => "Read",
2879                Self::Replied => "Replied",
2880            }
2881        }
2882        /// Creates an enum from field names used in the ProtoBuf definition.
2883        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2884            match value {
2885                "Created" => Some(Self::Created),
2886                "Shown" => Some(Self::Shown),
2887                "Read" => Some(Self::Read),
2888                "Replied" => Some(Self::Replied),
2889                _ => None,
2890            }
2891        }
2892    }
2893    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2894    #[repr(i32)]
2895    pub enum ActionType {
2896        Close = 0,
2897    }
2898    impl ActionType {
2899        /// String value of the enum field names used in the ProtoBuf definition.
2900        ///
2901        /// The values are not transformed in any way and thus are considered stable
2902        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2903        pub fn as_str_name(&self) -> &'static str {
2904            match self {
2905                Self::Close => "CLOSE",
2906            }
2907        }
2908        /// Creates an enum from field names used in the ProtoBuf definition.
2909        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2910            match value {
2911                "CLOSE" => Some(Self::Close),
2912                _ => None,
2913            }
2914        }
2915    }
2916    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2917    pub enum Payload {
2918        #[prost(message, tag = "6")]
2919        Import(Import),
2920        #[prost(message, tag = "8")]
2921        Export(Export),
2922        #[prost(message, tag = "9")]
2923        GalleryImport(GalleryImport),
2924        #[prost(message, tag = "10")]
2925        RequestToJoin(RequestToJoin),
2926        #[prost(message, tag = "11")]
2927        Test(Test),
2928        #[prost(message, tag = "13")]
2929        ParticipantRequestApproved(ParticipantRequestApproved),
2930        #[prost(message, tag = "15")]
2931        RequestToLeave(RequestToLeave),
2932        #[prost(message, tag = "16")]
2933        ParticipantRemove(ParticipantRemove),
2934        #[prost(message, tag = "17")]
2935        ParticipantRequestDecline(ParticipantRequestDecline),
2936        #[prost(message, tag = "18")]
2937        ParticipantPermissionsChange(ParticipantPermissionsChange),
2938    }
2939}
2940#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2941pub struct Export {}
2942/// Nested message and enum types in `Export`.
2943pub mod export {
2944    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2945    #[repr(i32)]
2946    pub enum Format {
2947        Markdown = 0,
2948        Protobuf = 1,
2949        Json = 2,
2950        Dot = 3,
2951        Svg = 4,
2952        GraphJson = 5,
2953    }
2954    impl Format {
2955        /// String value of the enum field names used in the ProtoBuf definition.
2956        ///
2957        /// The values are not transformed in any way and thus are considered stable
2958        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2959        pub fn as_str_name(&self) -> &'static str {
2960            match self {
2961                Self::Markdown => "Markdown",
2962                Self::Protobuf => "Protobuf",
2963                Self::Json => "JSON",
2964                Self::Dot => "DOT",
2965                Self::Svg => "SVG",
2966                Self::GraphJson => "GRAPH_JSON",
2967            }
2968        }
2969        /// Creates an enum from field names used in the ProtoBuf definition.
2970        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2971            match value {
2972                "Markdown" => Some(Self::Markdown),
2973                "Protobuf" => Some(Self::Protobuf),
2974                "JSON" => Some(Self::Json),
2975                "DOT" => Some(Self::Dot),
2976                "SVG" => Some(Self::Svg),
2977                "GRAPH_JSON" => Some(Self::GraphJson),
2978                _ => None,
2979            }
2980        }
2981    }
2982}
2983#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2984pub struct Import {}
2985/// Nested message and enum types in `Import`.
2986pub mod import {
2987    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2988    #[repr(i32)]
2989    pub enum Type {
2990        Notion = 0,
2991        Markdown = 1,
2992        /// external developers use it
2993        External = 2,
2994        Pb = 3,
2995        Html = 4,
2996        Txt = 5,
2997        Csv = 6,
2998        /// Markdown with obsidian improvements
2999        Obsidian = 7,
3000    }
3001    impl Type {
3002        /// String value of the enum field names used in the ProtoBuf definition.
3003        ///
3004        /// The values are not transformed in any way and thus are considered stable
3005        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3006        pub fn as_str_name(&self) -> &'static str {
3007            match self {
3008                Self::Notion => "Notion",
3009                Self::Markdown => "Markdown",
3010                Self::External => "External",
3011                Self::Pb => "Pb",
3012                Self::Html => "Html",
3013                Self::Txt => "Txt",
3014                Self::Csv => "Csv",
3015                Self::Obsidian => "Obsidian",
3016            }
3017        }
3018        /// Creates an enum from field names used in the ProtoBuf definition.
3019        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3020            match value {
3021                "Notion" => Some(Self::Notion),
3022                "Markdown" => Some(Self::Markdown),
3023                "External" => Some(Self::External),
3024                "Pb" => Some(Self::Pb),
3025                "Html" => Some(Self::Html),
3026                "Txt" => Some(Self::Txt),
3027                "Csv" => Some(Self::Csv),
3028                "Obsidian" => Some(Self::Obsidian),
3029                _ => None,
3030            }
3031        }
3032    }
3033    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3034    #[repr(i32)]
3035    pub enum ErrorCode {
3036        Null = 0,
3037        UnknownError = 1,
3038        BadInput = 2,
3039        InternalError = 3,
3040        FileLoadError = 8,
3041        ImportIsCanceled = 6,
3042        NotionNoObjectsInIntegration = 5,
3043        NotionServerIsUnavailable = 12,
3044        NotionRateLimitExceeded = 13,
3045        FileImportNoObjectsInZipArchive = 14,
3046        FileImportNoObjectsInDirectory = 17,
3047        HtmlWrongHtmlStructure = 10,
3048        PbNotAnyblockFormat = 11,
3049        CsvLimitOfRowsOrRelationsExceeded = 7,
3050        InsufficientPermissions = 9,
3051    }
3052    impl ErrorCode {
3053        /// String value of the enum field names used in the ProtoBuf definition.
3054        ///
3055        /// The values are not transformed in any way and thus are considered stable
3056        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3057        pub fn as_str_name(&self) -> &'static str {
3058            match self {
3059                Self::Null => "NULL",
3060                Self::UnknownError => "UNKNOWN_ERROR",
3061                Self::BadInput => "BAD_INPUT",
3062                Self::InternalError => "INTERNAL_ERROR",
3063                Self::FileLoadError => "FILE_LOAD_ERROR",
3064                Self::ImportIsCanceled => "IMPORT_IS_CANCELED",
3065                Self::NotionNoObjectsInIntegration => "NOTION_NO_OBJECTS_IN_INTEGRATION",
3066                Self::NotionServerIsUnavailable => "NOTION_SERVER_IS_UNAVAILABLE",
3067                Self::NotionRateLimitExceeded => "NOTION_RATE_LIMIT_EXCEEDED",
3068                Self::FileImportNoObjectsInZipArchive => "FILE_IMPORT_NO_OBJECTS_IN_ZIP_ARCHIVE",
3069                Self::FileImportNoObjectsInDirectory => "FILE_IMPORT_NO_OBJECTS_IN_DIRECTORY",
3070                Self::HtmlWrongHtmlStructure => "HTML_WRONG_HTML_STRUCTURE",
3071                Self::PbNotAnyblockFormat => "PB_NOT_ANYBLOCK_FORMAT",
3072                Self::CsvLimitOfRowsOrRelationsExceeded => {
3073                    "CSV_LIMIT_OF_ROWS_OR_RELATIONS_EXCEEDED"
3074                }
3075                Self::InsufficientPermissions => "INSUFFICIENT_PERMISSIONS",
3076            }
3077        }
3078        /// Creates an enum from field names used in the ProtoBuf definition.
3079        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3080            match value {
3081                "NULL" => Some(Self::Null),
3082                "UNKNOWN_ERROR" => Some(Self::UnknownError),
3083                "BAD_INPUT" => Some(Self::BadInput),
3084                "INTERNAL_ERROR" => Some(Self::InternalError),
3085                "FILE_LOAD_ERROR" => Some(Self::FileLoadError),
3086                "IMPORT_IS_CANCELED" => Some(Self::ImportIsCanceled),
3087                "NOTION_NO_OBJECTS_IN_INTEGRATION" => Some(Self::NotionNoObjectsInIntegration),
3088                "NOTION_SERVER_IS_UNAVAILABLE" => Some(Self::NotionServerIsUnavailable),
3089                "NOTION_RATE_LIMIT_EXCEEDED" => Some(Self::NotionRateLimitExceeded),
3090                "FILE_IMPORT_NO_OBJECTS_IN_ZIP_ARCHIVE" => {
3091                    Some(Self::FileImportNoObjectsInZipArchive)
3092                }
3093                "FILE_IMPORT_NO_OBJECTS_IN_DIRECTORY" => Some(Self::FileImportNoObjectsInDirectory),
3094                "HTML_WRONG_HTML_STRUCTURE" => Some(Self::HtmlWrongHtmlStructure),
3095                "PB_NOT_ANYBLOCK_FORMAT" => Some(Self::PbNotAnyblockFormat),
3096                "CSV_LIMIT_OF_ROWS_OR_RELATIONS_EXCEEDED" => {
3097                    Some(Self::CsvLimitOfRowsOrRelationsExceeded)
3098                }
3099                "INSUFFICIENT_PERMISSIONS" => Some(Self::InsufficientPermissions),
3100                _ => None,
3101            }
3102        }
3103    }
3104}
3105#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3106pub struct Invite {
3107    #[prost(bytes = "vec", tag = "1")]
3108    pub payload: ::prost::alloc::vec::Vec<u8>,
3109    #[prost(bytes = "vec", tag = "2")]
3110    pub signature: ::prost::alloc::vec::Vec<u8>,
3111}
3112#[derive(Clone, PartialEq, ::prost::Message)]
3113pub struct InvitePayload {
3114    #[prost(string, tag = "1")]
3115    pub creator_identity: ::prost::alloc::string::String,
3116    #[prost(string, tag = "2")]
3117    pub creator_name: ::prost::alloc::string::String,
3118    #[prost(string, tag = "12")]
3119    pub creator_icon_cid: ::prost::alloc::string::String,
3120    #[prost(message, repeated, tag = "13")]
3121    pub creator_icon_encryption_keys: ::prost::alloc::vec::Vec<FileEncryptionKey>,
3122    #[prost(bytes = "vec", tag = "3")]
3123    pub acl_key: ::prost::alloc::vec::Vec<u8>,
3124    #[prost(string, tag = "4")]
3125    pub space_id: ::prost::alloc::string::String,
3126    #[prost(string, tag = "5")]
3127    pub space_name: ::prost::alloc::string::String,
3128    #[prost(string, tag = "6")]
3129    pub space_icon_cid: ::prost::alloc::string::String,
3130    #[prost(uint32, tag = "10")]
3131    pub space_icon_option: u32,
3132    /// deprecated
3133    #[prost(uint32, tag = "11")]
3134    pub space_ux_type: u32,
3135    #[prost(uint32, tag = "14")]
3136    pub space_type: u32,
3137    #[prost(message, repeated, tag = "7")]
3138    pub space_icon_encryption_keys: ::prost::alloc::vec::Vec<FileEncryptionKey>,
3139    #[prost(enumeration = "InviteType", tag = "8")]
3140    pub invite_type: i32,
3141    #[prost(bytes = "vec", tag = "9")]
3142    pub guest_key: ::prost::alloc::vec::Vec<u8>,
3143}
3144#[derive(Clone, PartialEq, ::prost::Message)]
3145pub struct IdentityProfile {
3146    #[prost(string, tag = "1")]
3147    pub identity: ::prost::alloc::string::String,
3148    #[prost(string, tag = "2")]
3149    pub name: ::prost::alloc::string::String,
3150    #[prost(string, tag = "3")]
3151    pub icon_cid: ::prost::alloc::string::String,
3152    #[prost(message, repeated, tag = "4")]
3153    pub icon_encryption_keys: ::prost::alloc::vec::Vec<FileEncryptionKey>,
3154    #[prost(string, tag = "5")]
3155    pub description: ::prost::alloc::string::String,
3156    #[prost(string, tag = "6")]
3157    pub global_name: ::prost::alloc::string::String,
3158}
3159#[derive(Clone, PartialEq, ::prost::Message)]
3160pub struct IdentityProfileWithKey {
3161    #[prost(message, optional, tag = "1")]
3162    pub identity_profile: ::core::option::Option<IdentityProfile>,
3163    #[prost(bytes = "vec", tag = "2")]
3164    pub request_metadata: ::prost::alloc::vec::Vec<u8>,
3165}
3166#[derive(Clone, PartialEq, ::prost::Message)]
3167pub struct FileInfo {
3168    #[prost(string, tag = "1")]
3169    pub file_id: ::prost::alloc::string::String,
3170    #[prost(message, repeated, tag = "2")]
3171    pub encryption_keys: ::prost::alloc::vec::Vec<FileEncryptionKey>,
3172}
3173#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3174pub struct FileEncryptionKey {
3175    #[prost(string, tag = "1")]
3176    pub path: ::prost::alloc::string::String,
3177    #[prost(string, tag = "2")]
3178    pub key: ::prost::alloc::string::String,
3179}
3180#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3181pub struct ManifestInfo {
3182    #[prost(string, tag = "1")]
3183    pub schema: ::prost::alloc::string::String,
3184    #[prost(string, tag = "2")]
3185    pub id: ::prost::alloc::string::String,
3186    #[prost(string, tag = "3")]
3187    pub name: ::prost::alloc::string::String,
3188    #[prost(string, tag = "4")]
3189    pub author: ::prost::alloc::string::String,
3190    #[prost(string, tag = "5")]
3191    pub license: ::prost::alloc::string::String,
3192    #[prost(string, tag = "6")]
3193    pub title: ::prost::alloc::string::String,
3194    #[prost(string, tag = "7")]
3195    pub description: ::prost::alloc::string::String,
3196    #[prost(string, repeated, tag = "8")]
3197    pub screenshots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3198    #[prost(string, tag = "9")]
3199    pub download_link: ::prost::alloc::string::String,
3200    #[prost(int32, tag = "10")]
3201    pub file_size: i32,
3202    #[prost(string, repeated, tag = "11")]
3203    pub categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3204    #[prost(string, tag = "12")]
3205    pub language: ::prost::alloc::string::String,
3206}
3207#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3208pub struct Membership {
3209    /// it was Tier before, changed to int32 to allow dynamic values
3210    #[prost(uint32, tag = "1")]
3211    pub tier: u32,
3212    #[prost(enumeration = "membership::Status", tag = "2")]
3213    pub status: i32,
3214    #[prost(uint64, tag = "3")]
3215    pub date_started: u64,
3216    #[prost(uint64, tag = "4")]
3217    pub date_ends: u64,
3218    #[prost(bool, tag = "5")]
3219    pub is_auto_renew: bool,
3220    #[prost(enumeration = "membership::PaymentMethod", tag = "6")]
3221    pub payment_method: i32,
3222    /// can be empty if user did not ask for any name
3223    #[prost(string, tag = "7")]
3224    pub ns_name: ::prost::alloc::string::String,
3225    #[prost(enumeration = "NameserviceNameType", tag = "8")]
3226    pub ns_name_type: i32,
3227    /// if the email was verified by the user or set during the checkout - it will be here
3228    #[prost(string, tag = "9")]
3229    pub user_email: ::prost::alloc::string::String,
3230    #[prost(bool, tag = "10")]
3231    pub subscribe_to_newsletter: bool,
3232}
3233/// Nested message and enum types in `Membership`.
3234pub mod membership {
3235    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3236    #[repr(i32)]
3237    pub enum Status {
3238        Unknown = 0,
3239        /// please wait a bit more, we are still processing your request
3240        /// the payment is confirmed, but we need more time to do some side-effects:
3241        ///
3242        /// * increase limits
3243        /// * send emails
3244        /// * allocate names
3245        Pending = 1,
3246        /// the membership is active, ready to use!
3247        Active = 2,
3248        /// in some cases we need to finalize the process:
3249        ///
3250        /// * if user has bought membership directly without first calling
3251        ///   the BuySubscription method
3252        ///   in this case please call Finalize to finish the process
3253        PendingRequiresFinalization = 3,
3254    }
3255    impl Status {
3256        /// String value of the enum field names used in the ProtoBuf definition.
3257        ///
3258        /// The values are not transformed in any way and thus are considered stable
3259        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3260        pub fn as_str_name(&self) -> &'static str {
3261            match self {
3262                Self::Unknown => "StatusUnknown",
3263                Self::Pending => "StatusPending",
3264                Self::Active => "StatusActive",
3265                Self::PendingRequiresFinalization => "StatusPendingRequiresFinalization",
3266            }
3267        }
3268        /// Creates an enum from field names used in the ProtoBuf definition.
3269        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3270            match value {
3271                "StatusUnknown" => Some(Self::Unknown),
3272                "StatusPending" => Some(Self::Pending),
3273                "StatusActive" => Some(Self::Active),
3274                "StatusPendingRequiresFinalization" => Some(Self::PendingRequiresFinalization),
3275                _ => None,
3276            }
3277        }
3278    }
3279    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3280    #[repr(i32)]
3281    pub enum PaymentMethod {
3282        MethodNone = 0,
3283        MethodStripe = 1,
3284        MethodCrypto = 2,
3285        MethodInappApple = 3,
3286        MethodInappGoogle = 4,
3287    }
3288    impl PaymentMethod {
3289        /// String value of the enum field names used in the ProtoBuf definition.
3290        ///
3291        /// The values are not transformed in any way and thus are considered stable
3292        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3293        pub fn as_str_name(&self) -> &'static str {
3294            match self {
3295                Self::MethodNone => "MethodNone",
3296                Self::MethodStripe => "MethodStripe",
3297                Self::MethodCrypto => "MethodCrypto",
3298                Self::MethodInappApple => "MethodInappApple",
3299                Self::MethodInappGoogle => "MethodInappGoogle",
3300            }
3301        }
3302        /// Creates an enum from field names used in the ProtoBuf definition.
3303        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3304            match value {
3305                "MethodNone" => Some(Self::MethodNone),
3306                "MethodStripe" => Some(Self::MethodStripe),
3307                "MethodCrypto" => Some(Self::MethodCrypto),
3308                "MethodInappApple" => Some(Self::MethodInappApple),
3309                "MethodInappGoogle" => Some(Self::MethodInappGoogle),
3310                _ => None,
3311            }
3312        }
3313    }
3314    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3315    #[repr(i32)]
3316    pub enum EmailVerificationStatus {
3317        /// user NEVER comleted the verification of the email
3318        StatusNotVerified = 0,
3319        /// user has asked for new code, but did not enter it yet
3320        /// (even if email was verified before, you can ask to UPDATE your e-mail)
3321        /// please wait, you can not ask for more codes yet
3322        StatusCodeSent = 1,
3323        /// the e-mail is finally verified
3324        StatusVerified = 2,
3325    }
3326    impl EmailVerificationStatus {
3327        /// String value of the enum field names used in the ProtoBuf definition.
3328        ///
3329        /// The values are not transformed in any way and thus are considered stable
3330        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3331        pub fn as_str_name(&self) -> &'static str {
3332            match self {
3333                Self::StatusNotVerified => "StatusNotVerified",
3334                Self::StatusCodeSent => "StatusCodeSent",
3335                Self::StatusVerified => "StatusVerified",
3336            }
3337        }
3338        /// Creates an enum from field names used in the ProtoBuf definition.
3339        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3340            match value {
3341                "StatusNotVerified" => Some(Self::StatusNotVerified),
3342                "StatusCodeSent" => Some(Self::StatusCodeSent),
3343                "StatusVerified" => Some(Self::StatusVerified),
3344                _ => None,
3345            }
3346        }
3347    }
3348}
3349#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3350pub struct MembershipTierData {
3351    /// this is a unique Payment Node ID of the tier
3352    /// WARNING: tiers can be sorted differently, not according to their IDs!
3353    #[prost(uint32, tag = "1")]
3354    pub id: u32,
3355    /// localazied name of the tier
3356    #[prost(string, tag = "2")]
3357    pub name: ::prost::alloc::string::String,
3358    /// just a short technical description
3359    #[prost(string, tag = "3")]
3360    pub description: ::prost::alloc::string::String,
3361    /// is this tier for testing and debugging only?
3362    #[prost(bool, tag = "4")]
3363    pub is_test: bool,
3364    /// how long is the period of the subscription
3365    #[prost(enumeration = "membership_tier_data::PeriodType", tag = "5")]
3366    pub period_type: i32,
3367    /// i.e. "5 days" or "3 years"
3368    #[prost(uint32, tag = "6")]
3369    pub period_value: u32,
3370    /// this one is a price we use ONLY on Stripe platform
3371    #[prost(uint32, tag = "7")]
3372    pub price_stripe_usd_cents: u32,
3373    /// number of ANY NS names that this tier includes
3374    /// also in the "features" list (see below)
3375    #[prost(uint32, tag = "8")]
3376    pub any_names_count_included: u32,
3377    /// somename.any - is of len 8
3378    #[prost(uint32, tag = "9")]
3379    pub any_name_min_length: u32,
3380    /// localized strings for the features
3381    #[prost(string, repeated, tag = "10")]
3382    pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3383    /// green, blue, red, purple, custom
3384    #[prost(string, tag = "11")]
3385    pub color_str: ::prost::alloc::string::String,
3386    /// Stripe platform-specific data:
3387    #[prost(string, tag = "12")]
3388    pub stripe_product_id: ::prost::alloc::string::String,
3389    #[prost(string, tag = "13")]
3390    pub stripe_manage_url: ::prost::alloc::string::String,
3391    /// iOS platform-specific data:
3392    #[prost(string, tag = "15")]
3393    pub ios_product_id: ::prost::alloc::string::String,
3394    #[prost(string, tag = "16")]
3395    pub ios_manage_url: ::prost::alloc::string::String,
3396    /// Android platform-specific data:
3397    #[prost(string, tag = "17")]
3398    pub android_product_id: ::prost::alloc::string::String,
3399    #[prost(string, tag = "18")]
3400    pub android_manage_url: ::prost::alloc::string::String,
3401    /// "limited offer" or somehing like that
3402    #[prost(string, tag = "19")]
3403    pub offer: ::prost::alloc::string::String,
3404}
3405/// Nested message and enum types in `MembershipTierData`.
3406pub mod membership_tier_data {
3407    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3408    #[repr(i32)]
3409    pub enum PeriodType {
3410        Unknown = 0,
3411        Unlimited = 1,
3412        Days = 2,
3413        Weeks = 3,
3414        Months = 4,
3415        Years = 5,
3416    }
3417    impl PeriodType {
3418        /// String value of the enum field names used in the ProtoBuf definition.
3419        ///
3420        /// The values are not transformed in any way and thus are considered stable
3421        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3422        pub fn as_str_name(&self) -> &'static str {
3423            match self {
3424                Self::Unknown => "PeriodTypeUnknown",
3425                Self::Unlimited => "PeriodTypeUnlimited",
3426                Self::Days => "PeriodTypeDays",
3427                Self::Weeks => "PeriodTypeWeeks",
3428                Self::Months => "PeriodTypeMonths",
3429                Self::Years => "PeriodTypeYears",
3430            }
3431        }
3432        /// Creates an enum from field names used in the ProtoBuf definition.
3433        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3434            match value {
3435                "PeriodTypeUnknown" => Some(Self::Unknown),
3436                "PeriodTypeUnlimited" => Some(Self::Unlimited),
3437                "PeriodTypeDays" => Some(Self::Days),
3438                "PeriodTypeWeeks" => Some(Self::Weeks),
3439                "PeriodTypeMonths" => Some(Self::Months),
3440                "PeriodTypeYears" => Some(Self::Years),
3441                _ => None,
3442            }
3443        }
3444    }
3445}
3446#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3447pub struct MembershipV2 {}
3448/// Nested message and enum types in `MembershipV2`.
3449pub mod membership_v2 {
3450    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3451    pub struct Amount {
3452        /// ISO 4217 currency code
3453        #[prost(string, tag = "1")]
3454        pub currency: ::prost::alloc::string::String,
3455        /// $0.01 = 1
3456        /// $1.00 = 100
3457        /// also supports negative amounts!
3458        /// some invoices can have negatice amount (refund)
3459        #[prost(int64, tag = "2")]
3460        pub amount_cents: i64,
3461    }
3462    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3463    pub struct Invoice {
3464        #[prost(uint64, tag = "1")]
3465        pub date: u64,
3466        #[prost(message, optional, tag = "2")]
3467        pub total: ::core::option::Option<Amount>,
3468    }
3469    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3470    pub struct Features {
3471        #[prost(uint64, tag = "1")]
3472        pub storage_bytes: u64,
3473        #[prost(uint32, tag = "2")]
3474        pub space_readers: u32,
3475        #[prost(uint32, tag = "3")]
3476        pub space_writers: u32,
3477        #[prost(uint32, tag = "4")]
3478        pub shared_spaces: u32,
3479        #[prost(uint32, tag = "5")]
3480        pub team_seats: u32,
3481        #[prost(uint32, tag = "6")]
3482        pub any_name_count: u32,
3483        #[prost(uint32, tag = "7")]
3484        pub any_name_min_len: u32,
3485        #[prost(uint32, tag = "8")]
3486        pub private_spaces: u32,
3487    }
3488    #[derive(Clone, PartialEq, ::prost::Message)]
3489    pub struct Product {
3490        #[prost(string, tag = "1")]
3491        pub id: ::prost::alloc::string::String,
3492        #[prost(string, tag = "2")]
3493        pub name: ::prost::alloc::string::String,
3494        #[prost(string, tag = "3")]
3495        pub description: ::prost::alloc::string::String,
3496        #[prost(bool, tag = "4")]
3497        pub is_top_level: bool,
3498        #[prost(bool, tag = "5")]
3499        pub is_hidden: bool,
3500        /// isIntro flag can be used as follows:
3501        ///
3502        ///    1. if current user's top level product has isIntro flag ->
3503        ///       then you'd rather show a FULL list of all products
3504        ///       to enable upgrading from CURRENT product
3505        ///    1. but if current user's top level product has no isIntro flag ->
3506        ///       then it means that this plan was aquired and user need to control it.
3507        ///       then show "second screen" to control that product instead
3508        #[prost(bool, tag = "6")]
3509        pub is_intro: bool,
3510        /// isUpgradeable can be used as follows:
3511        ///
3512        /// if current user's top level product has isUpgradeable flag ->
3513        /// show incentives to buy something else
3514        #[prost(bool, tag = "7")]
3515        pub is_upgradeable: bool,
3516        #[prost(message, repeated, tag = "8")]
3517        pub prices_yearly: ::prost::alloc::vec::Vec<Amount>,
3518        #[prost(message, repeated, tag = "9")]
3519        pub prices_monthly: ::prost::alloc::vec::Vec<Amount>,
3520        /// green, blue, red, purple, custom, etc
3521        #[prost(string, tag = "10")]
3522        pub color_str: ::prost::alloc::string::String,
3523        #[prost(string, tag = "11")]
3524        pub offer: ::prost::alloc::string::String,
3525        #[prost(message, optional, tag = "12")]
3526        pub features: ::core::option::Option<Features>,
3527        #[prost(message, repeated, tag = "13")]
3528        pub prices_lifetime: ::prost::alloc::vec::Vec<Amount>,
3529    }
3530    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3531    pub struct PurchaseInfo {
3532        #[prost(uint64, tag = "1")]
3533        pub date_started: u64,
3534        #[prost(uint64, tag = "2")]
3535        pub date_ends: u64,
3536        #[prost(bool, tag = "3")]
3537        pub is_auto_renew: bool,
3538        #[prost(enumeration = "Period", tag = "4")]
3539        pub period: i32,
3540    }
3541    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3542    pub struct ProductStatus {
3543        #[prost(enumeration = "product_status::Status", tag = "1")]
3544        pub status: i32,
3545    }
3546    /// Nested message and enum types in `ProductStatus`.
3547    pub mod product_status {
3548        #[derive(
3549            Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
3550        )]
3551        #[repr(i32)]
3552        pub enum Status {
3553            Unknown = 0,
3554            Pending = 1,
3555            Active = 2,
3556            PendingRequiresAnyNameAllocation = 3,
3557        }
3558        impl Status {
3559            /// String value of the enum field names used in the ProtoBuf definition.
3560            ///
3561            /// The values are not transformed in any way and thus are considered stable
3562            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3563            pub fn as_str_name(&self) -> &'static str {
3564                match self {
3565                    Self::Unknown => "StatusUnknown",
3566                    Self::Pending => "StatusPending",
3567                    Self::Active => "StatusActive",
3568                    Self::PendingRequiresAnyNameAllocation => {
3569                        "StatusPendingRequiresAnyNameAllocation"
3570                    }
3571                }
3572            }
3573            /// Creates an enum from field names used in the ProtoBuf definition.
3574            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3575                match value {
3576                    "StatusUnknown" => Some(Self::Unknown),
3577                    "StatusPending" => Some(Self::Pending),
3578                    "StatusActive" => Some(Self::Active),
3579                    "StatusPendingRequiresAnyNameAllocation" => {
3580                        Some(Self::PendingRequiresAnyNameAllocation)
3581                    }
3582                    _ => None,
3583                }
3584            }
3585        }
3586    }
3587    #[derive(Clone, PartialEq, ::prost::Message)]
3588    pub struct PurchasedProduct {
3589        #[prost(message, optional, tag = "1")]
3590        pub product: ::core::option::Option<Product>,
3591        #[prost(message, optional, tag = "2")]
3592        pub purchase_info: ::core::option::Option<PurchaseInfo>,
3593        #[prost(message, optional, tag = "3")]
3594        pub product_status: ::core::option::Option<ProductStatus>,
3595    }
3596    #[derive(Clone, PartialEq, ::prost::Message)]
3597    pub struct CartProduct {
3598        #[prost(message, optional, tag = "1")]
3599        pub product: ::core::option::Option<Product>,
3600        /// otherwise - monthly or isLifetime
3601        #[prost(bool, tag = "2")]
3602        pub is_yearly: bool,
3603        /// set to true if you want to remove this item from the customer
3604        /// it's like setting -1 to some product
3605        #[prost(bool, tag = "3")]
3606        pub remove: bool,
3607        /// if true - then this is lifetime product (no matter what isYearly above is)
3608        /// unfortunately we do not use Period here to keep compatibility with old versions
3609        /// that still use isYearly!
3610        #[prost(bool, tag = "4")]
3611        pub is_lifetime: bool,
3612    }
3613    #[derive(Clone, PartialEq, ::prost::Message)]
3614    pub struct Cart {
3615        /// if you add Nx the same product - it will be Nx in the 'products' array, i.e:
3616        /// each product instance has a unique index
3617        #[prost(message, repeated, tag = "1")]
3618        pub products: ::prost::alloc::vec::Vec<CartProduct>,
3619        /// total amount of the cart (including discounts, etc)
3620        #[prost(message, optional, tag = "2")]
3621        pub total: ::core::option::Option<Amount>,
3622        /// in case you are paying in the middle of the period (for existing customers)
3623        /// the next invoice amount will also be generated
3624        #[prost(message, optional, tag = "3")]
3625        pub total_next_invoice: ::core::option::Option<Amount>,
3626        #[prost(uint64, tag = "4")]
3627        pub next_invoice_date: u64,
3628        #[prost(string, repeated, tag = "5")]
3629        pub applied_promocodes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3630    }
3631    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3632    pub struct CryptoCheckout {
3633        #[prost(string, tag = "1")]
3634        pub invoice_url: ::prost::alloc::string::String,
3635        #[prost(message, optional, tag = "2")]
3636        pub total: ::core::option::Option<Amount>,
3637        #[prost(bool, tag = "3")]
3638        pub is_can_cancel: bool,
3639    }
3640    #[derive(Clone, PartialEq, ::prost::Message)]
3641    pub struct Data {
3642        #[prost(message, repeated, tag = "1")]
3643        pub products: ::prost::alloc::vec::Vec<PurchasedProduct>,
3644        #[prost(message, optional, tag = "2")]
3645        pub next_invoice: ::core::option::Option<Invoice>,
3646        #[prost(string, tag = "3")]
3647        pub team_owner_id: ::prost::alloc::string::String,
3648        #[prost(enumeration = "PaymentProvider", tag = "4")]
3649        pub payment_provider: i32,
3650        #[prost(string, repeated, tag = "5")]
3651        pub applied_promocodes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3652    }
3653    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3654    #[repr(i32)]
3655    pub enum Platform {
3656        Unknown = 0,
3657        Desktop = 1,
3658        MobileIos = 2,
3659        MobileAndroid = 3,
3660        Web = 4,
3661    }
3662    impl Platform {
3663        /// String value of the enum field names used in the ProtoBuf definition.
3664        ///
3665        /// The values are not transformed in any way and thus are considered stable
3666        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3667        pub fn as_str_name(&self) -> &'static str {
3668            match self {
3669                Self::Unknown => "Unknown",
3670                Self::Desktop => "Desktop",
3671                Self::MobileIos => "MobileIOS",
3672                Self::MobileAndroid => "MobileAndroid",
3673                Self::Web => "Web",
3674            }
3675        }
3676        /// Creates an enum from field names used in the ProtoBuf definition.
3677        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3678            match value {
3679                "Unknown" => Some(Self::Unknown),
3680                "Desktop" => Some(Self::Desktop),
3681                "MobileIOS" => Some(Self::MobileIos),
3682                "MobileAndroid" => Some(Self::MobileAndroid),
3683                "Web" => Some(Self::Web),
3684                _ => None,
3685            }
3686        }
3687    }
3688    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3689    #[repr(i32)]
3690    pub enum PaymentProvider {
3691        None = 0,
3692        Stripe = 1,
3693        Crypto = 2,
3694        BillingPortal = 3,
3695        AppStore = 4,
3696        GooglePlay = 5,
3697    }
3698    impl PaymentProvider {
3699        /// String value of the enum field names used in the ProtoBuf definition.
3700        ///
3701        /// The values are not transformed in any way and thus are considered stable
3702        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3703        pub fn as_str_name(&self) -> &'static str {
3704            match self {
3705                Self::None => "None",
3706                Self::Stripe => "Stripe",
3707                Self::Crypto => "Crypto",
3708                Self::BillingPortal => "BillingPortal",
3709                Self::AppStore => "AppStore",
3710                Self::GooglePlay => "GooglePlay",
3711            }
3712        }
3713        /// Creates an enum from field names used in the ProtoBuf definition.
3714        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3715            match value {
3716                "None" => Some(Self::None),
3717                "Stripe" => Some(Self::Stripe),
3718                "Crypto" => Some(Self::Crypto),
3719                "BillingPortal" => Some(Self::BillingPortal),
3720                "AppStore" => Some(Self::AppStore),
3721                "GooglePlay" => Some(Self::GooglePlay),
3722                _ => None,
3723            }
3724        }
3725    }
3726    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3727    #[repr(i32)]
3728    pub enum Period {
3729        #[deprecated]
3730        Unlimited = 0,
3731        Monthly = 1,
3732        Yearly = 2,
3733        ThreeYears = 3,
3734        Lifetime = 4,
3735    }
3736    impl Period {
3737        /// String value of the enum field names used in the ProtoBuf definition.
3738        ///
3739        /// The values are not transformed in any way and thus are considered stable
3740        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3741        pub fn as_str_name(&self) -> &'static str {
3742            match self {
3743                #[allow(deprecated)]
3744                Self::Unlimited => "Unlimited",
3745                Self::Monthly => "Monthly",
3746                Self::Yearly => "Yearly",
3747                Self::ThreeYears => "ThreeYears",
3748                Self::Lifetime => "Lifetime",
3749            }
3750        }
3751        /// Creates an enum from field names used in the ProtoBuf definition.
3752        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3753            match value {
3754                "Unlimited" => Some(
3755                    #[allow(deprecated)]
3756                    Self::Unlimited,
3757                ),
3758                "Monthly" => Some(Self::Monthly),
3759                "Yearly" => Some(Self::Yearly),
3760                "ThreeYears" => Some(Self::ThreeYears),
3761                "Lifetime" => Some(Self::Lifetime),
3762                _ => None,
3763            }
3764        }
3765    }
3766}
3767#[derive(Clone, PartialEq, ::prost::Message)]
3768pub struct Detail {
3769    #[prost(string, tag = "1")]
3770    pub key: ::prost::alloc::string::String,
3771    /// NUll - removes key
3772    #[prost(message, optional, tag = "2")]
3773    pub value: ::core::option::Option<::prost_types::Value>,
3774}
3775#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3776pub struct DeviceInfo {
3777    #[prost(string, tag = "1")]
3778    pub id: ::prost::alloc::string::String,
3779    #[prost(string, tag = "2")]
3780    pub name: ::prost::alloc::string::String,
3781    #[prost(int64, tag = "3")]
3782    pub add_date: i64,
3783    #[prost(bool, tag = "4")]
3784    pub archived: bool,
3785    #[prost(bool, tag = "5")]
3786    pub is_connected: bool,
3787}
3788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3789pub struct ChatState {
3790    /// unread messages
3791    #[prost(message, optional, tag = "1")]
3792    pub messages: ::core::option::Option<chat_state::UnreadState>,
3793    /// unread mentions
3794    #[prost(message, optional, tag = "2")]
3795    pub mentions: ::core::option::Option<chat_state::UnreadState>,
3796    /// reflects the state of the chat db at the moment of sending response/event that includes this state
3797    #[prost(string, tag = "3")]
3798    pub last_state_id: ::prost::alloc::string::String,
3799    /// Order is serial number of this state. Client should apply chat state only if its order is greater than previously saved order
3800    #[prost(int64, tag = "4")]
3801    pub order: i64,
3802    /// order id of the newest message with any unread reactions
3803    #[prost(string, tag = "5")]
3804    pub unread_reaction_order_id: ::prost::alloc::string::String,
3805}
3806/// Nested message and enum types in `ChatState`.
3807pub mod chat_state {
3808    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3809    pub struct UnreadState {
3810        /// oldest(in the lex sorting) unread message order id. Client should ALWAYS scroll through unread messages from the oldest to the newest
3811        #[prost(string, tag = "1")]
3812        pub oldest_order_id: ::prost::alloc::string::String,
3813        /// total number of unread messages
3814        #[prost(int32, tag = "2")]
3815        pub counter: i32,
3816    }
3817}
3818#[derive(Clone, PartialEq, ::prost::Message)]
3819pub struct ChatMessage {
3820    /// Unique message identifier
3821    #[prost(string, tag = "1")]
3822    pub id: ::prost::alloc::string::String,
3823    /// Lexicographical id for message in order of tree traversal
3824    #[prost(string, tag = "2")]
3825    pub order_id: ::prost::alloc::string::String,
3826    /// Identifier for the message creator
3827    #[prost(string, tag = "3")]
3828    pub creator: ::prost::alloc::string::String,
3829    #[prost(int64, tag = "4")]
3830    pub created_at: i64,
3831    #[prost(int64, tag = "9")]
3832    pub modified_at: i64,
3833    /// stateId is ever-increasing id (BSON ObjectId) for this message. Unlike orderId, this ID is ordered by the time messages are added. For example, it's useful to prevent accidental reading of messages from the past when a ChatReadMessages request is sent: a message from the past may appear, but the client is still unaware of it
3834    #[prost(string, tag = "11")]
3835    pub state_id: ::prost::alloc::string::String,
3836    /// Identifier for the message being replied to
3837    #[prost(string, tag = "5")]
3838    pub reply_to_message_id: ::prost::alloc::string::String,
3839    /// Message content
3840    #[prost(message, optional, tag = "6")]
3841    pub message: ::core::option::Option<chat_message::MessageContent>,
3842    /// Attachments slice
3843    #[prost(message, repeated, tag = "7")]
3844    pub attachments: ::prost::alloc::vec::Vec<chat_message::Attachment>,
3845    /// Reactions to the message
3846    #[prost(message, optional, tag = "8")]
3847    pub reactions: ::core::option::Option<chat_message::Reactions>,
3848    /// Message read status
3849    #[prost(bool, tag = "10")]
3850    pub read: bool,
3851    #[prost(bool, tag = "12")]
3852    pub mention_read: bool,
3853    #[prost(bool, tag = "14")]
3854    pub has_mention: bool,
3855    #[prost(bool, tag = "13")]
3856    pub synced: bool,
3857    #[prost(bool, tag = "15")]
3858    pub pinned: bool,
3859    #[prost(bool, tag = "16")]
3860    pub unread_reaction: bool,
3861    /// Ordered list of content blocks
3862    #[prost(message, repeated, tag = "17")]
3863    pub blocks: ::prost::alloc::vec::Vec<chat_message::MessageBlock>,
3864}
3865/// Nested message and enum types in `ChatMessage`.
3866pub mod chat_message {
3867    #[derive(Clone, PartialEq, ::prost::Message)]
3868    pub struct MessageContent {
3869        /// The text content of the message part
3870        #[prost(string, tag = "1")]
3871        pub text: ::prost::alloc::string::String,
3872        /// The style/type of the message part
3873        #[prost(enumeration = "super::block::content::text::Style", tag = "2")]
3874        pub style: i32,
3875        /// List of marks applied to the text
3876        #[prost(message, repeated, tag = "3")]
3877        pub marks: ::prost::alloc::vec::Vec<super::block::content::text::Mark>,
3878    }
3879    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3880    pub struct Attachment {
3881        /// Identifier for the attachment object
3882        #[prost(string, tag = "1")]
3883        pub target: ::prost::alloc::string::String,
3884        /// Type of attachment
3885        #[prost(enumeration = "attachment::AttachmentType", tag = "2")]
3886        pub r#type: i32,
3887    }
3888    /// Nested message and enum types in `Attachment`.
3889    pub mod attachment {
3890        #[derive(
3891            Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
3892        )]
3893        #[repr(i32)]
3894        pub enum AttachmentType {
3895            /// File attachment
3896            File = 0,
3897            /// Image attachment
3898            Image = 1,
3899            /// Link attachment
3900            Link = 2,
3901        }
3902        impl AttachmentType {
3903            /// String value of the enum field names used in the ProtoBuf definition.
3904            ///
3905            /// The values are not transformed in any way and thus are considered stable
3906            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3907            pub fn as_str_name(&self) -> &'static str {
3908                match self {
3909                    Self::File => "FILE",
3910                    Self::Image => "IMAGE",
3911                    Self::Link => "LINK",
3912                }
3913            }
3914            /// Creates an enum from field names used in the ProtoBuf definition.
3915            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3916                match value {
3917                    "FILE" => Some(Self::File),
3918                    "IMAGE" => Some(Self::Image),
3919                    "LINK" => Some(Self::Link),
3920                    _ => None,
3921                }
3922            }
3923        }
3924    }
3925    #[derive(Clone, PartialEq, ::prost::Message)]
3926    pub struct Reactions {
3927        /// Map of emoji to list of user IDs
3928        #[prost(map = "string, message", tag = "1")]
3929        pub reactions:
3930            ::std::collections::HashMap<::prost::alloc::string::String, reactions::IdentityList>,
3931    }
3932    /// Nested message and enum types in `Reactions`.
3933    pub mod reactions {
3934        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3935        pub struct IdentityList {
3936            /// List of user IDs
3937            #[prost(string, repeated, tag = "1")]
3938            pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3939        }
3940    }
3941    #[derive(Clone, PartialEq, ::prost::Message)]
3942    pub struct MessageBlock {
3943        #[prost(oneof = "message_block::ContentValue", tags = "1, 2, 3, 4, 5")]
3944        pub content_value: ::core::option::Option<message_block::ContentValue>,
3945    }
3946    /// Nested message and enum types in `MessageBlock`.
3947    pub mod message_block {
3948        #[derive(Clone, PartialEq, ::prost::Oneof)]
3949        pub enum ContentValue {
3950            #[prost(message, tag = "1")]
3951            Text(super::MessageBlockText),
3952            #[prost(message, tag = "2")]
3953            Link(super::MessageBlockLink),
3954            #[prost(message, tag = "3")]
3955            Embed(super::MessageBlockEmbed),
3956            #[prost(message, tag = "4")]
3957            EditorQuote(super::MessageBlockEditorQuote),
3958            #[prost(message, tag = "5")]
3959            MessageQuote(super::MessageBlockMessageQuote),
3960        }
3961    }
3962    #[derive(Clone, PartialEq, ::prost::Message)]
3963    pub struct MessageBlockText {
3964        #[prost(string, tag = "1")]
3965        pub text: ::prost::alloc::string::String,
3966        #[prost(enumeration = "super::block::content::text::Style", tag = "2")]
3967        pub style: i32,
3968        #[prost(message, repeated, tag = "3")]
3969        pub marks: ::prost::alloc::vec::Vec<super::block::content::text::Mark>,
3970        #[prost(bool, tag = "4")]
3971        pub checked: bool,
3972        #[prost(string, tag = "5")]
3973        pub lang: ::prost::alloc::string::String,
3974    }
3975    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3976    pub struct MessageBlockLink {
3977        #[prost(string, tag = "1")]
3978        pub target_object_id: ::prost::alloc::string::String,
3979        #[prost(enumeration = "message_block_link::LinkType", tag = "2")]
3980        pub r#type: i32,
3981    }
3982    /// Nested message and enum types in `MessageBlockLink`.
3983    pub mod message_block_link {
3984        #[derive(
3985            Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
3986        )]
3987        #[repr(i32)]
3988        pub enum LinkType {
3989            Object = 0,
3990            File = 1,
3991            Image = 2,
3992            Bookmark = 3,
3993        }
3994        impl LinkType {
3995            /// String value of the enum field names used in the ProtoBuf definition.
3996            ///
3997            /// The values are not transformed in any way and thus are considered stable
3998            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3999            pub fn as_str_name(&self) -> &'static str {
4000                match self {
4001                    Self::Object => "Object",
4002                    Self::File => "File",
4003                    Self::Image => "Image",
4004                    Self::Bookmark => "Bookmark",
4005                }
4006            }
4007            /// Creates an enum from field names used in the ProtoBuf definition.
4008            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4009                match value {
4010                    "Object" => Some(Self::Object),
4011                    "File" => Some(Self::File),
4012                    "Image" => Some(Self::Image),
4013                    "Bookmark" => Some(Self::Bookmark),
4014                    _ => None,
4015                }
4016            }
4017        }
4018    }
4019    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4020    pub struct MessageBlockEmbed {
4021        #[prost(string, tag = "1")]
4022        pub text: ::prost::alloc::string::String,
4023        #[prost(enumeration = "super::block::content::latex::Processor", tag = "2")]
4024        pub processor: i32,
4025    }
4026    #[derive(Clone, PartialEq, ::prost::Message)]
4027    pub struct MessageBlockEditorQuote {
4028        /// id of the quoted block in the source object
4029        #[prost(string, tag = "1")]
4030        pub block_id: ::prost::alloc::string::String,
4031        /// quoted block content (text, style, marks, ...)
4032        #[prost(message, optional, tag = "2")]
4033        pub content: ::core::option::Option<MessageBlockText>,
4034    }
4035    #[derive(Clone, PartialEq, ::prost::Message)]
4036    pub struct MessageBlockMessageQuote {
4037        /// id of the quoted chat message
4038        #[prost(string, tag = "1")]
4039        pub message_id: ::prost::alloc::string::String,
4040        /// id of the participant who authored the quoted message
4041        #[prost(string, tag = "2")]
4042        pub participant_id: ::prost::alloc::string::String,
4043        /// quoted message content (text, style, marks, ...)
4044        #[prost(message, optional, tag = "3")]
4045        pub content: ::core::option::Option<MessageBlockText>,
4046    }
4047}
4048#[derive(Clone, PartialEq, ::prost::Message)]
4049pub struct Placeholder {
4050    #[prost(string, tag = "1")]
4051    pub relation_key: ::prost::alloc::string::String,
4052    #[prost(message, repeated, tag = "2")]
4053    pub values: ::prost::alloc::vec::Vec<placeholder::Value>,
4054}
4055/// Nested message and enum types in `Placeholder`.
4056pub mod placeholder {
4057    #[derive(Clone, PartialEq, ::prost::Message)]
4058    pub struct Value {
4059        #[prost(enumeration = "Type", tag = "1")]
4060        pub r#type: i32,
4061        #[prost(message, optional, tag = "2")]
4062        pub value: ::core::option::Option<::prost_types::Value>,
4063    }
4064    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4065    #[repr(i32)]
4066    pub enum Type {
4067        PlaceholderValue = 0,
4068        PlaceholderToday = 1,
4069        PlaceholderCurrentUser = 2,
4070    }
4071    impl Type {
4072        /// String value of the enum field names used in the ProtoBuf definition.
4073        ///
4074        /// The values are not transformed in any way and thus are considered stable
4075        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4076        pub fn as_str_name(&self) -> &'static str {
4077            match self {
4078                Self::PlaceholderValue => "PlaceholderValue",
4079                Self::PlaceholderToday => "PlaceholderToday",
4080                Self::PlaceholderCurrentUser => "PlaceholderCurrentUser",
4081            }
4082        }
4083        /// Creates an enum from field names used in the ProtoBuf definition.
4084        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4085            match value {
4086                "PlaceholderValue" => Some(Self::PlaceholderValue),
4087                "PlaceholderToday" => Some(Self::PlaceholderToday),
4088                "PlaceholderCurrentUser" => Some(Self::PlaceholderCurrentUser),
4089                _ => None,
4090            }
4091        }
4092    }
4093}
4094#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4095#[repr(i32)]
4096pub enum SmartBlockType {
4097    /// deprecated
4098    AccountOld = 0,
4099    Page = 16,
4100    ProfilePage = 17,
4101    Home = 32,
4102    Archive = 48,
4103    Widget = 112,
4104    File = 256,
4105    Template = 288,
4106    BundledTemplate = 289,
4107    /// DEPRECATED
4108    BundledRelation = 512,
4109    SubObject = 513,
4110    /// DEPRECATED
4111    BundledObjectType = 514,
4112    AnytypeProfile = 515,
4113    Date = 516,
4114    Workspace = 518,
4115    StRelation = 521,
4116    StType = 528,
4117    StRelationOption = 529,
4118    SpaceView = 530,
4119    Identity = 532,
4120    Participant = 534,
4121    MissingObject = 519,
4122    FileObject = 533,
4123    NotificationObject = 535,
4124    DevicesObject = 536,
4125    /// DEPRECATED Container for any-store based chats
4126    ChatObjectDeprecated = 537,
4127    /// Any-store based object for chat
4128    ChatDerivedObject = 544,
4129    /// Container for account data in tech space
4130    AccountObject = 545,
4131    /// Any-store based object for discussion
4132    DiscussionObject = 546,
4133    /// Any-store based object in tech space for cross-device sync
4134    TechSpaceObject = 547,
4135    /// Per-space virtual object backed by a tech space CRDT document
4136    TechSpaceVirtualObject = 548,
4137}
4138impl SmartBlockType {
4139    /// String value of the enum field names used in the ProtoBuf definition.
4140    ///
4141    /// The values are not transformed in any way and thus are considered stable
4142    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4143    pub fn as_str_name(&self) -> &'static str {
4144        match self {
4145            Self::AccountOld => "AccountOld",
4146            Self::Page => "Page",
4147            Self::ProfilePage => "ProfilePage",
4148            Self::Home => "Home",
4149            Self::Archive => "Archive",
4150            Self::Widget => "Widget",
4151            Self::File => "File",
4152            Self::Template => "Template",
4153            Self::BundledTemplate => "BundledTemplate",
4154            Self::BundledRelation => "BundledRelation",
4155            Self::SubObject => "SubObject",
4156            Self::BundledObjectType => "BundledObjectType",
4157            Self::AnytypeProfile => "AnytypeProfile",
4158            Self::Date => "Date",
4159            Self::Workspace => "Workspace",
4160            Self::StRelation => "STRelation",
4161            Self::StType => "STType",
4162            Self::StRelationOption => "STRelationOption",
4163            Self::SpaceView => "SpaceView",
4164            Self::Identity => "Identity",
4165            Self::Participant => "Participant",
4166            Self::MissingObject => "MissingObject",
4167            Self::FileObject => "FileObject",
4168            Self::NotificationObject => "NotificationObject",
4169            Self::DevicesObject => "DevicesObject",
4170            Self::ChatObjectDeprecated => "ChatObjectDeprecated",
4171            Self::ChatDerivedObject => "ChatDerivedObject",
4172            Self::AccountObject => "AccountObject",
4173            Self::DiscussionObject => "DiscussionObject",
4174            Self::TechSpaceObject => "TechSpaceObject",
4175            Self::TechSpaceVirtualObject => "TechSpaceVirtualObject",
4176        }
4177    }
4178    /// Creates an enum from field names used in the ProtoBuf definition.
4179    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4180        match value {
4181            "AccountOld" => Some(Self::AccountOld),
4182            "Page" => Some(Self::Page),
4183            "ProfilePage" => Some(Self::ProfilePage),
4184            "Home" => Some(Self::Home),
4185            "Archive" => Some(Self::Archive),
4186            "Widget" => Some(Self::Widget),
4187            "File" => Some(Self::File),
4188            "Template" => Some(Self::Template),
4189            "BundledTemplate" => Some(Self::BundledTemplate),
4190            "BundledRelation" => Some(Self::BundledRelation),
4191            "SubObject" => Some(Self::SubObject),
4192            "BundledObjectType" => Some(Self::BundledObjectType),
4193            "AnytypeProfile" => Some(Self::AnytypeProfile),
4194            "Date" => Some(Self::Date),
4195            "Workspace" => Some(Self::Workspace),
4196            "STRelation" => Some(Self::StRelation),
4197            "STType" => Some(Self::StType),
4198            "STRelationOption" => Some(Self::StRelationOption),
4199            "SpaceView" => Some(Self::SpaceView),
4200            "Identity" => Some(Self::Identity),
4201            "Participant" => Some(Self::Participant),
4202            "MissingObject" => Some(Self::MissingObject),
4203            "FileObject" => Some(Self::FileObject),
4204            "NotificationObject" => Some(Self::NotificationObject),
4205            "DevicesObject" => Some(Self::DevicesObject),
4206            "ChatObjectDeprecated" => Some(Self::ChatObjectDeprecated),
4207            "ChatDerivedObject" => Some(Self::ChatDerivedObject),
4208            "AccountObject" => Some(Self::AccountObject),
4209            "DiscussionObject" => Some(Self::DiscussionObject),
4210            "TechSpaceObject" => Some(Self::TechSpaceObject),
4211            "TechSpaceVirtualObject" => Some(Self::TechSpaceVirtualObject),
4212            _ => None,
4213        }
4214    }
4215}
4216/// RelationFormat describes how the underlying data is stored in the google.protobuf.Value and how it should be validated/sanitized
4217#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4218#[repr(i32)]
4219pub enum RelationFormat {
4220    /// string
4221    Longtext = 0,
4222    /// string, usually short enough. May be truncated in the future
4223    Shorttext = 1,
4224    /// double
4225    Number = 2,
4226    /// string or list of string(len==1)
4227    Status = 3,
4228    /// list of string (choose multiple from a list)
4229    Tag = 11,
4230    /// float64(pb.Value doesn't have int64) or the string
4231    Date = 4,
4232    /// relation can has objects of specific types: file, image, audio, video
4233    File = 5,
4234    /// boolean
4235    Checkbox = 6,
4236    /// string with sanity check
4237    Url = 7,
4238    /// string with sanity check
4239    Email = 8,
4240    /// string with sanity check
4241    Phone = 9,
4242    /// one emoji, can contains multiple utf-8 symbols
4243    Emoji = 10,
4244    /// relation can has objectType to specify objectType
4245    Object = 100,
4246    /// base64-encoded relation pb model
4247    Relations = 101,
4248    /// relation that handle map of values
4249    Map = 102,
4250}
4251impl RelationFormat {
4252    /// String value of the enum field names used in the ProtoBuf definition.
4253    ///
4254    /// The values are not transformed in any way and thus are considered stable
4255    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4256    pub fn as_str_name(&self) -> &'static str {
4257        match self {
4258            Self::Longtext => "longtext",
4259            Self::Shorttext => "shorttext",
4260            Self::Number => "number",
4261            Self::Status => "status",
4262            Self::Tag => "tag",
4263            Self::Date => "date",
4264            Self::File => "file",
4265            Self::Checkbox => "checkbox",
4266            Self::Url => "url",
4267            Self::Email => "email",
4268            Self::Phone => "phone",
4269            Self::Emoji => "emoji",
4270            Self::Object => "object",
4271            Self::Relations => "relations",
4272            Self::Map => "map",
4273        }
4274    }
4275    /// Creates an enum from field names used in the ProtoBuf definition.
4276    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4277        match value {
4278            "longtext" => Some(Self::Longtext),
4279            "shorttext" => Some(Self::Shorttext),
4280            "number" => Some(Self::Number),
4281            "status" => Some(Self::Status),
4282            "tag" => Some(Self::Tag),
4283            "date" => Some(Self::Date),
4284            "file" => Some(Self::File),
4285            "checkbox" => Some(Self::Checkbox),
4286            "url" => Some(Self::Url),
4287            "email" => Some(Self::Email),
4288            "phone" => Some(Self::Phone),
4289            "emoji" => Some(Self::Emoji),
4290            "object" => Some(Self::Object),
4291            "relations" => Some(Self::Relations),
4292            "map" => Some(Self::Map),
4293            _ => None,
4294        }
4295    }
4296}
4297#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4298#[repr(i32)]
4299pub enum ObjectOrigin {
4300    None = 0,
4301    Clipboard = 1,
4302    DragAndDrop = 2,
4303    Import = 3,
4304    Webclipper = 4,
4305    SharingExtension = 5,
4306    Usecase = 6,
4307    Builtin = 7,
4308    Bookmark = 8,
4309    Api = 9,
4310}
4311impl ObjectOrigin {
4312    /// String value of the enum field names used in the ProtoBuf definition.
4313    ///
4314    /// The values are not transformed in any way and thus are considered stable
4315    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4316    pub fn as_str_name(&self) -> &'static str {
4317        match self {
4318            Self::None => "none",
4319            Self::Clipboard => "clipboard",
4320            Self::DragAndDrop => "dragAndDrop",
4321            Self::Import => "import",
4322            Self::Webclipper => "webclipper",
4323            Self::SharingExtension => "sharingExtension",
4324            Self::Usecase => "usecase",
4325            Self::Builtin => "builtin",
4326            Self::Bookmark => "bookmark",
4327            Self::Api => "api",
4328        }
4329    }
4330    /// Creates an enum from field names used in the ProtoBuf definition.
4331    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4332        match value {
4333            "none" => Some(Self::None),
4334            "clipboard" => Some(Self::Clipboard),
4335            "dragAndDrop" => Some(Self::DragAndDrop),
4336            "import" => Some(Self::Import),
4337            "webclipper" => Some(Self::Webclipper),
4338            "sharingExtension" => Some(Self::SharingExtension),
4339            "usecase" => Some(Self::Usecase),
4340            "builtin" => Some(Self::Builtin),
4341            "bookmark" => Some(Self::Bookmark),
4342            "api" => Some(Self::Api),
4343            _ => None,
4344        }
4345    }
4346}
4347#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4348#[repr(i32)]
4349pub enum SpaceStatus {
4350    /// Unknown means the space is not loaded yet
4351    Unknown = 0,
4352    /// Loading - the space in progress of loading
4353    Loading = 1,
4354    /// Ok - the space loaded and available
4355    Ok = 2,
4356    /// Missing - the space is missing
4357    Missing = 3,
4358    /// Error - the space loading ended with an error
4359    Error = 4,
4360    /// RemoteWaitingDeletion - network status is "waiting deletion"
4361    RemoteWaitingDeletion = 5,
4362    /// RemoteDeleted - the space is deleted in the current network
4363    RemoteDeleted = 6,
4364    /// SpaceDeleted - the space should be deleted in the network
4365    SpaceDeleted = 7,
4366    /// SpaceActive - the space is active in the network
4367    SpaceActive = 8,
4368    /// SpaceJoining - the account is joining the space
4369    SpaceJoining = 9,
4370    /// SpaceRemoving - the account is removing from space or the space is removed from network
4371    SpaceRemoving = 10,
4372}
4373impl SpaceStatus {
4374    /// String value of the enum field names used in the ProtoBuf definition.
4375    ///
4376    /// The values are not transformed in any way and thus are considered stable
4377    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4378    pub fn as_str_name(&self) -> &'static str {
4379        match self {
4380            Self::Unknown => "Unknown",
4381            Self::Loading => "Loading",
4382            Self::Ok => "Ok",
4383            Self::Missing => "Missing",
4384            Self::Error => "Error",
4385            Self::RemoteWaitingDeletion => "RemoteWaitingDeletion",
4386            Self::RemoteDeleted => "RemoteDeleted",
4387            Self::SpaceDeleted => "SpaceDeleted",
4388            Self::SpaceActive => "SpaceActive",
4389            Self::SpaceJoining => "SpaceJoining",
4390            Self::SpaceRemoving => "SpaceRemoving",
4391        }
4392    }
4393    /// Creates an enum from field names used in the ProtoBuf definition.
4394    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4395        match value {
4396            "Unknown" => Some(Self::Unknown),
4397            "Loading" => Some(Self::Loading),
4398            "Ok" => Some(Self::Ok),
4399            "Missing" => Some(Self::Missing),
4400            "Error" => Some(Self::Error),
4401            "RemoteWaitingDeletion" => Some(Self::RemoteWaitingDeletion),
4402            "RemoteDeleted" => Some(Self::RemoteDeleted),
4403            "SpaceDeleted" => Some(Self::SpaceDeleted),
4404            "SpaceActive" => Some(Self::SpaceActive),
4405            "SpaceJoining" => Some(Self::SpaceJoining),
4406            "SpaceRemoving" => Some(Self::SpaceRemoving),
4407            _ => None,
4408        }
4409    }
4410}
4411#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4412#[repr(i32)]
4413pub enum ParticipantPermissions {
4414    Reader = 0,
4415    Writer = 1,
4416    Owner = 2,
4417    NoPermissions = 3,
4418    Admin = 4,
4419}
4420impl ParticipantPermissions {
4421    /// String value of the enum field names used in the ProtoBuf definition.
4422    ///
4423    /// The values are not transformed in any way and thus are considered stable
4424    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4425    pub fn as_str_name(&self) -> &'static str {
4426        match self {
4427            Self::Reader => "Reader",
4428            Self::Writer => "Writer",
4429            Self::Owner => "Owner",
4430            Self::NoPermissions => "NoPermissions",
4431            Self::Admin => "Admin",
4432        }
4433    }
4434    /// Creates an enum from field names used in the ProtoBuf definition.
4435    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4436        match value {
4437            "Reader" => Some(Self::Reader),
4438            "Writer" => Some(Self::Writer),
4439            "Owner" => Some(Self::Owner),
4440            "NoPermissions" => Some(Self::NoPermissions),
4441            "Admin" => Some(Self::Admin),
4442            _ => None,
4443        }
4444    }
4445}
4446#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4447#[repr(i32)]
4448pub enum InviteType {
4449    /// aclKey contains the key to sign the ACL record
4450    Member = 0,
4451    /// guestKey contains the privateKey of the guest user
4452    Guest = 1,
4453    /// aclKey contains the key to sign the ACL record, but no approval needed
4454    WithoutApprove = 2,
4455}
4456impl InviteType {
4457    /// String value of the enum field names used in the ProtoBuf definition.
4458    ///
4459    /// The values are not transformed in any way and thus are considered stable
4460    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4461    pub fn as_str_name(&self) -> &'static str {
4462        match self {
4463            Self::Member => "Member",
4464            Self::Guest => "Guest",
4465            Self::WithoutApprove => "WithoutApprove",
4466        }
4467    }
4468    /// Creates an enum from field names used in the ProtoBuf definition.
4469    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4470        match value {
4471            "Member" => Some(Self::Member),
4472            "Guest" => Some(Self::Guest),
4473            "WithoutApprove" => Some(Self::WithoutApprove),
4474            _ => None,
4475        }
4476    }
4477}
4478#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4479#[repr(i32)]
4480pub enum ParticipantStatus {
4481    Joining = 0,
4482    Active = 1,
4483    Removed = 2,
4484    Declined = 3,
4485    Removing = 4,
4486    Canceled = 5,
4487}
4488impl ParticipantStatus {
4489    /// String value of the enum field names used in the ProtoBuf definition.
4490    ///
4491    /// The values are not transformed in any way and thus are considered stable
4492    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4493    pub fn as_str_name(&self) -> &'static str {
4494        match self {
4495            Self::Joining => "Joining",
4496            Self::Active => "Active",
4497            Self::Removed => "Removed",
4498            Self::Declined => "Declined",
4499            Self::Removing => "Removing",
4500            Self::Canceled => "Canceled",
4501        }
4502    }
4503    /// Creates an enum from field names used in the ProtoBuf definition.
4504    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4505        match value {
4506            "Joining" => Some(Self::Joining),
4507            "Active" => Some(Self::Active),
4508            "Removed" => Some(Self::Removed),
4509            "Declined" => Some(Self::Declined),
4510            "Removing" => Some(Self::Removing),
4511            "Canceled" => Some(Self::Canceled),
4512            _ => None,
4513        }
4514    }
4515}
4516#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4517#[repr(i32)]
4518pub enum SpaceAccessType {
4519    Private = 0,
4520    Personal = 1,
4521    Shared = 2,
4522}
4523impl SpaceAccessType {
4524    /// String value of the enum field names used in the ProtoBuf definition.
4525    ///
4526    /// The values are not transformed in any way and thus are considered stable
4527    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4528    pub fn as_str_name(&self) -> &'static str {
4529        match self {
4530            Self::Private => "Private",
4531            Self::Personal => "Personal",
4532            Self::Shared => "Shared",
4533        }
4534    }
4535    /// Creates an enum from field names used in the ProtoBuf definition.
4536    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4537        match value {
4538            "Private" => Some(Self::Private),
4539            "Personal" => Some(Self::Personal),
4540            "Shared" => Some(Self::Shared),
4541            _ => None,
4542        }
4543    }
4544}
4545#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4546#[repr(i32)]
4547pub enum SpaceUxType {
4548    /// old value for chat, deprecated
4549    None = 0,
4550    /// objects-first UX
4551    Data = 1,
4552    /// stream UX (chat with limited amount of owners)
4553    Stream = 2,
4554    /// chat UX, deprecated
4555    Chat = 3,
4556    /// onetoone UX (space with chat and immutable ACL between two participants)
4557    OneToOne = 4,
4558}
4559impl SpaceUxType {
4560    /// String value of the enum field names used in the ProtoBuf definition.
4561    ///
4562    /// The values are not transformed in any way and thus are considered stable
4563    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4564    pub fn as_str_name(&self) -> &'static str {
4565        match self {
4566            Self::None => "None",
4567            Self::Data => "Data",
4568            Self::Stream => "Stream",
4569            Self::Chat => "Chat",
4570            Self::OneToOne => "OneToOne",
4571        }
4572    }
4573    /// Creates an enum from field names used in the ProtoBuf definition.
4574    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4575        match value {
4576            "None" => Some(Self::None),
4577            "Data" => Some(Self::Data),
4578            "Stream" => Some(Self::Stream),
4579            "Chat" => Some(Self::Chat),
4580            "OneToOne" => Some(Self::OneToOne),
4581            _ => None,
4582        }
4583    }
4584}
4585#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4586#[repr(i32)]
4587pub enum SpaceType {
4588    Unknown = 0,
4589    Regular = 1,
4590    Tech = 2,
4591    Chat = 3,
4592    OneToOne = 4,
4593}
4594impl SpaceType {
4595    /// String value of the enum field names used in the ProtoBuf definition.
4596    ///
4597    /// The values are not transformed in any way and thus are considered stable
4598    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4599    pub fn as_str_name(&self) -> &'static str {
4600        match self {
4601            Self::Unknown => "SpaceTypeUnknown",
4602            Self::Regular => "SpaceTypeRegular",
4603            Self::Tech => "SpaceTypeTech",
4604            Self::Chat => "SpaceTypeChat",
4605            Self::OneToOne => "SpaceTypeOneToOne",
4606        }
4607    }
4608    /// Creates an enum from field names used in the ProtoBuf definition.
4609    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4610        match value {
4611            "SpaceTypeUnknown" => Some(Self::Unknown),
4612            "SpaceTypeRegular" => Some(Self::Regular),
4613            "SpaceTypeTech" => Some(Self::Tech),
4614            "SpaceTypeChat" => Some(Self::Chat),
4615            "SpaceTypeOneToOne" => Some(Self::OneToOne),
4616            _ => None,
4617        }
4618    }
4619}
4620#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4621#[repr(i32)]
4622pub enum ImageKind {
4623    Basic = 0,
4624    Cover = 1,
4625    Icon = 2,
4626    AutomaticallyAdded = 3,
4627}
4628impl ImageKind {
4629    /// String value of the enum field names used in the ProtoBuf definition.
4630    ///
4631    /// The values are not transformed in any way and thus are considered stable
4632    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4633    pub fn as_str_name(&self) -> &'static str {
4634        match self {
4635            Self::Basic => "Basic",
4636            Self::Cover => "Cover",
4637            Self::Icon => "Icon",
4638            Self::AutomaticallyAdded => "AutomaticallyAdded",
4639        }
4640    }
4641    /// Creates an enum from field names used in the ProtoBuf definition.
4642    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4643        match value {
4644            "Basic" => Some(Self::Basic),
4645            "Cover" => Some(Self::Cover),
4646            "Icon" => Some(Self::Icon),
4647            "AutomaticallyAdded" => Some(Self::AutomaticallyAdded),
4648            _ => None,
4649        }
4650    }
4651}
4652#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4653#[repr(i32)]
4654pub enum FileIndexingStatus {
4655    NotIndexed = 0,
4656    Indexed = 1,
4657    NotFound = 2,
4658}
4659impl FileIndexingStatus {
4660    /// String value of the enum field names used in the ProtoBuf definition.
4661    ///
4662    /// The values are not transformed in any way and thus are considered stable
4663    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4664    pub fn as_str_name(&self) -> &'static str {
4665        match self {
4666            Self::NotIndexed => "NotIndexed",
4667            Self::Indexed => "Indexed",
4668            Self::NotFound => "NotFound",
4669        }
4670    }
4671    /// Creates an enum from field names used in the ProtoBuf definition.
4672    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4673        match value {
4674            "NotIndexed" => Some(Self::NotIndexed),
4675            "Indexed" => Some(Self::Indexed),
4676            "NotFound" => Some(Self::NotFound),
4677            _ => None,
4678        }
4679    }
4680}
4681#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4682#[repr(i32)]
4683pub enum SpaceShareableStatus {
4684    StatusUnknown = 0,
4685    StatusShareable = 1,
4686    StatusNotShareable = 2,
4687}
4688impl SpaceShareableStatus {
4689    /// String value of the enum field names used in the ProtoBuf definition.
4690    ///
4691    /// The values are not transformed in any way and thus are considered stable
4692    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4693    pub fn as_str_name(&self) -> &'static str {
4694        match self {
4695            Self::StatusUnknown => "StatusUnknown",
4696            Self::StatusShareable => "StatusShareable",
4697            Self::StatusNotShareable => "StatusNotShareable",
4698        }
4699    }
4700    /// Creates an enum from field names used in the ProtoBuf definition.
4701    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4702        match value {
4703            "StatusUnknown" => Some(Self::StatusUnknown),
4704            "StatusShareable" => Some(Self::StatusShareable),
4705            "StatusNotShareable" => Some(Self::StatusNotShareable),
4706            _ => None,
4707        }
4708    }
4709}
4710#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4711#[repr(i32)]
4712pub enum NameserviceNameType {
4713    /// .any suffix
4714    AnyName = 0,
4715}
4716impl NameserviceNameType {
4717    /// String value of the enum field names used in the ProtoBuf definition.
4718    ///
4719    /// The values are not transformed in any way and thus are considered stable
4720    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4721    pub fn as_str_name(&self) -> &'static str {
4722        match self {
4723            Self::AnyName => "AnyName",
4724        }
4725    }
4726    /// Creates an enum from field names used in the ProtoBuf definition.
4727    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4728        match value {
4729            "AnyName" => Some(Self::AnyName),
4730            _ => None,
4731        }
4732    }
4733}
4734#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4735#[repr(i32)]
4736pub enum DeviceNetworkType {
4737    Wifi = 0,
4738    Cellular = 1,
4739    NotConnected = 2,
4740}
4741impl DeviceNetworkType {
4742    /// String value of the enum field names used in the ProtoBuf definition.
4743    ///
4744    /// The values are not transformed in any way and thus are considered stable
4745    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4746    pub fn as_str_name(&self) -> &'static str {
4747        match self {
4748            Self::Wifi => "WIFI",
4749            Self::Cellular => "CELLULAR",
4750            Self::NotConnected => "NOT_CONNECTED",
4751        }
4752    }
4753    /// Creates an enum from field names used in the ProtoBuf definition.
4754    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4755        match value {
4756            "WIFI" => Some(Self::Wifi),
4757            "CELLULAR" => Some(Self::Cellular),
4758            "NOT_CONNECTED" => Some(Self::NotConnected),
4759            _ => None,
4760        }
4761    }
4762}
4763#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4764#[repr(i32)]
4765pub enum SyncStatus {
4766    Synced = 0,
4767    Syncing = 1,
4768    Error = 2,
4769    Queued = 3,
4770}
4771impl SyncStatus {
4772    /// String value of the enum field names used in the ProtoBuf definition.
4773    ///
4774    /// The values are not transformed in any way and thus are considered stable
4775    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4776    pub fn as_str_name(&self) -> &'static str {
4777        match self {
4778            Self::Synced => "SyncStatusSynced",
4779            Self::Syncing => "SyncStatusSyncing",
4780            Self::Error => "SyncStatusError",
4781            Self::Queued => "SyncStatusQueued",
4782        }
4783    }
4784    /// Creates an enum from field names used in the ProtoBuf definition.
4785    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4786        match value {
4787            "SyncStatusSynced" => Some(Self::Synced),
4788            "SyncStatusSyncing" => Some(Self::Syncing),
4789            "SyncStatusError" => Some(Self::Error),
4790            "SyncStatusQueued" => Some(Self::Queued),
4791            _ => None,
4792        }
4793    }
4794}
4795#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4796#[repr(i32)]
4797pub enum SyncError {
4798    Null = 0,
4799    IncompatibleVersion = 2,
4800    NetworkError = 3,
4801    Oversized = 4,
4802}
4803impl SyncError {
4804    /// String value of the enum field names used in the ProtoBuf definition.
4805    ///
4806    /// The values are not transformed in any way and thus are considered stable
4807    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4808    pub fn as_str_name(&self) -> &'static str {
4809        match self {
4810            Self::Null => "SyncErrorNull",
4811            Self::IncompatibleVersion => "SyncErrorIncompatibleVersion",
4812            Self::NetworkError => "SyncErrorNetworkError",
4813            Self::Oversized => "SyncErrorOversized",
4814        }
4815    }
4816    /// Creates an enum from field names used in the ProtoBuf definition.
4817    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4818        match value {
4819            "SyncErrorNull" => Some(Self::Null),
4820            "SyncErrorIncompatibleVersion" => Some(Self::IncompatibleVersion),
4821            "SyncErrorNetworkError" => Some(Self::NetworkError),
4822            "SyncErrorOversized" => Some(Self::Oversized),
4823            _ => None,
4824        }
4825    }
4826}
4827#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4828#[repr(i32)]
4829pub enum TemplateNamePrefillType {
4830    Empty = 0,
4831    FromTemplateName = 1,
4832}
4833impl TemplateNamePrefillType {
4834    /// String value of the enum field names used in the ProtoBuf definition.
4835    ///
4836    /// The values are not transformed in any way and thus are considered stable
4837    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4838    pub fn as_str_name(&self) -> &'static str {
4839        match self {
4840            Self::Empty => "Empty",
4841            Self::FromTemplateName => "FromTemplateName",
4842        }
4843    }
4844    /// Creates an enum from field names used in the ProtoBuf definition.
4845    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4846        match value {
4847            "Empty" => Some(Self::Empty),
4848            "FromTemplateName" => Some(Self::FromTemplateName),
4849            _ => None,
4850        }
4851    }
4852}
4853#[derive(Clone, PartialEq, ::prost::Message)]
4854pub struct ObjectInfo {
4855    #[prost(string, tag = "1")]
4856    pub id: ::prost::alloc::string::String,
4857    /// DEPRECATED
4858    #[prost(string, repeated, tag = "2")]
4859    pub object_type_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4860    #[prost(message, optional, tag = "3")]
4861    pub details: ::core::option::Option<::prost_types::Struct>,
4862    /// DEPRECATED
4863    #[prost(message, repeated, tag = "4")]
4864    pub relations: ::prost::alloc::vec::Vec<Relation>,
4865    #[prost(string, tag = "5")]
4866    pub snippet: ::prost::alloc::string::String,
4867    /// DEPRECATED
4868    #[prost(bool, tag = "6")]
4869    pub has_inbound_links: bool,
4870}
4871#[derive(Clone, PartialEq, ::prost::Message)]
4872pub struct ObjectDetails {
4873    #[prost(message, optional, tag = "1")]
4874    pub details: ::core::option::Option<::prost_types::Struct>,
4875}
4876#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4877pub struct ObjectLinks {
4878    #[prost(string, repeated, tag = "1")]
4879    pub inbound_i_ds: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4880    #[prost(string, repeated, tag = "2")]
4881    pub outbound_i_ds: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4882}
4883#[derive(Clone, PartialEq, ::prost::Message)]
4884pub struct ObjectLinksInfo {
4885    #[prost(message, repeated, tag = "1")]
4886    pub inbound: ::prost::alloc::vec::Vec<ObjectInfo>,
4887    #[prost(message, repeated, tag = "2")]
4888    pub outbound: ::prost::alloc::vec::Vec<ObjectInfo>,
4889}
4890#[derive(Clone, PartialEq, ::prost::Message)]
4891pub struct ObjectInfoWithLinks {
4892    #[prost(string, tag = "1")]
4893    pub id: ::prost::alloc::string::String,
4894    #[prost(message, optional, tag = "2")]
4895    pub info: ::core::option::Option<ObjectInfo>,
4896    #[prost(message, optional, tag = "3")]
4897    pub links: ::core::option::Option<ObjectLinksInfo>,
4898}
4899#[derive(Clone, PartialEq, ::prost::Message)]
4900pub struct ObjectInfoWithOutboundLinks {
4901    #[prost(string, tag = "1")]
4902    pub id: ::prost::alloc::string::String,
4903    #[prost(message, optional, tag = "2")]
4904    pub info: ::core::option::Option<ObjectInfo>,
4905    #[prost(message, repeated, tag = "3")]
4906    pub outbound_links: ::prost::alloc::vec::Vec<ObjectInfo>,
4907}
4908#[derive(Clone, PartialEq, ::prost::Message)]
4909pub struct ObjectInfoWithOutboundLinksIDs {
4910    #[prost(string, tag = "1")]
4911    pub id: ::prost::alloc::string::String,
4912    #[prost(message, optional, tag = "2")]
4913    pub info: ::core::option::Option<ObjectInfo>,
4914    #[prost(string, repeated, tag = "3")]
4915    pub outbound_links: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4916}
4917#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4918pub struct ObjectStoreChecksums {
4919    #[prost(string, tag = "1")]
4920    pub bundled_object_types: ::prost::alloc::string::String,
4921    #[prost(string, tag = "2")]
4922    pub bundled_relations: ::prost::alloc::string::String,
4923    #[prost(string, tag = "3")]
4924    pub bundled_layouts: ::prost::alloc::string::String,
4925    /// increased in order to trigger all objects reindex
4926    #[prost(int32, tag = "4")]
4927    pub objects_force_reindex_counter: i32,
4928    /// increased in order to fully reindex all objects
4929    #[prost(int32, tag = "5")]
4930    pub files_force_reindex_counter: i32,
4931    /// increased in order to remove indexes and reindex everything. Automatically triggers objects and files reindex(one time only)
4932    #[prost(int32, tag = "6")]
4933    pub idx_rebuild_counter: i32,
4934    /// DEPRECATED increased in order to perform fulltext indexing for all type of objects (useful when we change fulltext config)
4935    #[prost(int32, tag = "7")]
4936    pub fulltext_rebuild: i32,
4937    /// DEPRECATED remove all the fulltext indexes and add to reindex queue after
4938    #[prost(int32, tag = "11")]
4939    pub fulltext_erase: i32,
4940    #[prost(string, tag = "8")]
4941    pub bundled_templates: ::prost::alloc::string::String,
4942    /// anytypeProfile and maybe some others in the feature
4943    #[prost(int32, tag = "9")]
4944    pub bundled_objects: i32,
4945    #[prost(int32, tag = "10")]
4946    pub filestore_keys_force_reindex_counter: i32,
4947    #[prost(bool, tag = "12")]
4948    pub are_old_files_removed: bool,
4949    /// DEPRECATED
4950    #[prost(bool, tag = "13")]
4951    pub are_deleted_objects_reindexed: bool,
4952    #[prost(int32, tag = "14")]
4953    pub links_erase: i32,
4954    #[prost(int32, tag = "15")]
4955    pub marketplace_force_reindex_counter: i32,
4956    #[prost(int32, tag = "16")]
4957    pub reindex_deleted_objects: i32,
4958    #[prost(int32, tag = "17")]
4959    pub reindex_participants: i32,
4960    #[prost(int32, tag = "18")]
4961    pub reindex_chats: i32,
4962    #[prost(int32, tag = "19")]
4963    pub reindex_fulltext_chat_messages: i32,
4964    #[prost(int32, tag = "20")]
4965    pub invalidate_objects_index: i32,
4966    #[prost(int32, tag = "21")]
4967    pub reindex_discussions: i32,
4968}