desmos_bindings/proto/desmos/subspaces/v3/
mod.rs

1pub mod authz;
2/// Subspace contains all the data of a Desmos subspace
3#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(
5    Clone,
6    PartialEq,
7    ::prost::Message,
8    schemars::JsonSchema,
9    serde::Serialize,
10    serde::Deserialize,
11    desmos_std_derive::CosmwasmExt,
12)]
13#[proto_message(type_url = "/desmos.subspaces.v3.Subspace")]
14#[serde(rename_all = "snake_case")]
15pub struct Subspace {
16    /// Unique id that identifies the subspace
17    #[prost(uint64, tag = "1")]
18    #[serde(
19        serialize_with = "crate::serde::as_str::serialize",
20        deserialize_with = "crate::serde::as_str::deserialize"
21    )]
22    pub id: u64,
23    /// Human-readable name of the subspace
24    #[prost(string, tag = "2")]
25    pub name: ::prost::alloc::string::String,
26    /// Optional description of this subspace
27    #[prost(string, tag = "3")]
28    pub description: ::prost::alloc::string::String,
29    /// Represents the treasury account that is associated with the subspace
30    #[prost(string, tag = "4")]
31    pub treasury: ::prost::alloc::string::String,
32    /// Address of the user that owns the subspace
33    #[prost(string, tag = "5")]
34    pub owner: ::prost::alloc::string::String,
35    /// Address of the subspace creator
36    #[prost(string, tag = "6")]
37    pub creator: ::prost::alloc::string::String,
38    /// the creation time of the subspace
39    #[prost(message, optional, tag = "7")]
40    pub creation_time: ::core::option::Option<crate::shim::Timestamp>,
41    /// List of fee token denoms with default minimum gas prices allowed inside the
42    /// subspace
43    #[prost(message, repeated, tag = "8")]
44    pub additional_fee_tokens:
45        ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
46}
47/// Section contains the data of a single subspace section
48#[allow(clippy::derive_partial_eq_without_eq)]
49#[derive(
50    Clone,
51    PartialEq,
52    ::prost::Message,
53    schemars::JsonSchema,
54    serde::Serialize,
55    serde::Deserialize,
56    desmos_std_derive::CosmwasmExt,
57)]
58#[proto_message(type_url = "/desmos.subspaces.v3.Section")]
59#[serde(rename_all = "snake_case")]
60pub struct Section {
61    /// Id of the subspace inside which the section exists
62    #[prost(uint64, tag = "1")]
63    #[serde(
64        serialize_with = "crate::serde::as_str::serialize",
65        deserialize_with = "crate::serde::as_str::deserialize"
66    )]
67    pub subspace_id: u64,
68    /// Unique id of the section within the subspace
69    #[prost(uint32, tag = "2")]
70    pub id: u32,
71    /// (optional) Id of the parent section
72    #[prost(uint32, tag = "3")]
73    pub parent_id: u32,
74    /// Name of the section within the subspace
75    #[prost(string, tag = "4")]
76    pub name: ::prost::alloc::string::String,
77    /// (optional) Description of the section
78    #[prost(string, tag = "5")]
79    pub description: ::prost::alloc::string::String,
80}
81/// UserGroup represents a group of users
82#[allow(clippy::derive_partial_eq_without_eq)]
83#[derive(
84    Clone,
85    PartialEq,
86    ::prost::Message,
87    schemars::JsonSchema,
88    serde::Serialize,
89    serde::Deserialize,
90    desmos_std_derive::CosmwasmExt,
91)]
92#[proto_message(type_url = "/desmos.subspaces.v3.UserGroup")]
93#[serde(rename_all = "snake_case")]
94pub struct UserGroup {
95    /// ID of the subspace inside which this group exists
96    #[prost(uint64, tag = "1")]
97    #[serde(
98        serialize_with = "crate::serde::as_str::serialize",
99        deserialize_with = "crate::serde::as_str::deserialize"
100    )]
101    pub subspace_id: u64,
102    /// (optional) Id of the section inside which this group is valid
103    #[prost(uint32, tag = "2")]
104    pub section_id: u32,
105    /// Unique id that identifies the group
106    #[prost(uint32, tag = "3")]
107    pub id: u32,
108    /// Human-readable name of the user group
109    #[prost(string, tag = "4")]
110    pub name: ::prost::alloc::string::String,
111    /// Optional description of this group
112    #[prost(string, tag = "5")]
113    pub description: ::prost::alloc::string::String,
114    /// Permissions that will be granted to all the users part of this group
115    #[prost(string, repeated, tag = "6")]
116    pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
117}
118/// UserPermission represents a single Access Control List entry
119#[allow(clippy::derive_partial_eq_without_eq)]
120#[derive(
121    Clone,
122    PartialEq,
123    ::prost::Message,
124    schemars::JsonSchema,
125    serde::Serialize,
126    serde::Deserialize,
127    desmos_std_derive::CosmwasmExt,
128)]
129#[proto_message(type_url = "/desmos.subspaces.v3.UserPermission")]
130#[serde(rename_all = "snake_case")]
131pub struct UserPermission {
132    #[prost(uint64, tag = "1")]
133    #[serde(
134        serialize_with = "crate::serde::as_str::serialize",
135        deserialize_with = "crate::serde::as_str::deserialize"
136    )]
137    pub subspace_id: u64,
138    #[prost(uint32, tag = "2")]
139    pub section_id: u32,
140    #[prost(string, tag = "3")]
141    pub user: ::prost::alloc::string::String,
142    #[prost(string, repeated, tag = "4")]
143    pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
144}
145/// Grant represents a grant to a user or a group
146#[allow(clippy::derive_partial_eq_without_eq)]
147#[derive(
148    Clone,
149    PartialEq,
150    ::prost::Message,
151    schemars::JsonSchema,
152    serde::Serialize,
153    serde::Deserialize,
154    desmos_std_derive::CosmwasmExt,
155)]
156#[proto_message(type_url = "/desmos.subspaces.v3.Grant")]
157#[serde(rename_all = "snake_case")]
158pub struct Grant {
159    /// Id of the subspace inside which the user was granted the allowance
160    #[prost(uint64, tag = "1")]
161    #[serde(
162        serialize_with = "crate::serde::as_str::serialize",
163        deserialize_with = "crate::serde::as_str::deserialize"
164    )]
165    pub subspace_id: u64,
166    /// Address of the user that granted the allowance
167    #[prost(string, tag = "2")]
168    pub granter: ::prost::alloc::string::String,
169    /// Target to which the allowance has been granted
170    #[prost(message, optional, tag = "3")]
171    pub grantee: ::core::option::Option<crate::shim::Any>,
172    /// Allowance can be any allowance type implementing the FeeAllowanceI
173    /// interface
174    #[prost(message, optional, tag = "4")]
175    pub allowance: ::core::option::Option<crate::shim::Any>,
176}
177/// UserGrantee contains the target of a grant about a user
178#[allow(clippy::derive_partial_eq_without_eq)]
179#[derive(
180    Clone,
181    PartialEq,
182    ::prost::Message,
183    schemars::JsonSchema,
184    serde::Serialize,
185    serde::Deserialize,
186    desmos_std_derive::CosmwasmExt,
187)]
188#[proto_message(type_url = "/desmos.subspaces.v3.UserGrantee")]
189#[serde(rename_all = "snake_case")]
190pub struct UserGrantee {
191    #[prost(string, tag = "1")]
192    pub user: ::prost::alloc::string::String,
193}
194/// GroupGrantee contains the target of a grant about a group
195#[allow(clippy::derive_partial_eq_without_eq)]
196#[derive(
197    Clone,
198    PartialEq,
199    ::prost::Message,
200    schemars::JsonSchema,
201    serde::Serialize,
202    serde::Deserialize,
203    desmos_std_derive::CosmwasmExt,
204)]
205#[proto_message(type_url = "/desmos.subspaces.v3.GroupGrantee")]
206#[serde(rename_all = "snake_case")]
207pub struct GroupGrantee {
208    #[prost(uint32, tag = "1")]
209    pub group_id: u32,
210}
211/// GenesisState contains the data of the genesis state for the subspaces module
212#[allow(clippy::derive_partial_eq_without_eq)]
213#[derive(
214    Clone,
215    PartialEq,
216    ::prost::Message,
217    schemars::JsonSchema,
218    serde::Serialize,
219    serde::Deserialize,
220    desmos_std_derive::CosmwasmExt,
221)]
222#[proto_message(type_url = "/desmos.subspaces.v3.GenesisState")]
223#[serde(rename_all = "snake_case")]
224pub struct GenesisState {
225    #[prost(uint64, tag = "1")]
226    #[serde(
227        serialize_with = "crate::serde::as_str::serialize",
228        deserialize_with = "crate::serde::as_str::deserialize"
229    )]
230    pub initial_subspace_id: u64,
231    #[prost(message, repeated, tag = "2")]
232    pub subspaces_data: ::prost::alloc::vec::Vec<SubspaceData>,
233    #[prost(message, repeated, tag = "3")]
234    pub subspaces: ::prost::alloc::vec::Vec<Subspace>,
235    #[prost(message, repeated, tag = "4")]
236    pub sections: ::prost::alloc::vec::Vec<Section>,
237    #[prost(message, repeated, tag = "5")]
238    pub user_permissions: ::prost::alloc::vec::Vec<UserPermission>,
239    #[prost(message, repeated, tag = "6")]
240    pub user_groups: ::prost::alloc::vec::Vec<UserGroup>,
241    #[prost(message, repeated, tag = "7")]
242    pub user_groups_members: ::prost::alloc::vec::Vec<UserGroupMemberEntry>,
243    #[prost(message, repeated, tag = "8")]
244    pub grants: ::prost::alloc::vec::Vec<Grant>,
245}
246/// SubspaceData contains the genesis data for a single subspace
247#[allow(clippy::derive_partial_eq_without_eq)]
248#[derive(
249    Clone,
250    PartialEq,
251    ::prost::Message,
252    schemars::JsonSchema,
253    serde::Serialize,
254    serde::Deserialize,
255    desmos_std_derive::CosmwasmExt,
256)]
257#[proto_message(type_url = "/desmos.subspaces.v3.SubspaceData")]
258#[serde(rename_all = "snake_case")]
259pub struct SubspaceData {
260    #[prost(uint64, tag = "1")]
261    #[serde(
262        serialize_with = "crate::serde::as_str::serialize",
263        deserialize_with = "crate::serde::as_str::deserialize"
264    )]
265    pub subspace_id: u64,
266    #[prost(uint32, tag = "2")]
267    pub next_group_id: u32,
268    #[prost(uint32, tag = "3")]
269    pub next_section_id: u32,
270}
271/// UserGroupMemberEntry contains the details of a user group member
272#[allow(clippy::derive_partial_eq_without_eq)]
273#[derive(
274    Clone,
275    PartialEq,
276    ::prost::Message,
277    schemars::JsonSchema,
278    serde::Serialize,
279    serde::Deserialize,
280    desmos_std_derive::CosmwasmExt,
281)]
282#[proto_message(type_url = "/desmos.subspaces.v3.UserGroupMemberEntry")]
283#[serde(rename_all = "snake_case")]
284pub struct UserGroupMemberEntry {
285    #[prost(uint64, tag = "1")]
286    #[serde(
287        serialize_with = "crate::serde::as_str::serialize",
288        deserialize_with = "crate::serde::as_str::deserialize"
289    )]
290    pub subspace_id: u64,
291    #[prost(uint32, tag = "2")]
292    pub group_id: u32,
293    #[prost(string, tag = "3")]
294    pub user: ::prost::alloc::string::String,
295}
296/// MsgCreateSubspace represents the message used to create a subspace
297#[allow(clippy::derive_partial_eq_without_eq)]
298#[derive(
299    Clone,
300    PartialEq,
301    ::prost::Message,
302    schemars::JsonSchema,
303    serde::Serialize,
304    serde::Deserialize,
305    desmos_std_derive::CosmwasmExt,
306)]
307#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateSubspace")]
308#[serde(rename_all = "snake_case")]
309pub struct MsgCreateSubspace {
310    /// Name of the subspace
311    #[prost(string, tag = "1")]
312    pub name: ::prost::alloc::string::String,
313    /// (optional) Description of the subspace
314    #[prost(string, tag = "2")]
315    pub description: ::prost::alloc::string::String,
316    /// (optional) Owner of this subspace. If not specified, the creator will be
317    /// the default owner.
318    #[prost(string, tag = "3")]
319    pub owner: ::prost::alloc::string::String,
320    /// Address creating the subspace
321    #[prost(string, tag = "4")]
322    pub creator: ::prost::alloc::string::String,
323}
324/// MsgCreateSubspaceResponse defines the Msg/CreateSubspace response type
325#[allow(clippy::derive_partial_eq_without_eq)]
326#[derive(
327    Clone,
328    PartialEq,
329    ::prost::Message,
330    schemars::JsonSchema,
331    serde::Serialize,
332    serde::Deserialize,
333    desmos_std_derive::CosmwasmExt,
334)]
335#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateSubspaceResponse")]
336#[serde(rename_all = "snake_case")]
337pub struct MsgCreateSubspaceResponse {
338    /// Id of the newly created subspace id
339    #[prost(uint64, tag = "1")]
340    #[serde(
341        serialize_with = "crate::serde::as_str::serialize",
342        deserialize_with = "crate::serde::as_str::deserialize"
343    )]
344    pub subspace_id: u64,
345}
346/// MsgEditSubspace represents the message used to edit a subspace fields
347#[allow(clippy::derive_partial_eq_without_eq)]
348#[derive(
349    Clone,
350    PartialEq,
351    ::prost::Message,
352    schemars::JsonSchema,
353    serde::Serialize,
354    serde::Deserialize,
355    desmos_std_derive::CosmwasmExt,
356)]
357#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditSubspace")]
358#[serde(rename_all = "snake_case")]
359pub struct MsgEditSubspace {
360    /// Id of the subspace to edit
361    #[prost(uint64, tag = "1")]
362    #[serde(
363        serialize_with = "crate::serde::as_str::serialize",
364        deserialize_with = "crate::serde::as_str::deserialize"
365    )]
366    pub subspace_id: u64,
367    /// New name of the subspace. If it shouldn't be changed, use \[do-not-modify\]
368    /// instead.
369    #[prost(string, tag = "2")]
370    pub name: ::prost::alloc::string::String,
371    /// New description of the subspace. If it shouldn't be changed, use
372    /// \[do-not-modify\] instead.
373    #[prost(string, tag = "3")]
374    pub description: ::prost::alloc::string::String,
375    /// New owner of the subspace. If it shouldn't be changed, use \[do-not-modify\]
376    /// instead.
377    #[prost(string, tag = "4")]
378    pub owner: ::prost::alloc::string::String,
379    /// Address of the user editing the subspace
380    #[prost(string, tag = "5")]
381    pub signer: ::prost::alloc::string::String,
382}
383/// MsgEditSubspaceResponse defines the Msg/EditSubspace response type
384#[allow(clippy::derive_partial_eq_without_eq)]
385#[derive(
386    Clone,
387    PartialEq,
388    ::prost::Message,
389    schemars::JsonSchema,
390    serde::Serialize,
391    serde::Deserialize,
392    desmos_std_derive::CosmwasmExt,
393)]
394#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditSubspaceResponse")]
395#[serde(rename_all = "snake_case")]
396pub struct MsgEditSubspaceResponse {}
397/// MsgDeleteSubspace represents the message used to delete a subspace
398#[allow(clippy::derive_partial_eq_without_eq)]
399#[derive(
400    Clone,
401    PartialEq,
402    ::prost::Message,
403    schemars::JsonSchema,
404    serde::Serialize,
405    serde::Deserialize,
406    desmos_std_derive::CosmwasmExt,
407)]
408#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteSubspace")]
409#[serde(rename_all = "snake_case")]
410pub struct MsgDeleteSubspace {
411    /// Id of the subspace to delete
412    #[prost(uint64, tag = "1")]
413    #[serde(
414        serialize_with = "crate::serde::as_str::serialize",
415        deserialize_with = "crate::serde::as_str::deserialize"
416    )]
417    pub subspace_id: u64,
418    /// Address of the user deleting the subspace
419    #[prost(string, tag = "2")]
420    pub signer: ::prost::alloc::string::String,
421}
422/// MsgDeleteSubspaceResponse defines the Msg/DeleteSubspace response type
423#[allow(clippy::derive_partial_eq_without_eq)]
424#[derive(
425    Clone,
426    PartialEq,
427    ::prost::Message,
428    schemars::JsonSchema,
429    serde::Serialize,
430    serde::Deserialize,
431    desmos_std_derive::CosmwasmExt,
432)]
433#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteSubspaceResponse")]
434#[serde(rename_all = "snake_case")]
435pub struct MsgDeleteSubspaceResponse {}
436/// MsgCreateSection represents the message to be used when creating a subspace
437/// section
438#[allow(clippy::derive_partial_eq_without_eq)]
439#[derive(
440    Clone,
441    PartialEq,
442    ::prost::Message,
443    schemars::JsonSchema,
444    serde::Serialize,
445    serde::Deserialize,
446    desmos_std_derive::CosmwasmExt,
447)]
448#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateSection")]
449#[serde(rename_all = "snake_case")]
450pub struct MsgCreateSection {
451    /// Id of the subspace inside which the section will be placed
452    #[prost(uint64, tag = "1")]
453    #[serde(
454        serialize_with = "crate::serde::as_str::serialize",
455        deserialize_with = "crate::serde::as_str::deserialize"
456    )]
457    pub subspace_id: u64,
458    /// Name of the section to be created
459    #[prost(string, tag = "2")]
460    pub name: ::prost::alloc::string::String,
461    /// (optional) Description of the section
462    #[prost(string, tag = "3")]
463    pub description: ::prost::alloc::string::String,
464    /// (optional) Id of the parent section
465    #[prost(uint32, tag = "4")]
466    pub parent_id: u32,
467    /// User creating the section
468    #[prost(string, tag = "5")]
469    pub creator: ::prost::alloc::string::String,
470}
471/// MsgCreateSectionResponse represents the Msg/CreateSection response type
472#[allow(clippy::derive_partial_eq_without_eq)]
473#[derive(
474    Clone,
475    PartialEq,
476    ::prost::Message,
477    schemars::JsonSchema,
478    serde::Serialize,
479    serde::Deserialize,
480    desmos_std_derive::CosmwasmExt,
481)]
482#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateSectionResponse")]
483#[serde(rename_all = "snake_case")]
484pub struct MsgCreateSectionResponse {
485    /// Id of the newly created section
486    #[prost(uint32, tag = "1")]
487    pub section_id: u32,
488}
489/// MsgEditSection represents the message to be used when editing a subspace
490/// section
491#[allow(clippy::derive_partial_eq_without_eq)]
492#[derive(
493    Clone,
494    PartialEq,
495    ::prost::Message,
496    schemars::JsonSchema,
497    serde::Serialize,
498    serde::Deserialize,
499    desmos_std_derive::CosmwasmExt,
500)]
501#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditSection")]
502#[serde(rename_all = "snake_case")]
503pub struct MsgEditSection {
504    /// Id of the subspace inside which the section to be edited is
505    #[prost(uint64, tag = "1")]
506    #[serde(
507        serialize_with = "crate::serde::as_str::serialize",
508        deserialize_with = "crate::serde::as_str::deserialize"
509    )]
510    pub subspace_id: u64,
511    /// Id of the section to be edited
512    #[prost(uint32, tag = "2")]
513    pub section_id: u32,
514    /// (optional) New name of the section
515    #[prost(string, tag = "3")]
516    pub name: ::prost::alloc::string::String,
517    /// (optional) New description of the section
518    #[prost(string, tag = "4")]
519    pub description: ::prost::alloc::string::String,
520    /// User editing the section
521    #[prost(string, tag = "5")]
522    pub editor: ::prost::alloc::string::String,
523}
524/// MsgEditSectionResponse represents the Msg/EditSection response type
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(
527    Clone,
528    PartialEq,
529    ::prost::Message,
530    schemars::JsonSchema,
531    serde::Serialize,
532    serde::Deserialize,
533    desmos_std_derive::CosmwasmExt,
534)]
535#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditSectionResponse")]
536#[serde(rename_all = "snake_case")]
537pub struct MsgEditSectionResponse {}
538/// MsgMoveSection represents the message to be used when moving a section to
539/// another parent
540#[allow(clippy::derive_partial_eq_without_eq)]
541#[derive(
542    Clone,
543    PartialEq,
544    ::prost::Message,
545    schemars::JsonSchema,
546    serde::Serialize,
547    serde::Deserialize,
548    desmos_std_derive::CosmwasmExt,
549)]
550#[proto_message(type_url = "/desmos.subspaces.v3.MsgMoveSection")]
551#[serde(rename_all = "snake_case")]
552pub struct MsgMoveSection {
553    /// Id of the subspace inside which the section lies
554    #[prost(uint64, tag = "1")]
555    #[serde(
556        serialize_with = "crate::serde::as_str::serialize",
557        deserialize_with = "crate::serde::as_str::deserialize"
558    )]
559    pub subspace_id: u64,
560    /// Id of the section to be moved
561    #[prost(uint32, tag = "2")]
562    pub section_id: u32,
563    /// Id of the new parent
564    #[prost(uint32, tag = "3")]
565    pub new_parent_id: u32,
566    /// Signer of the message
567    #[prost(string, tag = "4")]
568    pub signer: ::prost::alloc::string::String,
569}
570/// MsgMoveSectionResponse
571#[allow(clippy::derive_partial_eq_without_eq)]
572#[derive(
573    Clone,
574    PartialEq,
575    ::prost::Message,
576    schemars::JsonSchema,
577    serde::Serialize,
578    serde::Deserialize,
579    desmos_std_derive::CosmwasmExt,
580)]
581#[proto_message(type_url = "/desmos.subspaces.v3.MsgMoveSectionResponse")]
582#[serde(rename_all = "snake_case")]
583pub struct MsgMoveSectionResponse {}
584/// MsgDeleteSection represents the message to be used when deleting a section
585#[allow(clippy::derive_partial_eq_without_eq)]
586#[derive(
587    Clone,
588    PartialEq,
589    ::prost::Message,
590    schemars::JsonSchema,
591    serde::Serialize,
592    serde::Deserialize,
593    desmos_std_derive::CosmwasmExt,
594)]
595#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteSection")]
596#[serde(rename_all = "snake_case")]
597pub struct MsgDeleteSection {
598    /// Id of the subspace inside which the section to be deleted is
599    #[prost(uint64, tag = "1")]
600    #[serde(
601        serialize_with = "crate::serde::as_str::serialize",
602        deserialize_with = "crate::serde::as_str::deserialize"
603    )]
604    pub subspace_id: u64,
605    /// Id of the section to delete
606    #[prost(uint32, tag = "2")]
607    pub section_id: u32,
608    /// User deleting the section
609    #[prost(string, tag = "3")]
610    pub signer: ::prost::alloc::string::String,
611}
612/// MsgDeleteSectionResponse represents the Msg/DeleteSection response type
613#[allow(clippy::derive_partial_eq_without_eq)]
614#[derive(
615    Clone,
616    PartialEq,
617    ::prost::Message,
618    schemars::JsonSchema,
619    serde::Serialize,
620    serde::Deserialize,
621    desmos_std_derive::CosmwasmExt,
622)]
623#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteSectionResponse")]
624#[serde(rename_all = "snake_case")]
625pub struct MsgDeleteSectionResponse {}
626/// MsgCreateUserGroup represents the message used to create a user group
627#[allow(clippy::derive_partial_eq_without_eq)]
628#[derive(
629    Clone,
630    PartialEq,
631    ::prost::Message,
632    schemars::JsonSchema,
633    serde::Serialize,
634    serde::Deserialize,
635    desmos_std_derive::CosmwasmExt,
636)]
637#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateUserGroup")]
638#[serde(rename_all = "snake_case")]
639pub struct MsgCreateUserGroup {
640    /// Id of the subspace inside which the group will be created
641    #[prost(uint64, tag = "1")]
642    #[serde(
643        serialize_with = "crate::serde::as_str::serialize",
644        deserialize_with = "crate::serde::as_str::deserialize"
645    )]
646    pub subspace_id: u64,
647    /// (optional) Id of the section inside which the group will be created
648    #[prost(uint32, tag = "2")]
649    pub section_id: u32,
650    /// Name of the group
651    #[prost(string, tag = "3")]
652    pub name: ::prost::alloc::string::String,
653    /// (optional) Description of the group
654    #[prost(string, tag = "4")]
655    pub description: ::prost::alloc::string::String,
656    /// Default permissions to be applied to the group
657    #[prost(string, repeated, tag = "5")]
658    pub default_permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
659    /// Initial members to be put inside the group
660    #[prost(string, repeated, tag = "6")]
661    pub initial_members: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
662    /// Creator of the group
663    #[prost(string, tag = "7")]
664    pub creator: ::prost::alloc::string::String,
665}
666/// MsgCreateUserGroupResponse defines the Msg/CreateUserGroup response type
667#[allow(clippy::derive_partial_eq_without_eq)]
668#[derive(
669    Clone,
670    PartialEq,
671    ::prost::Message,
672    schemars::JsonSchema,
673    serde::Serialize,
674    serde::Deserialize,
675    desmos_std_derive::CosmwasmExt,
676)]
677#[proto_message(type_url = "/desmos.subspaces.v3.MsgCreateUserGroupResponse")]
678#[serde(rename_all = "snake_case")]
679pub struct MsgCreateUserGroupResponse {
680    #[prost(uint32, tag = "1")]
681    pub group_id: u32,
682}
683/// MsgEditUserGroup represents the message used to edit a user group
684#[allow(clippy::derive_partial_eq_without_eq)]
685#[derive(
686    Clone,
687    PartialEq,
688    ::prost::Message,
689    schemars::JsonSchema,
690    serde::Serialize,
691    serde::Deserialize,
692    desmos_std_derive::CosmwasmExt,
693)]
694#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditUserGroup")]
695#[serde(rename_all = "snake_case")]
696pub struct MsgEditUserGroup {
697    /// Id of the subspace inside which the group to be edited is
698    #[prost(uint64, tag = "1")]
699    #[serde(
700        serialize_with = "crate::serde::as_str::serialize",
701        deserialize_with = "crate::serde::as_str::deserialize"
702    )]
703    pub subspace_id: u64,
704    /// Id of the group to be edited
705    #[prost(uint32, tag = "2")]
706    pub group_id: u32,
707    /// (optional) New name of the group
708    #[prost(string, tag = "3")]
709    pub name: ::prost::alloc::string::String,
710    /// (optional) New description of the group
711    #[prost(string, tag = "4")]
712    pub description: ::prost::alloc::string::String,
713    /// User editing the group
714    #[prost(string, tag = "5")]
715    pub signer: ::prost::alloc::string::String,
716}
717/// MsgEditUserGroupResponse defines the Msg/EditUserGroup response type
718#[allow(clippy::derive_partial_eq_without_eq)]
719#[derive(
720    Clone,
721    PartialEq,
722    ::prost::Message,
723    schemars::JsonSchema,
724    serde::Serialize,
725    serde::Deserialize,
726    desmos_std_derive::CosmwasmExt,
727)]
728#[proto_message(type_url = "/desmos.subspaces.v3.MsgEditUserGroupResponse")]
729#[serde(rename_all = "snake_case")]
730pub struct MsgEditUserGroupResponse {}
731/// MsgMoveUserGroup represents the message used to move one user group from a
732/// section to another
733#[allow(clippy::derive_partial_eq_without_eq)]
734#[derive(
735    Clone,
736    PartialEq,
737    ::prost::Message,
738    schemars::JsonSchema,
739    serde::Serialize,
740    serde::Deserialize,
741    desmos_std_derive::CosmwasmExt,
742)]
743#[proto_message(type_url = "/desmos.subspaces.v3.MsgMoveUserGroup")]
744#[serde(rename_all = "snake_case")]
745pub struct MsgMoveUserGroup {
746    /// Id of the subspace inside which the group to move is
747    #[prost(uint64, tag = "1")]
748    #[serde(
749        serialize_with = "crate::serde::as_str::serialize",
750        deserialize_with = "crate::serde::as_str::deserialize"
751    )]
752    pub subspace_id: u64,
753    /// Id of the group to be moved
754    #[prost(uint32, tag = "2")]
755    pub group_id: u32,
756    /// Id of the new section where to move the group
757    #[prost(uint32, tag = "3")]
758    pub new_section_id: u32,
759    /// User signing the message
760    #[prost(string, tag = "4")]
761    pub signer: ::prost::alloc::string::String,
762}
763/// MsgMoveUserGroupResponse defines the Msg/MoveUserGroup response type
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(
766    Clone,
767    PartialEq,
768    ::prost::Message,
769    schemars::JsonSchema,
770    serde::Serialize,
771    serde::Deserialize,
772    desmos_std_derive::CosmwasmExt,
773)]
774#[proto_message(type_url = "/desmos.subspaces.v3.MsgMoveUserGroupResponse")]
775#[serde(rename_all = "snake_case")]
776pub struct MsgMoveUserGroupResponse {}
777/// MsgSetUserGroupPermissions represents the message used to set the permissions
778/// of a user group
779#[allow(clippy::derive_partial_eq_without_eq)]
780#[derive(
781    Clone,
782    PartialEq,
783    ::prost::Message,
784    schemars::JsonSchema,
785    serde::Serialize,
786    serde::Deserialize,
787    desmos_std_derive::CosmwasmExt,
788)]
789#[proto_message(type_url = "/desmos.subspaces.v3.MsgSetUserGroupPermissions")]
790#[serde(rename_all = "snake_case")]
791pub struct MsgSetUserGroupPermissions {
792    /// Id of the subspace inside which the group is
793    #[prost(uint64, tag = "1")]
794    #[serde(
795        serialize_with = "crate::serde::as_str::serialize",
796        deserialize_with = "crate::serde::as_str::deserialize"
797    )]
798    pub subspace_id: u64,
799    /// Id of the group for which to set the new permissions
800    #[prost(uint32, tag = "2")]
801    pub group_id: u32,
802    /// New permissions to be set to the group
803    #[prost(string, repeated, tag = "3")]
804    pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
805    /// User setting the new permissions
806    #[prost(string, tag = "4")]
807    pub signer: ::prost::alloc::string::String,
808}
809/// MsgSetUserGroupPermissionsResponse defines the
810/// Msg/SetUserGroupPermissionsResponse response type
811#[allow(clippy::derive_partial_eq_without_eq)]
812#[derive(
813    Clone,
814    PartialEq,
815    ::prost::Message,
816    schemars::JsonSchema,
817    serde::Serialize,
818    serde::Deserialize,
819    desmos_std_derive::CosmwasmExt,
820)]
821#[proto_message(type_url = "/desmos.subspaces.v3.MsgSetUserGroupPermissionsResponse")]
822#[serde(rename_all = "snake_case")]
823pub struct MsgSetUserGroupPermissionsResponse {}
824/// MsgDeleteUserGroup represents the message used to delete a user group
825#[allow(clippy::derive_partial_eq_without_eq)]
826#[derive(
827    Clone,
828    PartialEq,
829    ::prost::Message,
830    schemars::JsonSchema,
831    serde::Serialize,
832    serde::Deserialize,
833    desmos_std_derive::CosmwasmExt,
834)]
835#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteUserGroup")]
836#[serde(rename_all = "snake_case")]
837pub struct MsgDeleteUserGroup {
838    /// Id of the subspace inside which the group to delete is
839    #[prost(uint64, tag = "1")]
840    #[serde(
841        serialize_with = "crate::serde::as_str::serialize",
842        deserialize_with = "crate::serde::as_str::deserialize"
843    )]
844    pub subspace_id: u64,
845    /// Id of the group to be deleted
846    #[prost(uint32, tag = "2")]
847    pub group_id: u32,
848    /// User deleting the group
849    #[prost(string, tag = "3")]
850    pub signer: ::prost::alloc::string::String,
851}
852/// MsgDeleteUserGroupResponse defines the Msg/DeleteUserGroup response type
853#[allow(clippy::derive_partial_eq_without_eq)]
854#[derive(
855    Clone,
856    PartialEq,
857    ::prost::Message,
858    schemars::JsonSchema,
859    serde::Serialize,
860    serde::Deserialize,
861    desmos_std_derive::CosmwasmExt,
862)]
863#[proto_message(type_url = "/desmos.subspaces.v3.MsgDeleteUserGroupResponse")]
864#[serde(rename_all = "snake_case")]
865pub struct MsgDeleteUserGroupResponse {}
866/// MsgAddUserToUserGroup represents the message used to add a user to a user
867/// group
868#[allow(clippy::derive_partial_eq_without_eq)]
869#[derive(
870    Clone,
871    PartialEq,
872    ::prost::Message,
873    schemars::JsonSchema,
874    serde::Serialize,
875    serde::Deserialize,
876    desmos_std_derive::CosmwasmExt,
877)]
878#[proto_message(type_url = "/desmos.subspaces.v3.MsgAddUserToUserGroup")]
879#[serde(rename_all = "snake_case")]
880pub struct MsgAddUserToUserGroup {
881    /// Id of the subspace inside which the group is
882    #[prost(uint64, tag = "1")]
883    #[serde(
884        serialize_with = "crate::serde::as_str::serialize",
885        deserialize_with = "crate::serde::as_str::deserialize"
886    )]
887    pub subspace_id: u64,
888    /// Id of the group to which to add the user
889    #[prost(uint32, tag = "2")]
890    pub group_id: u32,
891    /// User to be added to the group
892    #[prost(string, tag = "3")]
893    pub user: ::prost::alloc::string::String,
894    /// User signing the message
895    #[prost(string, tag = "4")]
896    pub signer: ::prost::alloc::string::String,
897}
898/// MsgAddUserToUserGroupResponse defines the Msg/AddUserToUserGroupResponse
899/// response type
900#[allow(clippy::derive_partial_eq_without_eq)]
901#[derive(
902    Clone,
903    PartialEq,
904    ::prost::Message,
905    schemars::JsonSchema,
906    serde::Serialize,
907    serde::Deserialize,
908    desmos_std_derive::CosmwasmExt,
909)]
910#[proto_message(type_url = "/desmos.subspaces.v3.MsgAddUserToUserGroupResponse")]
911#[serde(rename_all = "snake_case")]
912pub struct MsgAddUserToUserGroupResponse {}
913/// MsgRemoveUserFromUserGroup represents the message used to remove a user from
914/// a user group
915#[allow(clippy::derive_partial_eq_without_eq)]
916#[derive(
917    Clone,
918    PartialEq,
919    ::prost::Message,
920    schemars::JsonSchema,
921    serde::Serialize,
922    serde::Deserialize,
923    desmos_std_derive::CosmwasmExt,
924)]
925#[proto_message(type_url = "/desmos.subspaces.v3.MsgRemoveUserFromUserGroup")]
926#[serde(rename_all = "snake_case")]
927pub struct MsgRemoveUserFromUserGroup {
928    /// Id of the subspace inside which the group to remove the user from is
929    #[prost(uint64, tag = "1")]
930    #[serde(
931        serialize_with = "crate::serde::as_str::serialize",
932        deserialize_with = "crate::serde::as_str::deserialize"
933    )]
934    pub subspace_id: u64,
935    /// Id of the group from which to remove the user
936    #[prost(uint32, tag = "2")]
937    pub group_id: u32,
938    /// User to be removed from the group
939    #[prost(string, tag = "3")]
940    pub user: ::prost::alloc::string::String,
941    /// User signing the message
942    #[prost(string, tag = "4")]
943    pub signer: ::prost::alloc::string::String,
944}
945/// MsgRemoveUserFromUserGroupResponse defines the
946/// Msg/RemoveUserFromUserGroupResponse response type
947#[allow(clippy::derive_partial_eq_without_eq)]
948#[derive(
949    Clone,
950    PartialEq,
951    ::prost::Message,
952    schemars::JsonSchema,
953    serde::Serialize,
954    serde::Deserialize,
955    desmos_std_derive::CosmwasmExt,
956)]
957#[proto_message(type_url = "/desmos.subspaces.v3.MsgRemoveUserFromUserGroupResponse")]
958#[serde(rename_all = "snake_case")]
959pub struct MsgRemoveUserFromUserGroupResponse {}
960/// MsgSetUserPermissions represents the message used to set the permissions of a
961/// specific user
962#[allow(clippy::derive_partial_eq_without_eq)]
963#[derive(
964    Clone,
965    PartialEq,
966    ::prost::Message,
967    schemars::JsonSchema,
968    serde::Serialize,
969    serde::Deserialize,
970    desmos_std_derive::CosmwasmExt,
971)]
972#[proto_message(type_url = "/desmos.subspaces.v3.MsgSetUserPermissions")]
973#[serde(rename_all = "snake_case")]
974pub struct MsgSetUserPermissions {
975    /// Id of the subspace inside which to set the permissions
976    #[prost(uint64, tag = "1")]
977    #[serde(
978        serialize_with = "crate::serde::as_str::serialize",
979        deserialize_with = "crate::serde::as_str::deserialize"
980    )]
981    pub subspace_id: u64,
982    /// Id of the section for which to set the permissions
983    #[prost(uint32, tag = "2")]
984    pub section_id: u32,
985    /// User for which to set the permissions
986    #[prost(string, tag = "3")]
987    pub user: ::prost::alloc::string::String,
988    /// Permissions to be set to the user
989    #[prost(string, repeated, tag = "4")]
990    pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
991    /// User signing the message
992    #[prost(string, tag = "5")]
993    pub signer: ::prost::alloc::string::String,
994}
995/// MsgSetUserPermissionsResponse defines the Msg/SetPermissionsResponse
996/// response type
997#[allow(clippy::derive_partial_eq_without_eq)]
998#[derive(
999    Clone,
1000    PartialEq,
1001    ::prost::Message,
1002    schemars::JsonSchema,
1003    serde::Serialize,
1004    serde::Deserialize,
1005    desmos_std_derive::CosmwasmExt,
1006)]
1007#[proto_message(type_url = "/desmos.subspaces.v3.MsgSetUserPermissionsResponse")]
1008#[serde(rename_all = "snake_case")]
1009pub struct MsgSetUserPermissionsResponse {}
1010/// MsgGrantAllowance adds grants for the grantee to spend up allowance of fees
1011/// from the treasury inside the given subspace
1012#[allow(clippy::derive_partial_eq_without_eq)]
1013#[derive(
1014    Clone,
1015    PartialEq,
1016    ::prost::Message,
1017    schemars::JsonSchema,
1018    serde::Serialize,
1019    serde::Deserialize,
1020    desmos_std_derive::CosmwasmExt,
1021)]
1022#[proto_message(type_url = "/desmos.subspaces.v3.MsgGrantAllowance")]
1023#[serde(rename_all = "snake_case")]
1024pub struct MsgGrantAllowance {
1025    /// Id of the subspace inside which where the allowance should be granted
1026    #[prost(uint64, tag = "1")]
1027    #[serde(
1028        serialize_with = "crate::serde::as_str::serialize",
1029        deserialize_with = "crate::serde::as_str::deserialize"
1030    )]
1031    pub subspace_id: u64,
1032    /// Address of the user granting the allowance
1033    #[prost(string, tag = "2")]
1034    pub granter: ::prost::alloc::string::String,
1035    /// Target being granted the allowance
1036    #[prost(message, optional, tag = "3")]
1037    pub grantee: ::core::option::Option<crate::shim::Any>,
1038    /// Allowance can be any allowance type that implements AllowanceI
1039    #[prost(message, optional, tag = "4")]
1040    pub allowance: ::core::option::Option<crate::shim::Any>,
1041}
1042/// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response
1043/// type.
1044#[allow(clippy::derive_partial_eq_without_eq)]
1045#[derive(
1046    Clone,
1047    PartialEq,
1048    ::prost::Message,
1049    schemars::JsonSchema,
1050    serde::Serialize,
1051    serde::Deserialize,
1052    desmos_std_derive::CosmwasmExt,
1053)]
1054#[proto_message(type_url = "/desmos.subspaces.v3.MsgGrantAllowanceResponse")]
1055#[serde(rename_all = "snake_case")]
1056pub struct MsgGrantAllowanceResponse {}
1057/// MsgRevokeAllowance removes any existing allowance to the grantee inside the
1058/// subspace
1059#[allow(clippy::derive_partial_eq_without_eq)]
1060#[derive(
1061    Clone,
1062    PartialEq,
1063    ::prost::Message,
1064    schemars::JsonSchema,
1065    serde::Serialize,
1066    serde::Deserialize,
1067    desmos_std_derive::CosmwasmExt,
1068)]
1069#[proto_message(type_url = "/desmos.subspaces.v3.MsgRevokeAllowance")]
1070#[serde(rename_all = "snake_case")]
1071pub struct MsgRevokeAllowance {
1072    /// If of the subspace inside which the allowance to be deleted is
1073    #[prost(uint64, tag = "1")]
1074    #[serde(
1075        serialize_with = "crate::serde::as_str::serialize",
1076        deserialize_with = "crate::serde::as_str::deserialize"
1077    )]
1078    pub subspace_id: u64,
1079    /// Address of the user that created the allowance
1080    #[prost(string, tag = "2")]
1081    pub granter: ::prost::alloc::string::String,
1082    /// Target being revoked the allowance
1083    #[prost(message, optional, tag = "3")]
1084    pub grantee: ::core::option::Option<crate::shim::Any>,
1085}
1086/// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse
1087/// response type.
1088#[allow(clippy::derive_partial_eq_without_eq)]
1089#[derive(
1090    Clone,
1091    PartialEq,
1092    ::prost::Message,
1093    schemars::JsonSchema,
1094    serde::Serialize,
1095    serde::Deserialize,
1096    desmos_std_derive::CosmwasmExt,
1097)]
1098#[proto_message(type_url = "/desmos.subspaces.v3.MsgRevokeAllowanceResponse")]
1099#[serde(rename_all = "snake_case")]
1100pub struct MsgRevokeAllowanceResponse {}
1101/// MsgGrantTreasuryAuthorization grants an authorization on behalf of the
1102/// treasury to a user
1103#[allow(clippy::derive_partial_eq_without_eq)]
1104#[derive(
1105    Clone,
1106    PartialEq,
1107    ::prost::Message,
1108    schemars::JsonSchema,
1109    serde::Serialize,
1110    serde::Deserialize,
1111    desmos_std_derive::CosmwasmExt,
1112)]
1113#[proto_message(type_url = "/desmos.subspaces.v3.MsgGrantTreasuryAuthorization")]
1114#[serde(rename_all = "snake_case")]
1115pub struct MsgGrantTreasuryAuthorization {
1116    /// Id of the subspace where the authorization should be granted
1117    #[prost(uint64, tag = "1")]
1118    #[serde(
1119        serialize_with = "crate::serde::as_str::serialize",
1120        deserialize_with = "crate::serde::as_str::deserialize"
1121    )]
1122    pub subspace_id: u64,
1123    /// Address of the user granting a treasury authorization
1124    #[prost(string, tag = "2")]
1125    pub granter: ::prost::alloc::string::String,
1126    /// Address of the user who is being granted a treasury authorization
1127    #[prost(string, tag = "3")]
1128    pub grantee: ::prost::alloc::string::String,
1129    /// Grant represents the authorization to execute the provided methods
1130    #[prost(message, optional, tag = "4")]
1131    pub grant: ::core::option::Option<super::super::super::cosmos::authz::v1beta1::Grant>,
1132}
1133/// MsgGrantTreasuryAuthorizationResponse defines the
1134/// Msg/MsgGrantTreasuryAuthorization response type
1135#[allow(clippy::derive_partial_eq_without_eq)]
1136#[derive(
1137    Clone,
1138    PartialEq,
1139    ::prost::Message,
1140    schemars::JsonSchema,
1141    serde::Serialize,
1142    serde::Deserialize,
1143    desmos_std_derive::CosmwasmExt,
1144)]
1145#[proto_message(type_url = "/desmos.subspaces.v3.MsgGrantTreasuryAuthorizationResponse")]
1146#[serde(rename_all = "snake_case")]
1147pub struct MsgGrantTreasuryAuthorizationResponse {}
1148/// MsgRevokeTreasuryAuthorization revokes an existing treasury authorization
1149/// from a user
1150#[allow(clippy::derive_partial_eq_without_eq)]
1151#[derive(
1152    Clone,
1153    PartialEq,
1154    ::prost::Message,
1155    schemars::JsonSchema,
1156    serde::Serialize,
1157    serde::Deserialize,
1158    desmos_std_derive::CosmwasmExt,
1159)]
1160#[proto_message(type_url = "/desmos.subspaces.v3.MsgRevokeTreasuryAuthorization")]
1161#[serde(rename_all = "snake_case")]
1162pub struct MsgRevokeTreasuryAuthorization {
1163    /// Id of the subspace from which the authorization should be revoked
1164    #[prost(uint64, tag = "1")]
1165    #[serde(
1166        serialize_with = "crate::serde::as_str::serialize",
1167        deserialize_with = "crate::serde::as_str::deserialize"
1168    )]
1169    pub subspace_id: u64,
1170    /// Address of the user revoking the treasury authorization
1171    #[prost(string, tag = "2")]
1172    pub granter: ::prost::alloc::string::String,
1173    /// Address of the user who is being revoked the treasury authorization
1174    #[prost(string, tag = "3")]
1175    pub grantee: ::prost::alloc::string::String,
1176    /// Type url of the authorized message which is being revoked
1177    #[prost(string, tag = "4")]
1178    pub msg_type_url: ::prost::alloc::string::String,
1179}
1180/// MsgRevokeTreasuryAuthorizationResponse defines the
1181/// Msg/MsgRevokeTreasuryAuthorization response type
1182#[allow(clippy::derive_partial_eq_without_eq)]
1183#[derive(
1184    Clone,
1185    PartialEq,
1186    ::prost::Message,
1187    schemars::JsonSchema,
1188    serde::Serialize,
1189    serde::Deserialize,
1190    desmos_std_derive::CosmwasmExt,
1191)]
1192#[proto_message(type_url = "/desmos.subspaces.v3.MsgRevokeTreasuryAuthorizationResponse")]
1193#[serde(rename_all = "snake_case")]
1194pub struct MsgRevokeTreasuryAuthorizationResponse {}
1195/// MsgUpdateSubspaceFeeTokens represents the message to be used to update the
1196/// accepted fee tokens inside a given subspace, using an on-chain governance
1197/// proposal
1198///
1199/// Since: Desmos 6.0.0
1200#[allow(clippy::derive_partial_eq_without_eq)]
1201#[derive(
1202    Clone,
1203    PartialEq,
1204    ::prost::Message,
1205    schemars::JsonSchema,
1206    serde::Serialize,
1207    serde::Deserialize,
1208    desmos_std_derive::CosmwasmExt,
1209)]
1210#[proto_message(type_url = "/desmos.subspaces.v3.MsgUpdateSubspaceFeeTokens")]
1211#[serde(rename_all = "snake_case")]
1212pub struct MsgUpdateSubspaceFeeTokens {
1213    /// Id of the subspace where the list of allowed fee tokens will be updated
1214    #[prost(uint64, tag = "1")]
1215    #[serde(
1216        serialize_with = "crate::serde::as_str::serialize",
1217        deserialize_with = "crate::serde::as_str::deserialize"
1218    )]
1219    pub subspace_id: u64,
1220    /// List of tokens allowed to be fee tokens inside the given subspace,
1221    /// represented as their gas prices
1222    #[prost(message, repeated, tag = "2")]
1223    pub additional_fee_tokens:
1224        ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
1225    /// authority is the address that controls the module (defaults to x/gov unless
1226    /// overwritten).
1227    #[prost(string, tag = "3")]
1228    pub authority: ::prost::alloc::string::String,
1229}
1230/// MsgUpdateSubspaceFeeTokensResponse represents the Msg/UpdateSubspaceFeeTokens
1231/// response type
1232///
1233/// Since: Desmos 6.0.0
1234#[allow(clippy::derive_partial_eq_without_eq)]
1235#[derive(
1236    Clone,
1237    PartialEq,
1238    ::prost::Message,
1239    schemars::JsonSchema,
1240    serde::Serialize,
1241    serde::Deserialize,
1242    desmos_std_derive::CosmwasmExt,
1243)]
1244#[proto_message(type_url = "/desmos.subspaces.v3.MsgUpdateSubspaceFeeTokensResponse")]
1245#[serde(rename_all = "snake_case")]
1246pub struct MsgUpdateSubspaceFeeTokensResponse {}
1247/// QuerySubspacesRequest is the request type for the Query/Subspaces RPC method
1248#[allow(clippy::derive_partial_eq_without_eq)]
1249#[derive(
1250    Clone,
1251    PartialEq,
1252    ::prost::Message,
1253    schemars::JsonSchema,
1254    serde::Serialize,
1255    serde::Deserialize,
1256    desmos_std_derive::CosmwasmExt,
1257)]
1258#[proto_message(type_url = "/desmos.subspaces.v3.QuerySubspacesRequest")]
1259#[serde(rename_all = "snake_case")]
1260#[proto_query(
1261    path = "/desmos.subspaces.v3.Query/Subspaces",
1262    response_type = QuerySubspacesResponse
1263)]
1264pub struct QuerySubspacesRequest {
1265    /// pagination defines an optional pagination for the request.
1266    #[prost(message, optional, tag = "1")]
1267    pub pagination:
1268        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1269}
1270/// QuerySubspacesResponse is the response type for the Query/Subspaces RPC
1271/// method
1272#[allow(clippy::derive_partial_eq_without_eq)]
1273#[derive(
1274    Clone,
1275    PartialEq,
1276    ::prost::Message,
1277    schemars::JsonSchema,
1278    serde::Serialize,
1279    serde::Deserialize,
1280    desmos_std_derive::CosmwasmExt,
1281)]
1282#[proto_message(type_url = "/desmos.subspaces.v3.QuerySubspacesResponse")]
1283#[serde(rename_all = "snake_case")]
1284pub struct QuerySubspacesResponse {
1285    #[prost(message, repeated, tag = "1")]
1286    pub subspaces: ::prost::alloc::vec::Vec<Subspace>,
1287    #[prost(message, optional, tag = "2")]
1288    pub pagination:
1289        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1290}
1291/// QuerySubspace is the request type for the Query/Subspace RPC method
1292#[allow(clippy::derive_partial_eq_without_eq)]
1293#[derive(
1294    Clone,
1295    PartialEq,
1296    ::prost::Message,
1297    schemars::JsonSchema,
1298    serde::Serialize,
1299    serde::Deserialize,
1300    desmos_std_derive::CosmwasmExt,
1301)]
1302#[proto_message(type_url = "/desmos.subspaces.v3.QuerySubspaceRequest")]
1303#[serde(rename_all = "snake_case")]
1304#[proto_query(
1305    path = "/desmos.subspaces.v3.Query/Subspace",
1306    response_type = QuerySubspaceResponse
1307)]
1308pub struct QuerySubspaceRequest {
1309    /// Id of the subspace to query
1310    #[prost(uint64, tag = "1")]
1311    #[serde(
1312        serialize_with = "crate::serde::as_str::serialize",
1313        deserialize_with = "crate::serde::as_str::deserialize"
1314    )]
1315    pub subspace_id: u64,
1316}
1317/// QuerySubspaceResponse is the response type for the Query/Subspace method
1318#[allow(clippy::derive_partial_eq_without_eq)]
1319#[derive(
1320    Clone,
1321    PartialEq,
1322    ::prost::Message,
1323    schemars::JsonSchema,
1324    serde::Serialize,
1325    serde::Deserialize,
1326    desmos_std_derive::CosmwasmExt,
1327)]
1328#[proto_message(type_url = "/desmos.subspaces.v3.QuerySubspaceResponse")]
1329#[serde(rename_all = "snake_case")]
1330pub struct QuerySubspaceResponse {
1331    #[prost(message, optional, tag = "1")]
1332    pub subspace: ::core::option::Option<Subspace>,
1333}
1334/// QuerySectionsRequest is the request type for Query/Sections RPC method
1335#[allow(clippy::derive_partial_eq_without_eq)]
1336#[derive(
1337    Clone,
1338    PartialEq,
1339    ::prost::Message,
1340    schemars::JsonSchema,
1341    serde::Serialize,
1342    serde::Deserialize,
1343    desmos_std_derive::CosmwasmExt,
1344)]
1345#[proto_message(type_url = "/desmos.subspaces.v3.QuerySectionsRequest")]
1346#[serde(rename_all = "snake_case")]
1347#[proto_query(
1348    path = "/desmos.subspaces.v3.Query/Sections",
1349    response_type = QuerySectionsResponse
1350)]
1351pub struct QuerySectionsRequest {
1352    /// Id of the subspace to query the sections for
1353    #[prost(uint64, tag = "1")]
1354    #[serde(
1355        serialize_with = "crate::serde::as_str::serialize",
1356        deserialize_with = "crate::serde::as_str::deserialize"
1357    )]
1358    pub subspace_id: u64,
1359    /// pagination defines an optional pagination for the request.
1360    #[prost(message, optional, tag = "2")]
1361    pub pagination:
1362        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1363}
1364/// QuerySectionsResponse is the response type for Query/Sections RPC method
1365#[allow(clippy::derive_partial_eq_without_eq)]
1366#[derive(
1367    Clone,
1368    PartialEq,
1369    ::prost::Message,
1370    schemars::JsonSchema,
1371    serde::Serialize,
1372    serde::Deserialize,
1373    desmos_std_derive::CosmwasmExt,
1374)]
1375#[proto_message(type_url = "/desmos.subspaces.v3.QuerySectionsResponse")]
1376#[serde(rename_all = "snake_case")]
1377pub struct QuerySectionsResponse {
1378    #[prost(message, repeated, tag = "1")]
1379    pub sections: ::prost::alloc::vec::Vec<Section>,
1380    #[prost(message, optional, tag = "2")]
1381    pub pagination:
1382        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1383}
1384/// QuerySectionRequest is the request type for Query/Section RPC method
1385#[allow(clippy::derive_partial_eq_without_eq)]
1386#[derive(
1387    Clone,
1388    PartialEq,
1389    ::prost::Message,
1390    schemars::JsonSchema,
1391    serde::Serialize,
1392    serde::Deserialize,
1393    desmos_std_derive::CosmwasmExt,
1394)]
1395#[proto_message(type_url = "/desmos.subspaces.v3.QuerySectionRequest")]
1396#[serde(rename_all = "snake_case")]
1397#[proto_query(
1398    path = "/desmos.subspaces.v3.Query/Section",
1399    response_type = QuerySectionResponse
1400)]
1401pub struct QuerySectionRequest {
1402    /// Id of the subspace inside which to search for
1403    #[prost(uint64, tag = "1")]
1404    #[serde(
1405        serialize_with = "crate::serde::as_str::serialize",
1406        deserialize_with = "crate::serde::as_str::deserialize"
1407    )]
1408    pub subspace_id: u64,
1409    /// Id of the searched section
1410    #[prost(uint32, tag = "2")]
1411    pub section_id: u32,
1412}
1413/// QuerySectionResponse is the response type for Query/Section RPC method
1414#[allow(clippy::derive_partial_eq_without_eq)]
1415#[derive(
1416    Clone,
1417    PartialEq,
1418    ::prost::Message,
1419    schemars::JsonSchema,
1420    serde::Serialize,
1421    serde::Deserialize,
1422    desmos_std_derive::CosmwasmExt,
1423)]
1424#[proto_message(type_url = "/desmos.subspaces.v3.QuerySectionResponse")]
1425#[serde(rename_all = "snake_case")]
1426pub struct QuerySectionResponse {
1427    #[prost(message, optional, tag = "1")]
1428    pub section: ::core::option::Option<Section>,
1429}
1430/// QueryUserGroupsRequest is the request type for the Query/UserGroups RPC
1431/// method
1432#[allow(clippy::derive_partial_eq_without_eq)]
1433#[derive(
1434    Clone,
1435    PartialEq,
1436    ::prost::Message,
1437    schemars::JsonSchema,
1438    serde::Serialize,
1439    serde::Deserialize,
1440    desmos_std_derive::CosmwasmExt,
1441)]
1442#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupsRequest")]
1443#[serde(rename_all = "snake_case")]
1444#[proto_query(
1445    path = "/desmos.subspaces.v3.Query/UserGroups",
1446    response_type = QueryUserGroupsResponse
1447)]
1448pub struct QueryUserGroupsRequest {
1449    /// Id of the subspace to query the groups for
1450    #[prost(uint64, tag = "1")]
1451    #[serde(
1452        serialize_with = "crate::serde::as_str::serialize",
1453        deserialize_with = "crate::serde::as_str::deserialize"
1454    )]
1455    pub subspace_id: u64,
1456    /// (optional) Section id to query the groups for
1457    #[prost(uint32, tag = "2")]
1458    pub section_id: u32,
1459    /// pagination defines an optional pagination for the request.
1460    #[prost(message, optional, tag = "3")]
1461    pub pagination:
1462        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1463}
1464/// QueryUserGroupsResponse is the response type for the Query/UserGroups RPC
1465/// method
1466#[allow(clippy::derive_partial_eq_without_eq)]
1467#[derive(
1468    Clone,
1469    PartialEq,
1470    ::prost::Message,
1471    schemars::JsonSchema,
1472    serde::Serialize,
1473    serde::Deserialize,
1474    desmos_std_derive::CosmwasmExt,
1475)]
1476#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupsResponse")]
1477#[serde(rename_all = "snake_case")]
1478pub struct QueryUserGroupsResponse {
1479    #[prost(message, repeated, tag = "1")]
1480    pub groups: ::prost::alloc::vec::Vec<UserGroup>,
1481    #[prost(message, optional, tag = "2")]
1482    pub pagination:
1483        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1484}
1485/// QueryUserGroupRequest is the request type for the Query/UserGroup RPC method
1486#[allow(clippy::derive_partial_eq_without_eq)]
1487#[derive(
1488    Clone,
1489    PartialEq,
1490    ::prost::Message,
1491    schemars::JsonSchema,
1492    serde::Serialize,
1493    serde::Deserialize,
1494    desmos_std_derive::CosmwasmExt,
1495)]
1496#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupRequest")]
1497#[serde(rename_all = "snake_case")]
1498#[proto_query(
1499    path = "/desmos.subspaces.v3.Query/UserGroup",
1500    response_type = QueryUserGroupResponse
1501)]
1502pub struct QueryUserGroupRequest {
1503    /// Id of the subspace that contains the group
1504    #[prost(uint64, tag = "1")]
1505    #[serde(
1506        serialize_with = "crate::serde::as_str::serialize",
1507        deserialize_with = "crate::serde::as_str::deserialize"
1508    )]
1509    pub subspace_id: u64,
1510    /// Id of the group to query
1511    #[prost(uint32, tag = "2")]
1512    pub group_id: u32,
1513}
1514/// QueryUserGroupResponse is the response type for the Query/UserGroup RPC
1515/// method
1516#[allow(clippy::derive_partial_eq_without_eq)]
1517#[derive(
1518    Clone,
1519    PartialEq,
1520    ::prost::Message,
1521    schemars::JsonSchema,
1522    serde::Serialize,
1523    serde::Deserialize,
1524    desmos_std_derive::CosmwasmExt,
1525)]
1526#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupResponse")]
1527#[serde(rename_all = "snake_case")]
1528pub struct QueryUserGroupResponse {
1529    #[prost(message, optional, tag = "1")]
1530    pub group: ::core::option::Option<UserGroup>,
1531}
1532/// QueryUserGroupMembersRequest is the request type for the
1533/// Query/UserGroupMembers RPC method
1534#[allow(clippy::derive_partial_eq_without_eq)]
1535#[derive(
1536    Clone,
1537    PartialEq,
1538    ::prost::Message,
1539    schemars::JsonSchema,
1540    serde::Serialize,
1541    serde::Deserialize,
1542    desmos_std_derive::CosmwasmExt,
1543)]
1544#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupMembersRequest")]
1545#[serde(rename_all = "snake_case")]
1546#[proto_query(
1547    path = "/desmos.subspaces.v3.Query/UserGroupMembers",
1548    response_type = QueryUserGroupMembersResponse
1549)]
1550pub struct QueryUserGroupMembersRequest {
1551    /// Id of the subspace that contains the group
1552    #[prost(uint64, tag = "1")]
1553    #[serde(
1554        serialize_with = "crate::serde::as_str::serialize",
1555        deserialize_with = "crate::serde::as_str::deserialize"
1556    )]
1557    pub subspace_id: u64,
1558    /// Id of the user group to query the members for
1559    #[prost(uint32, tag = "2")]
1560    pub group_id: u32,
1561    /// pagination defines an optional pagination for the request.
1562    #[prost(message, optional, tag = "3")]
1563    pub pagination:
1564        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1565}
1566/// QueryUserGroupMembersResponse is the response type for the
1567/// Query/UserGroupMembers RPC method
1568#[allow(clippy::derive_partial_eq_without_eq)]
1569#[derive(
1570    Clone,
1571    PartialEq,
1572    ::prost::Message,
1573    schemars::JsonSchema,
1574    serde::Serialize,
1575    serde::Deserialize,
1576    desmos_std_derive::CosmwasmExt,
1577)]
1578#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserGroupMembersResponse")]
1579#[serde(rename_all = "snake_case")]
1580pub struct QueryUserGroupMembersResponse {
1581    #[prost(string, repeated, tag = "1")]
1582    pub members: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1583    #[prost(message, optional, tag = "2")]
1584    pub pagination:
1585        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1586}
1587/// QueryUserPermissionsRequest is the request type for the Query/UserPermissions
1588/// RPC method
1589#[allow(clippy::derive_partial_eq_without_eq)]
1590#[derive(
1591    Clone,
1592    PartialEq,
1593    ::prost::Message,
1594    schemars::JsonSchema,
1595    serde::Serialize,
1596    serde::Deserialize,
1597    desmos_std_derive::CosmwasmExt,
1598)]
1599#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserPermissionsRequest")]
1600#[serde(rename_all = "snake_case")]
1601#[proto_query(
1602    path = "/desmos.subspaces.v3.Query/UserPermissions",
1603    response_type = QueryUserPermissionsResponse
1604)]
1605pub struct QueryUserPermissionsRequest {
1606    /// Id of the subspace to query the permissions for
1607    #[prost(uint64, tag = "1")]
1608    #[serde(
1609        serialize_with = "crate::serde::as_str::serialize",
1610        deserialize_with = "crate::serde::as_str::deserialize"
1611    )]
1612    pub subspace_id: u64,
1613    /// Id of the section to query the permissions for
1614    #[prost(uint32, tag = "2")]
1615    pub section_id: u32,
1616    /// Address of the user to query the permissions for
1617    #[prost(string, tag = "3")]
1618    pub user: ::prost::alloc::string::String,
1619}
1620/// QueryUserPermissionsRequest is the response type for the
1621/// Query/UserPermissions method
1622#[allow(clippy::derive_partial_eq_without_eq)]
1623#[derive(
1624    Clone,
1625    PartialEq,
1626    ::prost::Message,
1627    schemars::JsonSchema,
1628    serde::Serialize,
1629    serde::Deserialize,
1630    desmos_std_derive::CosmwasmExt,
1631)]
1632#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserPermissionsResponse")]
1633#[serde(rename_all = "snake_case")]
1634pub struct QueryUserPermissionsResponse {
1635    #[prost(string, repeated, tag = "1")]
1636    pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1637    #[prost(message, repeated, tag = "2")]
1638    pub details: ::prost::alloc::vec::Vec<PermissionDetail>,
1639}
1640/// PermissionDetail contains the details data of a permission
1641#[allow(clippy::derive_partial_eq_without_eq)]
1642#[derive(
1643    Clone,
1644    PartialEq,
1645    ::prost::Message,
1646    schemars::JsonSchema,
1647    serde::Serialize,
1648    serde::Deserialize,
1649    desmos_std_derive::CosmwasmExt,
1650)]
1651#[proto_message(type_url = "/desmos.subspaces.v3.PermissionDetail")]
1652#[serde(rename_all = "snake_case")]
1653pub struct PermissionDetail {
1654    /// Id of the subspace for which this permission is valid
1655    #[prost(uint64, tag = "1")]
1656    #[serde(
1657        serialize_with = "crate::serde::as_str::serialize",
1658        deserialize_with = "crate::serde::as_str::deserialize"
1659    )]
1660    pub subspace_id: u64,
1661    /// Id of the section for which this permission is valid
1662    #[prost(uint32, tag = "2")]
1663    pub section_id: u32,
1664    /// sum is the oneof that specifies whether this represents a user or
1665    /// group permission detail
1666    #[prost(oneof = "permission_detail::Sum", tags = "3, 4")]
1667    #[serde(flatten)]
1668    pub sum: ::core::option::Option<permission_detail::Sum>,
1669}
1670/// Nested message and enum types in `PermissionDetail`.
1671pub mod permission_detail {
1672    /// User is a permission that has been set to a specific user
1673    #[allow(clippy::derive_partial_eq_without_eq)]
1674    #[derive(
1675        Clone,
1676        PartialEq,
1677        ::prost::Message,
1678        schemars::JsonSchema,
1679        serde::Serialize,
1680        serde::Deserialize,
1681        desmos_std_derive::CosmwasmExt,
1682    )]
1683    #[proto_message(type_url = "/desmos.subspaces.v3.PermissionDetail.User")]
1684    #[serde(rename_all = "snake_case")]
1685    pub struct User {
1686        /// User for which the permission was set
1687        #[prost(string, tag = "1")]
1688        pub user: ::prost::alloc::string::String,
1689        /// Permissions set to the user
1690        #[prost(string, repeated, tag = "2")]
1691        pub permission: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1692    }
1693    /// Group is a permission that has been set to a user group
1694    #[allow(clippy::derive_partial_eq_without_eq)]
1695    #[derive(
1696        Clone,
1697        PartialEq,
1698        ::prost::Message,
1699        schemars::JsonSchema,
1700        serde::Serialize,
1701        serde::Deserialize,
1702        desmos_std_derive::CosmwasmExt,
1703    )]
1704    #[proto_message(type_url = "/desmos.subspaces.v3.PermissionDetail.Group")]
1705    #[serde(rename_all = "snake_case")]
1706    pub struct Group {
1707        /// Unique id of the group
1708        #[prost(uint32, tag = "1")]
1709        pub group_id: u32,
1710        /// Permissions set to the group
1711        #[prost(string, repeated, tag = "2")]
1712        pub permission: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1713    }
1714    /// sum is the oneof that specifies whether this represents a user or
1715    /// group permission detail
1716    #[allow(clippy::derive_partial_eq_without_eq)]
1717    #[derive(
1718        Clone, PartialEq, ::prost::Oneof, serde::Serialize, serde::Deserialize, schemars::JsonSchema,
1719    )]
1720    #[serde(rename_all = "snake_case")]
1721    pub enum Sum {
1722        /// User represents a user permission
1723        #[prost(message, tag = "3")]
1724        User(User),
1725        /// Group represents a group permission
1726        #[prost(message, tag = "4")]
1727        Group(Group),
1728    }
1729}
1730/// QueryUserAllowancesRequest is the request type for the Query/UserAllowances
1731/// RPC method
1732#[allow(clippy::derive_partial_eq_without_eq)]
1733#[derive(
1734    Clone,
1735    PartialEq,
1736    ::prost::Message,
1737    schemars::JsonSchema,
1738    serde::Serialize,
1739    serde::Deserialize,
1740    desmos_std_derive::CosmwasmExt,
1741)]
1742#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserAllowancesRequest")]
1743#[serde(rename_all = "snake_case")]
1744#[proto_query(
1745    path = "/desmos.subspaces.v3.Query/UserAllowances",
1746    response_type = QueryUserAllowancesResponse
1747)]
1748pub struct QueryUserAllowancesRequest {
1749    /// Id of the subspace for which to get the grant(s)
1750    #[prost(uint64, tag = "1")]
1751    #[serde(
1752        serialize_with = "crate::serde::as_str::serialize",
1753        deserialize_with = "crate::serde::as_str::deserialize"
1754    )]
1755    pub subspace_id: u64,
1756    /// (Optional) Address of the user that was granted an allowance
1757    #[prost(string, tag = "2")]
1758    pub grantee: ::prost::alloc::string::String,
1759    /// pagination defines an pagination for the request
1760    #[prost(message, optional, tag = "3")]
1761    pub pagination:
1762        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1763}
1764/// QueryUserAllowancesResponse is the response type for the Query/UserAllowances
1765/// RPC method
1766#[allow(clippy::derive_partial_eq_without_eq)]
1767#[derive(
1768    Clone,
1769    PartialEq,
1770    ::prost::Message,
1771    schemars::JsonSchema,
1772    serde::Serialize,
1773    serde::Deserialize,
1774    desmos_std_derive::CosmwasmExt,
1775)]
1776#[proto_message(type_url = "/desmos.subspaces.v3.QueryUserAllowancesResponse")]
1777#[serde(rename_all = "snake_case")]
1778pub struct QueryUserAllowancesResponse {
1779    #[prost(message, repeated, tag = "1")]
1780    pub grants: ::prost::alloc::vec::Vec<Grant>,
1781    /// pagination defines an pagination for the response
1782    #[prost(message, optional, tag = "2")]
1783    pub pagination:
1784        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1785}
1786/// QueryGroupAllowancesRequest is the request type for the Query/GroupAllowances
1787/// RPC method
1788#[allow(clippy::derive_partial_eq_without_eq)]
1789#[derive(
1790    Clone,
1791    PartialEq,
1792    ::prost::Message,
1793    schemars::JsonSchema,
1794    serde::Serialize,
1795    serde::Deserialize,
1796    desmos_std_derive::CosmwasmExt,
1797)]
1798#[proto_message(type_url = "/desmos.subspaces.v3.QueryGroupAllowancesRequest")]
1799#[serde(rename_all = "snake_case")]
1800#[proto_query(
1801    path = "/desmos.subspaces.v3.Query/GroupAllowances",
1802    response_type = QueryGroupAllowancesResponse
1803)]
1804pub struct QueryGroupAllowancesRequest {
1805    /// Id of the subspace for which to get the grant(s)
1806    #[prost(uint64, tag = "1")]
1807    #[serde(
1808        serialize_with = "crate::serde::as_str::serialize",
1809        deserialize_with = "crate::serde::as_str::deserialize"
1810    )]
1811    pub subspace_id: u64,
1812    /// (optional) Address of the user group that was granted the allowance(s)
1813    #[prost(uint32, tag = "2")]
1814    pub group_id: u32,
1815    /// pagination defines an pagination for the request
1816    #[prost(message, optional, tag = "3")]
1817    pub pagination:
1818        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1819}
1820/// QueryGroupAllowancesResponse is the response type for the
1821/// Query/GroupAllowances RPC method
1822#[allow(clippy::derive_partial_eq_without_eq)]
1823#[derive(
1824    Clone,
1825    PartialEq,
1826    ::prost::Message,
1827    schemars::JsonSchema,
1828    serde::Serialize,
1829    serde::Deserialize,
1830    desmos_std_derive::CosmwasmExt,
1831)]
1832#[proto_message(type_url = "/desmos.subspaces.v3.QueryGroupAllowancesResponse")]
1833#[serde(rename_all = "snake_case")]
1834pub struct QueryGroupAllowancesResponse {
1835    #[prost(message, repeated, tag = "1")]
1836    pub grants: ::prost::alloc::vec::Vec<Grant>,
1837    /// pagination defines an pagination for the response
1838    #[prost(message, optional, tag = "2")]
1839    pub pagination:
1840        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1841}
1842pub struct SubspacesQuerier<'a, Q: cosmwasm_std::CustomQuery> {
1843    querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
1844}
1845impl<'a, Q: cosmwasm_std::CustomQuery> SubspacesQuerier<'a, Q> {
1846    pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
1847        Self { querier }
1848    }
1849    pub fn subspaces(
1850        &self,
1851        pagination: ::core::option::Option<
1852            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1853        >,
1854    ) -> std::result::Result<QuerySubspacesResponse, cosmwasm_std::StdError> {
1855        QuerySubspacesRequest { pagination }.query(self.querier)
1856    }
1857    pub fn subspace(
1858        &self,
1859        subspace_id: u64,
1860    ) -> std::result::Result<QuerySubspaceResponse, cosmwasm_std::StdError> {
1861        QuerySubspaceRequest { subspace_id }.query(self.querier)
1862    }
1863    pub fn sections(
1864        &self,
1865        subspace_id: u64,
1866        pagination: ::core::option::Option<
1867            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1868        >,
1869    ) -> std::result::Result<QuerySectionsResponse, cosmwasm_std::StdError> {
1870        QuerySectionsRequest {
1871            subspace_id,
1872            pagination,
1873        }
1874        .query(self.querier)
1875    }
1876    pub fn section(
1877        &self,
1878        subspace_id: u64,
1879        section_id: u32,
1880    ) -> std::result::Result<QuerySectionResponse, cosmwasm_std::StdError> {
1881        QuerySectionRequest {
1882            subspace_id,
1883            section_id,
1884        }
1885        .query(self.querier)
1886    }
1887    pub fn user_groups(
1888        &self,
1889        subspace_id: u64,
1890        section_id: u32,
1891        pagination: ::core::option::Option<
1892            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1893        >,
1894    ) -> std::result::Result<QueryUserGroupsResponse, cosmwasm_std::StdError> {
1895        QueryUserGroupsRequest {
1896            subspace_id,
1897            section_id,
1898            pagination,
1899        }
1900        .query(self.querier)
1901    }
1902    pub fn user_group(
1903        &self,
1904        subspace_id: u64,
1905        group_id: u32,
1906    ) -> std::result::Result<QueryUserGroupResponse, cosmwasm_std::StdError> {
1907        QueryUserGroupRequest {
1908            subspace_id,
1909            group_id,
1910        }
1911        .query(self.querier)
1912    }
1913    pub fn user_group_members(
1914        &self,
1915        subspace_id: u64,
1916        group_id: u32,
1917        pagination: ::core::option::Option<
1918            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1919        >,
1920    ) -> std::result::Result<QueryUserGroupMembersResponse, cosmwasm_std::StdError> {
1921        QueryUserGroupMembersRequest {
1922            subspace_id,
1923            group_id,
1924            pagination,
1925        }
1926        .query(self.querier)
1927    }
1928    pub fn user_permissions(
1929        &self,
1930        subspace_id: u64,
1931        section_id: u32,
1932        user: ::prost::alloc::string::String,
1933    ) -> std::result::Result<QueryUserPermissionsResponse, cosmwasm_std::StdError> {
1934        QueryUserPermissionsRequest {
1935            subspace_id,
1936            section_id,
1937            user,
1938        }
1939        .query(self.querier)
1940    }
1941    pub fn user_allowances(
1942        &self,
1943        subspace_id: u64,
1944        grantee: ::prost::alloc::string::String,
1945        pagination: ::core::option::Option<
1946            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1947        >,
1948    ) -> std::result::Result<QueryUserAllowancesResponse, cosmwasm_std::StdError> {
1949        QueryUserAllowancesRequest {
1950            subspace_id,
1951            grantee,
1952            pagination,
1953        }
1954        .query(self.querier)
1955    }
1956    pub fn group_allowances(
1957        &self,
1958        subspace_id: u64,
1959        group_id: u32,
1960        pagination: ::core::option::Option<
1961            super::super::super::cosmos::base::query::v1beta1::PageRequest,
1962        >,
1963    ) -> std::result::Result<QueryGroupAllowancesResponse, cosmwasm_std::StdError> {
1964        QueryGroupAllowancesRequest {
1965            subspace_id,
1966            group_id,
1967            pagination,
1968        }
1969        .query(self.querier)
1970    }
1971}